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-directoryper 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
-
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".
-
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.
- Configura il tuo ambiente GitLab
- Configura CI/CD
- Ottieni una chiave API Dropstone (vedi Quickstart)
- Crea un account di servizio
- Configura le variabili CI/CD
- 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 issueDropstone leggerà l'issue e risponderà con una spiegazione chiara.
-
Correggi un issue
In un issue GitLab, scrivi:
@dropstone fix thisDropstone 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 requestDropstone esaminerà la merge request e fornirà feedback.