【问题标题】:How to get the associated changes, check-in comments and linked work items for a particular build/release in VSTS如何在 VSTS 中获取特定构建/发布的相关更改、签入注释和链接的工作项
【发布时间】:2018-08-08 10:01:53
【问题描述】:

我正在使用 SendGrid 电子邮件扩展程序在 VSTS 中完成 CI/CD 流程后触发自定义电子邮件通知。此电子邮件任务中包含 HTML 内容,其中包括使用标准构建/发布变量 (https://docs.microsoft.com/en-us/vsts/build-release/concepts/definitions/build/variables?tabs=batch) 获取的一些内容。

如何在自定义电子邮件中包含特定版本的关联代码更改、签入 cmets 和链接工作项?我可以使用任何变量吗?有什么解决办法吗?

【问题讨论】:

    标签: azure-devops azure-pipelines azure-pipelines-release-pipeline azure-pipelines-build-task azure-devops-rest-api


    【解决方案1】:

    没有可以获取代码更改、签入 cmets 和链接工作项的内置变量。

    您可以在构建或发布期间通过 REST API 获取它们:

    1. 通过Get Build Changes REST API 获取构建更改和工作项(构建ID 变量:Build.BuildId 在构建期间或Release.Artifacts.{Artifact alias}.BuildId 在发布期间)注意:使用Build.SourceVersion 获取最新版本)
    2. Git:通过Get a batch of commits by a list of commit IDsREST API 获取提交消息
    3. TFVC:通过Get list of changesets by a list of IDSREST API 获取签到评论
    4. 要获取更改的项目,您可以使用get commit with changed itemsGet list of changes in a changeset REST API。

    没有API可以获取详细代码更改,但您可以参考这个相关问题:Lines of Code modified in each Commit in TFS rest api. How do i get?

    【讨论】:

    • 可以在最后一次提交中获取更改,但是如果在包含多个提交的推送之后触发构建怎么办?
    【解决方案2】:

    假设 TFS(未在问题或标签中指定),您也可以直接调用 tf.exe 以获取其中的一些信息。如果您不关心输出格式,则以下命令的输出会生成变更集详细信息的报告。

    tf vc changeset <changeset id> /loginType:OAuth /login:.,<token> /noprompt
    

    &lt;changeset id&gt; 是数字 Build.SourceVersion,&lt;token&gt; 是 System.AccessToken。

    报告中包含评论和源代码编辑列表。

    注意:代理作业必须获得“允许脚本访问 OAuth 令牌”权限(代理作业属性上的复选框)。

    有关如何访问构建变量的详细信息,请参阅下面的更新链接。与问题中的内容相同,但新链接。目前两者都有效。

    https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-18
      • 1970-01-01
      • 1970-01-01
      • 2018-03-10
      • 2023-02-02
      • 2019-03-11
      • 2019-05-25
      • 1970-01-01
      相关资源
      最近更新 更多