テック技報最新号へ →
コード

gh signoff: 手元でテストを通し、コミットに緑のステータスを付ける(ローカル CI)

basecamp の GitHub CLI 拡張。手元でテストが通ったら gh signoff を実行すると、HEAD のコミットに signoff という成功ステータスが付く。gh signoff install でこのステータスをマージの必須条件にすれば、クラウドの CI ランナーを使わずに「テスト済みでないとマージできない」状態を作れる。

@jessethanley · 投稿 2026-06-26
#git#github#ci#gh-cli

どんな時に使う?

  • 小さなチームや個人のアプリで、クラウド CI が遅い・高いと感じている
  • 開発機は十分速く、テストは手元で回し切れる

やり方

bash
gh extension install basecamp/gh-signoff

# テストが通ったら(例: bin/rails test && gh signoff)
gh signoff                  # HEAD に signoff ステータスを付ける
gh signoff tests            # signoff/tests のように部分ごとのコンテキストも付けられる
gh signoff fail             # 失敗を赤いステータスで残す
gh signoff --commit HEAD~1  # 別のコミットを指定

# マージの必須条件にする(リポジトリのルールセット "signoff" を作る)
gh signoff install
gh signoff uninstall        # 外す

--url か git config signoff.url を設定すると、ステータスの Details リンクから実行ログなどに飛べる。

注意点

  • 既定では、HEAD がプッシュ済みでないと拒否される(-f で上書きできる)。先に push してから signoff する。
  • 「手元で本当にテストしたか」は人の規律に任せることになる。クリーンな環境での再現性、OS やブラウザの組み合わせテスト、並列実行が必要なら、引き続きクラウド CI が向いている。
  • ルールセットはリポジトリ管理者ならバイパスできる。bot をバイパス対象に足す設定は、install し直しても保持される。

出典

X の元の投稿を開く