doc-locale/fr-fr/ci/chatops/_index.md
{{< details >}}
{{< /details >}}
Utilisez GitLab ChatOps pour interagir avec les jobs CI/CD via des services de chat comme Slack.
De nombreuses organisations utilisent Slack ou Mattermost pour collaborer, résoudre des problèmes et planifier le travail. Avec ChatOps, vous pouvez discuter du travail avec votre équipe, exécuter des jobs CI/CD et afficher la sortie des jobs, le tout depuis la même application.
Vous pouvez déclencher ChatOps avec la commande slash run.
Les intégrations suivantes sont disponibles :
ChatOps recherche le job spécifié dans le .gitlab-ci.yml sur la branche par défaut du projet. Si le job est trouvé, ChatOps crée un pipeline qui ne contient que le job spécifié. Si vous définissez when: manual, ChatOps crée le pipeline, mais le job ne démarre pas automatiquement.
Un job exécuté avec ChatOps dispose des mêmes fonctionnalités qu'un job exécuté depuis GitLab. Le job peut utiliser des variables CI/CD existantes comme GITLAB_USER_ID pour effectuer une validation supplémentaire des droits, mais ces variables peuvent être remplacées.
Vous devez définir rules pour que le job ne s'exécute pas dans le cadre du pipeline CI/CD standard.
ChatOps transmet les variables CI/CD suivantes au job :
CHAT_INPUT - Les arguments transmis à la commande slash run.CHAT_CHANNEL - Le nom du canal de chat depuis lequel le job est exécuté.CHAT_USER_ID - L'identifiant du service de chat de l'utilisateur qui exécute le job.Lors de l'exécution du job :
Pour empêcher un job d'être exécuté depuis le chat :
.gitlab-ci.yml, définissez le job sur except: [chat].ChatOps envoie la sortie d'un job composé d'une seule commande sur le canal en tant que réponse. Par exemple, lorsque le job suivant s'exécute, la réponse dans le chat est Hello world :
stages:
- chatops
hello-world:
stage: chatops
rules:
- if: $CI_PIPELINE_SOURCE == "chat"
script:
- echo "Hello World"
Si le job contient plusieurs commandes, ou si before_script est défini, ChatOps envoie les commandes et leur sortie sur le canal. Les commandes sont encapsulées dans des codes de couleur ANSI.
Pour répondre sélectivement avec la sortie d'une seule commande, placez la sortie dans une section chat_reply. Par exemple, le job suivant liste les fichiers du répertoire courant :
stages:
- chatops
ls:
stage: chatops
rules:
- if: $CI_PIPELINE_SOURCE == "chat"
script:
- echo "This command will not be shown."
- echo -e "section_start:$( date +%s ):chat_reply\r\033[0K\n$( ls -la )\nsection_end:$( date +%s ):chat_reply\r\033[0K"
Prérequis :
Vous pouvez exécuter un job CI/CD sur la branche par défaut depuis Slack ou Mattermost.
La commande slash pour exécuter un job CI/CD dépend de l'intégration de commande slash configurée pour le projet.
/gitlab <project-name> run <job name> <arguments>./<trigger-name> run <job name> <arguments>.Où :
<job name> est le nom du job CI/CD à exécuter.<arguments> sont les arguments à transmettre au job CI/CD.<trigger-name> est le nom du déclencheur configuré pour l'intégration Slack ou Mattermost.ChatOps planifie un pipeline qui ne contient que le job spécifié.