tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Salesforce開発リポジトリのGitHubブランチ保護設定

Salesforce開発リポジトリのGitHubブランチ保護設定についてです。

ブランチの保護

Settings → Code and automation → Branches → Branch protection rulesという操作で設定ページにアクセスできます。


新規作成の方法

Add Ruleボタンでブランチのルールを作成できます。


設定できる情報はこちら。

mainブランチの設定について

Protect matching branches

以下の設定を有効にしておくと良さそうです。

  • Require a pull request before merging(マージする前にPull Requestを必須にする)
  • Require status checks to pass before merging(マージ前にステータスチェックの成功を必須にする)
  • Require branches to be up to date before merging(マージ前にブランチを最新の状態にする)
  • Require conversation resolution before merging(マージ前にレビューコメントの解決を必須にする)
  • Do not allow bypassing the above settings(管理者を含めて設定の回避を許可しない)

ステータスチェックを必須にする場合は、事前にGitHub ActionsなどのCI設定が必要です。そのため、最初はステータスチェック関連の2項目を除いた3項目を有効にするのが良さそうです。

ルールを追加することで以下のような制御が追加されます。

  • 誤ってmainへ直接pushしてもGitHub側で拒否され、Pull Request経由の変更に限定できます。
  • 未解決のレビューコメントがあるPull Requestはマージできません。レビューワーの指定有無ではなく、レビューコメントが解決済みかどうかで判定されます。
  • 管理者を含め、ブランチ保護設定の回避を禁止できます。
Rules applied to everyone including administrators

このブロックにあるAllow force pushesとAllow deletionsは、通常はチェック不要です。


ブランチルールはこのように設定します。今回有効にしていない項目についても、リポジトリの運用方針に応じて追加します。