#powershell #azure-devops #azure-powershell #azure-devops-rest-api #azure-repos
#powershell #azure-devops #azure-powershell #azure-devops-rest-api #azure-репозитории
Вопрос:
Я работаю над сценарием, в котором я хочу узнать имя папки, в которой пользователь внес изменения
$AzureDevOpsPAT = ""
$OrganizationName = ""
$AzureDevOpsAuthenicationHeader = @{Authorization = 'Basic ' [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$($AzureDevOpsPAT)")) }
$UriOrga = "https://dev.azure.com/$($OrganizationName)/"
$uriAccount = $UriOrga "{Project Name}/_apis/git/repositories/{RepositoryID}/items?api-version=6.0-preview.1"
Invoke-RestMethod -Uri $uriAccount -Method get -Headers $AzureDevOpsAuthenicationHeader -ContentType "application/json"
Это возвращает (он возвращает идентификатор недавней фиксации, идентификатор объекта, но в path он возвращает только /)
путь=/;
Также с
$uriAccount = $UriOrga "{Project Name}/_apis/git/repositories/{REPO ID}/commits?api-version=6.0-preview.1"
Он возвращает —
author=; committer=; (Nothing for these values just blank)
Вопрос — я использую неправильный вызов API? Как я могу получить имя папки, имя коммиттера?
Спасибо
Ответ №1:
Мы можем получить имя папки фиксации через идентификатор фиксации
GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/commits/{commitId}/changes?api-version=6.0-preview.1
Результат:
И получить имя коммиттера через приведенный ниже API
Get https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/commits/{commitId}?api-version=6.0-preview.1
Результат:
Update1
получить имя коммиттера
Я использовал postman для отслеживания этих результатов, и я также попробовал сценарий powershell, пожалуйста, проверьте его.
$url = "https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/commits/{commitId}?api-version=6.0-preview.1"
$connectionToken="PAT"
$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($connectionToken)"))
$CommitInfo = Invoke-RestMethod -Uri $url -Headers @{authorization = "Basic $base64AuthInfo"} -Method Get
Write-Host "CommitInfo = $($CommitInfo | ConvertTo-Json -Depth 100)"
Результат:
Комментарии:
1. Привет, @vito, где вы отслеживаете эти результаты? Я попытался развернуть скрипты PS локально, и он выдает мне все пустые значения с добавлением идентификатора фиксации.
2. Привет @megha, я обновил ответ и добавил скрипт powershell, пожалуйста, проверьте его.
Ответ №2:
Вы используете запрос без каких-либо фильтров. Попробуйте добавить дополнительные фильтры:
-
Для поиска элементов вы можете добавить:
-
Для поиска коммитов вы можете добавить