2018-09-27 17:15:10 +02:00
|
|
|
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
set -o pipefail
|
|
|
|
|
|
|
|
if [[ ! -z "$TOKEN" ]]; then
|
|
|
|
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(){
|
|
|
|
action=$(cat "$GITHUB_EVENT_PATH" | jq --raw-output .action)
|
|
|
|
merged=$(cat "$GITHUB_EVENT_PATH" | jq --raw-output .pull_request.merged)
|
|
|
|
|
|
|
|
echo "action: $action merged: $merged"
|
|
|
|
|
|
|
|
if [[ "$action" == "closed" ]] && [[ "$merged" == "true" ]]; then
|
|
|
|
# delete the branch.
|
|
|
|
ref=$(cat "$GITHUB_EVENT_PATH" | jq --raw-output .pull_request.head.ref)
|
|
|
|
owner=$(cat "$GITHUB_EVENT_PATH" | jq --raw-output .pull_request.head.repo.owner.login)
|
|
|
|
repo=$(cat "$GITHUB_EVENT_PATH" | jq --raw-output .pull_request.head.repo.name)
|
|
|
|
|
|
|
|
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 "$@"
|