注:GitHub Enterprise Server 2.22 上的 GitHub Actions 支持是有限的公测版。 测试已结束。 GitHub Actions 现在一般可用于 GitHub Enterprise Server 3.0 或更新版本。 更多信息请参阅 GitHub Enterprise Server 3.0 发行说明。
- 有关升级到 GitHub Enterprise Server 3.0 或更新版本的更多信息,请参阅“升级 GitHub Enterprise Server”。
- 有关在升级后配置 GitHub Actions 的更多信息,请参阅 GitHub Enterprise Server 3.0 的文档。
注: GitHub 托管的运行器目前在 GitHub Enterprise Server 上不受支持。 您可以在 GitHub 公共路线图 上查看有关未来支持计划的更多信息。
简介
本教程演示了如何使用 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 steps: - uses: actions/stale@v3 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 工作流程运行期间负载过高时可能会延迟。 高负载时间包括每小时的开始时间。 为了降低延迟的可能性,将您的工作流程安排在不同时间运行。
您可以查看工作流程运行的历史记录,以便定期查看此工作流程运行。 更多信息请参阅“查看工作流程运行历史记录”。
This workflow will only label and/or close 30 issues at a time in order to avoid exceeding a rate limit. 您可以使用 operations-per-run
设置配置此项。 更多信息请参阅 actions/stale
操作文档。
后续步骤
- 要详细了解可以使用
actions/stale
操作执行的其他事务,如关闭非活动的拉取请求、忽略包含某些标签或里程碑的议题,或只检查包含特定标签的议题,请参阅actions/stale
操作文档。 - 搜索 GitHub 以查看使用此操作的工作流程示例。