【问题标题】:Github Workflow - Remove label at the end?Github Workflow - 最后删除标签?
【发布时间】:2022-01-03 20:44:16
【问题描述】:

我有a workflow,当拉取请求被标记时触发(通过pull_request_target)。

我会自动删除触发分析的标签,作为该工作流程的最后一步。

我该怎么做?

【问题讨论】:

  • 到目前为止您尝试了哪些方法,但没有成功?
  • 找不到任何远程像我需要的东西......有很多关于如何添加标签的例子......如果你看看链接的工作流程,最后一步(现在评论) 是我最近的一个问题...
  • 由于您尝试以特定方式解决它,也许您可​​以分享一下它是如何不起作用的?只是链接到您的代码并要求人们为您解决问题对未来的访问者没有好处,因此如果您能展示您尝试过的内容、您面临的问题以及您遇到的具体问题,那就太好了.
  • 每个拉取请求都是一个问题(但不是每个问题都是拉取请求)。因此,您可以使用 Github Api 使用 PR 编号从问题(或执行相同操作的操作)中删除(或执行相同操作的操作)的(特定)标签,作为工作流程的最后一步。 Github相关API:docs.github.com/en/rest/reference/…

标签: github github-actions


【解决方案1】:

在 Github 上:每个拉取请求都是一个问题(但不是每个问题都是拉取请求)。

You can find more informations about this on this stackoverflow answer.

因此,您可以使用 Github API 使用 PR 编号从问题(或执行相同操作的操作)中删除(或执行相同操作的操作)中的(特定)标签,作为工作流程的最后一步。

Here is the API on Github to remove label from issue (Official Documentation)

如果您想在工作流中使用 curl 直接从 shell 调用它,它将如下所示:

curl \
  -X DELETE \
  -H "Accept: application/vnd.github.v3+json" \
  https://api.github.com/repos/<owner>/<repo>/issues/<pr_number>/labels/<label_name>

【讨论】:

    【解决方案2】:

    GuiFalourd 确实有正确答案,但我确实需要改进一下。

    如果您想在私有仓库上使用工作流,您确实需要添加一个授权令牌。这是一个使用 GitHub 上下文来填充除您要删除的标签名称之外的所有内容的示例:

    curl --silent --fail-with-body \
      -X DELETE \
      -H 'Accept: application/vnd.github.v3+json' \
      -H 'Authorization: token ${{ github.token }}' \
      'https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.number }}/labels/YOUR-LABEL'
    

    此外,如果您的标签有空格,请使用 %20 作为空格。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-19
      • 1970-01-01
      • 2012-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多