## 何が起きたか 確定仕様 PR #2040 で `merged-steps.py merge-when-green 2040 --expect-head 2bb66a6c1`(`git log --oneline` の短い SHA)を打つと、先端が一致しているのにマージせず止まった。 ```text {"tool": "merged", "status": "stopped", "summary": "#2040 の先端が 2bb66a6c でない(今は 2bb66a6c・OPEN)。マージしない", "items": [{"kind": "pr", "name": "#2040", "result": "head_moved", "head": "2bb66a6c14a618cbac108b61737ad49cfb1ac48b", "expected": "2bb66a6c1"}], "metrics": {"waits": 0}} ``` 完全な SHA で打ち直すと通った。 ## 原因 `plugins/ndf/scripts/merged_lib/checks.py` の `GreenWatch._check_expected` が `sha == expect` の完全一致だけで比べる。誤りの文はどちらも 8 文字に切って出すため、同じ値に見えて食い違いの理由が読めない。 ## 依頼 次のどちらかにする。 - `--expect-head` を受け取った時点で `git rev-parse` で完全な SHA へ解決する(解決できなければ終了コード 2) - 短い SHA を拒否し、誤りの文で完全な SHA を求める ## 受け入れ条件(案) - 先端と同じコミットを指す短い SHA を渡したとき、止まらずに待ってマージすること - 違うコミットを指すときは今と同じく `head_moved` で止まること 起点: #2008(スプリント a1 の確定仕様 PR #2040 のマージ)
Activity