Skip to content
Apothem
セキュリティ

ブランチ保護

main 上の Apothem ブランチ保護 — レビューゲート、ステータスチェックによるゲーティング、プッシュ制限。

Apothem の main ブランチは、単一の新規リリースコミットが公開された後、GitHub のブランチ保護によって保護されます。この保護は rules/production-ready-prs.md で宣言された変更セットの規律を強制し、今後の作業のために OpenSSF Scorecard の Branch-Protection および Code-Review チェックに供給します。

ルールセット宣言

設定根拠
対象main公開のデフォルトブランチを保護します。
強制状態activeドライランモードではありません。
マージ前にプルリクエストを必須化main への直接プッシュを禁止します。
必須の承認レビュー数1新規の単独メンテナープロジェクトに対する最低限の人手レビューゲート。
新しいコミットで古い承認を破棄承認後の force-push がレビューを再トリガーします。
Code Owners からのレビューを必須化延期2 人目のメンテナーが加わる前にこれを有効化すると、単独メンテナーの PR がデッドロックする可能性があります。
最新のレビュー可能なプッシュの承認を必須化最後にプッシュされたコミットが承認を持つ必要があります。
会話の解決を必須化未解決のレビュースレッドがマージをブロックします。
ステータスチェックの合格を必須化CI ワークフロー + Scorecard + CodeQL + pip-audit。
必須ステータスチェック現行のコアチェック必須リストは最新のグリーンなリリースコミットから更新されます。
ブランチを最新状態に保つことを必須化古いマージによるリグレッションを防ぎます。
署名付きコミットを必須化推奨ローカルのリリースコミットは署名されています。完全な強制は、コントリビューターのオンボーディング文書が SSH/GPG セットアップを記述するまで待ちます。
線形履歴を必須化単一線の公開履歴を理解可能に保ちます。
force-push をブロックmain 上での履歴の書き換えをブロックします。
削除を許可main ブランチは削除できません。

単独メンテナーの制約

GitHub では、リポジトリのファイルが人手によるレビュー履歴を作成することはできません。そのためリポジトリは、現在のメンテナーモデルに対してデッドロックを起こさない最も強力なブランチ保護を適用します。すなわち、1 件の承認レビュー、古いレビューの破棄、最新プッシュの承認、会話の解決、ステータスチェック、線形履歴、そしてブランチ削除や force-push の禁止です。2 人目のメンテナーが加わると、CODEOWNERS レビューと 2 名のレビュアー最低要件がより強力な設定になります。

ステータスチェックの要件

上記で宣言された 4 つのハードゲーティングのステータスチェック:

  • ci — 完全なテストマトリクス + ruff + mypy + bandit + Trivy + 解決済み依存ツリーに対する pip-audit
  • Scorecard — チェックごとのリグレッションなしの OpenSSF Scorecard 実行
  • CodeQLpython + actions 向けの security-extended クエリパック
  • pip-audit — 解決済み依存ツリーに対する週次 + PR ごとの脆弱性スキャン

その他のワークフローはステータスを報告できますが、必須チェックリストに昇格されない限り、その結果はマージをゲーティングしません。

監査のリズム

このファイルはすべてのセキュリティ監査時、およびすべてのリリースエンジニアリングのチェックポイントで見直されます。このファイルと実際のブランチ保護設定との間のドリフトは、高重大度の発見事項です。

参考資料

On this page