LoginSignup
1
0

More than 1 year has passed since last update.

ローカルからgithubのmasterもしくはmainブランチへpushさせないようにする設定

Last updated at Posted at 2021-10-26

GitHubに任せられるものは任せよう

今までgithooksのprepushとかでshell組み込んで対応していたが、github上でできるとのことなので時代の進化に合わせるでがんす。

Require a pull request before mergingにチェックをつけると良い。

FireShot Capture 003 - Branch protection rule - github.com.png

早漏なのか以下の記事見てガンガンいこうぜモードで試してみたらmasterにpushできてしまった...

ちょっと下にあるInclude administratorsにチェックつけたらmasterにpushできなくなった。
めでたしでめたし。

スクリーンショット 2021-10-27 0.17.38.png

Include administratorsにチェックをつけた場合、リポジトリ管理者はローカルからmasterへのpushができず、GitHub 上でのマージもapproveをもらわないとできなくなります。

Include administratorsにチェックをつけなかった場合、リポジトリ管理者はローカルからmasterへのpushもできて、gihub上でのマージもapproveをもらっていなくてもできるようになります。

ここまでは普通ですが最後、番外編。

ポジトリ管理者でも何者であってもローカルからmasterへのpushは絶対できず、gihub上でのマージは管理者であればapproveをもらっていなくてもできるようにしたい。

こんな需要は弊社だけかもしれん。
このケースの場合は、やはりgithookを使うしかないと思います。
githubの設定による制限と、githookによる制限の合わせ技的な感じです。

そもそもmasterに直pushしてしまうような人は管理者として設定すべきではないけど、少なくとも緊急でmasterにマージしたいお!
って要望は少なからずあると思う。

こういう場合でも最低限githubでPR作ってPR経由ということなら管理者であればapproveもらってなくてもmergeしてもいいよ。
って運用にしたかったのです。

流石に管理者なら直pushOKにしてたら、、、横着する人続出する火種になりそうな気がしたからですw

↑こういう逃げ道用意してるからダメなんだよ、って読み返してて思いましたw
緊急だろうがなんだろうが、ちゃんとプロセスを経て業務に取り組むような体制を確立する方が大事ですね。
これは無視してくださいw

まぁでもそんなこともできるよってことで知見にしていただければと思います。

尚、タグはmasterに付与してもpushできるようです。
ファイルに差分発生させてpushしようとすると上記スクショのエラーがでたのでタグだけはOKということがわかりました。

ちょっと寄り道

ちなみに今まで、lib_git-hooksなるprivateリポジトリを作ってそこにgithookで使うshellを用意して、composer installをすると、対象の場所にコピーするようなライブラリを作っていた。
あとは必要なリポジトリでcomposerでinstallしてshellを実行すればpre-pushが生成されるような感じです。

もうこんなことしなくて良いが、せっかく作ったってこともあるしリポジトリ削除するのもなぁ...
ということでどんなものだったかは社用個人のgithubリポジトリに譲渡しておくので気になる人は見ていってください。

composerで自作ライブラリ化できればリポジトリ横断して同じようなもの作らなくて良くなるので保守管理のキャパは強くなります。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0