🐙

「mainブランチにpushしちゃいました・・・」

2024/02/15に公開

何が起きたか

あるメンバーがGitHubのmainブランチに変更をpushしてしまったようです。
最初にこの話を聞いたとき、mainブランチは保護されているはずだから、何かの勘違いではないかと思いました。
しかし、実際に確認してみると、GitHubのmainブランチに確かに変更が加えられていました。どうしてこんなことが起きたのか・・・

原因

この問題は、リポジトリに対して Admin ロールが全メンバーに付与されており、さらにBranch protection rulesで Do not allow bypassing the above settings にチェックが入っていなかったために発生しました。
保護されたブランチには誰もpushできないというのは私の思い込みでした😇
実際には、 Admin ロールには保護されたブランチへのpush権限があることが明記されていました・・・
Permissions for each role
Permissions for each role
https://docs.github.com/en/organizations/managing-user-access-to-your-organizations-repositories/managing-repository-roles/repository-roles-for-an-organization#permissions-for-each-role

対応

  • Do not allow bypassing the above settingsにチェックを入れる
    Settings > Branches > ブランチ名 Editから設定できます。
    これにより、誰も保護されたブランチにpushできなくなります。

Do not allow bypassing the above settings
Settings > Branches > ブランチ名 Edit

  • リポジトリロールを見直す
    Settings > Collaborators and teamsからチームやメンバーのリポジトリロールを変更できます。
    不要なAdminロールは削除しておきましょう。
    Manage access
    Settings > Collaborators and teams

まとめ

非常に小さな事故で済み、設定を見直す良い機会を与えてくれたメンバーには感謝します🙏
皆さんもこの機会にリポジトリロールや保護されたブランチの設定を見直すことをおすすめします!

参考文献

https://zenn.dev/videotouch/articles/da09ac9779c166
https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches#do-not-allow-bypassing-the-above-settings

Discussion