Я пытаюсь переместить файлы в нашу внутреннюю 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-запрос?

Мне просто пришло в голову сделать переименование с помощью веб-интерфейса 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/changesets/…