GitHub
Используйте Dropstone в GitHub issues и pull-requests.
Dropstone интегрируется с вашим рабочим процессом GitHub. Упомяните /dropstone в любом комментарии, и Dropstone выполнит задачу внутри вашего GitHub Actions runner.
Возможности
- Сортировка issues: Попросите Dropstone разобраться с issue и объяснить его вам.
- Исправление и реализация: Попросите Dropstone исправить issue или реализовать функцию. Он будет работать в новой ветке и отправит PR со всеми изменениями.
- Безопасность: Dropstone работает внутри ваших GitHub runners.
Установка
Выполните следующую команду в проекте, который находится в GitHub репозитории:
dropstone github install
Это проведет вас через установку GitHub приложения, создание workflow и настройку secrets.
Ручная настройка
Или вы можете настроить это вручную.
-
Установите GitHub приложение
Перейдите на github.com/apps/dropstone-agent. Убедитесь, что оно установлено в целевом репозитории.
-
Добавьте workflow
Добавьте следующий файл workflow в
.github/workflows/dropstone.ymlв вашем репозитории. Убедитесь, что установили соответствующийmodelи необходимые API ключи в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 -
Сохраните ваш API ключ в repository secrets
В Settings вашей организации или репозитория разверните Secrets and variables слева и выберите Actions. Добавьте
DROPSTONE_API_KEYкак новый repository secret.
Конфигурация
-
model: Уровень Dropstone для использования. Один изdropstone/dropstone-fast,dropstone/dropstone-proилиdropstone/dropstone-heavy. Это обязательно. -
agent: Агент для использования. Должен быть основным агентом. Возвращается кdefault_agentиз конфига или"build", если не найден. -
share: Делиться ли сессией Dropstone. По умолчанию true для публичных репозиториев. -
prompt: Опциональный пользовательский prompt для переопределения поведения по умолчанию. Используйте это для настройки того, как Dropstone обрабатывает запросы. -
token: Опциональный GitHub access token для выполнения операций, таких как создание комментариев, коммиты и открытие pull requests. По умолчанию Dropstone использует installation access token из Dropstone GitHub App, поэтому коммиты, комментарии и pull requests появляются как от приложения.Альтернативно, вы можете использовать встроенный GITHUB_TOKEN GitHub Action runner без установки Dropstone GitHub App. Просто убедитесь, что предоставили необходимые разрешения в вашем workflow:
permissions: id-token: write contents: write pull-requests: write issues: writeВы также можете использовать personal access tokens(PAT), если предпочитаете.
Поддерживаемые события
Dropstone может быть запущен следующими GitHub событиями:
| Тип события | Запущено | Детали |
|---|---|---|
issue_comment | Комментарий на issue или PR | Упомяните /dropstone в вашем комментарии. Dropstone читает контекст и может создавать ветки, открывать PRs или отвечать. |
pull_request_review_comment | Комментарий на конкретные строки кода в PR | Упомяните /dropstone при рецензировании кода. Dropstone получает путь файла, номера строк и контекст diff. |
issues | Issue открыта или отредактирована | Автоматически запустить Dropstone при создании или изменении issues. Требует ввод prompt. |
pull_request | PR открыта или обновлена | Автоматически запустить Dropstone при открытии, синхронизации или переоткрытии PRs. Полезно для автоматизированных рецензий. |
schedule | Расписание на основе Cron | Запустить Dropstone по расписанию. Требует ввод prompt. Вывод идет в логи и PRs (нет issue для комментария). |
workflow_dispatch | Ручной запуск из GitHub UI | Запустить Dropstone по требованию через вкладку Actions. Требует ввод prompt. Вывод идет в логи и PRs. |
Пример расписания
Запустить Dropstone по расписанию для выполнения автоматизированных задач:
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.
Для запланированных событий ввод prompt обязателен, так как нет комментария для извлечения инструкций. Запланированные workflows работают без контекста пользователя для проверки разрешений, поэтому workflow должен предоставить contents: write и pull-requests: write, если вы ожидаете, что Dropstone создаст ветки или PRs.
Пример Pull Request
Автоматически рецензировать PRs при их открытии или обновлении:
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
Для событий pull_request, если prompt не предоставлен, Dropstone по умолчанию рецензирует pull request.
Пример сортировки Issues
Автоматически сортировать новые issues. Этот пример фильтрует аккаунты старше 30 дней для снижения спама:
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.
Для событий issues ввод prompt обязателен, так как нет комментария для извлечения инструкций.
Пользовательские prompts
Переопределите prompt по умолчанию для настройки поведения Dropstone под ваш workflow.
- 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
Это полезно для применения конкретных критериев рецензии, стандартов кодирования или областей фокуса, релевантных для вашего проекта.
Примеры
Вот несколько примеров того, как вы можете использовать Dropstone в GitHub.
-
Объясните issue
Добавьте этот комментарий в GitHub issue.
/dropstone explain this issueDropstone прочитает весь поток, включая все комментарии, и ответит с четким объяснением.
-
Исправьте issue
В GitHub issue скажите:
/dropstone fix thisИ Dropstone создаст новую ветку, реализует изменения и откроет PR с изменениями.
-
Рецензируйте PRs и вносите изменения
Оставьте следующий комментарий на GitHub PR.
/dropstone delete the attachment from S3 when the note is removedDropstone реализует запрошенное изменение и закоммитит его в тот же PR.
-
Рецензируйте конкретные строки кода
Оставьте комментарий непосредственно на строках кода во вкладке "Files" PR. Dropstone автоматически определяет файл, номера строк и контекст diff для предоставления точных ответов.
[Comment on specific lines in Files tab] /dropstone add error handling hereПри комментировании конкретных строк Dropstone получает:
- Точный файл, который рецензируется
- Конкретные строки кода
- Окружающий контекст diff
- Информацию о номерах строк
Это позволяет делать более целевые запросы без необходимости вручную указывать пути файлов или номера строк.