GitLab
Use Dropstone em issues e merge requests do GitLab.
Dropstone integra-se ao seu fluxo de trabalho do GitLab através do seu pipeline GitLab CI/CD ou com GitLab Duo.
Em ambos os casos, Dropstone será executado em seus runners do GitLab.
GitLab CI
Dropstone funciona em um pipeline regular do GitLab. Você pode integrá-lo a um pipeline como um componente CI
Aqui estamos usando um componente CI/CD criado pela comunidade para Dropstone: nagyv/gitlab-dropstone.
Recursos
- Use configuração personalizada por job: Configure Dropstone com um diretório de configuração personalizado, por exemplo
./config/#custom-directorypara ativar ou desativar funcionalidades por invocação do Dropstone. - Configuração mínima: O componente CI configura Dropstone em segundo plano, você só precisa criar a configuração do Dropstone e o prompt inicial.
- Flexível: O componente CI suporta várias entradas para personalizar seu comportamento
Configuração
-
Armazene seu JSON de autenticação do Dropstone como uma variável de ambiente CI do tipo File em Settings > CI/CD > Variables. Certifique-se de marcá-las como "Masked and hidden".
-
Adicione o seguinte ao seu arquivo
.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 # O nome da variável para seu JSON de autenticação do Dropstone command: optional-custom-command message: "Seu prompt aqui"
Para mais entradas e casos de uso confira a documentação deste componente.
GitLab Duo
Dropstone integra-se ao seu fluxo de trabalho do GitLab.
Mencione @dropstone em um comentário, e Dropstone executará tarefas dentro do seu pipeline GitLab CI.
Recursos
- Triagem de issues: Peça ao Dropstone para investigar um issue e explicá-lo para você.
- Corrigir e implementar: Peça ao Dropstone para corrigir um issue ou implementar um recurso. Ele criará uma nova branch e abrirá um merge request com as alterações.
- Seguro: Dropstone é executado em seus runners do GitLab.
Configuração
Dropstone é executado no seu pipeline GitLab CI/CD, aqui está o que você precisará para configurá-lo:
Dica:
Confira a documentação do GitLab para instruções atualizadas.
- Configure seu ambiente GitLab
- Configure CI/CD
- Obtenha uma chave de API do Dropstone (veja Quickstart)
- Crie uma conta de serviço
- Configure variáveis de CI/CD
- Crie um arquivo de configuração de fluxo. Exemplo:
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
Você pode consultar a documentação do GitLab Duo Agent Platform para instruções detalhadas.
Exemplos
Aqui estão alguns exemplos de como você pode usar Dropstone no GitLab.
Dica:
Você pode configurar uma frase de gatilho diferente de @dropstone.
-
Explicar um issue
Adicione este comentário em um issue do GitLab.
@dropstone explain this issueDropstone lerá o issue e responderá com uma explicação clara.
-
Corrigir um issue
Em um issue do GitLab, diga:
@dropstone fix thisDropstone criará uma nova branch, implementará as alterações e abrirá um merge request com as mudanças.
-
Revisar merge requests
Deixe o seguinte comentário em um merge request do GitLab.
@dropstone review this merge requestDropstone revisará o merge request e fornecerá feedback.