Я разработал расширение VSTS, используя javascript, где я читаю файлы (файл CSV) из репозитория VSTS, используя пакет "vss-web-extension-sdk" npm.
Метод ниже дает содержимое файла
async getItemContent(filepath,dataRepository,dataProject) {
let raw = await this.gitRestClient.getItemContent(dataRepository, filepath, dataProject);
return this.decoder.decode(raw);
}
Это мой демонстрационный репозиторий.
Здесь входные параметры будут
filepath - "data / a.csv"
dataRepository -" TestRepo "
dataProject -" BuildDemoProject "
Чтение файла CSV работает нормально.Теперь я хочу обновить файл и отправить обратно в хранилище.
Обновление 1:
Я нашел способ протолкнуть изменения, используя GitHttpClient Api, как показано ниже.
https://docs.microsoft.com/en-us/azure/devops/extend/reference/client/api/tfs/versioncontrol/gitrestclient/githttpclient2_2?view=vsts#createpush()
https://docs.microsoft.com/en-us/rest/api/azure/devops/git/pushes/create?view=azure-devops-rest-5.0#update_a_file
Параметры запроса:
{
"refUpdates": [
{
"name": "refs/heads/master",
"oldObjectId": "fd1062428e0567cfbfcc28ac59d4bea077ce81c1"
}
],
"commits": [
{
"comment": "Added a few more items to the task list.",
"changes": [
{
"changeType": "edit",
"item": {
"path": "/tasks.md"
},
"newContent": {
"content": "# Tasks\n\n* Item 1\n* Item 2\n* Item 3\n* Item 4\n\nIf you need to add more, update this file and add them!",
"contentType": "rawtext"
}
}
]
}
]
}
Теперь мой запрос состоит в том, каким должно быть значение "oldObjectId" впараметр запроса.