Файл обновления, расположенный в хранилище VSTS из приложения javascript - PullRequest
0 голосов
/ 20 декабря 2018

Я разработал расширение 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);
    }

Это мой демонстрационный репозиторий.

enter image description here

Здесь входные параметры будут

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" впараметр запроса.

...