Как добавить новые файлы и папки в Azure Git репозиторий с Azure DevOps REST API?
Я хочу добавить несколько файлов stati c в свой репозиторий, используя Azure DevOps REST API.
https://docs.microsoft.com/en-us/rest/api/azure/devops/git/repositories?view=azure-devops-rest-5.1
Есть ли какой-либо вариант, доступный через REST API?.
или любой другой доступный автоматизированный способ, либо CICD, либо через c#?
Я нашел ответ, мы можем использовать Git Pu sh REST API uri
https://docs.microsoft.com/en-us/rest/api/azure/devops/git/pushes/create?view=azure-devops-rest-5.1
Follow ниже шаги в вашем коде C#
вызовите GetRef REST https://dev.azure.com/ {0} / {1} / _ apis / git / repositories / {2} / refs {3 } это должно вернуть объект вашей ветки репозитория, который вы можете использовать для pu sh ваших изменений
Затем вызовите Pu sh REST API для создания папки или файла в ваш репозиторий https://dev.azure.com/ {0} / {1} / _ apis / git / repositories / {2} / plows {3}
var changes = new List<ChangeToAdd>(); //Add Files //pnp_structure.yml var jsonContent = File.ReadAllText(@"./static-files/somejsonfile.json"); ChangeToAdd changeJson = new ChangeToAdd() { changeType = "add", item = new ItemBase() { path = string.Concat(path, "/[your-folder-name]/somejsonfile.json") }, newContent = new Newcontent() { contentType = "rawtext", content = jsonContent } }; changes.Add(changeJson); CommitToAdd commit = new CommitToAdd(); commit.comment = "commit from code"; commit.changes = changes.ToArray(); var content = new List<CommitToAdd>() { commit }; var request = new { refUpdates = refs, commits = content }; var personalaccesstoken = _configuration["azure-devOps-configuration-token"]; var authorization = Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(string.Format("{0}:{1}", "", personalaccesstoken))); _logger.LogInformation($"[HTTP REQUEST] make a http call with uri: {uri} "); //here I making http client call // https://dev.azure.com/{orgnizationName}/{projectName}/_apis/git/repositories/{repositoryId}/pushes{?api-version} var result = _httpClient.SendHttpWebRequest(uri, method, data, authorization);