注意
现在已禁用创建新的项目(经典)。项目(经典)将于 2024 年 8 月 23 日停止使用并删除。您可以在 GitHub 博客 上阅读有关此更改的更多信息。
新的改进版项目体验现已推出。有关更多信息,请参阅“关于项目”。
2024 年 8 月 23 日,所有剩余的项目(经典版)将在功能移除之前自动迁移。
简介
本教程演示了如何使用 actions/github-script
操作 以及条件语句,从添加到项目(经典版)中特定列的 issue 和 pull request 中移除标签。例如,当项目卡片移动到“已完成”列时,您可以移除“需要审查”标签。
在本教程中,您将首先创建一个使用 actions/github-script
操作 的工作流文件。然后,您将根据需要自定义工作流。
创建工作流
-
选择您要应用此项目管理工作流的仓库。您可以使用您拥有写入权限的现有仓库,也可以创建一个新的仓库。有关创建仓库的更多信息,请参阅“创建新的仓库”。
-
选择属于该仓库的项目(经典版)。此工作流不能用于属于用户或组织的项目。
-
在您的仓库中,创建一个名为
.github/workflows/YOUR_WORKFLOW.yml
的文件,将YOUR_WORKFLOW
替换为您选择的名称。这是一个工作流文件。有关在 GitHub 上创建新文件的更多信息,请参阅“创建新文件”。 -
将以下 YAML 内容复制到您的工作流文件中。
YAML name: Remove a label on: project_card: types: - moved jobs: remove_label: if: github.event.project_card.column_id == '12345678' runs-on: ubuntu-latest permissions: issues: write pull-requests: write steps: - uses: actions/github-script@v6 with: script: | // this gets the number at the end of the content URL, which should be the issue/PR number const issue_num = context.payload.project_card.content_url.split('/').pop() github.rest.issues.removeLabel({ issue_number: issue_num, owner: context.repo.owner, repo: context.repo.repo, name: ["needs review"] })
name: Remove a label on: project_card: types: - moved jobs: remove_label: if: github.event.project_card.column_id == '12345678' runs-on: ubuntu-latest permissions: issues: write pull-requests: write steps: - uses: actions/github-script@v6 with: script: | // this gets the number at the end of the content URL, which should be the issue/PR number const issue_num = context.payload.project_card.content_url.split('/').pop() github.rest.issues.removeLabel({ issue_number: issue_num, owner: context.repo.owner, repo: context.repo.repo, name: ["needs review"] })
-
自定义工作流文件中的参数
-
在
github.event.project_card.column_id == '12345678'
中,将12345678
替换为您要取消标记移动到该列的 issue 和 pull request 的列的 ID。要查找列 ID,请导航到您的项目(经典版)。在列标题旁边,单击 然后单击 **复制列链接**。列 ID 是复制链接末尾的数字。例如,
24687531
是https://github.com/octocat/octo-repo/projects/1#column-24687531
的列 ID。如果您想对多个列执行操作,请用
||
分隔条件。例如,if github.event.project_card.column_id == '12345678' || github.event.project_card.column_id == '87654321'
将在项目卡片添加到列12345678
或列87654321
时执行操作。这些列可能位于不同的项目中(经典项目)。 -
将
github.rest.issues.removeLabel()
函数中的name
值更改为要从移动到指定列的 issue 或 pull request 中删除的标签的名称。有关标签的更多信息,请参阅“管理标签”。
-
-
将您的工作流文件提交到存储库的默认分支。有关更多信息,请参阅“创建新文件”。
测试工作流
每次存储库中的项目(经典项目)上的项目卡片移动时,此工作流都会运行。如果卡片是 issue 或 pull request 并且被移动到您指定的列中,则工作流将从 issue 或 pull request 中删除指定的标签。笔记卡片不会受到影响。
通过将项目(经典项目)上的 issue 移动到目标列来测试您的工作流。
- 在您的存储库中打开一个 issue。有关更多信息,请参阅“创建 issue”。
- 使用您希望工作流删除的标签标记 issue。有关更多信息,请参阅“管理标签”。
- 将 issue 添加到您在工作流文件中指定的工作流(经典项目)列中。有关更多信息,请参阅“将 issue 和 pull request 添加到项目(经典项目)”。
- 要查看由将 issue 添加到项目触发的运行的工作流,请查看工作流运行的历史记录。有关更多信息,请参阅“查看工作流运行历史记录”。
- 工作流完成后,您添加到项目列的 issue 应该已删除指定的标签。
下一步
- 要了解有关使用
actions/github-script
操作可以执行的其他操作的更多信息,请参阅actions/github-script
操作文档。 - 在 GitHub 上搜索使用此操作的工作流程示例。