Skip to content

Post silent changelog to Discord on release#493

Merged
dsarno merged 1 commit into
mainfrom
dlight/objective-villani-5c451b
May 30, 2026
Merged

Post silent changelog to Discord on release#493
dsarno merged 1 commit into
mainfrom
dlight/objective-villani-5c451b

Conversation

@dsarno

@dsarno dsarno commented May 30, 2026

Copy link
Copy Markdown
Contributor

What

Adds a step to release.yml that posts each new release's auto-generated notes to the project Discord's #changelog channel via a channel-scoped webhook.

Behavior

  • Runs after the GitHub Release is created, posts an embed (release title + notes + link, Godot-purple accent).
  • Silent: flags: 4096 is Discord's SUPPRESS_NOTIFICATIONS (the @silent mechanism) — the message lands in the channel and marks it unread, but triggers no push/desktop notification for anyone, independent of each member's per-channel notification settings.
  • No pings: no @everyone/@here is ever included; allowed_mentions.parse: [] is belt-and-suspenders against any @mention in the generated notes pinging.
  • Fails safe: skips cleanly when DISCORD_CHANGELOG_WEBHOOK is unset, so releases never break.

Why in-line in release.yml

A release: published-triggered workflow would never fire — the release is created by GITHUB_TOKEN, and GitHub's anti-loop safeguard blocks token-created events from triggering downstream workflows (the same reason bump-and-release.yml dispatches release.yml explicitly).

Required to activate

Repo secret DISCORD_CHANGELOG_WEBHOOK set to the channel webhook URL. Until then the step no-ops.

🤖 Generated with Claude Code

Adds a step to release.yml that posts each new release's auto-generated
notes to the project Discord's #changelog channel via a channel-scoped
webhook (secret DISCORD_CHANGELOG_WEBHOOK).

The post is silent: flags:4096 (Discord's SUPPRESS_NOTIFICATIONS / @silent)
means the message lands in the channel and marks it unread but triggers no
push/desktop notification for anyone, independent of per-channel settings.
No @everyone/@here is ever included, and allowed_mentions.parse:[] is
belt-and-suspenders against any @mention in the notes pinging. The step
skips cleanly when the secret is unset, so releases never break.

In-line in release.yml rather than a release:published-triggered workflow
because the GITHUB_TOKEN-created release won't fire downstream workflows
(GitHub anti-loop safeguard) — same reason bump-and-release dispatches
release.yml explicitly.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@dsarno dsarno merged commit 3133863 into main May 30, 2026
15 checks passed
@dsarno dsarno deleted the dlight/objective-villani-5c451b branch May 30, 2026 16:20
@codecov

codecov Bot commented May 30, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant