35 lines
779 B
Bash
Executable File
35 lines
779 B
Bash
Executable File
#!/usr/bin/env sh
|
|
set -eu
|
|
|
|
if [ "${#}" -ne 4 ]; then
|
|
echo "Usage: $0 <base-url> <owner> <repo> <token>"
|
|
exit 1
|
|
fi
|
|
|
|
base_url="$1"
|
|
owner="$2"
|
|
repo="$3"
|
|
token="$4"
|
|
|
|
protect_branch() {
|
|
branch="$1"
|
|
|
|
curl -sS -X POST \
|
|
"${base_url}/api/v1/repos/${owner}/${repo}/branch_protections" \
|
|
-H "Authorization: token ${token}" \
|
|
-H "Content-Type: application/json" \
|
|
-d "{
|
|
\"branch_name\": \"${branch}\",
|
|
\"enable_push\": false,
|
|
\"enable_push_whitelist\": false,
|
|
\"enable_merge_whitelist\": false,
|
|
\"enable_status_check\": true,
|
|
\"status_check_contexts\": [\"Governance Checks\", \"Lint Typecheck Unit E2E\"]
|
|
}" >/dev/null
|
|
}
|
|
|
|
protect_branch "main"
|
|
protect_branch "staging"
|
|
|
|
echo "Branch protection applied for main and staging."
|