Dropstone CLI

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

  1. 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".

  2. 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.

  1. Configure seu ambiente GitLab
  2. Configure CI/CD
  3. Obtenha uma chave de API do Dropstone (veja Início rápido)
  4. Crie uma conta de serviço
  5. Configure as variáveis de CI/CD
  6. 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 issue
    

    O Dropstone lerá a issue e responderá com uma explicação clara.

  • Corrigir uma issue

    Em uma issue do GitLab, diga:

    @dropstone corrija isto
    

    O 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 request
    

    O Dropstone revisará o merge request e fornecerá feedback.

Ctrl+I