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 '[email protected]: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」をオンにしているので、そのままではマージできません。

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

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark