Loading project-automation/badge.yml +16 −6 Original line number Diff line number Diff line Loading @@ -31,23 +31,33 @@ - mkdir -p ci_badges - anybadge -l "${NAME}" -v "${MESSAGE}" -c "${COLOR}" -f "ci_badges/${NAME}.svg" - echo "[*] Creating/updating badge..." - | if [ -z "${GL_TOKEN}" ]; then echo "[!] GL_TOKEN not set. You can check the resulting badge in the artifacts. It will not be set." echo "[!] GL_TOKEN not set. You can check the badge in the artifacts. It will not be set." else echo "[*] Creating/updating badge..." BADGE_ID=$(curl -SsLf -H "PRIVATE-TOKEN: ${GL_TOKEN}" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/badges" | jq --arg NAME "${NAME}" '.[] | select(.name==$NAME) | .id') || true if [ -z "${BADGE_ID}" ]; then echo "[-] Badge doesn't exist yet. We'll create a new one..." curl -SsLf -X POST -H "PRIVATE-TOKEN: ${GL_TOKEN}" -d "image_url=${IMAGE_URL}&link_url=${URL:-$CI_PROJECT_URL}&name=${NAME}" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/badges" >/dev/null echo "[+] Badge created successfully." STATUS_CODE=$(curl -SsL -w "%{http_code}" -X POST -H "PRIVATE-TOKEN: ${GL_TOKEN}" -d "image_url=${IMAGE_URL}&link_url=${URL:-$CI_PROJECT_URL}&name=${NAME}" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/badges" -o /dev/null) else echo "[*] Updating badge ID ${BADGE_ID}..." curl -SsLf -X PUT -H "PRIVATE-TOKEN: ${GL_TOKEN}" -d "image_url=${IMAGE_URL}&link_url=${URL:-$CI_PROJECT_URL}" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/badges/${BADGE_ID}" >/dev/null echo "[+] Badge updated successfully." STATUS_CODE=$(curl -SsL -w "%{http_code}" -X PUT -H "PRIVATE-TOKEN: ${GL_TOKEN}" -d "image_url=${IMAGE_URL}&link_url=${URL:-$CI_PROJECT_URL}" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/badges/${BADGE_ID}" -o /dev/null) fi if [ "${STATUS_CODE:0:1}" = "2" ]; then echo "[+] Badge set successfully." elif "${STATUS_CODE}" = "403" ]; then echo "[!] Access Forbidden. Does GL_TOKEN have access to badge creation? A Personal Access Token requires at least a Maintainer user." exit 1 else echo "[!] Something went wrong. We received the status code ${STATUS_CODE}." exit 1 fi fi artifacts: paths: - ci_badges/*.svg when: always needs: [] allow_failure: true Loading
project-automation/badge.yml +16 −6 Original line number Diff line number Diff line Loading @@ -31,23 +31,33 @@ - mkdir -p ci_badges - anybadge -l "${NAME}" -v "${MESSAGE}" -c "${COLOR}" -f "ci_badges/${NAME}.svg" - echo "[*] Creating/updating badge..." - | if [ -z "${GL_TOKEN}" ]; then echo "[!] GL_TOKEN not set. You can check the resulting badge in the artifacts. It will not be set." echo "[!] GL_TOKEN not set. You can check the badge in the artifacts. It will not be set." else echo "[*] Creating/updating badge..." BADGE_ID=$(curl -SsLf -H "PRIVATE-TOKEN: ${GL_TOKEN}" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/badges" | jq --arg NAME "${NAME}" '.[] | select(.name==$NAME) | .id') || true if [ -z "${BADGE_ID}" ]; then echo "[-] Badge doesn't exist yet. We'll create a new one..." curl -SsLf -X POST -H "PRIVATE-TOKEN: ${GL_TOKEN}" -d "image_url=${IMAGE_URL}&link_url=${URL:-$CI_PROJECT_URL}&name=${NAME}" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/badges" >/dev/null echo "[+] Badge created successfully." STATUS_CODE=$(curl -SsL -w "%{http_code}" -X POST -H "PRIVATE-TOKEN: ${GL_TOKEN}" -d "image_url=${IMAGE_URL}&link_url=${URL:-$CI_PROJECT_URL}&name=${NAME}" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/badges" -o /dev/null) else echo "[*] Updating badge ID ${BADGE_ID}..." curl -SsLf -X PUT -H "PRIVATE-TOKEN: ${GL_TOKEN}" -d "image_url=${IMAGE_URL}&link_url=${URL:-$CI_PROJECT_URL}" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/badges/${BADGE_ID}" >/dev/null echo "[+] Badge updated successfully." STATUS_CODE=$(curl -SsL -w "%{http_code}" -X PUT -H "PRIVATE-TOKEN: ${GL_TOKEN}" -d "image_url=${IMAGE_URL}&link_url=${URL:-$CI_PROJECT_URL}" "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/badges/${BADGE_ID}" -o /dev/null) fi if [ "${STATUS_CODE:0:1}" = "2" ]; then echo "[+] Badge set successfully." elif "${STATUS_CODE}" = "403" ]; then echo "[!] Access Forbidden. Does GL_TOKEN have access to badge creation? A Personal Access Token requires at least a Maintainer user." exit 1 else echo "[!] Something went wrong. We received the status code ${STATUS_CODE}." exit 1 fi fi artifacts: paths: - ci_badges/*.svg when: always needs: [] allow_failure: true