Slack Integration for Tracker
Create and manage Tracker events directly from Slack
Tracker Slack est une intégration Slack qui connecte votre plateforme de communication d'équipe avec le systÚme de suivi d'événements Tracker. Elle permet aux équipes de créer, modifier et gérer les événements de déploiement, les incidents, les dérives de configuration et l'utilisation RPA directement depuis Slack en utilisant des commandes slash et des modales interactives.
- đ IntĂ©gration Slack Native - CrĂ©ez des Ă©vĂ©nements sans quitter Slack
- đ Modales Interactives - Formulaires riches pour la crĂ©ation d'Ă©vĂ©nements dĂ©taillĂ©s
- đ Mises Ă jour en Temps RĂ©el - Modifiez et mettez Ă jour les Ă©vĂ©nements avec des boutons interactifs
- đ RĂ©sumĂ©s Quotidiens - RĂ©sumĂ©s automatisĂ©s des Ă©vĂ©nements quotidiens via cron
- đŻ Support Multi-ĂvĂ©nements - GĂ©rez les dĂ©ploiements, incidents, dĂ©rives et utilisation RPA
- đ Workflow Transparent - IntĂ©gration directe avec l'API Tracker
- ⥠Actions Rapides - Mises à jour de statut avec réactions emoji et réponses en fil
- Notifications de Déploiement - Annoncez les déploiements avec des workflows d'approbation
- Signalement d'Incidents - Création rapide d'incidents et suivi de statut
- Alertes de Dérive de Configuration - Signalez et suivez les changements d'infrastructure
- Journalisation d'Utilisation RPA - Documentez les exécutions d'automatisation
- Coordination d'Ăquipe - Notifications des parties prenantes et mises Ă jour de statut
- Support Daily Standup - Résumés automatisés des événements planifiés
/deployment- Créez des événements de déploiement avec des workflows d'approbation/incident- Signalez et suivez les incidents avec des niveaux de priorité/drift- Documentez la détection de dérive de configuration/rpa_usage- Enregistrez les exécutions d'automatisation de processus robotiques
- Formulaires Riches : Création d'événements complÚte avec toutes les métadonnées
- Sélection de Projet : Menu déroulant dynamique depuis le catalogue Tracker
- Support d'Environnement : Environnements PROD, PREP, UAT, DEV
- Gestion des Parties Prenantes : Sélection multi-utilisateurs pour les notifications
- Intégration de Liens : Support pour les tickets et pull requests
- Sélecteurs Date/Heure : Planification précise avec support de fuseau horaire
- Modifier les ĂvĂ©nements : Modifiez les Ă©vĂ©nements existants via des boutons interactifs
- Mises à jour de Statut : Changements de statut rapides avec des menus déroulants
- Workflow d'Approbation : Approuvez/rejetez les déploiements avec des réactions
- Réponses en Fil : Mises à jour automatiques de statut dans les fils de messages
- Réactions Emoji : Indicateurs de statut visuels sur les messages
- Résumés Quotidiens : Rapports programmés des événements du jour
- Groupement par Environnement : ĂvĂ©nements organisĂ©s par environnement et projet
- Liens Directs : AccĂšs rapide aux messages Slack originaux
- Support de Fuseau Horaire : Fuseau horaire configurable pour l'affichage de l'heure
- Planification Cron : Planification flexible avec des expressions cron
- API REST : Communication directe avec le backend Tracker
- Synchronisation d'ĂvĂ©nements : Synchronisation en temps rĂ©el entre Slack et Tracker
- Mappage de Métadonnées : Mappage complet des champs entre plateformes
- Suivi de Statut : Mises Ă jour de statut bidirectionnelles
- Préservation des Liens : Maintien des connexions vers les ressources externes
- Instance Tracker : Vous avez besoin d'une instance Tracker en cours d'exécution
- Application Slack : Créez une application Slack avec les permissions requises
- Variables d'Environnement : Configurez les variables d'environnement requises
-
Créez une Application Slack sur api.slack.com
-
Configurez OAuth & Permissions avec ces scopes :
chat:write commands reactions:write users:read -
Ajoutez les Commandes Slash :
/deployment- URL de requĂȘte :https://votre-domaine.com/slack/command/incident- URL de requĂȘte :https://votre-domaine.com/slack/command/drift- URL de requĂȘte :https://votre-domaine.com/slack/command/rpa_usage- URL de requĂȘte :https://votre-domaine.com/slack/command
-
Activez l'Interactivité :
- URL de requĂȘte :
https://votre-domaine.com/slack/interactive_api_endpoint
- URL de requĂȘte :
-
Obtenez vos tokens :
- Bot User OAuth Token (commence par
xoxb-) - Signing Secret
- Bot User OAuth Token (commence par
# Téléchargez l'image
docker pull bananaops/tracker-slack:latest
# Exécutez avec les variables d'environnement
docker run -d \
-p 8080:8080 \
-e SLACK_BOT_TOKEN="xoxb-votre-bot-token" \
-e SLACK_SIGNING_SECRET="votre-signing-secret" \
-e TRACKER_HOST="http://votre-instance-tracker:8080" \
-e TRACKER_DEPLOYMENT_CHANNEL="deployments" \
-e TRACKER_INCIDENT_CHANNEL="incidents" \
-e TRACKER_DRIFT_CHANNEL="drift-alerts" \
-e TRACKER_SLACK_WORKSPACE="votre-workspace" \
-e TRACKER_TIMEZONE="Europe/Paris" \
-e TRACKER_SLACK_CRON_MESSAGE="0 8 * * *" \
bananaops/tracker-slack:latest# Ajoutez le dépÎt Helm (si disponible)
helm repo add bananaops https://bananaops.github.io/helm-charts
# Installez avec des valeurs personnalisées
helm install tracker-slack bananaops/tracker-slack \
--set secret.slack.bot_token="xoxb-votre-bot-token" \
--set secret.slack.signing_secret="votre-signing-secret" \
--set env.tracker.host="http://tracker.tracker.svc.cluster.local:8080" \
--set ingress.hosts[0].host="tracker-slack.votredomaine.com"# Clonez le dépÎt
git clone https://github.com/BananaOps/tracker-slack.git
cd tracker-slack
# Définissez les variables d'environnement
export SLACK_BOT_TOKEN="xoxb-votre-bot-token"
export SLACK_SIGNING_SECRET="votre-signing-secret"
export TRACKER_HOST="http://localhost:8080"
export TRACKER_DEPLOYMENT_CHANNEL="deployments"
export TRACKER_INCIDENT_CHANNEL="incidents"
export TRACKER_DRIFT_CHANNEL="drift-alerts"
export TRACKER_SLACK_WORKSPACE="votre-workspace"
export TRACKER_TIMEZONE="Europe/Paris"
export TRACKER_SLACK_CRON_MESSAGE="0 8 * * *"
# Exécutez l'application
go run main.go| Variable | Description | Défaut | Requis |
|---|---|---|---|
SLACK_BOT_TOKEN |
Token OAuth Bot User Slack | - | â |
SLACK_SIGNING_SECRET |
Secret de Signature de l'App Slack | - | â |
TRACKER_HOST |
URL de base de l'API Tracker | - | â |
TRACKER_DEPLOYMENT_CHANNEL |
Canal Slack pour les déploiements | deployments |
â |
TRACKER_INCIDENT_CHANNEL |
Canal Slack pour les incidents | incidents |
â |
TRACKER_DRIFT_CHANNEL |
Canal Slack pour les alertes de dérive | drift-alerts |
â |
TRACKER_SLACK_WORKSPACE |
Nom du workspace Slack | - | â |
TRACKER_TIMEZONE |
Fuseau horaire pour l'affichage des dates | UTC |
â |
TRACKER_SLACK_CRON_MESSAGE |
Planification cron pour les résumés quotidiens | 0 8 * * * |
â |
Créez des canaux dédiés pour différents types d'événements :
# Structure de canaux recommandée
#deployments - Annonces de déploiement et approbations
#incidents - Rapports d'incidents et suivi
#drift-alerts - Notifications de dérive de configuration
#general - Résumés quotidiens (optionnel)# Quotidien à 8h
TRACKER_SLACK_CRON_MESSAGE="0 8 * * *"
# Jours de semaine Ă 9h
TRACKER_SLACK_CRON_MESSAGE="0 9 * * 1-5"
# Toutes les 2 heures pendant les heures de bureau
TRACKER_SLACK_CRON_MESSAGE="0 9-17/2 * * 1-5"âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â Workspace Slack â
â /deployment /incident â
â /drift /rpa_usage â
ââââââââââââââââââââââââââŹâââââââââââââââââââââââââââââââââââââ
â Commandes Slash & Interactions
â
ââââââââââŒâââââââââ
â Tracker Slack â
â (Service Go) â
â â
â âââââââââââââââ â
â â Gestionnaireâ â
â â API Slack â â
â âââââââââââââââ â
â âââââââââââââââ â
â â GĂ©nĂ©rateur â â
â â de Modales â â
â âââââââââââââââ â
â âââââââââââââââ â
â â Planificateurâ â
â â Cron â â
â âââââââââââââââ â
ââââââââââŹâââââââââ
â Appels API REST
â
ââââââââââŒâââââââââ
â API Tracker â
â (Service Principal) â
â â
â âââââââââââââââ â
â â API Event â â
â âââââââââââââââ â
â âââââââââââââââ â
â â API Catalog â â
â âââââââââââââââ â
ââââââââââŹâââââââââ
â
ââââââââââŒâââââââââ
â Base de â
â DonnĂ©es â
â (MongoDB) â
âââââââââââââââââââ
- Commandes Slack â L'utilisateur tape
/deploymentdans Slack - API Slack â Envoie un webhook au service Tracker Slack
- GĂ©nĂ©ration de Modale â CrĂ©e un formulaire interactif basĂ© sur le type d'Ă©vĂ©nement
- Saisie Utilisateur â L'utilisateur remplit le formulaire et soumet
- IntĂ©gration API â Tracker Slack appelle l'API Tracker
- CrĂ©ation d'ĂvĂ©nement â ĂvĂ©nement stockĂ© dans la base de donnĂ©es Tracker
- RĂ©ponse Slack â Message formatĂ© postĂ© dans le canal appropriĂ©
- Mises Ă jour Interactives â Les utilisateurs peuvent modifier/mettre Ă jour via des boutons
- RĂ©sumĂ©s Quotidiens â Le job cron rĂ©cupĂšre et poste les Ă©vĂ©nements quotidiens
Dans Slack :
/deployment
Cela ouvre une modale interactive oĂč vous pouvez remplir :
- Résumé : "Déployer user-service v2.1.0 en production"
- Projet : Sélectionner dans le menu déroulant (récupéré depuis le catalogue Tracker)
- Environnement : PROD, PREP, UAT, ou DEV
- Impact : Oui/Non
- Date de Début : Sélecteur de date/heure
- Parties Prenantes : Sélecteur multi-utilisateurs
- Ticket : Lien vers le ticket Jira/GitHub
- Pull Request : Lien vers la PR GitHub
- Description : Notes détaillées du déploiement
Résultat : Un message formaté est posté dans le canal de déploiement avec des boutons interactifs pour l'approbation, l'édition et les mises à jour de statut.
Dans Slack :
/incident
La modale inclut :
- Résumé : "API Gateway retourne des erreurs 500"
- Projet : "api-gateway"
- Environnement : PROD
- Priorité : P1, P2, P3, ou P4
- Parties Prenantes : Membres de l'équipe d'astreinte
- Ticket : Lien vers le systĂšme de gestion d'incidents
- Description : Description détaillée de l'incident
Résultat : Posté dans le canal d'incidents avec bouton de fermeture et suivi automatique du statut.
Dans Slack :
/drift
Cas d'usage : L'équipe infrastructure détecte des changements manuels en production
- Résumé : "Changements manuels de groupe de sécurité détectés"
- Projet : "infrastructure"
- Environnement : PROD
- Description : Détails sur la dérive
Dans Slack :
/rpa_usage
Cas d'usage : Documenter l'exécution d'automatisation
- Résumé : "Lot de traitement de factures terminé"
- Environnement : PROD
- Date de Début : Heure d'exécution
- Description : "150 factures traitées, 2 échecs nécessitant une révision manuelle"
AprÚs avoir créé un événement, les membres de l'équipe peuvent interagir avec celui-ci en utilisant des boutons et des menus déroulants.
Actions Disponibles :
Modifier l'ĂvĂ©nement : Cliquez sur le bouton "âïž Modifier" Approuver le DĂ©ploiement : Cliquez sur "â Approbation" pour approuver le dĂ©ploiement Mettre Ă jour le Statut : Utilisez le menu dĂ©roulant pour changer le statut :
- đ EnCours
- âžïž Pause
- â AnnulĂ©
- ⳠReporté
- â TerminĂ©
Mises à jour de Statut : Réponses automatiques en fil et réactions emoji montrent le statut actuel.
Automatisé à 8h (configurable) :
đ
ĂvĂ©nements Tracker d'Aujourd'hui :
đ PROD
user-service:
- 09:00 CET - Déployer user-service v2.1.0 en production [fil]
- 14:30 CET - Déploiement hotfix pour bug critique [fil]
đ§Ș UAT
payment-service:
- 10:00 CET - Déployer payment-service v1.5.0 pour test [fil]
Les événements se lient automatiquement vers Tracker :
- ID de Message Slack stocké dans Tracker
- Liens directs dans les résumés quotidiens
- Synchronisation bidirectionnelle entre plateformes
- Langage : Go 1.22.7+
- Intégration Slack : slack-go/slack v0.16.0
- Planification : robfig/cron v3.0.1
- Serveur HTTP : BibliothĂšque standard Go
- Intégration API : Client REST pour l'API Tracker
- Commandes Slash :
/deployment,/incident,/drift,/rpa_usage - Composants Interactifs : Modales, boutons, menus déroulants, sélecteurs de date
- Block Kit : Formatage de messages riches avec le Block Kit de Slack
- Webhooks : Vérification de signature et analyse de payload
- Mises Ă jour Temps RĂ©el : Ădition de messages et rĂ©ponses en fil
- Conteneurisation : Docker avec builds multi-étapes
- Orchestration : Déploiement Kubernetes
- Chart Helm : Chart Helm prĂȘt pour la production inclus
- Configuration : Variables d'environnement et secrets Kubernetes
- Monitoring : Journalisation structurée pour l'observabilité
- API Tracker : Intégration RESTful avec le service Tracker principal
- Mappage d'ĂvĂ©nements : Mappage complet des champs entre Slack et Tracker
- Support de Fuseau Horaire : Gestion configurable des fuseaux horaires
- Planification Cron : Planification flexible avec expressions cron
- â Commandes Slack : PrĂȘt pour la production - Les 4 commandes slash implĂ©mentĂ©es
- â Modales Interactives : PrĂȘt pour la production - Formulaires riches pour la crĂ©ation d'Ă©vĂ©nements
- â Gestion d'ĂvĂ©nements : PrĂȘt pour la production - CrĂ©er, modifier, mettre Ă jour les Ă©vĂ©nements
- â RĂ©sumĂ©s Quotidiens : PrĂȘt pour la production - Rapports automatisĂ©s basĂ©s sur cron
- â Docker : PrĂȘt pour la production - Builds Docker multi-Ă©tapes
- â Kubernetes : PrĂȘt pour la production - Chart Helm avec support ingress
- â IntĂ©gration Tracker : PrĂȘt pour la production - IntĂ©gration API complĂšte
- đ§ Validation Webhook : FonctionnalitĂ©s de sĂ©curitĂ© avancĂ©es planifiĂ©es
- đ§ Workflows AvancĂ©s : Processus d'approbation multi-Ă©tapes planifiĂ©s
Nous accueillons les contributions pour améliorer Tracker Slack ! Voici comment vous pouvez aider :
- đ Signaler des Bugs : Ouvrir une issue
- đĄ SuggĂ©rer des FonctionnalitĂ©s : DĂ©marrer une discussion
- đ AmĂ©liorer la Documentation : Soumettre des amĂ©liorations de documentation
- đ§ Soumettre des PRs : Corriger des bugs ou ajouter des fonctionnalitĂ©s
# Cloner le dépÎt
git clone https://github.com/BananaOps/tracker-slack.git
cd tracker-slack
# Installer les dépendances
go mod download
# Configurer les variables d'environnement (voir section Configuration)
cp .env.example .env
# Ăditer .env avec vos valeurs
# Exécuter localement
go run main.go
# Exécuter les tests
go test ./...
# Formater le code
make fmt
# Linter le code
make lint- Ajouter le support pour plus de composants interactifs Slack
- Améliorer la gestion d'erreurs et les retours utilisateur
- Ajouter des tests unitaires pour la génération de modales
- Améliorer le formatage des résumés quotidiens
- Ajouter le support pour des réactions emoji personnalisées
- Tracker - Plateforme principale de suivi d'événements
- Tracker GitHub Action - Intégration GitHub Actions
- Tracker CLI - Interface en ligne de commande
- GitHub Issues : Signaler des bugs ou demander des fonctionnalités
- GitHub Discussions : Poser des questions et partager des idées
- Projet Principal : Documentation Tracker
Si vous découvrez une vulnérabilité de sécurité, veuillez envoyer un email à security@bananaops.org. Toutes les vulnérabilités de sécurité seront traitées rapidement.
Fait avec â€ïž par la communautĂ© BananaOps
â Donnez-nous une Ă©toile sur GitHub âą đ Signaler un Bug âą đŹ Rejoindre la Discussion