Dropstone Docs

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-directory para 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

  1. 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".

  2. 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.

  1. Configura tu entorno de GitLab
  2. Configura CI/CD
  3. Obtén una clave de API de Dropstone (consulta Quickstart)
  4. Crea una cuenta de servicio
  5. Configura variables de CI/CD
  6. 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 issue
    

    Dropstone leerá el problema y responderá con una explicación clara.

  • Corregir un problema

    En un problema de GitLab, di:

    @dropstone fix this
    

    Dropstone 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 request
    

    Dropstone revisará la solicitud de fusión y proporcionará retroalimentación.

Ctrl+I