Zum Inhalt springen

Plugin: hook-discord

Veröffentlicht eine formatierte Release-Nachricht (Embed) über einen Discord-Webhook. Unterstützt automatische Wiederholungsversuche bei temporären Netzwerkfehlern sowie Discord-429-Rate-Limits und bietet optionale New Contributors- und 🏆 Release MVP-Auszeichnungen über SEMREL_CONTRIBUTORS.

Terminal-Fenster
semrel plugin install @semrel/hook-discord

semrel plugin install lädt die Binärdatei nach .semrel/plugins/ herunter und aktualisiert .semrel.lock. Committe .semrel.lock, um die Version für dein Team festzuschreiben.

Vorgefertigte, signierte Multi-Plattform-Images (linux/amd64, linux/arm64) werden bei jedem Release veröffentlicht:

Terminal-Fenster
docker pull ghcr.io/semrels/hook-discord:latest

Überprüfe die Image-Signatur mit cosign:

Terminal-Fenster
cosign verify ghcr.io/semrels/hook-discord:latest \
--certificate-identity-regexp 'https://github.com/SemRels/hook-discord/.github/workflows/release.yml.*' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com
version: 1
plugins:
- uses: @semrel/hook-discord
phase: release
args:
discord_webhook_url: '${env.DISCORD_WEBHOOK_URL}'
repository: SemRels/semrel
first_time_contributors: "true"
release_mvp: "true"
max_retries: "3"
retry_delay: 2s
NameErforderlichStandardBeschreibung
SEMREL_PLUGIN_DISCORD_WEBHOOK_URLja (außer Dry-Run)—Discord-Webhook-URL.
SEMREL_PLUGIN_REPOSITORYnein—Repository-Name oder URL für die Embed-Felder.
SEMREL_PLUGIN_RELEASE_URLneinabgeleitetExplizite Release-URL für den Titel-Link im Embed.
SEMREL_PLUGIN_FIRST_TIME_CONTRIBUTORSneinfalseZeigt ein Feld New Contributors an, sobald Contributor-Metadaten vorliegen (Alias: SEMREL_PLUGIN_NEW_CONTRIBUTORS).
SEMREL_PLUGIN_RELEASE_MVPneinfalseHebt den aktivsten Contributor als 🏆 Release MVP hervor (Alias: SEMREL_PLUGIN_MVP).
SEMREL_PLUGIN_MAX_RETRIESnein3Anzahl der Wiederholungsversuche bei Netzwerkfehlern und HTTP 5xx (429 beachtet Retry-After).
SEMREL_PLUGIN_RETRY_DELAYnein2sWartezeit zwischen Wiederholungsversuchen.
SEMREL_PLUGIN_CONTRIBUTORS_JSONnein—Legacy-JSON für Contributoren (SEMREL_CONTRIBUTORS aus semrel Core wird bevorzugt).
  • SEMREL_VERSION
  • SEMREL_TAG_NAME
  • SEMREL_NEXT_VERSION
  • SEMREL_CHANGELOG
  • SEMREL_CONTRIBUTORS
  • SEMREL_REPOSITORY_URL
  • SEMREL_DRY_RUN

Bei SEMREL_DRY_RUN=true gibt das Plugin das erzeugte JSON-Payload auf stdout aus, ohne einen Webhook-Aufruf zu senden. Im regulären Betrieb sendet es ein Discord-Embed mit Version, Changelog-Auszug, Repository-Link und optionalen Contributor-Ehrungen.