Skip to content

feat: unify release announcements with per-repo webhook routing via repository secret #611

Description

@gandalf-at-lerian

🚀 Feature Request

Summary

Unify release announcement notifications within the release umbrella workflow, routing them to specific Slack/webhook channels per repository, with the webhook URL defined as a repository-level secret.

Motivation

Currently, release notifications are either hardcoded or not centrally managed across repositories. As the number of repos using shared release workflows grows, we need a scalable pattern where each repository controls its own notification target without touching the shared workflow code.

Proposed Solution

  • Add an optional webhook_url input (or read from a repository secret, e.g. RELEASE_WEBHOOK_URL) to the release umbrella workflow
  • When the secret/input is present, the workflow dispatches a POST to that webhook after a successful release
  • The webhook payload should include: release tag, repo name, release URL, actor, and ref
  • Each repository defines its own RELEASE_WEBHOOK_URL secret pointing to the desired channel (Slack, Discord, Teams, etc.)
  • If the secret is absent, the step is skipped gracefully (no breaking change)

Acceptance Criteria

  • Release umbrella workflow reads RELEASE_WEBHOOK_URL from repository secrets
  • Webhook POST is triggered on successful release with a standard payload
  • Step is skipped (non-fatal) when secret is not defined
  • Documentation updated with setup instructions for consuming repositories
  • At least one example payload documented

Example Secret Setup (consuming repo)

Settings → Secrets and variables → Actions → New repository secret
Name: RELEASE_WEBHOOK_URL
Value: https://hooks.slack.com/services/xxx/yyy/zzz

Payload (suggested)

{
  "repo": "LerianStudio/midaz",
  "tag": "v4.0.0",
  "release_url": "https://github.com/LerianStudio/midaz/releases/tag/v4.0.0",
  "actor": "github-actions[bot]",
  "ref": "refs/tags/v4.0.0"
}

Additional Context

This was surfaced from the #lerian-product-release channel where release notifications from multiple repos land without differentiation by target audience or channel.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or improvement request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions