GitLab
Usa Dropstone en issues y merge requests de GitLab.
Dropstone se integra con tu flujo de trabajo de GitLab a través de tu pipeline de GitLab CI/CD o con GitLab Duo.
En ambos casos, Dropstone se ejecutará en tus runners de GitLab.
GitLab CI
Dropstone funciona en un pipeline regular de GitLab. Puedes integrarlo en un pipeline como un componente de CI.
Aquí usamos un componente de CI/CD creado por la comunidad para Dropstone: nagyv/gitlab-dropstone.
Características
- Usa configuración personalizada por job: Configura Dropstone con un directorio de configuración personalizado, por ejemplo
./config/#custom-directorypara habilitar o deshabilitar funcionalidades en cada invocación de Dropstone. - Configuración mínima: El componente de CI configura Dropstone en segundo plano; solo necesitas crear la configuración de Dropstone y el prompt inicial.
- Flexible: El componente de CI admite varias entradas para personalizar su comportamiento.
Configuración
-
Guarda tu JSON de autenticación de Dropstone como variable de entorno de CI de tipo Archivo en Settings > CI/CD > Variables. Asegúrate de marcarlas como "Masked and hidden".
-
Añade lo siguiente a tu archivo
.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 # El nombre de la variable para tu JSON de autenticación de Dropstone command: optional-custom-command message: "Tu prompt aquí"
Para más entradas y casos de uso, consulta la documentación de este componente.
GitLab Duo
Dropstone se integra con tu flujo de trabajo de GitLab.
Menciona @dropstone en un comentario y Dropstone ejecutará tareas dentro de tu pipeline de GitLab CI.
Características
- Triaje de issues: Pide a Dropstone que analice un issue y te lo explique.
- Corregir e implementar: Pide a Dropstone que corrija un issue o implemente una funcionalidad. Creará una nueva rama y abrirá un merge request con los cambios.
- Seguro: Dropstone se ejecuta en tus runners de GitLab.
Configuración
Dropstone se ejecuta en tu pipeline de GitLab CI/CD. Esto es lo que necesitas para configurarlo:
Tip
Consulta la documentación de GitLab para obtener instrucciones actualizadas.
- Configura tu entorno de GitLab
- Configura CI/CD
- Obtén una clave de API de Dropstone (consulta Quickstart)
- Crea una cuenta de servicio
- Configura las variables de CI/CD
- Crea un archivo de configuración de flujo. Ejemplo:
image: node:22-slim
commands:
- echo "Installing Dropstone"
- curl -fsSL https://dropstone.io/install | bash
- echo "Installing 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 "Configuring glab"
- echo $GITLAB_HOST
- echo "Creating Dropstone auth configuration"
- mkdir --parents ~/.local/share/dropstone
- |
cat > ~/.local/share/dropstone/auth.json << EOF
{
"dropstone": {
"type": "api",
"key": "$DROPSTONE_API_KEY"
}
}
EOF
- echo "Configuring git"
- git config --global user.email "dropstone@gitlab.com"
- git config --global user.name "Dropstone"
- echo "Testing glab"
- glab issue list
- echo "Running Dropstone"
- |
dropstone run "
You are an AI assistant helping with GitLab operations.
Context: $AI_FLOW_CONTEXT
Task: $AI_FLOW_INPUT
Event: $AI_FLOW_EVENT
Please execute the requested task using the available GitLab tools.
Be thorough in your analysis and provide clear explanations.
Use the glab CLI to access data from GitLab. The glab CLI is already authenticated.
If you are asked to summarize an MR or issue, or provide more information,
post back a note to the MR/Issue so the user can see it.
"
- git checkout --branch $CI_WORKLOAD_REF origin/$CI_WORKLOAD_REF
- echo "Checking for git changes and pushing if any exist"
- |
if ! git diff --quiet || ! git diff --cached --quiet || [ -n "$(git ls-files --others --exclude-standard)" ]; then
echo "Git changes detected, adding and pushing..."
git add .
if git diff --cached --quiet; then
echo "No staged changes to commit"
else
echo "Committing changes to branch: $CI_WORKLOAD_REF"
git commit --message "Dropstone changes"
echo "Pushing changes up to $CI_WORKLOAD_REF"
git push "https://gitlab-ci-token:$GITLAB_TOKEN@$GITLAB_HOST/$CI_PROJECT_PATH.git" $CI_WORKLOAD_REF
echo "Changes successfully pushed"
fi
else
echo "No git changes detected, skipping push"
fi
variables:
- DROPSTONE_API_KEY
- GITLAB_TOKEN_DROPSTONE
- GITLAB_HOST
Puedes consultar la documentación de GitLab Duo Agent Platform para obtener instrucciones detalladas.
Ejemplos
Aquí tienes algunos ejemplos de cómo puedes usar Dropstone en GitLab.
Tip
Puedes configurar una frase de activación diferente a @dropstone.
-
Explicar un issue
Añade este comentario en un issue de GitLab.
@dropstone explain this issueDropstone leerá el issue y responderá con una explicación clara.
-
Corregir un issue
En un issue de GitLab, escribe:
@dropstone fix thisDropstone creará una nueva rama, implementará los cambios y abrirá un merge request con los cambios.
-
Revisar merge requests
Deja el siguiente comentario en un merge request de GitLab.
@dropstone review this merge requestDropstone revisará el merge request y proporcionará comentarios.