GitLab
Utilisez Dropstone dans les issues et les merge requests GitLab.
Dropstone s'intègre à votre flux de travail GitLab via votre pipeline CI/CD GitLab ou avec GitLab Duo.
Dans les deux cas, Dropstone s'exécutera sur vos runners GitLab.
GitLab CI
Dropstone fonctionne dans un pipeline GitLab standard. Vous pouvez l'intégrer dans un pipeline en tant que composant CI.
Nous utilisons ici un composant CI/CD créé par la communauté pour Dropstone : nagyv/gitlab-dropstone.
Fonctionnalités
- Utilisez une configuration personnalisée par tâche : Configurez Dropstone avec un répertoire de configuration personnalisé, par exemple
./config/#custom-directorypour activer ou désactiver des fonctionnalités à chaque invocation de Dropstone. - Configuration minimale : Le composant CI configure Dropstone en arrière-plan ; vous n'avez qu'à créer la configuration Dropstone et le prompt initial.
- Flexible : Le composant CI prend en charge plusieurs entrées pour personnaliser son comportement.
Configuration
-
Stockez votre JSON d'authentification Dropstone en tant que variable d'environnement CI de type Fichier sous Paramètres > CI/CD > Variables. Assurez-vous de les marquer comme « Masquées et cachées ».
-
Ajoutez ce qui suit à votre fichier
.gitlab-ci.yml.include: - component: $CI_SERVER_FQDN/nagyv/gitlab-dropstone/dropstone@2 inputs: config_dir: ${CI_PROJECT_DIR}/dropstone-config auth_json: $DROPSTONE_AUTH_JSON # Le nom de variable pour votre JSON d'authentification Dropstone command: optional-custom-command message: "Votre prompt ici"
Pour plus d'entrées et de cas d'utilisation, consultez la documentation de ce composant.
GitLab Duo
Dropstone s'intègre à votre flux de travail GitLab.
Mentionnez @dropstone dans un commentaire, et Dropstone exécutera des tâches dans votre pipeline CI GitLab.
Fonctionnalités
- Triage des issues : Demandez à Dropstone d'examiner une issue et de vous l'expliquer.
- Corriger et implémenter : Demandez à Dropstone de corriger une issue ou d'implémenter une fonctionnalité. Il créera une nouvelle branche et ouvrira une merge request avec les modifications.
- Sécurisé : Dropstone s'exécute sur vos runners GitLab.
Configuration
Dropstone s'exécute dans votre pipeline CI/CD GitLab ; voici ce dont vous aurez besoin pour le configurer :
Tip
Consultez la documentation GitLab pour des instructions à jour.
- Configurez votre environnement GitLab
- Configurez CI/CD
- Obtenez une clé API Dropstone (voir Démarrage rapide)
- Créez un compte de service
- Configurez les variables CI/CD
- Créez un fichier de configuration de flux. Exemple :
image: node:22-slim
commands:
- echo "Installation de Dropstone"
- curl -fsSL https://dropstone.io/install | bash
- echo "Installation de glab"
- export GITLAB_TOKEN=$GITLAB_TOKEN_DROPSTONE
- apt-get update --quiet && apt-get install --yes curl wget gpg git && rm --recursive --force /var/lib/apt/lists/*
- curl --silent --show-error --location "https://raw.githubusercontent.com/upciti/wakemeops/main/assets/install_repository" | bash
- apt-get install --yes glab
- echo "Configuration de glab"
- echo $GITLAB_HOST
- echo "Création de la configuration d'authentification Dropstone"
- mkdir --parents ~/.local/share/dropstone
- |
cat > ~/.local/share/dropstone/auth.json << EOF
{
"dropstone": {
"type": "api",
"key": "$DROPSTONE_API_KEY"
}
}
EOF
- echo "Configuration de git"
- git config --global user.email "dropstone@gitlab.com"
- git config --global user.name "Dropstone"
- echo "Test de glab"
- glab issue list
- echo "Exécution de Dropstone"
- |
dropstone run "
Vous êtes un assistant IA aidant avec les opérations GitLab.
Contexte : $AI_FLOW_CONTEXT
Tâche : $AI_FLOW_INPUT
Événement : $AI_FLOW_EVENT
Veuillez exécuter la tâche demandée en utilisant les outils GitLab disponibles.
Soyez minutieux dans votre analyse et fournissez des explications claires.
Utilisez le CLI glab pour accéder aux données de GitLab. Le CLI glab est déjà authentifié.
Si on vous demande de résumer une MR ou une issue, ou de fournir plus d'informations,
publiez une note sur la MR/Issue afin que l'utilisateur puisse la voir.
"
- git checkout --branch $CI_WORKLOAD_REF origin/$CI_WORKLOAD_REF
- echo "Vérification des modifications git et envoi si nécessaire"
- |
if ! git diff --quiet || ! git diff --cached --quiet || [ -n "$(git ls-files --others --exclude-standard)" ]; then
echo "Modifications git détectées, ajout et envoi..."
git add .
if git diff --cached --quiet; then
echo "Aucune modification en attente à valider"
else
echo "Validation des modifications sur la branche : $CI_WORKLOAD_REF"
git commit --message "Modifications Dropstone"
echo "Envoi des modifications vers $CI_WORKLOAD_REF"
git push "https://gitlab-ci-token:$GITLAB_TOKEN@$GITLAB_HOST/$CI_PROJECT_PATH.git" $CI_WORKLOAD_REF
echo "Modifications envoyées avec succès"
fi
else
echo "Aucune modification git détectée, envoi ignoré"
fi
variables:
- DROPSTONE_API_KEY
- GITLAB_TOKEN_DROPSTONE
- GITLAB_HOST
Vous pouvez consulter la documentation de la plateforme d'agents GitLab Duo pour des instructions détaillées.
Exemples
Voici quelques exemples d'utilisation de Dropstone dans GitLab.
Tip
Vous pouvez configurer une phrase de déclenchement différente de @dropstone.
-
Expliquer une issue
Ajoutez ce commentaire dans une issue GitLab.
@dropstone explique cette issueDropstone lira l'issue et répondra avec une explication claire.
-
Corriger une issue
Dans une issue GitLab, dites :
@dropstone corrige ceciDropstone créera une nouvelle branche, implémentera les modifications et ouvrira une merge request avec les changements.
-
Examiner les merge requests
Laissez le commentaire suivant sur une merge request GitLab.
@dropstone examine cette merge requestDropstone examinera la merge request et fournira des commentaires.