Dropstone Docs

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.

  1. Instal aplikasi GitHub

    Kunjungi github.com/apps/dropstone-agent. Pastikan itu diinstal di repository target.

  2. Tambahkan workflow

    Tambahkan file workflow berikut ke .github/workflows/dropstone.yml di repo Anda. Pastikan untuk mengatur model yang sesuai dan API keys yang diperlukan di env.

    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
    
  3. 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_KEY sebagai repository secret baru.


Konfigurasi

  • model: Tier Dropstone yang akan digunakan. Salah satu dari dropstone/dropstone-fast, dropstone/dropstone-pro, atau dropstone/dropstone-heavy. Ini wajib.

  • agent: Agent yang akan digunakan. Harus berupa primary agent. Kembali ke default_agent dari 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_TOKEN GitHub 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: write
    

    Anda juga dapat menggunakan personal access tokens(PAT) jika lebih disukai.


Event yang Didukung

Dropstone dapat dipicu oleh event GitHub berikut:

Tipe EventDipicu OlehDetail
issue_commentKomentar pada issue atau PRSebutkan /dropstone dalam komentar Anda. Dropstone membaca konteks dan dapat membuat branch, membuka PR, atau membalas.
pull_request_review_commentKomentar pada baris kode tertentu di PRSebutkan /dropstone saat meninjau kode. Dropstone menerima path file, nomor baris, dan konteks diff.
issuesIssue dibuka atau dieditSecara otomatis picu Dropstone ketika issue dibuat atau dimodifikasi. Memerlukan input prompt.
pull_requestPR dibuka atau diperbaruiSecara otomatis picu Dropstone ketika PR dibuka, disinkronkan, atau dibuka kembali. Berguna untuk review otomatis.
scheduleJadwal berbasis CronJalankan Dropstone sesuai jadwal. Memerlukan input prompt. Output masuk ke log dan PR (tidak ada issue untuk berkomentar).
workflow_dispatchPemicu manual dari GitHub UIPicu 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 issue
    

    Dropstone akan membaca seluruh thread, termasuk semua komentar, dan membalas dengan penjelasan yang jelas.

  • Perbaiki issue

    Di GitHub issue, katakan:

    /dropstone fix this
    

    Dan 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 removed
    

    Dropstone 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 here
    

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

Ctrl+I