@@ -8,11 +8,66 @@ set -euo pipefail
88EVENT_TYPE=" ${1:- pr_opened} "
99TICKETS_JSON=" ${2:- []} "
1010SLACK_WEBHOOK_URL=" ${SLACK_RELEASE_CHANGELOG_WEBHOOK} "
11- LINEAR_API_KEY=" ${LINEAR_API_KEY} "
11+ LINEAR_API_KEY=" ${LINEAR_API_KEY:- } "
1212REPOSITORY_NAME=" ${REPOSITORY_NAME:- unknown} "
1313ENVIRONMENT=" ${ENVIRONMENT:- unknown} "
1414PR_URL=" ${PR_URL:- } "
1515
16+ # For pr_merged, send simple notification without tickets
17+ if [ " $EVENT_TYPE " = " pr_merged" ]; then
18+ SLACK_PAYLOAD=$( jq -n \
19+ --arg app " $REPOSITORY_NAME " \
20+ --arg env " $ENVIRONMENT " \
21+ --arg pr_url " $PR_URL " \
22+ ' {
23+ blocks: [
24+ {
25+ type: "header",
26+ text: {
27+ type: "plain_text",
28+ text: ":rocket: Release Deployed",
29+ emoji: true
30+ }
31+ },
32+ {
33+ type: "section",
34+ fields: [
35+ {
36+ type: "mrkdwn",
37+ text: ("*Application:*\n`" + $app + "`")
38+ },
39+ {
40+ type: "mrkdwn",
41+ text: ("*Environment:*\n`" + $env + "`")
42+ }
43+ ]
44+ }
45+ ] + (if $pr_url != "" then [
46+ {
47+ type: "section",
48+ text: {
49+ type: "mrkdwn",
50+ text: ("<" + $pr_url + "|View Pull Request>")
51+ }
52+ }
53+ ] else [] end)
54+ }' )
55+
56+ RESPONSE=$( curl -s -X POST \
57+ -H " Content-Type: application/json" \
58+ -d " $SLACK_PAYLOAD " \
59+ " $SLACK_WEBHOOK_URL " )
60+
61+ if [ " $RESPONSE " = " ok" ]; then
62+ echo " Slack notification sent successfully!"
63+ else
64+ echo " Failed to send Slack notification. Response: $RESPONSE "
65+ exit 1
66+ fi
67+ exit 0
68+ fi
69+
70+ # For pr_opened, include ticket details
1671# Exit early if no tickets
1772if [ " $TICKETS_JSON " = " []" ] || [ -z " $TICKETS_JSON " ]; then
1873 echo " No tickets found. Skipping Slack notification."
60115 fi
61116done
62117
63- # Build Slack message based on event type
64- if [ " $EVENT_TYPE " = " pr_opened" ]; then
65- EMOJI=" :eyes:"
66- TITLE_TEXT=" New PR Ready for Review"
67- MESSAGE_TEXT=" A pull request has been opened with *${TICKET_COUNT} Linear tickets*:"
68- elif [ " $EVENT_TYPE " = " pr_merged" ]; then
69- EMOJI=" :rocket:"
70- TITLE_TEXT=" Tickets Released"
71- MESSAGE_TEXT=" *${TICKET_COUNT} tickets* have been released:"
72- else
73- EMOJI=" :information_source:"
74- TITLE_TEXT=" Linear Tickets Update"
75- MESSAGE_TEXT=" *${TICKET_COUNT} tickets* included:"
76- fi
118+ EMOJI=" :eyes:"
119+ TITLE_TEXT=" New PR Ready for Review"
120+ MESSAGE_TEXT=" A pull request has been opened with *${TICKET_COUNT} Linear tickets*:"
77121
78122# Calculate number of messages needed
79123TOTAL_MESSAGES=$(( (TICKET_COUNT + MAX_TICKETS_PER_MESSAGE - 1 ) / MAX_TICKETS_PER_MESSAGE ))
0 commit comments