Ce projet permet de déclencher des builds sur GitLab via un bot Discord, et d'en récupérer le statut. Le bot écoute des commandes dans Discord et interagit avec l'API GitLab pour lancer des pipelines et obtenir leur statut.
- Node.js (version 16 ou supérieure)
- npm (version 7 ou supérieure)
- Docker (si tu souhaites dockeriser l'application)
Commence par cloner ce repository sur ta machine locale.
git clone https://github.com/ton-utilisateur/discord-gitlab-bot.git
cd discord-gitlab-botEnsuite, tu dois installer les dépendances avec npm.
npm installL'application utilise des variables d'environnement pour se connecter à Discord et à GitLab. Crée un fichier .env à la racine du projet et ajoute les variables suivantes :
DISCORD_TOKEN=ton_token_discord
GITLAB_ACCESS_TOKEN=ton_token_gitlab
GITLAB_PROJECT_ID=ton_project_id_gitlab
GITLAB_TRIGGER_TOKEN=ton_trigger_token_gitlab- DISCORD_TOKEN : Le token de ton bot Discord.
- GITLAB_ACCESS_TOKEN : Un token d'accès personnel GitLab pour accéder à l'API (permis "api" pour l'authentification).
- GITLAB_PROJECT_ID : L'ID de ton projet GitLab (disponible dans l'URL du projet GitLab).
- GITLAB_TRIGGER_TOKEN : Le token pour déclencher les pipelines (disponible dans les paramètres GitLab du projet).
Une fois les dépendances installées et les variables configurées, tu peux démarrer le bot en exécutant :
npm startCela lancera le bot Discord, et il sera prêt à recevoir des commandes comme /build pour déclencher un pipeline sur GitLab.
Si tu préfères exécuter l'application dans un conteneur Docker, tu peux suivre ces étapes.
Crée une image Docker à partir du Dockerfile dans le répertoire racine du projet :
docker build -t discord-gitlab-bot .Une fois l'image construite, tu peux exécuter le bot dans un conteneur Docker en utilisant la commande suivante :
docker run -d --name discord-gitlab-bot --env-file .env discord-gitlab-botCela démarrera le bot dans un conteneur Docker et injectera les variables d'environnement du fichier .env.
Tu peux vérifier que ton bot fonctionne en consultant les logs du conteneur Docker :
docker logs discord-gitlab-botUne fois que le bot est lancé, tu peux lui envoyer des commandes dans ton serveur Discord pour interagir avec l'API GitLab.
Exemples de commandes :
- /build : Déclenche un pipeline GitLab pour le projet spécifié.
- /status <pipeline_id> : Récupère le statut du pipeline en cours en utilisant son ID.
- Problème de permissions : Assure-toi que ton Personal Access Token (PAT) GitLab a les bonnes permissions (
apiouread_api). - Token Discord : Si le bot ne répond pas aux commandes, vérifie que le token Discord est valide et que le bot a les bonnes permissions sur le serveur (il doit pouvoir lire les messages et envoyer des messages).
- Erreur de pipeline vide : Si tu vois l'erreur "The resulting pipeline would have been empty", vérifie les règles dans ton fichier
.gitlab-ci.ymlpour t'assurer que des jobs sont définis et valides pour le pipeline déclenché.