LoginSignup
0
1

[ブランチ保護ルール]mainブランチへのPRはdevelopブランチからしか許可しないように設定する方法

Posted at

はじめに

現在起業家兼エンジニアをしており、フリマサービスを開発しています!

今有志を集めて合計10人ほどでサービスを開発しているのですが、よく間違えてmainブランチにPRを作ってしまうということがありました。

運用ルールとしては

main←develop←feature

とするようにしているのですが、main←featureとしてしまうことが何回かありました。
そのため、mainにはdevelopからしかPRを作れない設定をしたいと思いましたが、あんまりいい記事が出てこなかったので、ここに記しておきます。

手順

まずはGitHubでブランチ保護ルールを作成する

(設定してる人はこの手順は飛ばしてOK)

GitHubでmainブランチへのPRをdevelopブランチからのみに制限するためには、リポジトリのブランチ保護ルールを使用して設定します。以下の手順で設定できます。

  1. GitHubリポジトリのページにアクセスします。
  2. 右上のSettingsをクリックします。
  3. 左サイドバーのBranchesをクリックします。
  4. Branch protection rulesセクションで、Add ruleまたはEdit(既にルールが存在する場合)をクリックします。
  5. Branch name patternmainと入力して、mainブランチに対するルールを作成することを示します。
  6. さまざまな保護オプションが表示されますが、特にRestrict who can push to matching branchesのセクションで、Allow Deletionsのチェックボックスをオフにします。
  7. PRの制限のために、Require pull request reviews before mergingを有効にします。これにより、mainブランチへマージする前にPRのレビューが必須になります。
  8. このルールでは特定のブランチからのPRを制限する直接的な設定は提供されていません。そのため、この制限を実施するには、追加のツールやスクリプト、GitHub Actionsなどを使用する必要があります。

GitHub Actions でルールを設定

GitHub Actionsを使用してこの制約を適用する基本的な例:

.github/workflows/branch_restrictions.yml ファイルを作成します。

name: Branch Restrictions

on:
  pull_request:
    branches:
      - main

jobs:
  check_base_branch:
    runs-on: ubuntu-latest
    steps:
      - name: Fail if not from develop branch
        run: |
          if [[ "${{ github.event.pull_request.head.ref }}" != "develop" ]]; then
            echo "Error: PRs to main must come from the develop branch."
            exit 1
          fi

このWorkflowは、mainブランチへのPRが開かれた際にトリガーされ、PRがdevelopブランチからのものでなければエラーを返します。

もっとやるのであれば、hotfixは通すとか、そういう設定はしてもいいかもしれません。

感想

チームで開発を行うようになり、サラリーマンの業務だとPdMやテックリーダーがいかにみんなが働きやすい環境を整備してくれているのかということを日々実感しています笑

チーム開発を行うためには、環境の整備が全てだなと感じます。
もちろん仲間の力を借りながらですが、Lintの設定やprettierの設定

pull_request_templateやissue_templateなど、上げたらキリがないほどルールを敷いて、水準を確保することは重要です。

ここら辺の大変さや、レビューの大変さはやらないと僕はわからなかったので、日々エンジニアとして働く皆様はマネージャーさんの努力なども感じられるようになるとすごくいいかなと思います(実際に僕はすごく感じました笑)

最後に

 現在Swappyという同人誌のフリマサイトを開発中です!
参加したいと思う方は随時募集しているので、お気軽にDMください!

Next13で開発してます。

詳細

Twitter

参考

0
1
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
0
1