diff --git a/scripts/dep_status_check b/scripts/dep_status_check index def36b13ede6fc47609aa209dab5a942ea50e1cc..05257c45895a0c343217787c599a2f3a648e4db2 100755 --- a/scripts/dep_status_check +++ b/scripts/dep_status_check @@ -14,4 +14,28 @@ if [ "$(cat "${reportFile}")" == "[]" ] ; then fi jq -C . "${reportFile}" + +# +# Borrowed from https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/support/notify_slack.sh +# and adjusted for our needs:) +# +if [[ -z "${CI_DEP_STATUS_NOTIFY_CHANNEL}" ]] || [[ -z "${CI_DEP_STATUS_NOTIFY_SLACK_WEBHOOK}" ]]; then + echo "Variables CI_DEP_STATUS_NOTIFY_CHANNEL and CI_DEP_STATUS_NOTIFY_SLACK_WEBHOOK are not defined" + echo "Will not send slack notification" +else + messageTmpFile="$(mktemp)" + + cat > "${messageTmpFile}" << EOS +\`dep status\` check for <${CI_PROJECT_URL}> failed. Some dependencies should be updated: +\`\`\` +$(jq -M . "${reportFile}") +\`\`\` +See <${CI_JOB_URL}> +EOS + + message=$(sed -e ':a' -e 'N' -e '$!ba' -e "s/\n/\\\n/g" "${messageTmpFile}") + payload='payload={"channel": "'"${CI_DEP_STATUS_NOTIFY_CHANNEL}"'", "username": "GitLab Runner Dep Status Check", "text": "'"${message//\"/\\\"}"'", "icon_emoji": ":mantelpiece_clock:"}' + curl -X POST -s -L --data-urlencode "${payload}" "${CI_DEP_STATUS_NOTIFY_SLACK_WEBHOOK}" +fi + exit 1