GitHub Actions无法自动清理长期无活动PR问题排查求助
排查GitHub Action自动关闭无活动PR未生效的问题
你的自动关闭无活动PR的工作流没生效,核心是配置参数错误加上缺少关键开关,具体问题和修正方案如下:
配置中的关键错误
- 参数名称不匹配:你用的
stale-duration和close-duration不是actions/stale@v5的合法参数,正确参数是days-before-stale(设置无活动多少天后标记为stale)和days-before-close(设置标记stale后多少天关闭)。参数名写错会导致Action完全忽略这些配置。 - 未开启自动关闭开关:默认情况下,
actions/stale不会自动关闭PR,必须添加close-pr: true参数来启用这个功能。 - 缺少明确的标记/关闭配置(可选但建议添加):如果没有指定
stale-pr-label、stale-pr-message等,Action的行为可能不明确,添加后能更清晰地看到PR的状态变化。
修正后的完整配置
name: Stale PRs on: schedule: - cron: '0 0 * * *' # 每天UTC午夜触发检查 pull_request: types: [opened, synchronize, reopened] # PR有活动时重置计时 jobs: stale: runs-on: ubuntu-latest steps: - name: Check out code uses: actions/checkout@v3 - name: Mark stale pull requests uses: actions/stale@v5 with: days-before-stale: 2 # 无活动2天后标记为stale days-before-close: 2 # 标记为stale后2天自动关闭 close-pr: true # 开启自动关闭PR功能 stale-pr-label: 'stale' # 给stale的PR打标签 stale-pr-message: '此PR已超过2天无活动,标记为stale状态。' close-pr-message: '此PR已保持stale状态超过2天,自动关闭。' repo-token: ${{ secrets.GITHUB_TOKEN }}
额外排查步骤
- 去仓库的「Actions」页面查看「Stale PRs」工作流的运行记录,确认定时任务是否按时触发。如果没触发,检查仓库的Actions权限是否被禁用,或者cron表达式是否有误。
- 确认你的测试PR确实5天内没有任何活动(包括评论、提交、标签修改等),任何活动都会重置stale计时。
- 如果是组织仓库,检查仓库的权限设置,确保
GITHUB_TOKEN拥有Pull Requests的写权限。
内容的提问来源于stack exchange,提问作者Krist Manor
相关产品推荐
相关产品推荐

