• #GitHub
  • #Git
  • #チーム開発
未分類

概要

Rulesetsは、リポジトリのブランチやタグに対する保護ルールを設定するGitHubの機能である。主にチーム開発で使用する。

表示されたメッセージ

GitHubのSettings > Rulesページで以下のメッセージが表示された:

Protect your most important branches Rulesets define whether collaborators can delete or force push and set requirements for any pushes, such as passing status checks or a linear commit history. Your rulesets won't be enforced on this private repository until you move to GitHub Team organization account.

意味: プライベートリポジトリでRulesetsを有効にするにはGitHub Teamプラン(有料)が必要。

利用可能なプラン

プランパブリックリポジトリプライベートリポジトリ
GitHub Free利用可能不可
GitHub Pro利用可能不可
GitHub Team利用可能利用可能
GitHub Enterprise利用可能利用可能

主な機能

ブランチ保護

  • force push禁止 - git push --forceで履歴を壊すのを防ぐ
  • ブランチ削除禁止 - mainブランチの誤削除を防ぐ
  • レビュー必須化 - PRにレビュー承認がないとマージできない
  • ステータスチェック必須 - CIテストが通らないとマージできない
  • コミット署名必須 - GPG署名されたコミットのみ許可

Branch Protection Rulesとの違い

機能Branch Protection RulesRulesets
複数ルールの同時適用不可可能(競合は最も制限的なものが適用)
有効/無効の切り替えルール削除が必要ステータス変更のみでOK
組織全体への適用不可可能
ルールの可視性管理者のみ読み取り権限があれば誰でも確認可能

個人開発では不要

判断基準

シナリオRulesets必要?
個人で1人開発不要
チームで複数人開発あると便利
OSS(複数コントリビューター)推奨

理由

チーム開発の場合:
  Aさん → mainに直接push → Rulesetsでブロック
  Bさん → force push → Rulesetsでブロック

個人開発の場合:
  自分 → 何でもできる → ルール設定しても自分を縛るだけ

結論

  • 個人リポジトリでは設定不要
  • GitHubが新機能をプロモーションしているだけ
  • 将来チームで開発することになったら検討すれば十分

参考リンク