GitHub
Usa Dropstone nei problemi e nelle pull request di GitHub.
Dropstone si integra con il tuo flusso di lavoro GitHub. Menziona /dropstone in qualsiasi commento e Dropstone eseguirà l'attività all'interno del tuo runner GitHub Actions.
Funzionalità
- Triage dei problemi: Chiedi a Dropstone di esaminare un problema e spiegartelo.
- Correzione e implementazione: Chiedi a Dropstone di correggere un problema o implementare una funzionalità. Lavorerà in un nuovo branch e invierà una PR con tutti i cambiamenti.
- Sicuro: Dropstone viene eseguito all'interno dei runner di GitHub.
Installazione
Esegui il seguente comando in un progetto che si trova in un repository GitHub:
dropstone github install
Questo ti guiderà attraverso l'installazione dell'app GitHub, la creazione del workflow e la configurazione dei segreti.
Configurazione manuale
Oppure puoi configurarlo manualmente.
-
Installa l'app GitHub
Vai a github.com/apps/dropstone-agent. Assicurati che sia installata nel repository di destinazione.
-
Aggiungi il workflow
Aggiungi il seguente file di workflow a
.github/workflows/dropstone.ymlnel tuo repository. Assicurati di impostare ilmodelappropriato e le chiavi API richieste inenv.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 -
Archivia la tua chiave API nei segreti del repository
Nelle Impostazioni della tua organizzazione o repository, espandi Secrets and variables a sinistra e seleziona Actions. Aggiungi
DROPSTONE_API_KEYcome nuovo segreto del repository.
Configurazione
-
model: Il tier di Dropstone da utilizzare. Uno tradropstone/dropstone-fast,dropstone/dropstone-pro, odropstone/dropstone-heavy. Questo è obbligatorio. -
agent: L'agente da utilizzare. Deve essere un agente primario. Ricade sudefault_agentdalla configurazione o"build"se non trovato. -
share: Se condividere la sessione di Dropstone. Predefinito a true per i repository pubblici. -
prompt: Prompt personalizzato opzionale per sovrascrivere il comportamento predefinito. Usalo per personalizzare il modo in cui Dropstone elabora le richieste. -
token: Token di accesso GitHub opzionale per eseguire operazioni come creare commenti, eseguire commit e aprire pull request. Per impostazione predefinita, Dropstone utilizza il token di accesso dell'installazione dall'app GitHub di Dropstone, quindi i commit, i commenti e le pull request appaiono come provenienti dall'app.In alternativa, puoi utilizzare il built-in
GITHUB_TOKENdel runner GitHub Actions senza installare l'app GitHub di Dropstone. Assicurati solo di concedere i permessi richiesti nel tuo workflow:permissions: id-token: write contents: write pull-requests: write issues: writePuoi anche utilizzare personal access tokens(PAT) se preferito.
Eventi supportati
Dropstone può essere attivato dai seguenti eventi GitHub:
| Tipo di evento | Attivato da | Dettagli |
|---|---|---|
issue_comment | Commento su un problema o PR | Menziona /dropstone nel tuo commento. Dropstone legge il contesto e può creare branch, aprire PR o rispondere. |
pull_request_review_comment | Commento su righe di codice specifiche in una PR | Menziona /dropstone durante la revisione del codice. Dropstone riceve il percorso del file, i numeri di riga e il contesto diff. |
issues | Problema aperto o modificato | Attiva automaticamente Dropstone quando i problemi vengono creati o modificati. Richiede input prompt. |
pull_request | PR aperta o aggiornata | Attiva automaticamente Dropstone quando le PR vengono aperte, sincronizzate o riaperte. Utile per revisioni automatizzate. |
schedule | Pianificazione basata su cron | Esegui Dropstone secondo una pianificazione. Richiede input prompt. L'output va ai log e alle PR (nessun problema su cui commentare). |
workflow_dispatch | Attivazione manuale dall'interfaccia utente di GitHub | Attiva Dropstone su richiesta tramite la scheda Actions. Richiede input prompt. L'output va ai log e alle PR. |
Esempio di pianificazione
Esegui Dropstone secondo una pianificazione per eseguire attività automatizzate:
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.
Per gli eventi pianificati, l'input prompt è obbligatorio poiché non c'è un commento da cui estrarre le istruzioni. I workflow pianificati vengono eseguiti senza un contesto utente per il controllo dei permessi, quindi il workflow deve concedere contents: write e pull-requests: write se ti aspetti che Dropstone crei branch o PR.
Esempio di Pull Request
Rivedi automaticamente le PR quando vengono aperte o aggiornate:
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
Per gli eventi pull_request, se non viene fornito alcun prompt, Dropstone predefinisce la revisione della pull request.
Esempio di Triage dei problemi
Triage automatico dei nuovi problemi. Questo esempio filtra gli account più vecchi di 30 giorni per ridurre lo 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.
Per gli eventi issues, l'input prompt è obbligatorio poiché non c'è un commento da cui estrarre le istruzioni.
Prompt personalizzati
Sovrascrivi il prompt predefinito per personalizzare il comportamento di Dropstone per il tuo flusso di lavoro.
- 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
Questo è utile per applicare criteri di revisione specifici, standard di codifica o aree di interesse rilevanti per il tuo progetto.
Esempi
Ecco alcuni esempi di come puoi utilizzare Dropstone in GitHub.
-
Spiega un problema
Aggiungi questo commento in un problema GitHub.
/dropstone explain this issueDropstone leggerà l'intero thread, inclusi tutti i commenti, e risponderà con una spiegazione chiara.
-
Correggi un problema
In un problema GitHub, scrivi:
/dropstone fix thisE Dropstone creerà un nuovo branch, implementerà i cambiamenti e aprirà una PR con i cambiamenti.
-
Rivedi le PR e apporta modifiche
Lascia il seguente commento su una PR di GitHub.
/dropstone delete the attachment from S3 when the note is removedDropstone implementerà il cambiamento richiesto e lo farà il commit nello stesso PR.
-
Rivedi righe di codice specifiche
Lascia un commento direttamente su righe di codice nella scheda "Files" della PR. Dropstone rileva automaticamente il file, i numeri di riga e il contesto diff per fornire risposte precise.
[Comment on specific lines in Files tab] /dropstone add error handling hereQuando commenti su righe specifiche, Dropstone riceve:
- Il file esatto in fase di revisione
- Le righe di codice specifiche
- Il contesto diff circostante
- Informazioni sul numero di riga
Questo consente richieste più mirate senza la necessità di specificare manualmente i percorsi dei file o i numeri di riga.