GitHub Action
Branch Guardian
This Github action automates the creation of branch protection rules. It can also handle branch protection rule deletion as well.
In order to use the action, you need to generate a new personal access token from your Account's settings. This is needed because the default Github token provided for Github actions, does not have the required permissions to create/delete branch protection rules.
The idea for creating the Action, was generated due to the way we work. We usually branch-off from develop
or master
, in order to start building our new features and usually the base feature branch is following the pattern: feature/feature-name
. Above this branch we start building the sub-features and in order to ensure the quality of our code and prevent some mistakes, we use branch
protection rules on the main feature
branch.
-
Generate personal access token.
We suggest to use it with GitHub's secrets! To do that go on your project's settings under
Secrets
, add aPERSONAL_ACCESS_TOKEN
with the token you just created! We will use it later on! -
Choose desired action to run (e.g.: create and/or delete)
Create
Key Description PERSONAL-ACCESS-TOKEN
Personal access token to create/delete branch protection rules REQUIRED-NUMBER-OF-REVIEWERS
The number of required reviewers when creating a branch protection rule. Defaults to 1
.REQUIRED-STATUS-CHECKS
The status check that need to be successful before a PR can be merged. REQUIRE-REVIEW-FROM-CODEOWNERS
Set to true if you need to require an approved review in pull requests including files with a designated code owner. Defaults to false
.DISMISS-STALE-PR-APPROVALS-ON-NEW-COMMITS
Set to true if you need new reviewable commits pushed to a matching branch to dismiss pull request review approvals. REQUIRE-LINEAR-HISTORY
Set to true if you need linear history on your Pull Requests. ALLOW-FORCE-PUSHES
Set to true if you want to permit force pushes for all users with push access. ALLOW-DELETIONS
Set to true if you want to allow users with push access to delete matching branches. INCLUDE-ADMINISTRATORS
Set to true if you want to enforce all configured restrictions for administrators, as well. RESTRICTIONS-USERS
List of users allowed to push on the protected branch. Defaults to ''
.RESTRICTIONS-TEAMS
List of teams allowed to push on the protected branch. Defaults to ''
.RESTRICTIONS-APPS
List of apps allowed to push on the protected branch. Defaults to ''
.A sample of rule branch creation can be found here.
Delete
Key Description PERSONAL-ACCESS-TOKEN
Personal access token to create/delete branch protection rules RULES-LIMIT
The number of branch protection rules to check in order to find and delete. Defaults to 100
.A sample of rule branch deletion can be found here.
-
Specify the desired branch pattern that you want to use!
The key for the pattern of the base branch is
BASE-BRANCH-PATTERN
.For example:
BASE-BRANCH-PATTERN: '^feature\/[a-zA-Z0-9]+$'