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は、通常はチェック不要です。

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