GitHub
Verwenden Sie Dropstone in GitHub-Issues und Pull-Requests.
Dropstone integriert sich in Ihren GitHub-Workflow. Erwähnen Sie /dropstone in einem beliebigen Kommentar und Dropstone führt die Aufgabe in Ihrem GitHub Actions Runner aus.
Features
- Issues triagieren: Bitten Sie Dropstone, ein Issue zu untersuchen und es Ihnen zu erklären.
- Beheben und implementieren: Bitten Sie Dropstone, ein Issue zu beheben oder ein Feature zu implementieren. Es wird in einem neuen Branch arbeiten und einen PR mit allen Änderungen einreichen.
- Sicher: Dropstone läuft in Ihren GitHub Runnern.
Installation
Führen Sie den folgenden Befehl in einem Projekt aus, das sich in einem GitHub-Repository befindet:
dropstone github install
Dies führt Sie durch die Installation der GitHub-App, das Erstellen des Workflows und das Einrichten von Secrets.
Manuelle Einrichtung
Oder Sie können es manuell einrichten.
-
Installieren Sie die GitHub-App
Gehen Sie zu github.com/apps/dropstone-agent. Stellen Sie sicher, dass sie im Ziel-Repository installiert ist.
-
Fügen Sie den Workflow hinzu
Fügen Sie die folgende Workflow-Datei zu
.github/workflows/dropstone.ymlin Ihrem Repository hinzu. Stellen Sie sicher, dass Sie das entsprechendemodelund erforderliche API-Schlüssel inenvsetzen.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 -
Speichern Sie Ihren API-Schlüssel in Repository-Secrets
Gehen Sie in Ihren Organisations- oder Repository-Einstellungen, erweitern Sie Secrets and variables auf der linken Seite und wählen Sie Actions. Fügen Sie
DROPSTONE_API_KEYals neues Repository-Secret hinzu.
Konfiguration
-
model: Die zu verwendende Dropstone-Stufe. Eine vondropstone/dropstone-fast,dropstone/dropstone-prooderdropstone/dropstone-heavy. Dies ist erforderlich. -
agent: Der zu verwendende Agent. Muss ein primärer Agent sein. Fällt aufdefault_agentaus der Konfiguration oder"build"zurück, falls nicht gefunden. -
share: Ob die Dropstone-Sitzung geteilt werden soll. Standardmäßig true für öffentliche Repositories. -
prompt: Optionaler benutzerdefinierter Prompt zum Überschreiben des Standardverhaltens. Verwenden Sie dies, um anzupassen, wie Dropstone Anfragen verarbeitet. -
token: Optionales GitHub-Zugriffstoken zum Ausführen von Operationen wie dem Erstellen von Kommentaren, dem Committen von Änderungen und dem Öffnen von Pull Requests. Standardmäßig verwendet Dropstone das Installations-Zugriffstoken der Dropstone GitHub-App, sodass Commits, Kommentare und Pull Requests von der App stammen.Alternativ können Sie das integrierte
GITHUB_TOKENdes GitHub Action Runners verwenden, ohne die Dropstone GitHub-App zu installieren. Stellen Sie einfach sicher, dass Sie die erforderlichen Berechtigungen in Ihrem Workflow gewähren:permissions: id-token: write contents: write pull-requests: write issues: writeSie können auch persönliche Zugriffstokens (PAT) verwenden, wenn Sie dies bevorzugen.
Unterstützte Events
Dropstone kann durch die folgenden GitHub-Events ausgelöst werden:
| Event-Typ | Ausgelöst durch | Details |
|---|---|---|
issue_comment | Kommentar zu einem Issue oder PR | Erwähnen Sie /dropstone in Ihrem Kommentar. Dropstone liest den Kontext und kann Branches erstellen, PRs öffnen oder antworten. |
pull_request_review_comment | Kommentar zu bestimmten Code-Zeilen in einem PR | Erwähnen Sie /dropstone beim Überprüfen von Code. Dropstone erhält Dateipfad, Zeilennummern und Diff-Kontext. |
issues | Issue geöffnet oder bearbeitet | Dropstone automatisch auslösen, wenn Issues erstellt oder geändert werden. Erfordert prompt-Eingabe. |
pull_request | PR geöffnet oder aktualisiert | Dropstone automatisch auslösen, wenn PRs geöffnet, synchronisiert oder erneut geöffnet werden. Nützlich für automatisierte Reviews. |
schedule | Cron-basierter Zeitplan | Dropstone nach einem Zeitplan ausführen. Erfordert prompt-Eingabe. Ausgabe geht in Logs und PRs (kein Issue zum Kommentieren). |
workflow_dispatch | Manuelle Auslösung aus GitHub UI | Dropstone auf Anfrage über die Actions-Registerkarte auslösen. Erfordert prompt-Eingabe. Ausgabe geht in Logs und PRs. |
Schedule-Beispiel
Führen Sie Dropstone nach einem Zeitplan aus, um automatisierte Aufgaben auszuführen:
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.
Für geplante Events ist die prompt-Eingabe erforderlich, da es keinen Kommentar gibt, aus dem Anweisungen extrahiert werden können. Geplante Workflows werden ohne Benutzerkontext ausgeführt, um Berechtigungen zu überprüfen. Der Workflow muss daher contents: write und pull-requests: write gewähren, wenn Sie erwarten, dass Dropstone Branches oder PRs erstellt.
Pull Request-Beispiel
Überprüfen Sie PRs automatisch, wenn sie geöffnet oder aktualisiert werden:
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
Für pull_request-Events wird Dropstone standardmäßig den Pull Request überprüfen, wenn kein prompt bereitgestellt wird.
Issues-Triage-Beispiel
Triagieren Sie neue Issues automatisch. Dieses Beispiel filtert nach Konten, die älter als 30 Tage sind, um Spam zu reduzieren:
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.
Für issues-Events ist die prompt-Eingabe erforderlich, da es keinen Kommentar gibt, aus dem Anweisungen extrahiert werden können.
Benutzerdefinierte Prompts
Überschreiben Sie den Standard-Prompt, um das Verhalten von Dropstone für Ihren Workflow anzupassen.
- 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
Dies ist nützlich, um spezifische Review-Kriterien, Coding-Standards oder Fokusgebiete durchzusetzen, die für Ihr Projekt relevant sind.
Beispiele
Hier sind einige Beispiele, wie Sie Dropstone in GitHub verwenden können.
-
Ein Issue erklären
Fügen Sie diesen Kommentar in einem GitHub-Issue hinzu.
/dropstone explain this issueDropstone liest den gesamten Thread, einschließlich aller Kommentare, und antwortet mit einer klaren Erklärung.
-
Ein Issue beheben
Sagen Sie in einem GitHub-Issue:
/dropstone fix thisUnd Dropstone erstellt einen neuen Branch, implementiert die Änderungen und öffnet einen PR mit den Änderungen.
-
PRs überprüfen und Änderungen vornehmen
Hinterlassen Sie den folgenden Kommentar auf einem GitHub PR.
/dropstone delete the attachment from S3 when the note is removedDropstone implementiert die angeforderte Änderung und committed sie in denselben PR.
-
Bestimmte Code-Zeilen überprüfen
Hinterlassen Sie einen Kommentar direkt auf Code-Zeilen in der Registerkarte "Files" des PR. Dropstone erkennt automatisch die Datei, Zeilennummern und Diff-Kontext, um präzise Antworten zu geben.
[Comment on specific lines in Files tab] /dropstone add error handling hereBeim Kommentieren bestimmter Zeilen erhält Dropstone:
- Die genaue überprüfte Datei
- Die spezifischen Code-Zeilen
- Den umgebenden Diff-Kontext
- Zeilennummerinformationen
Dies ermöglicht gezielteren Anfragen, ohne Dateipfade oder Zeilennummern manuell angeben zu müssen.