GitLab
Usa Dropstone en problemas y solicitudes de fusión 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 ejecutores de GitLab.
GitLab CI
Dropstone funciona en un pipeline regular de GitLab. Puedes integrarlo en un pipeline como un componente de CI
Aquí estamos usando un componente de CI/CD creado por la comunidad para Dropstone: nagyv/gitlab-dropstone.
Características
- Usa configuración personalizada por trabajo: Configura Dropstone con un directorio de configuración personalizado, por ejemplo
./config/#custom-directorypara habilitar o deshabilitar funcionalidad por 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
-
Almacena tu JSON de autenticación de Dropstone como una 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 problemas: Pide a Dropstone que investigue un problema y te lo explique.
- Corregir e implementar: Pide a Dropstone que corrija un problema o implemente una característica. Creará una nueva rama y abrirá una solicitud de fusión con los cambios.
- Seguro: Dropstone se ejecuta en tus ejecutores de GitLab.
Configuración
Dropstone se ejecuta en tu pipeline de GitLab CI/CD, aquí está lo que necesitarás para configurarlo:
Consejo:
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 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í hay algunos ejemplos de cómo puedes usar Dropstone en GitLab.
Consejo:
Puedes configurar una frase de activación diferente a @dropstone.
-
Explicar un problema
Añade este comentario en un problema de GitLab.
@dropstone explain this issueDropstone leerá el problema y responderá con una explicación clara.
-
Corregir un problema
En un problema de GitLab, di:
@dropstone fix thisDropstone creará una nueva rama, implementará los cambios y abrirá una solicitud de fusión con los cambios.
-
Revisar solicitudes de fusión
Deja el siguiente comentario en una solicitud de fusión de GitLab.
@dropstone review this merge requestDropstone revisará la solicitud de fusión y proporcionará retroalimentación.