35 lines
1.0 KiB
Bash
Executable File
35 lines
1.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -eu
|
|
HOST="${CI_API_V4_URL}/projects/"
|
|
TARGET_BRANCH='main'
|
|
TOKEN=$(echo ${API_TOKEN_FOR_MR} | base64 -d)
|
|
|
|
LABELS=""
|
|
[[ ${CI_COMMIT_REF_NAME} =~ ^deploy\/.*-prd$ ]] && LABELS="Production"
|
|
[[ ${CI_COMMIT_REF_NAME} =~ ^deploy\/.*-stg$ ]] && LABELS="Staging"
|
|
|
|
BODY="{
|
|
\"id\": ${CI_PROJECT_ID},
|
|
\"source_branch\": \"${CI_COMMIT_REF_NAME}\",
|
|
\"target_branch\": \"${TARGET_BRANCH}\",
|
|
\"remove_source_branch\": true,
|
|
\"title\": \"${CI_COMMIT_REF_NAME}\",
|
|
\"labels\":\"${LABELS}\",
|
|
\"squash\": true
|
|
}";
|
|
|
|
|
|
LISTMR=`curl --silent "${HOST}${CI_PROJECT_ID}/merge_requests?state=opened" --header "PRIVATE-TOKEN:${TOKEN}"`;
|
|
COUNTBRANCHES=`echo ${LISTMR} | grep -o "\"source_branch\":\"${CI_COMMIT_REF_NAME}\"" | wc -l`;
|
|
if [ ${COUNTBRANCHES} -eq "0" ]; then
|
|
curl -X POST "${HOST}${CI_PROJECT_ID}/merge_requests" \
|
|
--header "PRIVATE-TOKEN:${TOKEN}" \
|
|
--header "Content-Type: application/json" \
|
|
--data "${BODY}";
|
|
|
|
echo "Opened a new merge request.";
|
|
exit;
|
|
fi
|
|
|
|
echo "No new merge request opened.";
|