GitHub
Use Dropstone em problemas e pull-requests do GitHub.
Dropstone se integra com seu fluxo de trabalho do GitHub. Mencione /dropstone em qualquer comentário e Dropstone executará a tarefa dentro do seu executor do GitHub Actions.
Recursos
- Triagem de problemas: Peça ao Dropstone para investigar um problema e explicá-lo para você.
- Corrigir e implementar: Peça ao Dropstone para corrigir um problema ou implementar um recurso. Ele funcionará em uma nova branch e enviará um PR com todas as alterações.
- Seguro: Dropstone é executado dentro dos executores do GitHub.
Instalação
Execute o seguinte comando em um projeto que está em um repositório do GitHub:
dropstone github install
Isso o guiará pela instalação do aplicativo GitHub, criação do fluxo de trabalho e configuração de segredos.
Configuração Manual
Ou você pode configurá-lo manualmente.
-
Instale o aplicativo GitHub
Acesse github.com/apps/dropstone-agent. Certifique-se de que está instalado no repositório de destino.
-
Adicione o fluxo de trabalho
Adicione o seguinte arquivo de fluxo de trabalho em
.github/workflows/dropstone.ymlno seu repositório. Certifique-se de definir omodelapropriado e as chaves de API necessárias emenv.name: dropstone on: issue_comment: types: [created] pull_request_review_comment: types: [created] jobs: dropstone: if: contains(github.event.comment.body, '/dropstone') runs-on: ubuntu-latest permissions: id-token: write steps: - name: Checkout repository uses: actions/checkout@v6 with: fetch-depth: 1 persist-credentials: false - name: Run Dropstone uses: blankline-org/dropstone-cli/github@latest env: DROPSTONE_API_KEY: ${{ secrets.DROPSTONE_API_KEY }} with: model: dropstone/dropstone-pro # share: true # github_token: xxxx -
Armazene sua chave de API em segredos do repositório
Nas Configurações da sua organização ou repositório, expanda Secrets and variables à esquerda e selecione Actions. Adicione
DROPSTONE_API_KEYcomo um novo segredo do repositório.
Configuração
-
model: O nível do Dropstone a usar. Um dedropstone/dropstone-fast,dropstone/dropstone-pro, oudropstone/dropstone-heavy. Isso é obrigatório. -
agent: O agente a usar. Deve ser um agente primário. Volta paradefault_agentda configuração ou"build"se não encontrado. -
share: Se deve compartilhar a sessão do Dropstone. Padrão é true para repositórios públicos. -
prompt: Prompt personalizado opcional para substituir o comportamento padrão. Use isso para personalizar como o Dropstone processa solicitações. -
token: Token de acesso do GitHub opcional para realizar operações como criar comentários, fazer commits e abrir pull requests. Por padrão, Dropstone usa o token de acesso de instalação do Aplicativo GitHub do Dropstone, portanto commits, comentários e pull requests aparecem como vindos do aplicativo.Alternativamente, você pode usar o token
GITHUB_TOKENintegrado do executor do GitHub Actions sem instalar o Aplicativo GitHub do Dropstone. Apenas certifique-se de conceder as permissões necessárias no seu fluxo de trabalho:permissions: id-token: write contents: write pull-requests: write issues: writeVocê também pode usar tokens de acesso pessoal(PAT) se preferir.
Eventos Suportados
Dropstone pode ser acionado pelos seguintes eventos do GitHub:
| Tipo de Evento | Acionado Por | Detalhes |
|---|---|---|
issue_comment | Comentário em um problema ou PR | Mencione /dropstone em seu comentário. Dropstone lê o contexto e pode criar branches, abrir PRs ou responder. |
pull_request_review_comment | Comentário em linhas de código específicas em um PR | Mencione /dropstone ao revisar código. Dropstone recebe caminho do arquivo, números de linha e contexto de diff. |
issues | Problema aberto ou editado | Acione automaticamente Dropstone quando problemas são criados ou modificados. Requer entrada prompt. |
pull_request | PR aberto ou atualizado | Acione automaticamente Dropstone quando PRs são abertos, sincronizados ou reabertas. Útil para revisões automatizadas. |
schedule | Agendamento baseado em cron | Execute Dropstone em um agendamento. Requer entrada prompt. A saída vai para logs e PRs (sem problema para comentar). |
workflow_dispatch | Acionamento manual da interface do GitHub | Acione Dropstone sob demanda via aba Actions. Requer entrada prompt. A saída vai para logs e PRs. |
Exemplo de Agendamento
Execute Dropstone em um agendamento para realizar tarefas automatizadas:
name: Scheduled Dropstone Task
on:
schedule:
- cron: "0 9 * * 1" # Every Monday at 9am UTC
jobs:
dropstone:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: write
pull-requests: write
issues: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Run Dropstone
uses: blankline-org/dropstone-cli/github@latest
env:
DROPSTONE_API_KEY: ${{ secrets.DROPSTONE_API_KEY }}
with:
model: dropstone/dropstone-pro
prompt: |
Review the codebase for any TODO comments and create a summary.
If you find issues worth addressing, open an issue to track them.
Para eventos agendados, a entrada prompt é obrigatória já que não há comentário para extrair instruções. Fluxos de trabalho agendados são executados sem um contexto de usuário para verificação de permissão, portanto o fluxo de trabalho deve conceder contents: write e pull-requests: write se você espera que Dropstone crie branches ou PRs.
Exemplo de Pull Request
Revise automaticamente PRs quando são abertos ou atualizados:
name: dropstone-review
on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
jobs:
review:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
pull-requests: read
issues: read
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
- uses: blankline-org/dropstone-cli/github@latest
env:
DROPSTONE_API_KEY: ${{ secrets.DROPSTONE_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
model: dropstone/dropstone-pro
use_github_token: true
prompt: |
Review this pull request:
- Check for code quality issues
- Look for potential bugs
- Suggest improvements
Para eventos pull_request, se nenhum prompt for fornecido, Dropstone usa como padrão revisar o pull request.
Exemplo de Triagem de Problemas
Faça triagem automaticamente de novos problemas. Este exemplo filtra para contas com mais de 30 dias para reduzir spam:
name: Issue Triage
on:
issues:
types: [opened]
jobs:
triage:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: write
pull-requests: write
issues: write
steps:
- name: Check account age
id: check
uses: actions/github-script@v7
with:
script: |
const user = await github.rest.users.getByUsername({
username: context.payload.issue.user.login
});
const created = new Date(user.data.created_at);
const days = (Date.now() - created) / (1000 * 60 * 60 * 24);
return days >= 30;
result-encoding: string
- uses: actions/checkout@v6
if: steps.check.outputs.result == 'true'
with:
persist-credentials: false
- uses: blankline-org/dropstone-cli/github@latest
if: steps.check.outputs.result == 'true'
env:
DROPSTONE_API_KEY: ${{ secrets.DROPSTONE_API_KEY }}
with:
model: dropstone/dropstone-pro
prompt: |
Review this issue. If there's a clear fix or relevant docs:
- Provide documentation links
- Add error handling guidance for code examples
Otherwise, do not comment.
Para eventos issues, a entrada prompt é obrigatória já que não há comentário para extrair instruções.
Prompts personalizados
Substitua o prompt padrão para personalizar o comportamento do Dropstone para seu fluxo de trabalho.
- uses: blankline-org/dropstone-cli/github@latest
with:
model: dropstone/dropstone-pro
prompt: |
Review this pull request:
- Check for code quality issues
- Look for potential bugs
- Suggest improvements
Isso é útil para aplicar critérios de revisão específicos, padrões de codificação ou áreas de foco relevantes para seu projeto.
Exemplos
Aqui estão alguns exemplos de como você pode usar Dropstone no GitHub.
-
Explicar um problema
Adicione este comentário em um problema do GitHub.
/dropstone explain this issueDropstone lerá toda a thread, incluindo todos os comentários, e responderá com uma explicação clara.
-
Corrigir um problema
Em um problema do GitHub, diga:
/dropstone fix thisE Dropstone criará uma nova branch, implementará as alterações e abrirá um PR com as alterações.
-
Revisar PRs e fazer alterações
Deixe o seguinte comentário em um PR do GitHub.
/dropstone delete the attachment from S3 when the note is removedDropstone implementará a alteração solicitada e fará commit na mesma PR.
-
Revisar linhas de código específicas
Deixe um comentário diretamente em linhas de código na aba "Files" do PR. Dropstone detecta automaticamente o arquivo, números de linha e contexto de diff para fornecer respostas precisas.
[Comment on specific lines in Files tab] /dropstone add error handling hereAo comentar em linhas específicas, Dropstone recebe:
- O arquivo exato sendo revisado
- As linhas específicas de código
- O contexto de diff circundante
- Informações de número de linha
Isso permite solicitações mais direcionadas sem precisar especificar caminhos de arquivo ou números de linha manualmente.