简介
本教程演示如何使用 actions/stale
操作来评论和关闭在一段时间内处于非活动状态的问题。 例如,如果某个议题 30 天内未活动,您可以添加评论以促使参与者采取行动。 然后,如果 14 天后没有其他活动发生,您可以关闭此议题。
在本教程中,你将首先创建一个使用 actions/stale
操作的工作流文件。 然后,您将自定义工作流以适应您的需要。
创建工作流程
-
选择要应用此项目管理工作流程的仓库。 您可以使用您有写入权限的现有仓库,或者创建一个新的仓库。 有关创建存储库的详细信息,请参阅“创建新仓库”。
-
在存储库中,创建一个名为
.github/workflows/YOUR_WORKFLOW.yml
的文件,将YOUR_WORKFLOW
替换为你选择的名称。 这是一个工作流程文件。 有关在 GitHub 上创建新文件的详细信息,请参阅“创建新文件”。 -
将以下 YAML 内容复制到工作流程文件中。
YAML name: Close inactive issues on: schedule: - cron: "30 1 * * *" jobs: close-issues: runs-on: ubuntu-latest permissions: issues: write pull-requests: write steps: - uses: actions/stale@v5 with: days-before-issue-stale: 30 days-before-issue-close: 14 stale-issue-label: "stale" stale-issue-message: "This issue is stale because it has been open for 30 days with no activity." close-issue-message: "This issue was closed because it has been inactive for 14 days since being marked as stale." days-before-pr-stale: -1 days-before-pr-close: -1 repo-token: ${{ secrets.GITHUB_TOKEN }}
name: Close inactive issues on: schedule: - cron: "30 1 * * *" jobs: close-issues: runs-on: ubuntu-latest permissions: issues: write pull-requests: write steps: - uses: actions/stale@v5 with: days-before-issue-stale: 30 days-before-issue-close: 14 stale-issue-label: "stale" stale-issue-message: "This issue is stale because it has been open for 30 days with no activity." close-issue-message: "This issue was closed because it has been inactive for 14 days since being marked as stale." days-before-pr-stale: -1 days-before-pr-close: -1 repo-token: ${{ secrets.GITHUB_TOKEN }}
-
自定义工工作流程文件中的参数:
- 更改
on.schedule
的值以指示你希望何时运行此工作流。 在上面的示例中,工作流将于每天 1:30 UTC 运行。 有关计划工作流的详细信息,请参阅“触发工作流的事件”。 - 将
days-before-issue-stale
的值更改为在actions/stale
操作标记问题之前没有活动的天数。 如果你不希望此操作标记问题,请将此值设置为-1
。 - 将
days-before-issue-close
的值更改为在actions/stale
操作关闭问题之前没有活动的天数。 如果你不希望此操作关闭问题,请将此值设置为-1
。 - 将
stale-issue-label
的值更改为要应用于在days-before-issue-stale
指定的时间量内处于非活动状态的问题的标签。 - 将
stale-issue-message
的值更改为要添加到由actions/stale
操作标记的问题的注释。 - 将
close-issue-message
的值更改为要添加到由actions/stale
操作关闭的问题的注释。
- 更改
-
将工作流程文件提交到仓库的默认分支。 有关详细信息,请参阅“创建新文件”。
预期结果
根据 schedule
参数(例如,每天 1:30 UTC),你的工作流将发现在指定时间段内处于非活动状态的问题,并将添加指定的注释和标签。 此外,如果在指定时间段内未发生其他活动,您的工作流程将关闭任何以前标记的议题。
注意:schedule
事件在 GitHub Actions 工作流运行期间负载过高时可能会延迟。 高负载时间包括每小时的开始时间。 如果负载足够高,可能会删除一些排队作业。 为了降低延迟的可能性,将您的工作流程安排在不同时间运行。
您可以查看工作流程运行的历史记录,以便定期查看此工作流程运行。 有关详细信息,请参阅“查看工作流程运行历史记录”。
为了避免超过速率限制,此工作流程将一次只标记和/或关闭 30 个议题。 可以使用 operations-per-run
设置进行配置。 有关详细信息,请参阅 actions/stale
操作文档。
后续步骤
- 若要详细了解可以使用
actions/stale
操作执行的其他操作(例如关闭非活动拉取请求,忽略某些标签或里程碑的问题,或者仅检查某些标签的问题),请参阅actions/stale
操作文档。 - 搜索 GitHub 以获取使用此操作的工作流示例。