使用 Azure DevOps,从 GitHub 获取提交列表,以便作为发布的一部分传递给 Sentry?

2023-11-25

我正在使用 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:

enter image description here


我编写了一个完整的 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)"

enter image description here


在release pipeline中,我们提供了一个内置的环境变量,您可以直接获取对应的触发的Build id:$(Build.Buildid)。您可以将其注入到api中,以便在CI+CD过程中自动获取构建id。


2020 年 3 月 4 日更新:

根据您在我们的讨论中分享的屏幕截图,您的数据结构适用于 git repo (不知道为什么,会挖掘这个) :

请使用 YAML 传输管道。然后触发它并使用我上面共享的脚本编写提交。您将看到来自 YAML 结果的提交数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Azure DevOps,从 GitHub 获取提交列表,以便作为发布的一部分传递给 Sentry? 的相关文章

随机推荐

  • docker和主机之间的PID映射

    docker 命名空间与主机命名空间有何不同以及 pid 如何在这两者之间映射 谁能给我一个想法 有助于使用源代码在主机和 docker 之间映射 pid 的简单方法 您可以在中找到映射 proc PID status文件 它包含这样一行
  • 实体框架是否支持循环引用?

    我有两个具有父 子关系的实体 此外 父级包含对 主 子级的引用 因此简化模型如下所示 class Parent int ParentId int MainChildId class Child int ChildId int ParentI
  • caret::train:指定模型生成参数

    我正在使用caretR 中用于模型生成的库 我想生成一个earth 又名 MARS 模型 我想指定degree该模型生成的参数 根据文档 第 11 页 earth方法支持此参数 指定参数时出现以下错误消息 gt library caret
  • JSch会话超时限制

    我正在使用 JSch 0 1 50 为我的 CI Jenkins 插件设置到远程服务器的连接 假设我想在这里使用session connect 60000 超时 60 秒 Session session null try JSch jsch
  • 在 1 和 0 的矩形中找到最大块的简单方法

    我正在尝试提出暴力 天真的 解决方案来找到 1 和 0 的矩形中最大的 1 或 0 块 我知道可以做到这一点的最佳方法O n 时间 其中 n 是矩形的总大小 1 1 0 1 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 1 0
  • 有 Perl 或 Lua 可以替代 Capistrano 吗?

    对于许多 Web 应用程序 我需要像 Capistrano 这样的东西来自动化部署 我知道 Capistrano 可以用来部署非 ruby 应用程序 但我对 Ruby 不熟悉 所以我预计编写部署配置可能会有点痛苦 所以我想知道 除了用 Pe
  • JavaScript - 更改 CSS 颜色 5 秒

    我试图找到一种方法来简要突出显示命名链接上的文本 但只持续几秒钟 a href faq1 因此 在常见问题解答列表中 它会跳转到正确的 ID 将颜色更改为红色几秒钟 作为最终用户的视觉提示 答案就在这里 但随后返回正常颜色并且间隔完成 如何
  • 如何在不使用TOP和子查询的情况下从表中获取第n高的工资?

    最近在一次采访中 我被要求编写一个查询 在该查询中我必须从表中获取第 n 个最高薪水 而不使用 TOP 和任何子查询 我完全困惑了 因为我知道实现它的唯一方法同时使用 TOP 和子查询 请提供其解决方案 提前致谢 尝试 CTE 通用表表达式
  • Angular UI 路由器嵌套视图

    我有这样的结构 div div
  • 从 .txt 文件中用 C++ 美化 JSON 字符串

    我目前正在使用 C 工作 从使用 ostream 写入 txt 文件的请求中获取 HTTP 响应 这是异步发生的 我不想改变它 数据写入完成后 我想从文件中读取 data request type City query London Uni
  • Visual Studio 中仅调试类和资源 - 这可能吗?

    是否可以将一个类添加到 Visual Studio 中的项目中 并仅为该项目的调试配置构建该类 也就是说 它根本不会出现在Release构建中 如果可以的话 是否也可以对资源做同样的事情 我正在特别考虑仅在调试配置中运行但从程序集中删除以供
  • 合成属性是否已分配/初始化?

    如果我有一个习惯NSObject名为 ProgramModel 的类 当我时它是否获得 alloc init ed property and synthesize来自另一个班级 例如 在这样的 ProgramController 类中 Pr
  • 查找 Go 切片或数组中的唯一项

    我是个新手 现在我真的非常非常困惑 假设我有一个坐标列表 并且假设我在这个坐标列表中有一些双精度数 我一生都无法弄清楚如何制作一份独特的清单 通常在 Python 中我可以使用集合和其他内置函数来 作弊 在 Go 中则不然 package
  • R:ggplot ylim 不起作用

    我正在尝试改变情节中的 ylim 但一旦我改变它 情节就消失了 我无法弄清楚原因 有人可以帮助我找出问题的根本原因吗 gt df lt data frame Category c A B C D B A D C Setup c X Y Ga
  • 如何有效地检索 Facebook 照片 URL 的到期日期并在到期前续订?

    主要问题 应用程序缓存来自 Facebook 照片 CDN 的 URL 照片有时会过期 我的 技术 问题 Facebook CDN 过期 标头似乎不可靠 或者我不知道如何处理它们 使用 CURL 检索过期日期 curl i X HEAD h
  • Maven Mirror - 如果镜像主机不可用,如何绕过?

    我有一个 Maven 镜像存储库 Archiva 例如
  • CSS @keyframes 规则分组

    我完全理解你cannot组动画关键帧选择器 例如 keyframes moz keyframes webkit keyframes do something 并且你绝对MUST do keyframes do something moz k
  • SQL:根据另一个表中的列值选择列

    我有以下表格 UserPrivileges UserID Col1 Col2 Col3 1 0 1 1 2 0 0 1 3 1 0 0 4 1 1 0 Data DataID Col1 Col2 Col3
  • C# 运算符重载和继承

    假设我有一个父类和子类 如下所示 家长班级 class Parent public string First public string Last public override bool Equals object obj if Refe
  • 使用 Azure DevOps,从 GitHub 获取提交列表,以便作为发布的一部分传递给 Sentry?

    我正在使用 Azure 管道通过其 GitHub 集成来构建和发布我的软件 作为监控的一部分 我使用 Sentry 来记录异常等 我想使用 Sentry 的 可疑提交 功能 因此它可以指出可能导致特定问题的提交 为此 我需要向 Sentry