You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub Workflow如何在运行末尾自动移除触发本次运行的PR标签

GitHub Actions工作流自动移除触发标签实现方案

前置说明

你的工作流通过pull_request_target事件触发,运行在目标仓库的上下文环境中,默认的GITHUB_TOKEN只要配置了对应权限即可完成标签移除操作,无需额外配置个人访问令牌。

1. 确认触发配置

首先确保工作流的触发配置中包含labeled类型,才能在PR被打标签时触发运行:

on:
  pull_request_target:
    types: [labeled]

2. 配置权限

在工作流根级别添加权限声明,授予PR读写权限,否则无法执行移除标签操作:

permissions:
  pull-requests: write
  contents: read # 若你其他步骤需要读取代码可保留,无需求可删除

3. 新增移除标签的收尾步骤

你可以任选以下两种实现方式之一,添加到所有工作流步骤的最后即可:

方式一:使用官方actions/github-script调用API(更灵活,推荐)

- name: 移除触发工作流的标签
  uses: actions/github-script@v7
  with:
    script: |
      const triggerLabel = context.payload.label.name
      const prNumber = context.payload.pull_request.number
      // 若需要只移除指定的触发标签,可添加判断逻辑,比如仅移除`run-sonar`标签
      // if (triggerLabel === 'run-sonar') {
        await github.rest.issues.removeLabel({
          owner: context.repo.owner,
          repo: context.repo.repo,
          issue_number: prNumber,
          name: triggerLabel
        })
      // }
  env:
    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

方式二:使用封装好的移除标签Action(写法更简洁)

- name: 移除触发工作流的标签
  uses: actions-ecosystem/action-remove-labels@v1
  with:
    labels: ${{ github.event.label.name }}
    github_token: ${{ secrets.GITHUB_TOKEN }}

内容的提问来源于stack exchange,提问作者Leonardo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 13:06:02