From 0ddd57c5b0ca4c21f5be808625b9fe6441563eda Mon Sep 17 00:00:00 2001 From: David Date: Mon, 17 Nov 2025 14:42:39 +0100 Subject: [PATCH] docs: add Discord notifications setup guide MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Complete guide for configuring Discord webhooks to receive CI/CD notifications. Includes: - Step-by-step Discord webhook creation - Gitea secret configuration - Notification format examples - Customization options - Troubleshooting section - Security best practices 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- DISCORD_NOTIFICATIONS.md | 147 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 DISCORD_NOTIFICATIONS.md diff --git a/DISCORD_NOTIFICATIONS.md b/DISCORD_NOTIFICATIONS.md new file mode 100644 index 0000000..42f9f6d --- /dev/null +++ b/DISCORD_NOTIFICATIONS.md @@ -0,0 +1,147 @@ +# Discord Notifications pour CI/CD + +Ce document explique comment configurer les notifications Discord pour recevoir des alertes lors des builds CI/CD. + +## Configuration Discord + +### 1. Créer un Webhook Discord + +1. Ouvrez Discord et allez dans le serveur où vous voulez recevoir les notifications +2. Cliquez sur les paramètres du canal (roue dentée à côté du nom du canal) +3. Allez dans **Intégrations** → **Webhooks** +4. Cliquez sur **Nouveau Webhook** +5. Donnez-lui un nom (ex: "Xpeditis CI/CD") +6. Choisissez le canal de destination +7. **Copiez l'URL du Webhook** (elle ressemble à `https://discord.com/api/webhooks/...`) + +### 2. Configurer le Secret dans Gitea + +1. Allez dans votre repository Gitea : `https://gitea.ops.xpeditis.com/David/xpeditis2.0` +2. Cliquez sur **Settings** (Paramètres) +3. Dans le menu latéral, cliquez sur **Secrets** +4. Cliquez sur **Add Secret** (Ajouter un secret) +5. Remplissez : + - **Name** : `DISCORD_WEBHOOK_URL` + - **Value** : Collez l'URL du webhook Discord copiée précédemment +6. Cliquez sur **Add Secret** + +### 3. Tester la Configuration + +Pour tester que tout fonctionne : + +1. Faites un commit et push sur la branche `preprod` +2. La CI/CD va se déclencher automatiquement +3. Vous devriez recevoir une notification Discord : + - ✅ **Embed vert** si le build réussit + - ❌ **Embed rouge** si le build échoue + +## Format des Notifications + +### Notification de Succès (Vert) + +``` +✅ CI/CD Pipeline Success +Deployment completed successfully! + +Repository: David/xpeditis2.0 +Branch: preprod +Commit: [abc1234...] (lien cliquable) +Backend Image: rg.fr-par.scw.cloud/weworkstudio/xpeditis-backend:preprod +Frontend Image: rg.fr-par.scw.cloud/weworkstudio/xpeditis-frontend:preprod +Workflow: [CI/CD Pipeline] (lien vers les logs) +``` + +### Notification d'Échec (Rouge) + +``` +❌ CI/CD Pipeline Failed +Deployment failed! Check the logs for details. + +Repository: David/xpeditis2.0 +Branch: preprod +Commit: [abc1234...] (lien cliquable) +Workflow: [CI/CD Pipeline] (lien vers les logs) +``` + +## Informations Incluses + +Chaque notification contient : + +- **Repository** : Nom du dépôt Git +- **Branch** : Branche où le build a été déclenché +- **Commit** : SHA du commit avec lien vers le commit sur Gitea +- **Backend/Frontend Images** : Noms complets des images Docker (succès uniquement) +- **Workflow** : Lien direct vers les logs de la CI/CD pour débugger + +## Personnalisation + +Pour personnaliser les notifications, éditez le fichier `.github/workflows/ci.yml` : + +### Changer la couleur des embeds + +```yaml +# Succès (vert) +"color": 3066993 + +# Échec (rouge) +"color": 15158332 + +# Autres couleurs disponibles : +# Bleu : 3447003 +# Jaune : 16776960 +# Orange : 15105570 +``` + +### Ajouter des champs + +Ajoutez de nouveaux champs dans le tableau `fields` : + +```yaml +{ + "name": "Nom du champ", + "value": "Valeur du champ", + "inline": true # true = affichage côte à côte +} +``` + +### Ajouter un thumbnail ou une image + +```yaml +"thumbnail": { + "url": "https://example.com/image.png" +}, +"image": { + "url": "https://example.com/large-image.png" +} +``` + +## Dépannage + +### Les notifications ne sont pas envoyées + +1. Vérifiez que le secret `DISCORD_WEBHOOK_URL` est bien configuré dans Gitea +2. Vérifiez que l'URL du webhook est correcte et commence par `https://discord.com/api/webhooks/` +3. Vérifiez les logs de la CI/CD pour voir s'il y a une erreur dans le step "Send Discord notification" + +### L'URL du webhook est invalide + +- L'URL doit être complète : `https://discord.com/api/webhooks/ID/TOKEN` +- Ne partagez JAMAIS cette URL publiquement (elle donne accès à votre canal Discord) + +### Les embeds ne s'affichent pas correctement + +- Vérifiez le format JSON dans le fichier `.github/workflows/ci.yml` +- Testez votre JSON avec un outil comme https://leovoel.github.io/embed-visualizer/ + +## Sécurité + +⚠️ **IMPORTANT** : +- Ne commitez JAMAIS l'URL du webhook directement dans le code +- Utilisez toujours le secret `DISCORD_WEBHOOK_URL` +- Si vous pensez que l'URL a été compromise, régénérez-la dans Discord + +## Documentation Discord + +Pour plus d'informations sur les webhooks Discord : +- [Guide officiel des webhooks Discord](https://discord.com/developers/docs/resources/webhook) +- [Embed object structure](https://discord.com/developers/docs/resources/channel#embed-object)