2018-09-27 17:15:10 +02:00
|
|
|
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
set -o pipefail
|
|
|
|
|
2019-09-09 17:15:10 +02:00
|
|
|
if [[ -n "$TOKEN" ]]; then
|
2018-09-27 17:15:10 +02:00
|
|
|
GITHUB_TOKEN=$TOKEN
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [[ -z "$GITHUB_TOKEN" ]]; then
|
|
|
|
echo "Set the GITHUB_TOKEN env variable."
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [[ -z "$GITHUB_REPOSITORY" ]]; then
|
|
|
|
echo "Set the GITHUB_REPOSITORY env variable."
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
URI=https://api.github.com
|
|
|
|
API_VERSION=v3
|
|
|
|
API_HEADER="Accept: application/vnd.github.${API_VERSION}+json"
|
|
|
|
AUTH_HEADER="Authorization: token ${GITHUB_TOKEN}"
|
|
|
|
|
|
|
|
main(){
|
2018-09-28 22:38:42 +02:00
|
|
|
action=$(jq --raw-output .action "$GITHUB_EVENT_PATH")
|
|
|
|
merged=$(jq --raw-output .pull_request.merged "$GITHUB_EVENT_PATH")
|
2018-09-27 17:15:10 +02:00
|
|
|
|
|
|
|
echo "action: $action merged: $merged"
|
|
|
|
|
|
|
|
if [[ "$action" == "closed" ]] && [[ "$merged" == "true" ]]; then
|
|
|
|
# delete the branch.
|
2018-09-28 22:38:42 +02:00
|
|
|
ref=$(jq --raw-output .pull_request.head.ref "$GITHUB_EVENT_PATH")
|
|
|
|
owner=$(jq --raw-output .pull_request.head.repo.owner.login "$GITHUB_EVENT_PATH")
|
|
|
|
repo=$(jq --raw-output .pull_request.head.repo.name "$GITHUB_EVENT_PATH")
|
2018-09-27 17:15:10 +02:00
|
|
|
|
|
|
|
if [[ "$ref" == "master" ]]; then
|
|
|
|
# Never delete the master branch.
|
|
|
|
echo "Will not delete master branch for ${owner}/${repo}, exiting."
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "Deleting branch ref $ref for owner ${owner}/${repo}..."
|
|
|
|
curl -XDELETE -sSL \
|
|
|
|
-H "${AUTH_HEADER}" \
|
|
|
|
-H "${API_HEADER}" \
|
2018-09-27 17:53:52 +02:00
|
|
|
"${URI}/repos/${owner}/${repo}/git/refs/heads/${ref}"
|
2018-09-27 17:15:10 +02:00
|
|
|
|
|
|
|
echo "Branch delete success!"
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
main "$@"
|