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.
Installation
Abschnitt betitelt „Installation“Binärdatei
Abschnitt betitelt „Binärdatei“semrel plugin install @semrel/hook-discordsemrel 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:
docker pull ghcr.io/semrels/hook-discord:latestÜberprüfe die Image-Signatur mit cosign:
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.comKonfiguration
Abschnitt betitelt „Konfiguration“version: 1plugins: - 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: 2sUmgebungsvariablen
Abschnitt betitelt „Umgebungsvariablen“| Name | Erforderlich | Standard | Beschreibung |
|---|---|---|---|
SEMREL_PLUGIN_DISCORD_WEBHOOK_URL | ja (außer Dry-Run) | — | Discord-Webhook-URL. |
SEMREL_PLUGIN_REPOSITORY | nein | — | Repository-Name oder URL für die Embed-Felder. |
SEMREL_PLUGIN_RELEASE_URL | nein | abgeleitet | Explizite Release-URL für den Titel-Link im Embed. |
SEMREL_PLUGIN_FIRST_TIME_CONTRIBUTORS | nein | false | Zeigt ein Feld New Contributors an, sobald Contributor-Metadaten vorliegen (Alias: SEMREL_PLUGIN_NEW_CONTRIBUTORS). |
SEMREL_PLUGIN_RELEASE_MVP | nein | false | Hebt den aktivsten Contributor als 🏆 Release MVP hervor (Alias: SEMREL_PLUGIN_MVP). |
SEMREL_PLUGIN_MAX_RETRIES | nein | 3 | Anzahl der Wiederholungsversuche bei Netzwerkfehlern und HTTP 5xx (429 beachtet Retry-After). |
SEMREL_PLUGIN_RETRY_DELAY | nein | 2s | Wartezeit zwischen Wiederholungsversuchen. |
SEMREL_PLUGIN_CONTRIBUTORS_JSON | nein | — | Legacy-JSON für Contributoren (SEMREL_CONTRIBUTORS aus semrel Core wird bevorzugt). |
Release-Kontextvariablen
Abschnitt betitelt „Release-Kontextvariablen“SEMREL_VERSIONSEMREL_TAG_NAMESEMREL_NEXT_VERSIONSEMREL_CHANGELOGSEMREL_CONTRIBUTORSSEMREL_REPOSITORY_URLSEMREL_DRY_RUN
Verhalten
Abschnitt betitelt „Verhalten“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.