LoginSignup
1
0

More than 3 years have passed since last update.

GitHubのレポジトリーのmasterにpushができないようにする

Posted at

GitHubのレポジトリーのmasterにpushができないようにする

目的

maseterにpushするとCI/CDが走ってしまい勝手にデプロイされてしまう。気をつけていても間違ってmasterにpushしてしまうので、システム的にmasterにはpushできないようにする。(自分がadministratorでもできないようにする)

調べた結果、以下の方法1だけすれば良い気がします。

方法1;Branch protection rule

GitHubレポのsettings -> Branches で

  • Branch name pattern に master を設定して、
  • Require pull request reviews before merging にチェックを入れて、
  • Include administrators にチェックを入れる。(これにチェックを入れないと個人レポジトリーのオーナーではpushができてしまう。Organizationのレポジトリーでは未調査)

これだけでmasterへのpushはエラーとなります。

方法2:.git/hooks/pre-push

方法1はGitHubサーバー上で行う方法でした。こちらはクライアント側で行う方法です。

.git/hooks/pre-pushにpush前に実行されるスクリプトを置いて、pushしたときにmasterに対してのpushであれば中止する、ということが可能です。

ただGitHub上で実行されるわけではなくクライアントマシン上で実行されるものなので、どうやってスクリプトを配り、実行を強制させるのかは別で考えないといけません。

スクリプト自体は下の参考のリンクを参照ください。(僕は動作未確認です)

参考

Stack Overflowの質問
https://stackoverflow.com/questions/46146491/prevent-pushing-to-master-on-github

pre-pushのスクリプト
https://gist.github.com/vlucas/8009a5edadf8d0ff7430

1
0
0

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