Как я уже упоминал в комментарии, API get-changes , который использовался в этом билете, не подходит для конвейера сборки, у которого есть источник репозитория github .
Но, к счастью, у нас есть полная поддержка облака github. Так что здесь вы можете использовать другой, чтобы получить список ассоциированных коммитов, который мы не документировали.
GET https://dev.azure.com/{org name}/{project name}/_traceability/runview/changes?currentRunId={build id}&__rt=fps&__ver=2
В большинстве случаев вы можете отловить некоторые записи из F12
, когда вы не найдете пути к документам, которые мы публикуем c. Выше api можно получить из F12, пока вы нажимаете на ссылку Changes
на странице Build Summary
:
Я написал полный сценарий powershell, который вы можете напрямую использовать в конвейере выпуска для получения идентификатора коммитов из тела ответа:
$token = "{PAT token}"
$url="https://dev.azure.com/{org name}/{project name}/_traceability/runview/changes?currentRunId={build id}&__rt=fps&__ver=2"
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))
$response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token"} -Method Get
Write-Host "results = $($response.fps.dataProviders.data.'ms.vss-traceability-web.traceability-run-changes-data-provider'.artifactsData.data.id | ConvertTo-Json -Depth 100)"
В конвейере выпуска мы предоставляем одну встроенную переменную среды, в которую вы можете напрямую получить соответствующий запущенный идентификатор сборки: $(Build.Buildid)
. И вы можете вставить это в api, чтобы идентификатор сборки можно было получать автоматически во время процесса CI + CD.
Обновление от 3/4/2020:
Основываясь на скриншоте, который вы предоставили в нашем обсуждении, ваша структура данных предназначена для git репо (, не знаю почему, будет копать это ):
Пожалуйста, перенесите конвейер с YAML. Затем запустите его и напишите коммиты, используя сценарии, которые я опубликовал выше Вы увидите данные коммитов по результатам YAML.