Загрузите всю папку из контроля версий через TFS 2015 RestFul Apis

Есть ли способ получить URL-адрес загрузки для всей папки из системы управления версиями TFS 2015 с помощью API RestFul?

Я могу получить метаданные об элементах через /_apis//tfvc/items/ API, но свойство downloadUrl недоступно.

Я вижу свойство downloadUrl для артефактов сборки через /_apis//build/builds/{buildNumber}/artifacts API.

Я мог бы загрузить каждый файл в папке через API GET для этого элемента, но это могло потребовать много запросов.

Я использую API версии 2.0.


person Andy McCluggage    schedule 18.12.2015    source источник
comment
Не могли бы вы показать пример, как вы скачали папку с файлами?   -  person Claudius    schedule 27.01.2017


Ответы (1)


Нет URL-адреса для загрузки элементов/папок с текущим API управления версиями.

Чтобы получить всю папку, вы можете заархивировать ее и загрузить с помощью Rest Api в следующем формате:

[Get] https://xxx/defaultcollection/_apis/tfvc/items?path=<Folder Path>&api-version=1.0

И добавьте в заголовок запроса следующее: Accept: application/zip

person Eddie Chen - MSFT    schedule 21.12.2015
comment
Ах, мне не хватало Accept: application/zip. отлично спасибо. - person Andy McCluggage; 05.01.2016
comment
Кстати, спасибо за помощь. Я задал здесь еще один вопрос, который вам может понравиться - stackoverflow.com/questions/34611326/ - person Andy McCluggage; 05.01.2016
comment
@Eddie - MSFT Если в папке нет zip-файла и если я попытаюсь получить эту папку с указанным выше заголовком запроса, будет ли он загружать zip для этой папки? - person Sonali; 25.05.2017
comment
@Sonali Да, вы получите zip-файл для этой папки. - person Eddie Chen - MSFT; 25.05.2017
comment
@Eddie - MSFT Я пробовал то же самое, но файл не загружается. Вот пример запроса: $.ajax({ type: 'GET', url: instanceName + 'DefaultCollection/_apis/tfvc/items?scopePath=' + path + '&api-version=' + apiversion, contentType: 'application/json', headers: { 'Authorization': 'Basic ' + btoa("" + ":" + PAT), 'Accept': 'application/zip' }, dataType: 'json', success: function(data) { console.log(data); } }); - person Sonali; 25.05.2017
comment
@Sonali Не знаком с ajax, но кажется, что ajax не поддерживает файл загрузки: stackoverflow.com/questions/23676748/. - person Eddie Chen - MSFT; 25.05.2017
comment
@Eddie - MSFT, тогда какой подход мне попробовать? - person Sonali; 25.05.2017
comment
@ Эдди - MSFT С#. - person Sonali; 25.05.2017
comment
@Sonali Затем вы можете использовать клиентские библиотеки .Net здесь: visualstudio.com/en-us/docs/integrate/get-started/, чтобы упростить загрузку файлов с помощью API. Перейдите по этой ссылке для получения более подробной информации: paulselles.wordpress.com/2014/01/08/. - person Eddie Chen - MSFT; 25.05.2017
comment
не удалось загрузить zip с модулем node. - person Rockstar; 30.10.2018