Skip to content

fix: review-poll exec_script の --jq スカラー出力を json.loads せず生文字列で解決 (#209)#210

Merged
apokamo merged 3 commits into
mainfrom
fix/209
May 28, 2026
Merged

fix: review-poll exec_script の --jq スカラー出力を json.loads せず生文字列で解決 (#209)#210
apokamo merged 3 commits into
mainfrom
fix/209

Conversation

@apokamo

@apokamo apokamo commented May 28, 2026

Copy link
Copy Markdown
Owner

Summary

review_poll_entry.pykaji pr view --jq でスカラー値(headRefOid / committedDate)を取得した生 CLI 出力を json.loads() に渡していたため、review-poll が毎回 JSONDecodeError で exit code 1 クラッシュしていた。スカラー抽出専用ヘルパー _gh_raw() を新設し、json.loads を経由しない生文字列解決に切り替えた。

Closes #209

Changes

  • kaji_harness/scripts/review_poll_entry.py: _gh_raw() ヘルパー新設。スカラー抽出 2 箇所(headRefOid / committedDate)を _gh_json_gh_raw に差し替え
  • tests/test_review_poll_entry.py: subprocess.run 境界モックへ移行し、生 SHA / 生日付をそのまま流す再現テストを追加(修正前 FAIL・修正後 PASS を確認済み)

Documentation

  • draft/design/issue-209-fix-review-poll-exec-script-jq-json-load.md: 設計書追加(根本原因・修正方針・テスト戦略・影響範囲を記載)

Test Plan

  • 再現テスト追加済み(subprocess.run 境界モック、生 SHA / 生日付の raw scalar 抽出を検証)
  • 既存テストを subprocess.run 境界モックへ移行(_gh_json 直接 patch から脱却)
  • make check 通過(lint / format / typecheck / pytest すべて green)

apokamo and others added 3 commits May 28, 2026 20:09
review_poll_entry._gh_json() が kaji pr view --jq '.headRefOid' /
'.commits[-1].committedDate' のスカラー抽出(クォートなし生文字列)を
json.loads して JSONDecodeError でクラッシュしていた。スカラー抽出用の
_gh_raw() を新設し、headRefOid / committedDate を json.loads を経由せず
生文字列で解決する。.[0] object 抽出(pr list)は _gh_json のまま据置。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@apokamo
apokamo merged commit 6b769f0 into main May 28, 2026
1 check passed
@apokamo
apokamo deleted the fix/209 branch May 28, 2026 11:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix: review-poll exec_script が --jq スカラー出力を json.loads して毎回クラッシュ

1 participant