背景
目前很多参与者会通过 PR 更新自己的学习笔记 / 打卡内容,例如修改 notes/{GitHubID}.md 或提交每日 check-in。
但从当前 PR 列表看,很多打卡 PR 长时间保持 open 状态。如果这些 PR 没有被合并,仓库里的 README 打卡表和相关自动同步流程就不会更新,参与者也容易误以为“提交 PR = 已完成打卡”。
问题
当前流程里:
- 参与者可以提交打卡 PR;
- 但 PR 不一定会被及时合并;
ReopBot.yml 主要在 push 到 main 或定时任务时更新 README;
- 如果 PR 没有 merge,参与者的内容不会进入
main;
- 因此 PR 本身不能稳定作为打卡完成信号。
建议
希望维护者考虑增加一个自动校验 + 自动合并流程,专门处理低风险的个人打卡 PR。
一个可能的规则是:
-
PR 只允许修改提交者自己的文件,例如:
notes/{GitHubID}.md
assets/{GitHubID}/...
-
PR 不能修改敏感文件,例如:
.github/workflows/*
sync_status_readme.py
README.md
- 其他参与者的 notes 文件
-
自动检查通过后,可以由 bot 自动 approve / auto-merge。
-
如果校验失败,则 bot 留 comment,说明失败原因,例如:
- 修改了不允许的文件
- 找不到对应日期标题
- 打卡内容长度不足
- GitHub ID 和文件名不匹配
好处
- 减少维护者手动合并大量打卡 PR 的负担;
- 让参与者的打卡状态更及时反映到 README;
- 降低“PR 已提交但实际未计入”的误解;
- 保留 GitHub PR 作为公开 proof-of-work;
- 通过路径限制和校验规则降低自动合并风险。
可选实现方向
可以增加一个 GitHub Actions workflow:
- 触发条件:
pull_request_target 或 pull_request
- 检查 PR 修改文件列表
- 校验只修改本人
notes/{GitHubID}.md / assets/{GitHubID}/...
- 运行现有
sync_status_readme.py 或轻量 check-in validator
- 校验通过后添加 label,例如
checkin-ok
- 使用 GitHub auto-merge 或 bot merge
讨论点
- 参与者通过 PR 更新自己的 notes 是否是被鼓励的流程?
- 如果是,是否可以增加自动校验和自动合并?
- 如果不是,是否可以在 README 中明确说明正式打卡入口,避免大家误以为 PR 会被计入?
背景
目前很多参与者会通过 PR 更新自己的学习笔记 / 打卡内容,例如修改
notes/{GitHubID}.md或提交每日 check-in。但从当前 PR 列表看,很多打卡 PR 长时间保持 open 状态。如果这些 PR 没有被合并,仓库里的 README 打卡表和相关自动同步流程就不会更新,参与者也容易误以为“提交 PR = 已完成打卡”。
问题
当前流程里:
ReopBot.yml主要在 push 到main或定时任务时更新 README;main;建议
希望维护者考虑增加一个自动校验 + 自动合并流程,专门处理低风险的个人打卡 PR。
一个可能的规则是:
PR 只允许修改提交者自己的文件,例如:
notes/{GitHubID}.mdassets/{GitHubID}/...PR 不能修改敏感文件,例如:
.github/workflows/*sync_status_readme.pyREADME.md自动检查通过后,可以由 bot 自动 approve / auto-merge。
如果校验失败,则 bot 留 comment,说明失败原因,例如:
好处
可选实现方向
可以增加一个 GitHub Actions workflow:
pull_request_target或pull_requestnotes/{GitHubID}.md/assets/{GitHubID}/...sync_status_readme.py或轻量 check-in validatorcheckin-ok讨论点