Overview
In some cases, you may wish to add additional default branches to your project on CircleCI. This is now possible via the v1.1
API.
This feature expands on the Only Build Pull Request offering by enabling our users to configure additional default branches outside of the default in your VCS.
⚠ This is an override and not an addition. ⚠
You will need to specify all current default branches for your project if you decide to add more.
How to find your current default branches on CircleCI:
We can do this programmatically with JQ:
curl -X GET \
--header "Circle-Token: <token>" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
'https://circleci.com/api/v1.1/project/<vcs-type>/<org-slug>/<project-slug>/settings' | jq '.feature_flags."pr-only-branch-overrides"'
Once you have your current default branches, you can move on to the next step.
Example 1:
In this example, we will be adding the default branches gh-readonly-queue.*
along with staging
with main
as our current default.
curl -X PUT \
--header "Circle-Token: <token>" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data '{"feature_flags":{"pr-only-branch-overrides": "main, gh-readonly-queue.*, staging"}}' \
'https://circleci.com/api/v1.1/project/<vcs-type>/<org-slug>/<project-slug>/settings'
Result: If the response looks like the following:
""%
Any branch that starts with gh-readonly-queue
, such as gh-readonly-queue/feat/release
or gh-readonly-queue-feat-123
, and any branch that starts with staging
will now trigger validation on all commits. Additionally, the default branch, main, will continue to build all commits.
Example 2:
In this example, we will be adding the default branches \\(\\d+\\)-release.*
along with main
as our current default.
curl -X PUT --header "Circle-Token: <token>" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data '{"feature_flags":{"build-prs-only":true, "pr-only-branch-overrides": "main, \(\\d+\)-release.*"}}' \
'https://circleci.com/api/v1.1/project/<vcs-type>/<org-slug>/<project-slug>/settings'
Result: Will build any branch that starts with one or more digits enclosed in parenthesis followed by the string -release
suffixed with zero or more characters. For example:
Branches (123)-release2
, (7)-release-to-prod
, and (334)-release
will all trigger validation on all commits. Additionally, the default branch, main
, will continue to build all commits.
Additional Resources
- CircleCI utilizes the Java Style Regex which is why in some cases you do not need to escape some characters.
- Setting Project API Features Support Article
- The CircleCI Discuss Post for this release
- [Server] How to whitelist branches to override “Only build pull requests” on a project
Comments
Article is closed for comments.