简介
本教程演示如何使用 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
的值以指示您希望此工作流何时运行。在上面的示例中,工作流将在每天 UTC 时间 1:30 运行。有关计划工作流的更多信息,请参阅“触发工作流的事件”。 - 更改
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
参数(例如,每天 UTC 时间 1:30),您的工作流将查找在指定时间段内处于不活跃状态的问题,并添加指定的评论和标签。此外,如果在指定时间段内没有其他活动,您的工作流将关闭任何先前已标记的问题。
注意
在 GitHub Actions 工作流运行负载过高期间,schedule
事件可能会延迟。高负载时间包括每小时的开始。如果负载足够高,则可能会丢弃一些排队的作业。要降低延迟的可能性,请将工作流安排在每小时的不同时间运行。
您可以查看工作流运行历史记录以查看此工作流定期运行。有关更多信息,请参阅“查看工作流运行历史记录”。
此工作流每次最多只会标记和/或关闭 30 个问题,以避免超出速率限制。您可以使用 operations-per-run
设置对其进行配置。有关更多信息,请参阅 actions/stale
操作文档。
后续步骤
- 要了解有关使用
actions/stale
操作可以执行的其他操作的更多信息,例如关闭不活跃的拉取请求、忽略具有某些标签或里程碑的问题,或仅检查具有某些标签的问题,请参阅actions/stale
操作文档。 - 搜索 GitHub 以查找使用此操作的工作流示例。