Skip to content

ghas-setup: 既存 config lookup の --slurp+--jq 併用エラーを修正#15

Merged
mackato merged 1 commit into
mainfrom
fix/ghas-setup-slurp
Jun 3, 2026
Merged

ghas-setup: 既存 config lookup の --slurp+--jq 併用エラーを修正#15
mackato merged 1 commit into
mainfrom
fix/ghas-setup-slurp

Conversation

@mackato
Copy link
Copy Markdown
Member

@mackato mackato commented Jun 3, 2026

ユーザー指示の要点

dogfooding(airs org への本適用)で ghas-setup が実行時エラー:

the `--slurp` option is not supported with `--jq` or `--template`

変更の概要

  • 既存 configuration の冪等 lookup から --slurp を除去。gh api--slurp--jq/--template と併用できない仕様のため、--paginate でページごとに --jq を適用して一致 id を出力し、コマンド置換で受けて先頭行のみ採用する(head パイプを使わないため pagination 途中の SIGPIPE + set -o pipefail での誤失敗も起きない)。pagination による全件検索(30 件超でも取りこぼさない)は維持。
  • bats の gh スタブが実 gh のフラグ制約を再現しておらず本バグを見逃したため、スタブ側で --slurp + --jq 併用を非 0 終了として再現し、同種の regression を検知できるようにした。

レビューのポイント

  • CONFIG_ID=${CONFIG_ID%%$'\n'*} による先頭行採用(重複名は org では起きない前提だが、複数行でも壊れないための保険)。
  • 実 gh 2.92.0 で gh api --paginate --jq--slurp なし)が正常動作することを確認済み。

検証方法

  • nix flake check → all checks passed(bats 8 件含む)。
  • nix run .#ghas-setup -- --dry-runorg: airs の解決と叩く API 表示を確認。

🤖 Generated with Claude Code

gh api は `--slurp` を `--jq` と併用できず("the --slurp option is not
supported with --jq or --template")、本適用の冪等 lookup が実行時に失敗して
いた。--slurp をやめ、--paginate でページごとに --jq を適用して一致 id を出し、
複数行になっても先頭行のみ採用する(head パイプを使わないため SIGPIPE +
pipefail での誤失敗も起きない)。

bats の gh スタブが実 gh のフラグ制約を再現しておらず見逃したため、スタブ側で
`--slurp` + `--jq` 併用を非 0 終了として再現し、同種 regression を検知できる
ようにした。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@mackato mackato merged commit 64dc9fb into main Jun 3, 2026
1 check passed
@mackato mackato deleted the fix/ghas-setup-slurp branch June 3, 2026 13:34
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.

1 participant