Appearance
develop ブランチの保護(必須 CI ・マージブロック)
本リポジトリの品質ゲート(PHPCS / PHPUnit / PHPStan / Deptrac / Format / PSR-4)を PR 上で有効 にし、develop 向き PR が CI 失敗のままマージできないようにする手順です。
採用している運用(Plan B)
個人の無料アカウント + プライベートリポジトリ では Merge Queue が使えない ため、次の運用です(GitHub ドキュメント 参照)。
| タイミング | 品質 CI(CI Quality Gate) |
|---|---|
PR 作成(opened) | 1 回走る |
PR 再オープン(reopened) | 1 回走る |
| ドラフト → Ready for review | 1 回走る |
feature ブランチへの 追加 push(synchronize) | 走らない |
develop への merge 後 push | 走らない |
| Re-run all jobs(手動) | 元 run と同じ SHAを再実行(追加 push 後の最新 head には非対応) |
| workflow_dispatch(手動) | PR head または選択ブランチ先端を検証可能 |
マージ前の必須手順: コミットを push したあとは、Actions → CI Quality Gate → Run workflow を実行する(pr_number に PR 番号を入力するか、PR ブランチを選択)。develop を選んで pr_number を入力した場合も、必須チェックは PR head の SHA に付与される。最新コミットで Quality Gate がグリーンであることを確認してからマージする。
開発中はローカルで品質チェックを行う:
./bin/run_local_quality_check.shまたはcomposer quality-checkcomposer testnpm run format:check
スコープ(コード PR と GitHub 設定の分担)
- コード PR:
.github/workflows/ci-quality-gate.ymlの維持 - 管理者: Billing 確認、
developRuleset の必須チェック更新(Merge Queue は不要) - 受け入れ: テスト PR で 動作確認
先決条件(管理者チェックリスト)
| # | 確認項目 | 手順 |
|---|---|---|
| 1 | Actions 課金 | Settings → Billing → Actions。上限 0 でブロックされている場合は月次リセット待ち、または無料枠内で実行できるよう見直す。 |
| 2 | ワークフロー定義 | ci-quality-gate.yml が develop にマージ済みであること。 |
| 3 | 必須チェック | Ruleset で CI Quality Gate / Quality Gate を指定(下記)。旧 6 件の個別チェックは削除。 |
推奨: Rulesets(develop 向け)
Settings → Rules → Rulesets で develop に次を設定します。
- マージ前に pull request 必須
- 必須のステータスチェックに 1 件 指定(下表)
- 必須チェックを満たさないマージを禁止
- (推奨)Require branches to be up to date before merging … 最新コミットに対するチェックを促す。push 後は Run workflow が必要。
- 必要に応じて 管理者も同じルールを強制
Merge Queue は設定しない(個人無料プライベートでは利用不可)。
必須チェック(2026-05 時点)
ワークフロー(name) | ジョブ名(jobs.*.name) |
|---|---|
| CI Quality Gate | Quality Gate |
UI での表記目安
CI Quality Gate / Quality GatePR の Checks タブの表記と突き合わせて指定してください。
旧必須チェック(6 件)からの移行
ci-quality-gate.yml 統合後は 上記 1 件のみ に差し替え、旧 6 件(PHPCS Check / ... 等)は必須リストから 削除 してください。
動作確認(受け入れの確認用)
- PR 作成時に CI が 1 回走る
develop向きテスト PR を作成する。CI Quality Gateが 1 回 実行されることを確認する。
- 追加 push では CI が走らない
- 同 PR にコミットを push する。
- 新しい
CI Quality Gate実行が 自動では起動しない ことを確認する。
- Run workflow で最新コミットを検証できる
- Actions → CI Quality Gate → Run workflow を実行する(
pr_numberまたは PR ブランチ)。 - 最新コミットで Quality Gate が実行されることを確認する。
- Actions → CI Quality Gate → Run workflow を実行する(
- 失敗時にマージがブロックされる
- 意図的に lint 失敗を入れ、Run workflow 後 failed になること。
- Merge がブロックされることを確認する。
参考: Merge Queue(将来・Organization 移行時)
Organization + GitHub Team 等に移行し Merge Queue が使える場合は、merge_group トリガーへ切り替え可能(分数はさらに削減できる)。現状の個人無料プライベートでは Plan B を正 とする。
Issue 受け入れ条件との対応
| Issue | 受け入れ条件 | 対応 |
|---|---|---|
| #1827 | 保護ルール・必須チェック | Ruleset + CI Quality Gate / Quality Gate |
| #1827 | CI 失敗でマージブロック | 動作確認 |
| #2002 | PR で品質チェックが実行される | PR 作成時 + マージ前 Run workflow |
| #2002 | マージゲートが機能する | 必須チェック + Run workflow 運用 |