GitLab
Use o Dropstone em issues e merge requests do GitLab.
O Dropstone se integra ao seu fluxo de trabalho no GitLab por meio do pipeline de CI/CD do GitLab ou com o GitLab Duo.
Em ambos os casos, o Dropstone será executado nos seus runners do GitLab.
GitLab CI
O Dropstone funciona em um pipeline regular do GitLab. Você pode incorporá-lo a um pipeline como um componente de CI.
Aqui estamos usando um componente de CI/CD criado pela comunidade para o Dropstone: nagyv/gitlab-dropstone.
Recursos
- Use configuração personalizada por job: Configure o Dropstone com um diretório de configuração personalizado, por exemplo
./config/#custom-directory, para habilitar ou desabilitar funcionalidades em cada invocação do Dropstone. - Configuração mínima: O componente de CI configura o Dropstone em segundo plano; você só precisa criar a configuração do Dropstone e o prompt inicial.
- Flexível: O componente de 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 do tipo Arquivo em Configurações > CI/CD > Variáveis. Certifique-se de marcá-las como "Mascaradas e ocultas".
-
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 o seu JSON de autenticação do Dropstone command: optional-custom-command message: "Seu prompt aqui"
Para mais entradas e casos de uso, consulte a documentação deste componente.
GitLab Duo
O Dropstone se integra ao seu fluxo de trabalho no GitLab.
Mencione @dropstone em um comentário, e o Dropstone executará tarefas dentro do seu pipeline de CI do GitLab.
Recursos
- Triagem de issues: Peça ao Dropstone para analisar uma issue e explicá-la para você.
- Corrigir e implementar: Peça ao Dropstone para corrigir uma issue ou implementar um recurso. Ele criará um novo branch e abrirá um merge request com as alterações.
- Seguro: O Dropstone é executado nos seus runners do GitLab.
Configuração
O Dropstone é executado no seu pipeline de CI/CD do GitLab. Aqui está o que você precisará para configurá-lo:
Tip
Consulte a documentação do GitLab para instruções atualizadas.
- Configure seu ambiente GitLab
- Configure CI/CD
- Obtenha uma chave de API do Dropstone (veja Início rápido)
- Crie uma conta de serviço
- Configure as variáveis de CI/CD
- Crie um arquivo de configuração de fluxo. Exemplo:
image: node:22-slim
commands:
- echo "Instalando o Dropstone"
- curl -fsSL https://dropstone.io/install | bash
- echo "Instalando o 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 "Configurando o glab"
- echo $GITLAB_HOST
- echo "Criando configuração de autenticação do Dropstone"
- mkdir --parents ~/.local/share/dropstone
- |
cat > ~/.local/share/dropstone/auth.json << EOF
{
"dropstone": {
"type": "api",
"key": "$DROPSTONE_API_KEY"
}
}
EOF
- echo "Configurando o git"
- git config --global user.email "dropstone@gitlab.com"
- git config --global user.name "Dropstone"
- echo "Testando o glab"
- glab issue list
- echo "Executando o Dropstone"
- |
dropstone run "
Você é um assistente de IA que ajuda com operações no GitLab.
Contexto: $AI_FLOW_CONTEXT
Tarefa: $AI_FLOW_INPUT
Evento: $AI_FLOW_EVENT
Execute a tarefa solicitada usando as ferramentas disponíveis do GitLab.
Seja minucioso na sua análise e forneça explicações claras.
Use a CLI do glab para acessar dados do GitLab. A CLI do glab já está autenticada.
Se for solicitado a resumir um MR ou issue, ou fornecer mais informações,
publique uma nota no MR/Issue para que o usuário possa vê-la.
"
- git checkout --branch $CI_WORKLOAD_REF origin/$CI_WORKLOAD_REF
- echo "Verificando se há alterações no git e enviando se houver"
- |
if ! git diff --quiet || ! git diff --cached --quiet || [ -n "$(git ls-files --others --exclude-standard)" ]; then
echo "Alterações no git detectadas, adicionando e enviando..."
git add .
if git diff --cached --quiet; then
echo "Nenhuma alteração preparada para commit"
else
echo "Fazendo commit das alterações no branch: $CI_WORKLOAD_REF"
git commit --message "Alterações do Dropstone"
echo "Enviando alterações para $CI_WORKLOAD_REF"
git push "https://gitlab-ci-token:$GITLAB_TOKEN@$GITLAB_HOST/$CI_PROJECT_PATH.git" $CI_WORKLOAD_REF
echo "Alterações enviadas com sucesso"
fi
else
echo "Nenhuma alteração no git detectada, ignorando o envio"
fi
variables:
- DROPSTONE_API_KEY
- GITLAB_TOKEN_DROPSTONE
- GITLAB_HOST
Você pode consultar a documentação da Plataforma de Agentes do GitLab Duo para instruções detalhadas.
Exemplos
Aqui estão alguns exemplos de como você pode usar o Dropstone no GitLab.
Tip
Você pode configurar uma frase de gatilho diferente de @dropstone.
-
Explicar uma issue
Adicione este comentário em uma issue do GitLab.
@dropstone explique esta issueO Dropstone lerá a issue e responderá com uma explicação clara.
-
Corrigir uma issue
Em uma issue do GitLab, diga:
@dropstone corrija istoO Dropstone criará um novo branch, implementará as alterações e abrirá um merge request com as alterações.
-
Revisar merge requests
Deixe o seguinte comentário em um merge request do GitLab.
@dropstone revise este merge requestO Dropstone revisará o merge request e fornecerá feedback.