name: Announce merged PRs in Discord on: pull_request_target: types: [closed] permissions: {} jobs: announce: if: github.repository == 'bilawalsidhu/gods-eye-view' && github.event.pull_request.merged == true runs-on: ubuntu-latest timeout-minutes: 2 steps: # This uses the trusted base workflow and never checks out or runs PR code. - name: Post to Discord contributions shell: bash env: DISCORD_WEBHOOK_URL: ${{ secrets.DISCORD_CONTRIBUTIONS_WEBHOOK_URL }} run: | if [[ ! "$DISCORD_WEBHOOK_URL" =~ ^https://discord\.com/api/webhooks/[0-9]+/[A-Za-z0-9_-]+$ ]]; then echo '::error::Set DISCORD_CONTRIBUTIONS_WEBHOOK_URL to the Discord channel webhook URL.' exit 1 fi payload=$(jq -ce ' .pull_request | { allowed_mentions: {parse: []}, embeds: [{ title: ("Merged #" + (.number | tostring) + ": " + (.title | .[0:115])), url: .html_url, footer: {text: ("By " + .user.login + " ยท into " + (.base.ref | .[0:100]))} }] } ' "$GITHUB_EVENT_PATH") curl --silent --show-error --fail --output /dev/null \ --connect-timeout 10 --max-time 20 --retry 3 --retry-max-time 50 \ --header 'Content-Type: application/json' --data-binary "$payload" \ --url "$DISCORD_WEBHOOK_URL?wait=true"