我正在使用 Azure 管道通过其 GitHub 集成来构建和发布我的软件。作为监控的一部分,我使用 Sentry 来记录异常等。
我想使用 Sentry 的“可疑提交”功能(因此它可以指出可能导致特定问题的提交)。为此,我需要向 Sentry 发送一个版本(只是与特定项目关联的版本)以及与之相关的关联提交列表。
我读过这篇文章:
Sentry 中的 Azure DevOps 集成:关联提交
GitHub 上的这个:
https://github.com/getsentry/sentry/issues/11127
虽然两者都有(非常不同的)获取提交列表的方法,但他们假设其中一个正在使用 Azure DevOps 存储库功能。我的 DevOps 实例上没有存储库,因此,尽管帖子很有用,但它们并不能真正直接帮助我。
简而言之,我需要列出 GitHub 上与 Azure DevOps 上的特定版本相关的所有提交,以便我可以将它们发送到 Sentry API。
有人这样做过吗?我怎样才能做到这一点?我错过了一些明显的事情吗?
正如我在评论中提到的,获取更改api中使用的this票证不适合构建管道有 github 仓库源.
但是,幸运的是,我们对 github 云有完整的功能支持。因此,在这里您可以使用另一个来获取此类关联提交列表,即我们未记录的列表。
GET https://dev.azure.com/{org name}/{project name}/_traceability/runview/changes?currentRunId={build id}&__rt=fps&__ver=2
大多数时候,您可以考虑从以下位置捕获一些记录F12
,当您从我们公开的文件中找不到办法时。以上api可以通过F12获取,点击Changes
构建中的链接Summary
page:
我编写了一个完整的 powershell 脚本,您可以直接在发布管道中使用它来从其响应正文中获取提交 id:
$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)"
在release pipeline中,我们提供了一个内置的环境变量,您可以直接获取对应的触发的Build id:$(Build.Buildid)
。您可以将其注入到api中,以便在CI+CD过程中自动获取构建id。
2020 年 3 月 4 日更新:
根据您在我们的讨论中分享的屏幕截图,您的数据结构适用于 git repo (不知道为什么,会挖掘这个) :
请使用 YAML 传输管道。然后触发它并使用我上面共享的脚本编写提交。您将看到来自 YAML 结果的提交数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)