如何获取 PR 标题并将其存储在变量中

阿基米德图拉真

我希望能够获取 PR 消息并将其作为变量存储在 Azure Devops 中,以便我可以更改标题以** SKIP TEST **在管道中扫描该标题,而不是手动通过变量 UI。

我想我只需要执行某种 REST API 调用,因为我已经有了 PR ID 和其他识别信息。然后使用读取输出并将值存储到变量的工具。

阿基米德图拉真

在 YAML 管道(而不是经典)上执行此操作

steps:
  - bash: |
      PR_TITLE="$(curl --silent -u azdo:$SYSTEM_ACCESSTOKEN \
       $(System.CollectionUri)_apis/git/repositories/$(Build.Repository.ID)/pullRequests/$(System.PullRequest.PullRequestId)?api-version=5.1 \
       | jq -r .title)"
      echo "##vso[task.setvariable variable=Pr.Title]$PR_TITLE"
    env:
      SYSTEM_ACCESSTOKEN: $(System.AccessToken)
    displayName: Extract pull request title
    condition: and(succeeded(), eq(variables['Build.Reason'], 'PullRequest'))

  - bash: |
      echo "running test"
    displayName: Run test
    condition: and(succeeded(), not(startsWith(variables['Pr.Title'], '**SKIPTEST**')))

这是一个示例,所有内容都在一行中,但我更喜欢上面的示例,因为新手更容易阅读

steps:
  - bash: |
      echo "##vso[task.setvariable variable=Pr.Title]"$(curl --silent -u azdo:$SYSTEM_ACCESSTOKEN $(System.CollectionUri)_apis/git/repositories/$(Build.Repository.ID)/pullRequests/$(System.PullRequest.PullRequestId)?api-version=5.1 | jq -r .title)
    env:
      SYSTEM_ACCESSTOKEN: $(System.AccessToken)
    displayName: Extract pull request title
    condition: and(succeeded(), eq(variables['Build.Reason'], 'PullRequest'))

  - bash: |
      echo "running test"
    displayName: Run test
    condition: and(succeeded(), not(startsWith(variables['Pr.Title'], '**SKIPTEST**')))

标签

此外,如果您更喜欢“标签”而不是更改标题(我自己更喜欢标题,因为它在任何地方都清晰可见)可以使用以下脚本提取标签

steps:
- bash: |
    LABELS=$(curl --silent -u azdo:$SYSTEM_ACCESSTOKEN $(System.CollectionUri)_apis/git/repositories/$(Build.Repository.ID)/pullRequests/$(System.PullRequest.PullRequestId)/labels?api-version=5.1-preview.1 | jq .value[].name)
      echo "##vso[task.setvariable variable=Pr.Labels]$LABELS"
  env:
    SYSTEM_ACCESSTOKEN: $(System.AccessToken)
  displayName: Get Pull Request Labels
  condition: and(succeeded(), eq(variables['Build.Reason'], 'PullRequest'))
- bash: |
    echo "running test"
  displayName: Run test
  condition: and(succeeded(), not(contains(variables['Pr.Labels'], '"skip-test"')))

注意我没有-r在 JQ 上使用,所以引用了这些值。这允许对字符串进行更明确的检查,而不是匹配可能包含文本作为子字符串的标签。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何提取数据框的列标题(变量名称)并将其作为变量存储在其他数据框中?

如何从链接中获取所有新闻标题并将其存储在 r 中

从文件中获取输入并将其存储在变量中

获取目录大小并将其存储到变量中

从 firebase 获取数据并将其存储在 javascript 变量中

如何从 django 表单中获取日期值并将其存储在 views.py 中的变量中

如何正确返回数据并将其存储在变量中

如何从CSV文件导入数据并将其存储在变量中?

如何拆分字符串并将其存储在变量中?

如何从json接收数据并将其存储到变量中?

如何获取下一页中的链接并将其存储在变量中?

如何从表单获取数据并将其存储在Django中的变量中

如何从数组中获取字符并将其存储在变量中?

如何获取滑块范围值并将其存储在JavaScript中的变量中

如何在clipspy中获取事实值并将其存储在python变量中

如何在jsp脚本中获取bean值并将其存储在javascript变量中?

C#:如何从SQL Server的特定列中获取值并将其存储到变量中

如何从数组中获取所有数据并将其存储在新变量或常量中?

从变量中获取输入并将其存储到相同的变量中,但存储在diff文件中

如何获取单元格的值并将其存储到Pandas变量中?

如何动态获取选定选项的值并将其存储到变量中?

如何仅从MySQL获取与id对应的文本并将其存储为PHP中的变量

如何从网络接口获取已用带宽量并将其存储在变量中?

如何使用getElementsByTagName()方法获取body标签的内容并将其存储在变量中

如何从URL获取JSON并将其存储在变量(Node.js)中

如何获取多个文本框的值并将其存储在变量中

当我单击按钮并将其存储在会话变量中时,如何获取链接

如何在git存储库中获取PR流

如何获取增量代码的代码覆盖率并将其作为注释发布到git PR中