本文档描述了在 DeepSeek-R1 仓库中实现的自动化问题管理系统。它特别关注 GitHub 问题如何通过自动化工作流进行跟踪、标记和最终关闭。有关仓库结构的通用信息,请参阅 仓库信息。
DeepSeek-R1 仓库实施了一个自动化的过期问题管理系统,有助于保持问题跟踪器的整洁。该系统会自动识别和处理长时间未活动的过期问题,确保开发团队专注于当前相关的问题。
该工作流作为 GitHub Actions 工作流实现,每天运行并根据问题的活动级别进行处理。
来源:.github/workflows/stale.yml1-11
该过期问题工作流配置了以下参数
| 参数 | 值 | 描述 |
|---|---|---|
| 运行时间 | 每日午夜 UTC | 通过 cron 表达式 0 0 * * * 进行调度 |
| 过期阈值 | 30 天 | 问题在 inactivity 30 天后视为过期 |
| 关闭阈值 | 14 天 | 过期问题在 inactivity 14 天后关闭 |
| 过期标签 | "stale" | 应用于过期问题的标签 |
| 关闭标签 | "closed-as-stale" | 关闭过期问题时应用的标签 |
| 豁免标签 | "pinned", "security" | 带有这些标签的问题永远不会被标记为过期 |
| PR 处理 | 已禁用 | Pull requests 不受此工作流管理 |
来源:.github/workflows/stale.yml3-30
下图说明了 DeepSeek-R1 仓库中问题的生命周期,重点关注过期问题管理流程
来源:.github/workflows/stale.yml12-30
此图说明了 GitHub Actions 工作流用于检测和管理过期问题的技术流程
来源:.github/workflows/stale.yml7-30
为防止你的问题被自动关闭,请考虑以下准则
只要问题保持定期活动,它们就会保持活跃。活动包括
如果一个问题被标记为过期,你可以通过添加评论来解释为什么这个问题仍然相关,从而重新激活它。
过期问题工作流使用特定的标签来跟踪问题状态
| 标签 | 含义 |
|---|---|
| stale | 问题已 inactivity 30 多天,可能很快就会关闭 |
| closed-as-stale | 问题因持续 inactivity 而被自动关闭 |
| pinned | 问题豁免过期工作流(由仓库所有者维护) |
| 安全 | 与安全相关的问题豁免过期工作流 |
来源:.github/workflows/stale.yml15-21
当一个问题被标记为过期时,会发布以下通知消息
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. If you
believe this issue is still relevant, please leave a comment to keep it open.
Thank you for your contributions!
此消息作为警告,表明该问题将在 inactivity 14 天后关闭,除非有人响应使其保持活跃。
来源:.github/workflows/stale.yml22-27
过期问题工作流是使用 GitHub Actions 框架和官方的 actions/stale 动作 9 版本实现的。该工作流仅在主要的 DeepSeek-R1 仓库中运行,并使用标准的 GitHub API token 进行身份验证。
工作流在以下文件中定义