Re: "master ブランチに直接 push しようとしたら中断させる仕組み" を導入するスクリプトを作りました #1298
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
やったこと
ユーザが master ブランチに直接 push できないようにする制御処理を、ユーザ自身のローカル環境に導入するためのスクリプトを作りました。
※ #1282 のスクリプトを改善したものです。
meetups/ ディレクトリで
を実行すると、ローカルの Git リポジトリに pre-push フックが設定され、master へ直接 push できなくなります。
仕様
Pushing commits directly to master branch is not allowed
git
コマンドがインストールされていなかったりパスが通っていない場合、スクリプトの実行で以下のエラーとなりますERROR: Failed to run git command. Check if git is installed and the excutable path is correctly set in PATH.
meetups/
ディレクトリ以外の場合も期待通りにスクリプトが動作し、正しく pre-push が更新されますy
oryes
(大文字小文字区別なし) と入力した場合のみ、pre-push ファイルが上書きされますtext WARN: pre-push file already exists (path/to/existing/pre-push). Are you sure you want to overwrite it? (y/n)
管理者向け
と引数に
admin
をつけてスクリプトを実行すると、管理者向けに pre-push フックが構成され、以下の機能が有効になります。[ALLOW_MASTER]
という文字列からはじまるコミットメッセージのコミットだけを含む場合のみ、中断させずに push ができる必要環境
管理者向け
管理者向けの機能を利用する場合は、Git 2.4 以上が必要になります (
--invert-grep
オプションを使うため) 。動作確認
以下の環境で動作確認を行いました。
その他
bundle install
してからupdate_pre_push_test.rb
を実行してくださいpre-push.erb
テンプレートから構成されます。変更したい場合はテンプレートに修正を加えてください