くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

保護ブランチではGitHub Actionからでも直pushはできない

ひとりリポジトリでもprotected branchesを使いたいなと思って、
いろいろ調べてみたときの備忘録(*´ω`*)

無料プランだとpublicリポジトリしか使えないので注意。

保護ブランチ(protected branches)とは

指定したブランチに対して、制限をつけれる機能

  • マージにPRレビュー必須
  • ステータスチェックが必須
  • マージをsquashかrebaseに限定
  • pushできるユーザを制限

などなどを設定できる。

PersonalアカウントとOrganizationアカウントで、
少し設定が異なるので要確認。

やりたかったこと

リリースの流れを自動化をしたいなと思い、

  • ベースブランチ(main)にマージされたら
  • npm versionでバージョンを変更し、
  • 新しいバージョンでtagをつけて、
  • commitとtagをpush
  • GitHub Releaseを作成する

という作業をするGitHub Actionsを考えていた。

ひとりリポジトリなので、保護ブランチの設定では、
「Do not allow bypassing the above settings」
をONにして、管理者の自分も直pushできないようにしたかった。。

ためしたこと

まずは何もしない場合の動き

オプションを有効にして、管理者を含めてpushできなくできた。

すると、GitHub Actions内でnpm versionで バージョンを変更したコミットもpushできず。。

mainブランチへのpushではないため、
tagのpushだけであれば、問題なくできた。

回避策を探す

保護ブランチを使うときはPRをつくろう

勝手にコードを変更されないのが安全なので、やっぱりそういう流れがよい。

  • 手動作業
    • バージョンを変更しcommit&push
    • PRを作成
    • PRをレビューしてマージ
  • 自動化
    • ベースブランチ(main)にマージされたら、
    • package.jsonのバージョンでタグを打ち、
    • そのタグでGitHub Releaseを作成する

というかたちがよいっぽい気がする。


以上!! 個人開発でもGitHubを使いこなして、楽になりたい(*´ω`*)

参考にしたサイト様