GitHub
Gunakan Dropstone dalam GitHub issues dan pull-requests.
Dropstone terintegrasi dengan alur kerja GitHub Anda. Sebutkan /dropstone dalam komentar apa pun dan Dropstone akan menjalankan tugas di dalam GitHub Actions runner Anda.
Fitur
- Triage issues: Minta Dropstone untuk melihat issue dan menjelaskannya kepada Anda.
- Perbaiki dan implementasikan: Minta Dropstone untuk memperbaiki issue atau mengimplementasikan fitur. Dan itu akan bekerja di branch baru dan mengirimkan PR dengan semua perubahan.
- Aman: Dropstone berjalan di dalam runner GitHub Anda.
Instalasi
Jalankan perintah berikut di proyek yang berada di repo GitHub:
dropstone github install
Ini akan memandu Anda melalui instalasi aplikasi GitHub, membuat workflow, dan menyiapkan secrets.
Setup Manual
Atau Anda dapat menyiapkannya secara manual.
-
Instal aplikasi GitHub
Kunjungi github.com/apps/dropstone-agent. Pastikan itu diinstal di repository target.
-
Tambahkan workflow
Tambahkan file workflow berikut ke
.github/workflows/dropstone.ymldi repo Anda. Pastikan untuk mengaturmodelyang sesuai dan API keys yang diperlukan dienv.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 -
Simpan API key Anda di repository secrets
Di Settings organisasi atau repository Anda, perluas Secrets and variables di sebelah kiri dan pilih Actions. Tambahkan
DROPSTONE_API_KEYsebagai repository secret baru.
Konfigurasi
-
model: Tier Dropstone yang akan digunakan. Salah satu daridropstone/dropstone-fast,dropstone/dropstone-pro, ataudropstone/dropstone-heavy. Ini wajib. -
agent: Agent yang akan digunakan. Harus berupa primary agent. Kembali kedefault_agentdari config atau"build"jika tidak ditemukan. -
share: Apakah akan membagikan sesi Dropstone. Default ke true untuk repository publik. -
prompt: Prompt kustom opsional untuk mengganti perilaku default. Gunakan ini untuk menyesuaikan cara Dropstone memproses permintaan. -
token: Token akses GitHub opsional untuk melakukan operasi seperti membuat komentar, melakukan commit, dan membuka pull request. Secara default, Dropstone menggunakan installation access token dari Dropstone GitHub App, jadi commit, komentar, dan pull request muncul berasal dari app.Alternatifnya, Anda dapat menggunakan built-in
GITHUB_TOKENGitHub Action runner tanpa menginstal Dropstone GitHub App. Pastikan untuk memberikan izin yang diperlukan di workflow Anda:permissions: id-token: write contents: write pull-requests: write issues: writeAnda juga dapat menggunakan personal access tokens(PAT) jika lebih disukai.
Event yang Didukung
Dropstone dapat dipicu oleh event GitHub berikut:
| Tipe Event | Dipicu Oleh | Detail |
|---|---|---|
issue_comment | Komentar pada issue atau PR | Sebutkan /dropstone dalam komentar Anda. Dropstone membaca konteks dan dapat membuat branch, membuka PR, atau membalas. |
pull_request_review_comment | Komentar pada baris kode tertentu di PR | Sebutkan /dropstone saat meninjau kode. Dropstone menerima path file, nomor baris, dan konteks diff. |
issues | Issue dibuka atau diedit | Secara otomatis picu Dropstone ketika issue dibuat atau dimodifikasi. Memerlukan input prompt. |
pull_request | PR dibuka atau diperbarui | Secara otomatis picu Dropstone ketika PR dibuka, disinkronkan, atau dibuka kembali. Berguna untuk review otomatis. |
schedule | Jadwal berbasis Cron | Jalankan Dropstone sesuai jadwal. Memerlukan input prompt. Output masuk ke log dan PR (tidak ada issue untuk berkomentar). |
workflow_dispatch | Pemicu manual dari GitHub UI | Picu Dropstone sesuai permintaan melalui tab Actions. Memerlukan input prompt. Output masuk ke log dan PR. |
Contoh Jadwal
Jalankan Dropstone sesuai jadwal untuk melakukan tugas otomatis:
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.
Untuk event terjadwal, input prompt wajib karena tidak ada komentar untuk mengekstrak instruksi. Workflow terjadwal berjalan tanpa konteks pengguna untuk permission-check, jadi workflow harus memberikan contents: write dan pull-requests: write jika Anda mengharapkan Dropstone membuat branch atau PR.
Contoh Pull Request
Secara otomatis tinjau PR ketika dibuka atau diperbarui:
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
Untuk event pull_request, jika tidak ada prompt yang disediakan, Dropstone default untuk meninjau pull request.
Contoh Issues Triage
Secara otomatis triage issue baru. Contoh ini memfilter ke akun yang lebih tua dari 30 hari untuk mengurangi 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.
Untuk event issues, input prompt wajib karena tidak ada komentar untuk mengekstrak instruksi.
Prompt kustom
Ganti prompt default untuk menyesuaikan perilaku Dropstone dengan alur kerja Anda.
- 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
Ini berguna untuk menegakkan kriteria review tertentu, standar coding, atau area fokus yang relevan dengan proyek Anda.
Contoh
Berikut adalah beberapa contoh cara Anda dapat menggunakan Dropstone di GitHub.
-
Jelaskan issue
Tambahkan komentar ini di GitHub issue.
/dropstone explain this issueDropstone akan membaca seluruh thread, termasuk semua komentar, dan membalas dengan penjelasan yang jelas.
-
Perbaiki issue
Di GitHub issue, katakan:
/dropstone fix thisDan Dropstone akan membuat branch baru, mengimplementasikan perubahan, dan membuka PR dengan perubahan tersebut.
-
Tinjau PR dan buat perubahan
Tinggalkan komentar berikut di GitHub PR.
/dropstone delete the attachment from S3 when the note is removedDropstone akan mengimplementasikan perubahan yang diminta dan melakukan commit ke PR yang sama.
-
Tinjau baris kode tertentu
Tinggalkan komentar langsung pada baris kode di tab "Files" PR. Dropstone secara otomatis mendeteksi file, nomor baris, dan konteks diff untuk memberikan respons yang tepat.
[Comment on specific lines in Files tab] /dropstone add error handling hereSaat berkomentar pada baris tertentu, Dropstone menerima:
- File yang sedang ditinjau
- Baris kode tertentu
- Konteks diff sekitarnya
- Informasi nomor baris
Ini memungkinkan permintaan yang lebih tertarget tanpa perlu menentukan path file atau nomor baris secara manual.