Как переместить/переименовать файл в TFS Source Control 2015 с помощью REST API?

Я пытаюсь переместить файлы в нашу внутреннюю TFS, используя Python и REST API TFS; кажется, что сервер поддерживает API только до версии 2, но в MSDN я не могу найти документы для версий ниже v4.1.

URL-адрес, по которому я публикую, https://<server>/tfs/<Collection>/<Project>/_apis/tfvc/changesets

В настоящее время мое лучшее предположение о правильном теле JSON для почтового запроса выглядит следующим образом:

{
    "comment": "moved file",
    "changes": [{
        "changeType": "rename",
        "item": {
            "path": "<filepath>",
            "version": 468,
                    "sourceServerItem": "<filepath>"
        }

    }]
}

Но я не могу получить дальше ошибки HTTPp 400 неверный запрос со следующим сообщением

{
  "$id": "1",
  "innerException": null,
  "message": "Exactly one value for PathActions is required.\r\nParameter name: change.SourceServerItem",
  "typeName": "System.ArgumentException, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
  "typeKey": "ArgumentException",
  "errorCode": 0,
  "eventId": 0
}

И в жизни я не могу найти ссылку на PathActions в Google, которая не предназначена для git вместо tfvc, или правильный способ указать значение для этого элемента.

У кого-нибудь есть способ переименовать/переместить файлы на TFVC через HTTP-запрос?

Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
1
0
276
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Мне просто пришло в голову сделать переименование с помощью веб-интерфейса TFS и посмотреть запрос, отправленный браузером.

Оказывается, это правильный формат:

{
  "comment": "Moved File",
  "changes": [
    {
      "changeType": 8,
      "sourceServerItem": "<old path>",
      "item": {
        "path": "<new path>",
        "version": 470
      }
    }
  ]
}

Этот формат продолжает работать с API v5 и превью v5.1 (Спасибо! Документация ужасна). docs.microsoft.com/en-us/rest/api/azure/devops/tfvc/changese‌​ts/…

CJBS 06.02.2020 02:01

"и просмотреть запрос, отправленный браузером" - отличная идея!

CJBS 06.02.2020 02:01

Другие вопросы по теме