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
相关产品推荐
相关产品推荐

