Appearance
develop ブランチの保護(必須 CI ・マージブロック)
本リポジトリの品質ゲート(PHPCS / PHPUnit / PHPStan / Deptrac / Format / PSR-4)を PR 上で有効 にし、develop 向き PR が CI 失敗のままマージできないようにするための手順です。Issue #1827 の受け入れ条件に対応します。
スコープ(コード PR と GitHub 設定の分担)
- 本リポジトリのコード差分でできること: ワークフロー定義(
.github/workflows/*.yml)の維持、および本手順の文書化。 - リポジトリ管理者(または GitHub 組織の管理者)が行うこと:
develop向け Rulesets または ブランチ保護ルールの有効化。これは API トークンやgitでは完了せず、GitHub の Settings から行う作業である。 - 受け入れ(マージ前に CI 失敗で止まること)の実証は、上記の設定後に、テスト用 PR で意図的に失敗を出して確認する。
先決条件: PR で CI が走ること
必須ステータスとして指定できるのは、対象 PR に紐づくチェック実行のみです。pull_request: branches: [develop] が定義されたワークフローが、develop 向き PR の Checks に表示されます。
上記を満たしたうえで、以降のリポジトリ設定を行ってください。
推奨: Rulesets または ブランチ保護ルール
GitHub の Settings → Rules → Rulesets(推奨)または Settings → Branches のクラシック保護のいずれかで、develop に次を満たすルールを追加します。
- マージ前に pull request 必須(直接 push 禁止、または許可方針に合わせる)
- 必須のステータスチェックに、次表の ジョブ名(表示は GitHub 上は「ワークフロー名 / ジョブ名」形式)を指定する
- 必須チェックを満たさないマージを禁止(「上記をバイパスできない者」の設定を、方針に合わせて厳格化。一般メンバーが不要なバイパスを持たないこと)
- 必要に応じて 管理者も同じルールを強制(
Include administrators相当)を有効化し、管理者のバイパスを避ける
本リポジトリの想定する必須チェック(2026-04-25 時点)
ドロップダウンに出てくる表示名は環境で微妙に違うことがあるため、最初の 1 本の PR マージ後、Checks タブの表記と突き合わせて指定してください。
ワークフロー(name) | ジョブ名(jobs.*.name) |
|---|---|
| PHPCS Check | PHPCS Check (WordPress + 未使用use文) |
| PHPUnit Check | PHPUnit |
| PHPStan Check | PHPStan Check |
| Deptrac Architecture Check | Architecture Check with Deptrac |
| Format Check | Format Check (Prettier) |
| PSR-4 Compliance Check | PSR-4 Compliance Check |
補足: ドキュメント専用の
deploy-docs等は、必須化するかは運用判断で別途。品質ゲートの中心は上表 6 件です。
必須ステータスチェックに指定する表記(目安)
UI のドロップダウンでは、次の 「ワークフロー名 / ジョブ名」 形式で表記されることが多い。実際の文字列は PR の Checks タブの名称と突き合わせる。
| 必須化する目安(コピー用) |
|---|
PHPCS Check / PHPCS Check (WordPress + 未使用use文) |
PHPUnit Check / PHPUnit |
PHPStan Check / PHPStan Check |
Deptrac Architecture Check / Architecture Check with Deptrac |
Format Check / Format Check (Prettier) |
PSR-4 Compliance Check / PSR-4 Compliance Check |
バイパスと「管理者」に関する設定
Issue #1827 の 「管理者以外はルールをバイパスできない」 には、例えば次を満たす方針が考えられる(UI 名は products の evolution で変わる可能性あり)。
- Rulesets: Bypass を最小限(必要なら組織の管理者相当のみ)にし、一般
Writeが不要にバイパスできないこと。 - ルールの対象者: 可能なら Enforcement status(または従来の Include administrators 相当)で、管理者に対しても同じ保護を適用する(運用・緊急時方針はチーム合意のうえで)。
動作確認(受け入れの確認用)
- ルールの設定後、テスト用ブランチで意図的に PHPCS 等を失敗させ、PR の Merge がブロックされることを確認する
- 同じ手順のうえ、管理者アカウントで「不要なバイパス」が可能になっていないか(方針どおりか)を確認する
Issue #1827 受け入れ条件との対応
| 受け入れ条件 | 本ドキュメント/担当 |
|---|---|
develop に保護ルール(または Ruleset)が設定されている | 管理者が、本ページの 「推奨: Rulesets または ブランチ保護ルール」 節に従い develop を対象に設定。 |
| 必須ステータス(phpcs, phpunit 等)が指定されている | 上表 6 ジョブを必須化。「必須ステータスチェックに指定する表記(目安)」 一覧と、PR の Checks タブの表記を突き合わせ。 |
| CI 失敗時に PR マージがブロックされる | 「動作確認(受け入れの確認用)」 節を実施。 |
| 管理者以外がルールをバイパスできない | 「バイパスと「管理者」に関する設定」 節の方針を満たす。 |
関連
- ワークフロー定義: リポジトリ直下
.github/workflows/