Skip to content

Commit e322c87

Browse files
authored
Merge pull request #1 from dualentry/dev-simplify-script
chore(scripts): simplify notify on slack
2 parents 5304bf3 + 13918fa commit e322c87

1 file changed

Lines changed: 59 additions & 15 deletions

File tree

.github/scripts/notify-slack.sh

Lines changed: 59 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,66 @@ set -euo pipefail
88
EVENT_TYPE="${1:-pr_opened}"
99
TICKETS_JSON="${2:-[]}"
1010
SLACK_WEBHOOK_URL="${SLACK_RELEASE_CHANGELOG_WEBHOOK}"
11-
LINEAR_API_KEY="${LINEAR_API_KEY}"
11+
LINEAR_API_KEY="${LINEAR_API_KEY:-}"
1212
REPOSITORY_NAME="${REPOSITORY_NAME:-unknown}"
1313
ENVIRONMENT="${ENVIRONMENT:-unknown}"
1414
PR_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
1772
if [ "$TICKETS_JSON" = "[]" ] || [ -z "$TICKETS_JSON" ]; then
1873
echo "No tickets found. Skipping Slack notification."
@@ -60,20 +115,9 @@ EOF
60115
fi
61116
done
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
79123
TOTAL_MESSAGES=$(( (TICKET_COUNT + MAX_TICKETS_PER_MESSAGE - 1) / MAX_TICKETS_PER_MESSAGE ))

0 commit comments

Comments
 (0)