Frontend

GitHubで指定したブランチを保護する

やり方を聞かれたので自分メモも兼ねて。 settings/branchesへ移動する 「Protected branches」という項目があります。 ここで保護(削除やpushを拒否する)ブランチを指定します。 ブランチ […]

広告ここから
広告ここまで

やり方を聞かれたので自分メモも兼ねて。

settings/branchesへ移動する


「Protected branches」という項目があります。
ここで保護(削除やpushを拒否する)ブランチを指定します。


ブランチ名を選びます。


保護設定を行います。
全部試したわけではないですが、

  • コードレビューを実施されていること
  • CIのテストが通っていること
  • 最新版を取り込んでいること

などを保護ブランチへのマージ条件にできる様子です。

masterにpushしてみる

有効化したので、保護できているか試しましょう。

以下の様に、masterブランチでREADME.mdを変更してみました。

$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   README.md

no changes added to commit (use "git add" and/or "git commit -a")

$ git diff
diff --git a/README.md b/README.md
index 0554833..b06580b 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,2 @@
 ## Lambda Test Example
+test

pushすると、rejectされます。

$ git push origin master
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 282 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
remote: error: GH006: Protected branch update failed for refs/heads/master.
remote: error: At least one approved review is required by reviewers with write access.
To github.com:hideokamoto/lambda-nodejs-test-practice.git
 ! [remote rejected] master -> master (protected branch hook declined)
error: failed to push some refs to 'git@github.com:hideokamoto/lambda-nodejs-test-practice.git'

ブランチを変えてプルリクエストをだす

保護されているのはmasterのみなので、他のブランチにすることでpushできます。

$ git checkout -b test
Switched to a new branch 'test'

$ git push origin test
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 282 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To github.com:hideokamoto/lambda-nodejs-test-practice.git
 * [new branch]      test -> test

ただし「Require pull request reviews before merging」をオンにしているので、そのままではマージできません。

ということで、複数人でコード書いててプルリク駆動で開発したい場合などはぜひ。

ブックマークや限定記事(予定)など

WP Kyotoサポーター募集中

WordPressやフロントエンドアプリのホスティング、Algolia・AWSなどのサービス利用料を支援する「WP Kyotoサポーター」を募集しています。
月額または年額の有料プランを契約すると、ブックマーク機能などのサポーター限定機能がご利用いただけます。

14日間のトライアルも用意しておりますので、「このサイトよく見るな」という方はぜひご検討ください。

広告ここから
広告ここまで

Related Category posts