mirror of
https://git.tt-rss.org/fox/tt-rss.git
synced 2025-08-06 22:27:42 +02:00
36 lines
1.4 KiB
Bash
Executable File
36 lines
1.4 KiB
Bash
Executable File
#!/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/"
|
|
|
|
# Look which is the default branch
|
|
TARGET_BRANCH=`curl --silent "${HOST}${CI_PROJECT_ID}" --header "PRIVATE-TOKEN:${PRIVATE_TOKEN}" | python3 -c "import sys, json; print(json.load(sys.stdin)['default_branch'])"`;
|
|
|
|
# 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}\",
|
|
\"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";
|