Dropstone CLI

GitLab

Usa Dropstone nelle issue e nelle merge request di GitLab.

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

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


GitLab CI

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

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


Funzionalità

  • Configurazione personalizzata per ogni job: Configura Dropstone con una directory di configurazione personalizzata, ad esempio ./config/#custom-directory, per abilitare o disabilitare funzionalità per ogni invocazione di Dropstone.
  • Configurazione minima: 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.

Configurazione

  1. Salva il tuo JSON di autenticazione Dropstone come variabile d'ambiente CI di tipo File in Impostazioni > CI/CD > Variabili. Assicurati di contrassegnarle come "Mascherate e nascoste".

  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 # Il nome della variabile per il tuo JSON di autenticazione Dropstone
          command: optional-custom-command
          message: "Il tuo prompt qui"
    

Per ulteriori input e casi d'uso, consulta la documentazione di questo componente.


GitLab Duo

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


Funzionalità

  • Triage delle issue: Chiedi a Dropstone di analizzare una issue e spiegartela.
  • Correzione e implementazione: Chiedi a Dropstone di correggere una 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.

Configurazione

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

Tip

Consulta la documentazione GitLab per istruzioni aggiornate.

  1. Configura il tuo ambiente GitLab
  2. Imposta 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 "Installazione di Dropstone"
  - curl -fsSL https://dropstone.io/install | bash
  - echo "Installazione di 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 "Configurazione di glab"
  - echo $GITLAB_HOST
  - echo "Creazione della configurazione di autenticazione Dropstone"
  - mkdir --parents ~/.local/share/dropstone
  - |
    cat > ~/.local/share/dropstone/auth.json << EOF
    {
      "dropstone": {
        "type": "api",
        "key": "$DROPSTONE_API_KEY"
      }
    }
    EOF
  - echo "Configurazione di git"
  - git config --global user.email "dropstone@gitlab.com"
  - git config --global user.name "Dropstone"
  - echo "Test di glab"
  - glab issue list
  - echo "Esecuzione di Dropstone"
  - |
    dropstone run "
    Sei un assistente AI che aiuta con le operazioni GitLab.

    Contesto: $AI_FLOW_CONTEXT
    Attività: $AI_FLOW_INPUT
    Evento: $AI_FLOW_EVENT

    Esegui l'attività richiesta utilizzando gli strumenti GitLab disponibili.
    Sii accurato nella tua analisi e fornisci spiegazioni chiare.

    Usa la CLI glab per accedere ai dati di GitLab. La CLI glab è già autenticata.

    Se ti viene chiesto di riassumere una MR o una issue, o di fornire maggiori informazioni,
    pubblica una nota sulla MR/Issue in modo che l'utente possa vederla.
    "
  - git checkout --branch $CI_WORKLOAD_REF origin/$CI_WORKLOAD_REF
  - echo "Verifica delle modifiche git e push se presenti"
  - |
    if ! git diff --quiet || ! git diff --cached --quiet || [ -n "$(git ls-files --others --exclude-standard)" ]; then
      echo "Modifiche git rilevate, aggiunta e push in corso..."
      git add .
      if git diff --cached --quiet; then
        echo "Nessuna modifica in stage da committare"
      else
        echo "Commit delle modifiche sul branch: $CI_WORKLOAD_REF"
        git commit --message "Modifiche Dropstone"
        echo "Push delle modifiche su $CI_WORKLOAD_REF"
        git push "https://gitlab-ci-token:$GITLAB_TOKEN@$GITLAB_HOST/$CI_PROJECT_PATH.git" $CI_WORKLOAD_REF
        echo "Modifiche inviate con successo"
      fi
    else
      echo "Nessuna modifica git rilevata, push saltato"
    fi
variables:
  - DROPSTONE_API_KEY
  - GITLAB_TOKEN_DROPSTONE
  - GITLAB_HOST

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


Esempi

Ecco alcuni esempi di come puoi usare Dropstone in GitLab.

Tip

Puoi configurare una frase di attivazione diversa da @dropstone.

  • Spiega una issue

    Aggiungi questo commento in una issue GitLab.

    @dropstone explain this issue
    

    Dropstone leggerà la issue e risponderà con una spiegazione chiara.

  • Correggi una issue

    In una issue GitLab, scrivi:

    @dropstone fix this
    

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

  • Rivedi le merge request

    Lascia il seguente commento su una merge request GitLab.

    @dropstone review this merge request
    

    Dropstone esaminerà la merge request e fornirà un feedback.

Ctrl+I