feat: Add Slack notifications when Deploy PRs merge - #100
Draft
olerichter00 wants to merge 2 commits into
Draft
Conversation
Introduce a reusable notify-deploy-slack action and workflow that posts product-friendly deploy summaries to Slack when staging→release PRs merge. Co-authored-by: Cursor <cursoragent@cursor.com>
Batch-summarize included PRs with Haiku when ANTHROPIC_API_KEY is set, fall back to rule-based titles and descriptions on failure, and show copy source counts in dry-run previews. Co-authored-by: Cursor <cursoragent@cursor.com>
Author
|
Closing in favor of #101 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Attempt to implement Claude Tag implementation in Duchamp as GitHub Action.
Description
Adds a reusable
notify-deploy-slackGitHub Action and workflow that posts product-friendly deploy summaries to Slack when a Horizon Deploy PR (staging→release) merges. Messages highlight new features in the main post and group fixes and maintenance items in a thread reply.When
ANTHROPIC_API_KEYis provided, Claude (Haiku) batch-rewrites PR titles and descriptions into non-technical copy. Categorization, product areas, and Notion/Jira/flag links still come from rule-based parsing. On API failure, it falls back to heuristics — deploy notifications never block on AI.Changes
notify-deploy-slackaction: parse deploy PR commits, enrich PR metadata, format Slack mrkdwn, post via bot tokensummarize-with-claude.ts) with rule-based fallbackartsy/volt→#product-amberANTHROPIC_API_KEYto preview Claude copy)3 claude, 1 rules)build:action:notify-deploy-slacknpm scriptExample Slack notification
Dry-run of volt#11796 (
./scripts/run-notify-deploy-slack-local.sh --dry-run 11796):Main message
Thread reply
Remaining setup (after merge)
In duchamp (this PR):
artsy/voltsubscription inconfig/notify-deploy-slack.yml(#product-amber, project nameVolt)mainSlack:
xoxb-…) scoped withchat:write(incoming webhooks cannot post thread replies)#product-amber(or a test channel while validating)Anthropic (optional, for better copy):
ANTHROPIC_API_KEYfromrun-claude-review)ANTHROPIC_API_KEYIn
artsy/volt:SLACK_BOT_TOKENwith the bot tokenANTHROPIC_API_KEY(same key as Claude PR review)templates/notify-deploy-slack.ymlinto.github/workflows/Optional — test before production:
./scripts/run-notify-deploy-slack-local.sh --dry-run <deploy-pr-number>export ANTHROPIC_API_KEY=sk-ant-...before running dry-runslack-channel: "#your-test-channel"as a workflow inputTest plan
yarn test .github/actions/notify-deploy-slack— 45 tests pass./scripts/run-notify-deploy-slack-local.sh --dry-run 11796— preview intmp/, no Slack token requiredANTHROPIC_API_KEY— preview showsCopy source: N claude, …SLACK_BOT_TOKEN(+ optionalANTHROPIC_API_KEY)Assisted-by: Claude:Sonnet-4.6 [claude-code]