Dropstone Docs

GitLab

Usa Dropstone in GitLab issues e merge requests.

Dropstone si integra con il tuo flusso di lavoro GitLab attraverso la tua pipeline GitLab CI/CD o con GitLab Duo.

In entrambi i casi, Dropstone verrà eseguito sui tuoi runner GitLab.


GitLab CI

Dropstone funziona in una pipeline GitLab regolare. Puoi integrarlo in una pipeline come componente CI

Qui stiamo utilizzando un componente CI/CD creato dalla comunità per Dropstone: nagyv/gitlab-dropstone.


Funzionalità

  • Usa configurazione personalizzata per job: Configura Dropstone con una directory di configurazione personalizzata, ad esempio ./config/#custom-directory per abilitare o disabilitare funzionalità per ogni invocazione di Dropstone.
  • Setup minimo: Il componente CI configura Dropstone in background, devi solo creare la configurazione di Dropstone e il prompt iniziale.
  • Flessibile: Il componente CI supporta diversi input per personalizzarne il comportamento

Setup

  1. Archivia il tuo JSON di autenticazione Dropstone come variabile CI di tipo File in Settings > CI/CD > Variables. Assicurati di contrassegnarli come "Masked and hidden".

  2. Aggiungi quanto segue al tuo file .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 # The variable name for your Dropstone authentication JSON
          command: optional-custom-command
          message: "Your prompt here"
    

Per altri input e casi d'uso consulta la documentazione per questo componente.


GitLab Duo

Dropstone si integra con il tuo flusso di lavoro GitLab. Menziona @dropstone in un commento e Dropstone eseguirà attività all'interno della tua pipeline GitLab CI.


Funzionalità

  • Triage issues: Chiedi a Dropstone di esaminare un issue e spiegartelo.
  • Correggi e implementa: Chiedi a Dropstone di correggere un issue o implementare una funzionalità. Creerà un nuovo branch e aprirà una merge request con le modifiche.
  • Sicuro: Dropstone viene eseguito sui tuoi runner GitLab.

Setup

Dropstone viene eseguito nella tua pipeline GitLab CI/CD, ecco cosa ti serve per configurarlo:

Tip:

Consulta la documentazione GitLab per le istruzioni più aggiornate.

  1. Configura il tuo ambiente GitLab
  2. Configura CI/CD
  3. Ottieni una chiave API Dropstone (vedi Quickstart)
  4. Crea un account di servizio
  5. Configura le variabili CI/CD
  6. Crea un file di configurazione del flusso. Esempio:
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

Puoi fare riferimento alla documentazione GitLab Duo Agent Platform per istruzioni dettagliate.


Esempi

Ecco alcuni esempi di come puoi usare Dropstone in GitLab.

Tip:

Puoi configurare una frase trigger diversa da @dropstone.

  • Spiega un issue

    Aggiungi questo commento in un issue GitLab.

    @dropstone explain this issue
    

    Dropstone leggerà l'issue e risponderà con una spiegazione chiara.

  • Correggi un issue

    In un issue GitLab, scrivi:

    @dropstone fix this
    

    Dropstone creerà un nuovo branch, implementerà le modifiche e aprirà una merge request con le modifiche.

  • Rivedi merge request

    Lascia il seguente commento su una merge request GitLab.

    @dropstone review this merge request
    

    Dropstone esaminerà la merge request e fornirà feedback.

Ctrl+I