如何在VSTS中获取特定构建/发布的关联更改,签入注释和链接工作项

时间:2018-02-28 13:43:27

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

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

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

2 个答案:

答案 0 :(得分:4)

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

您可以在构建或发布期间通过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 IDs REST API获取提交消息
  3. TFVC:通过Get list of changesets by a list of IDS REST API
  4. 获取签到评论
  5. 要获取更改的项目,您可以使用get commit with changed itemsGet list of changes in a changeset REST API。
  6. 没有用于获取详细代码更改的API,但您可以参考此相关问题:Lines of Code modified in each Commit in TFS rest api. How do i get?

答案 1 :(得分:0)

假设使用TFS(在问题或标签中未指定),您也可以直接调用tf.exe来获取某些信息。如果您不关心输出格式,那么以下命令的输出将生成Changeset详细信息的报告。

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

其中<changeset id>是数字Build.SourceVersion,而<token>是System.AccessToken。

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

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

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

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