Automatisation des Notifications GitHub sur Discord

Ce workflow n8n simplifie la gestion des notifications GitHub en les envoyant directement sur Discord. En vérifiant les notifications toutes les minutes, il assure que vous ne manquiez jamais une mise à jour importante. Cela améliore la collaboration et la réactivité de votre équipe en fournissant des informations en temps réel, augmentant ainsi l'efficacité et réduisant le temps passé à vérifier manuellement les notifications. Idéal pour les équipes techniques qui souhaitent centraliser leurs communications et rester informées en permanence.

25,292 vues
11,929 copies
Communication

Documentation Complète

📋 Automatisation des Notifications GitHub sur Discord

💡 Description

Ce workflow n8n simplifie la gestion des notifications GitHub en les envoyant directement sur Discord. En vérifiant les notifications toutes les minutes, il assure que vous ne manquiez jamais une mise à jour importante. Cela améliore la collaboration et la réactivité de votre équipe en fournissant des informations en temps réel, augmentant ainsi l'efficacité et réduisant le temps passé à vérifier manuellement les notifications. Idéal pour les équipes techniques qui souhaitent centraliser leurs communications et rester informées en permanence.

📈 Impact & ROI: Réduction du temps passé à surveiller manuellement les notifications, améliorant ainsi la productivité de l'équipe et permettant une réponse plus rapide aux changements critiques.

🚀 Fonctionnalités Clés

  • ✅ Intégration directe entre GitHub et Discord pour une communication fluide
  • ✅ Recevez des mises à jour en temps réel pour rester informé rapidement
  • ✅ Automatisation de la vérification des notifications toutes les minutes pour un gain de temps considérable
  • ✅ Personnalisation des messages pour une information claire et précise

📊 Architecture Technique

6
Nodes
5
Connexions
2
Services

🔌 Services Intégrés

GitHubDiscord

🔧 Composition du Workflow

NodeTypeDescription
@Get IssuehttpRequestRequête HTTP vers une API externe
CroncronTraitement des données
DiscorddiscordTraitement des données
FunctionfunctionTransformation de données avec code personnalisé
IFifCondition logique pour router le flux
@Get Date 1 min agofunctionTransformation de données avec code personnalisé

📖 Guide d'Implémentation

  1. Import du workflow: Téléchargez le fichier JSON et importez-le dans votre instance n8n
  2. Configuration des credentials: Configurez les accès pour chaque service utilisé
  3. Personnalisation: Adaptez les paramètres selon vos besoins spécifiques
  4. Test: Exécutez le workflow en mode test pour vérifier le bon fonctionnement
  5. Activation: Activez le workflow pour une exécution automatique

🏷️ Tags

GitHubDiscordNotifications

Structure JSON

Voir le code JSON complet
{
    "nodes": [
        {
            "name": "@Get Issue",
            "type": "n8n-nodes-base.httpRequest",
            "maxTries": 3,
            "position": [
                1050,
                590
            ],
            "parameters": {
                "url": "https:\/\/api.github.com\/notifications",
                "options": [],
                "authentication": "basicAuth",
                "queryParametersUi": {
                    "parameter": [
                        {
                            "name": "since",
                            "value": "={{$node[\"@Get Date 1 min ago\"].json[\"since\"]}}"
                        }
                    ]
                },
                "headerParametersUi": {
                    "parameter": [
                        {
                            "name": "User-Agent",
                            "value": "Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/42.0.2311.135 Safari\/537.36 Edge\/12.246"
                        }
                    ]
                }
            },
            "credentials": {
                "httpBasicAuth": "Github Auth"
            },
            "retryOnFail": true,
            "typeVersion": 1
        },
        {
            "name": "Cron",
            "type": "n8n-nodes-base.cron",
            "position": [
                710,
                590
            ],
            "parameters": {
                "triggerTimes": {
                    "item": [
                        {
                            "mode": "everyX",
                            "unit": "minutes",
                            "value": 1
                        }
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "name": "Discord",
            "type": "n8n-nodes-base.discord",
            "position": [
                1610,
                580
            ],
            "parameters": {
                "text": "=Notifications In last minutes: <@userIdForTagging>\n{{$node[\"Function\"].json[\"reportMessage\"]}}"
            },
            "typeVersion": 1
        },
        {
            "name": "Function",
            "type": "n8n-nodes-base.function",
            "position": [
                1230,
                590
            ],
            "parameters": {
                "functionCode": "const newItems = [];\n\nfor (const item of items[0].json) {\n     newItems.push(`- [${item.reason}] => ${item.subject.title} @ ${item.subject.url.replace('api.','').replace('\/repos','')}`);\n  }\n\nreturn [{json: {reportMessage: `${newItems.join('\\r\\n')}`, hasNotifications: items[0].json.length > 0}}];\n"
            },
            "typeVersion": 1
        },
        {
            "name": "IF",
            "type": "n8n-nodes-base.if",
            "position": [
                1400,
                590
            ],
            "parameters": {
                "conditions": {
                    "boolean": [
                        {
                            "value1": "={{$node[\"Function\"].json[\"hasNotifications\"]}}",
                            "value2": true
                        }
                    ]
                }
            },
            "typeVersion": 1
        },
        {
            "name": "@Get Date 1 min ago",
            "type": "n8n-nodes-base.function",
            "position": [
                860,
                590
            ],
            "parameters": {
                "functionCode": "const date = new Date(new Date().setMinutes(new Date().getMinutes() - (1))).toISOString()\nreturn [{json: {since: date}}];"
            },
            "typeVersion": 1
        }
    ],
    "connections": {
        "IF": {
            "main": [
                [
                    {
                        "node": "Discord",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Cron": {
            "main": [
                [
                    {
                        "node": "@Get Date 1 min ago",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "Function": {
            "main": [
                [
                    {
                        "node": "IF",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "@Get Issue": {
            "main": [
                [
                    {
                        "node": "Function",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        },
        "@Get Date 1 min ago": {
            "main": [
                [
                    {
                        "node": "@Get Issue",
                        "type": "main",
                        "index": 0
                    }
                ]
            ]
        }
    }
}
                                

Workflows Similaires

Automatisez vos appels vocaux avec la synthèse vocale

Ce workflow n8n vous permet de transformer des messages texte en appels vocaux automatisés grâce à l'API ClickSend. I...

Automatisez vos Emails avec l'Agent IA Professionnel

Optimisez la gestion de vos emails grâce à ce workflow d'automatisation avancé. Conçu pour les entreprises cherchant...

Surveillez les Mentions Twitter avec RocketChat

Ce workflow automatise la surveillance des mentions Twitter de votre marque, en l'occurrence @n8n_io, et vous informe in...