@@ -33,6 +33,8 @@ AUTO_MERGE=$INPUT_AUTO_MERGE
33
33
echo " Auto-Merge : $AUTO_MERGE "
34
34
DELETE_HEAD=$INPUT_DELETE_HEAD
35
35
echo " Delete Head : $DELETE_HEAD "
36
+ BRANCH_PROTECTION_ENABLED=$INPUT_BRANCH_PROTECTION_ENABLED
37
+ echo " Branch Protection : $BRANCH_PROTECTION_ENABLED "
36
38
BRANCH_PROTECTION_NAME=$INPUT_BRANCH_PROTECTION_NAME
37
39
echo " Branch Protection Name : $BRANCH_PROTECTION_NAME "
38
40
BRANCH_PROTECTION_REQUIRED_REVIEWERS=$INPUT_BRANCH_PROTECTION_REQUIRED_REVIEWERS
@@ -114,31 +116,41 @@ for repository in "${REPOSITORIES[@]}"; do
114
116
115
117
echo " "
116
118
117
- echo " Setting [${BRANCH_PROTECTION_NAME} ] branch protection rules"
118
-
119
- # the argjson instead of just arg lets us pass the values not as strings
120
- jq -n \
121
- --argjson enforceAdmins $BRANCH_PROTECTION_ENFORCE_ADMINS \
122
- --argjson dismissStaleReviews $BRANCH_PROTECTION_DISMISS \
123
- --argjson codeOwnerReviews $BRANCH_PROTECTION_CODE_OWNERS \
124
- --argjson reviewCount $BRANCH_PROTECTION_REQUIRED_REVIEWERS \
125
- ' {
126
- required_status_checks:null,
127
- enforce_admins:$enforceAdmins,
128
- required_pull_request_reviews:{
129
- dismiss_stale_reviews:$dismissStaleReviews,
130
- require_code_owner_reviews:$codeOwnerReviews,
131
- required_approving_review_count:$reviewCount
132
- },
133
- restrictions:null
134
- }' \
135
- | curl -d @- \
136
- -X PUT \
137
- -H " Accept: application/vnd.github.luke-cage-preview+json" \
138
- -H " Content-Type: application/json" \
139
- -u ${USERNAME} :${GITHUB_TOKEN} \
140
- --silent \
141
- ${GITHUB_API_URL} /repos/${repository} /branches/${BRANCH_PROTECTION_NAME} /protection
119
+ if [ " $BRANCH_PROTECTION_ENABLED " == " true" ]; then
120
+ echo " Setting [${BRANCH_PROTECTION_NAME} ] branch protection rules"
121
+
122
+ # the argjson instead of just arg lets us pass the values not as strings
123
+ jq -n \
124
+ --argjson enforceAdmins $BRANCH_PROTECTION_ENFORCE_ADMINS \
125
+ --argjson dismissStaleReviews $BRANCH_PROTECTION_DISMISS \
126
+ --argjson codeOwnerReviews $BRANCH_PROTECTION_CODE_OWNERS \
127
+ --argjson reviewCount $BRANCH_PROTECTION_REQUIRED_REVIEWERS \
128
+ ' {
129
+ required_status_checks:null,
130
+ enforce_admins:$enforceAdmins,
131
+ required_pull_request_reviews:{
132
+ dismiss_stale_reviews:$dismissStaleReviews,
133
+ require_code_owner_reviews:$codeOwnerReviews,
134
+ required_approving_review_count:$reviewCount
135
+ },
136
+ restrictions:null
137
+ }' \
138
+ | curl -d @- \
139
+ -X PUT \
140
+ -H " Accept: application/vnd.github.luke-cage-preview+json" \
141
+ -H " Content-Type: application/json" \
142
+ -u ${USERNAME} :${GITHUB_TOKEN} \
143
+ --silent \
144
+ ${GITHUB_API_URL} /repos/${repository} /branches/${BRANCH_PROTECTION_NAME} /protection
145
+ else
146
+ curl \
147
+ -X DELETE \
148
+ -H " Accept: application/vnd.github.luke-cage-preview+json" \
149
+ -H " Content-Type: application/json" \
150
+ -u ${USERNAME} :${GITHUB_TOKEN} \
151
+ --silent \
152
+ ${GITHUB_API_URL} /repos/${repository} /branches/${BRANCH_PROTECTION_NAME} /protection
153
+ fi
142
154
143
155
echo " Completed [${repository} ]"
144
156
echo " ::endgroup::"
0 commit comments