こんにちは。エクセルソフトの田淵です。
社内で使っている BitBucket のリポジトリで、あるブランチを変更不可/保護のような状態にしたい。という要望がありました。
調べてみると、Git には hook という仕組みがあり、各種処理の前後にスクリプトを挟み込めるようでした。
ローカルの GitHub Enterprise、BitBucket Server、Gitlab ではこの仕組みを使うようです。
- GitHub Enterprise Server アプライアンスで pre-receive フックを管理する - GitHub ヘルプ
- リポジトリ フックを使用する - アトラシアン製品ドキュメント
- Server hooks | GitLab
クラウドの Github や BitBucket ではどうするのでしょうか?
GitHub では 保護されたブランチを設定する - GitHub ヘルプ という仕組みがあり、
BitBucket では ブランチ権限 - アトラシアン製品ドキュメント という仕組みがありました。
Bitbucket でブランチ権限を読み込みのみにしてプッシュしたところ、以下のメッセージが出て無事書き込めなくなっていました。
pre-recieve hook
とあるので、hook の仕組みを使っていますね。
以上です。