pr-merge: enable-auto-merge drops the verdict reader's babysit-listing-miss stderr
维护者通常 1 天内回复
已经有一个关联 PR 被合并了。
- #10917 来自 @melodic-automation-lanes —— 已合并
评估
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 新手友好度
- 70/100
- Issue 类型
- 缺陷
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- github-actions, javascript, python
调研方向
阅读 .github/scripts/pr-merge/enable-auto-merge.mjs 中 pythonVerify 和调用 ghCallsLine(done.stderr) 附近的代码,然后检查 enable-auto-merge.test.mjs 中对应的用例。追踪拒绝判定时 stderr 的处理方式,并补充对转发相关 reader 行的测试覆盖;当拒绝时表示列表未命中的那一行出现在 job 日志中,且测试覆盖了该行为时,任务即完成。
由索引模型根据 Issue 内容生成。
描述
Problem
enable-auto-merge runs babysit_verify_evidence.py once per candidate and keeps only one line of its stderr, the babysit-gh-calls line. The reader prints a babysit-listing-miss {...} line on stderr for every incremental read that misses GitHub's live artifact count (Reader._incremental, LISTING_MISS_PREFIX). Those lines never reach the job log. When a candidate falls back to the full repository listing, the log cannot show why.
Where the line is dropped
.github/scripts/pr-merge/enable-auto-merge.mjs at 82432cf, in pythonVerify:
- L1007:
spawn("python3", ...)withencoding: "utf8"captures the reader's stderr intodone.stderr. - L1022-L1025:
ghCallsLine(done.stderr)prints only thebabysit-gh-callsline. Every other stderr line is discarded. - A refusal such as
verify:unreadableexits 0, so the error branch, which would print the last stderr line, does not run either.
Evidence
In enable-auto-merge run 40817220695, candidate #10867 logged:
enable-auto-merge: #10867 calls=128 github-token=124 paginated=0 ms=107111 cached=0
babysit-gh-calls {"calls":{..."override GET repos/{}/{}/actions/artifacts":7,"override GET {}/{}/actions/artifacts":117},...}
enable-auto-merge: #10867 left: pr-merge's gate refuses its verifier verdict (verify:unreadable)
That is 7 incremental page calls, then 117 full-listing pages over 107 s, ending in a refusal. No babysit-listing-miss line appears anywhere in the job log. Three possible causes remain open: the incremental reads missed the live count, a page failed, or the base was rejected.
Fix
Print each babysit-listing-miss line from done.stderr beside the babysit-gh-calls line. Better: print every stderr line except the gh-calls line when the reader's verdict is a refusal. enable-auto-merge.test.mjs would need a case for it. Note that #10743 also edits that test file.
Refs: #10880
- 主要语言
- Shell
- 星标
- 22
- 派生
- 2
- 平均合并
- 3 小时 15 分钟
- 30 天内合并 PR
- 949
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
melodic-software/claude-code-plugins 的其他 Issue
-
host-run priority: low status: confirmed work-class: scoped
难度 2/5 1-3 小时 新手友好度 62/100
melodic-software/claude-code-plugins#11147 · 3 条评论 ·
维护者通常 1 天内回复
-
needs-human priority: medium status: ready work-class: scoped
难度 1/5 1 小时以内 新手友好度 85/100
melodic-software/claude-code-plugins#9667 · 2 条评论 ·
维护者通常 1 天内回复
-
fix(pr-pipeline): apply-verdict readFields reads a malformed field-values answer as no fields set未关闭priority: low status: confirmed
难度 2/5 1-3 小时 新手友好度 83/100
melodic-software/claude-code-plugins#9598 · 1 条评论 ·
维护者通常 1 天内回复
-
needs-human priority: medium status: ready work-class: scoped
难度 2/5 1-3 小时 新手友好度 78/100
melodic-software/claude-code-plugins#9547 · 2 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 67/100
melodic-software/claude-code-plugins#9179 · 1 条评论 ·
维护者通常 1 天内回复
查看 melodic-software/claude-code-plugins 的全部 Issue
相似的 Issue
-
priority middle
难度 1/5 1 小时以内 新手友好度 62/100
KATO-Hiro/AtCoderClans#12940 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复
-
needs-triage
难度 2/5 1-3 小时 新手友好度 66/100
metal3-io/metal3-dev-env#1741 · 1 条评论 ·
-
bug
难度 2/5 1-3 小时 新手友好度 64/100
-
launch-client --save-creds creates creds/<account>/ with mode 755, not 700可能已有人在做 @metis-sprock 今天认领。 未关闭backlog bug
难度 2/5 1-3 小时 新手友好度 74/100
EchoTools/nevr-runtime#1471 ·
维护者通常 1 天内回复