Merge branch 'automatic-dependency-updates' into 'main'
ci: Add automatic dependency update See merge request ChristianPauly/fluffychat-flutter!252onboarding
commit
7eb77da138
@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# source: https://about.gitlab.com/blog/2017/09/05/how-to-automatically-create-a-new-mr-on-gitlab-with-gitlab-ci/
|
||||
|
||||
# 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\": \"${UPDATE_BRANCH}\",
|
||||
\"target_branch\": \"${TARGET_BRANCH}\",
|
||||
\"remove_source_branch\": true,
|
||||
\"title\": \"chore: automated dependency update\"
|
||||
}";
|
||||
|
||||
# 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\":\"${UPDATE_BRANCH}\"" | 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 dependency update MR."
|
||||
exit;
|
||||
fi
|
||||
|
||||
echo "No new merge request opened.";
|
Loading…
Reference in New Issue