From 89164ed02a503ad1578b13625a8bf35cae95f81b Mon Sep 17 00:00:00 2001 From: Roman / Nea Date: Wed, 29 Dec 2021 16:14:58 +0100 Subject: github webhook action mashup 400 (#46) --- .github/workflows/send_webhook_update.sh | 86 ++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100755 .github/workflows/send_webhook_update.sh (limited to '.github/workflows/send_webhook_update.sh') diff --git a/.github/workflows/send_webhook_update.sh b/.github/workflows/send_webhook_update.sh new file mode 100755 index 00000000..1fc39adf --- /dev/null +++ b/.github/workflows/send_webhook_update.sh @@ -0,0 +1,86 @@ +#!/bin/bash + +COLOR_SUCCESS=8040199 +COLOR_WORKING=7472302 +COLOR_ERROR=14960972 +case "$STATUS" in + WORKING) + color="$COLOR_WORKING" + status_message="Build started." + ;; + FAILURE) + color="$COLOR_ERROR" + status_message="Build failed." + ;; + SUCCESS) + color="$COLOR_SUCCESS" + status_message="Build succeeded." + to_upload=$(echo build/libs/*-dep.jar) + upload_name=NotEnoughUpdates-beta-dep.jar + ;; +esac + +author_name=$(git log -1 --pretty=format:'%an') +commit_hash=$(git log -1 --pretty=format:'%h') +commit_subject=$(git log -1 --pretty=format:'%s') +commit_body=$(git log -1 --pretty=format:'%b') +commit_date=$(git log -1 --pretty=format:'%ct') + +author_avatar="https://github.com/$author_name.png" + +#language=json +read -r -d '' structure <<-"EOF" +{ + "content": $status, + "username": $username, + "avatar_url": $avatar_url, + "embeds": [ + { + "color": $color, + "url": $url, + "title": $subject, + "description": $body, + "footer": { + "text": $ref + } + } + ], + "allowed_mentions": { + "parse": [] + } +} +EOF +json=$(jq -n \ + --arg body "$commit_body" \ + --arg status "$status_message" \ + --arg subject "$commit_subject" \ + --arg username "$author_name" \ + --arg avatar_url "$author_avatar" \ + --argjson color "$color" \ + --arg url "$GIT_URL" \ + --arg ref "$REF_NAME" \ + "$structure") + +function make_request() { + if [ "$to_upload" != "" ]; then + upload_arg="-F" + fi + curl -X $1 -H "Content-Type: multipart/form-data" -F "payload_json=$json" "$upload_arg" "$upload_name=@$to_upload" "$WEBHOOK_URL$2?wait=true" +} + +if [ "$MESSAGE_ID" != "" ]; then + discord_output=$(make_request PATCH "/messages/$MESSAGE_ID") + RESULT=$? +else + discord_output=$(make_request POST) + RESULT=$? +fi + +if [ $RESULT != 0 ]; then + echo "$discord_output" + exit 1 +fi +echo "Message sent to discord." +echo "$discord_output" | jq . +id_string=$(echo "$discord_output" | jq .id) +echo "::set-output name=MESSAGE_ID=${id_string//\"/}" -- cgit From fc642887639d1918d68f4706e27ea59605a16fcb Mon Sep 17 00:00:00 2001 From: Roman / Nea Date: Wed, 29 Dec 2021 17:26:56 +0100 Subject: Github Actions Webhook Set Author picture (#48) * change author determination method * this should be the right extension --- .github/workflows/build.yml | 1 + .github/workflows/send_webhook_update.sh | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to '.github/workflows/send_webhook_update.sh') diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7a2b7b7f..3b6d0cbd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,6 +22,7 @@ jobs: GIT_URL: ${{ github.server_url }}/${{ github.repository }}/tree/${{ github.sha }} REF_NAME: ${{ github.ref_name }} WEBHOOK_URL: ${{ secrets.WEBHOOK_URL }} + ACTOR: ${{ github.actor }} runs-on: ubuntu-latest steps: diff --git a/.github/workflows/send_webhook_update.sh b/.github/workflows/send_webhook_update.sh index 1fc39adf..56852159 100755 --- a/.github/workflows/send_webhook_update.sh +++ b/.github/workflows/send_webhook_update.sh @@ -1,4 +1,5 @@ #!/bin/bash +set -x COLOR_SUCCESS=8040199 COLOR_WORKING=7472302 @@ -20,7 +21,7 @@ case "$STATUS" in ;; esac -author_name=$(git log -1 --pretty=format:'%an') +author_name="$ACTOR" commit_hash=$(git log -1 --pretty=format:'%h') commit_subject=$(git log -1 --pretty=format:'%s') commit_body=$(git log -1 --pretty=format:'%b') @@ -68,6 +69,7 @@ function make_request() { curl -X $1 -H "Content-Type: multipart/form-data" -F "payload_json=$json" "$upload_arg" "$upload_name=@$to_upload" "$WEBHOOK_URL$2?wait=true" } +echo "Should replace message with id: $MESSAGE_ID" if [ "$MESSAGE_ID" != "" ]; then discord_output=$(make_request PATCH "/messages/$MESSAGE_ID") RESULT=$? @@ -83,4 +85,4 @@ fi echo "Message sent to discord." echo "$discord_output" | jq . id_string=$(echo "$discord_output" | jq .id) -echo "::set-output name=MESSAGE_ID=${id_string//\"/}" +echo "::set-output name=MESSAGE_ID::${id_string//\"/}" -- cgit