Created
August 2, 2020 08:06
-
-
Save alanhe421/19a9483222bb309a62776901f0493b57 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# Extract the host where the server is running, and add the URL to the APIs | |
[[ $HOST =~ ^https?://[^/]+ ]] && HOST="${BASH_REMATCH[0]}/api/v4/projects/" | |
# The description of our new MR, we want to remove the branch after the MR has | |
# been closed | |
BODY="{ | |
\"id\": ${CI_PROJECT_ID}, | |
\"source_branch\": \"${CI_COMMIT_REF_NAME}\", | |
\"target_branch\": \"${TARGET_BRANCH}\", | |
\"remove_source_branch\": true, | |
\"title\": \"WIP: ${CI_COMMIT_REF_NAME}到${TARGET_BRANCH}合并", | |
\"assignee_id\":\"${GITLAB_USER_ID}\" | |
}"; | |
# Require a list of all the merge request and take a look if there is already | |
# one with the same source branch | |
LISTMR=`curl --silent "${HOST}${CI_PROJECT_ID}/merge_requests?state=opened" --header "PRIVATE-TOKEN:${PRIVATE_TOKEN}"`; | |
COUNTBRANCHES=`echo ${LISTMR} | grep -o "\"source_branch\":\"${CI_COMMIT_REF_NAME}\"" | wc -l`; | |
# No MR found, let's create a new one | |
if [ ${COUNTBRANCHES} -eq "0" ]; then | |
curl -X POST "${HOST}${CI_PROJECT_ID}/merge_requests" \ | |
--header "PRIVATE-TOKEN:${PRIVATE_TOKEN}" \ | |
--header "Content-Type: application/json" \ | |
--data "${BODY}"; | |
echo "Opened a new merge request: WIP: ${CI_COMMIT_REF_NAME} and assigned to you"; | |
exit; | |
fi | |
echo "No new merge request opened"; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment