GitHub
Используйте OpenCode в issues и pull-request'ах GitHub.
OpenCode интегрируется с вашим рабочим процессом GitHub. Упомяните /opencode или /oc в комментарии, и OpenCode выполнит задачи внутри вашего раннера GitHub Actions.
Возможности
- Сортировка issues: Попросите OpenCode изучить issue и объяснить его вам.
- Исправление и реализация: Попросите OpenCode исправить issue или реализовать функцию. И он будет работать в новой ветке и отправит PR со всеми изменениями.
- Безопасность: OpenCode работает внутри ваших раннеров GitHub.
Установка
Выполните следующую команду в проекте, который находится в репозитории GitHub:
opencode github installЭто проведёт вас через установку приложения GitHub, создание workflow и настройку secrets.
Ручная настройка
Или вы можете настроить его вручную.
-
Установите приложение GitHub Перейдите на github.com/apps/opencode-agent (opens in a new tab). Убедитесь, что оно установлено в целевом репозитории.
-
Добавьте workflow Добавьте следующий файл workflow в
.github/workflows/opencode.ymlв вашем репозитории. Убедитесь, что вы установили соответствующуюmodelи необходимые API-ключи вenv..github/workflows/opencode.ymlname: opencode on: issue_comment: types: [created] pull_request_review_comment: types: [created] jobs: opencode: if: | contains(github.event.comment.body, '/oc') || contains(github.event.comment.body, '/opencode') 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 OpenCode uses: anomalyco/opencode/github@latest env: ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} with: model: anthropic/claude-sonnet-4-20250514 # share: true # github_token: xxxx -
Сохраните API-ключи в secrets В настройках вашей организации или проекта разверните Secrets and variables слева и выберите Actions. И добавьте необходимые API-ключи.
Конфигурация
-
model: Модель для использования с OpenCode. Принимает форматprovider/model. Это обязательно. -
agent: Агент для использования. Должен быть основным агентом. При отсутствии возвращается кdefault_agentиз конфигурации или"build". -
share: Делиться ли сессией OpenCode. По умолчанию true для публичных репозиториев. -
prompt: Необязательный пользовательский промпт для переопределения поведения по умолчанию. Используйте его, чтобы настроить, как OpenCode обрабатывает запросы. -
token: Необязательный токен доступа GitHub для выполнения операций, таких как создание комментариев, коммит изменений и открытие pull-request'ов. По умолчанию OpenCode использует токен доступа установки из приложения OpenCode GitHub App, поэтому коммиты, комментарии и pull-request'ы отображаются как исходящие от приложения. В качестве альтернативы вы можете использовать встроенныйGITHUB_TOKEN(opens in a new tab) раннера GitHub Action без установки приложения OpenCode GitHub App. Просто убедитесь, что вы предоставили необходимые разрешения в вашем workflow:permissions: id-token: write contents: write pull-requests: write issues: writeВы также можете использовать персональные токены доступа (opens in a new tab) (PAT), если предпочитаете.
Поддерживаемые события
OpenCode может быть запущен следующими событиями GitHub:
| Тип события | Триггер | Детали |
|---|---|---|
issue_comment | Комментарий к issue или PR | Упомяните /opencode или /oc в комментарии. OpenCode читает контекст и может создавать ветки, открывать PR или отвечать. |
pull_request_review_comment | Комментарий к определённым строкам кода в PR | Упомяните /opencode или /oc во время ревью кода. OpenCode получает путь к файлу, номера строк и контекст diff. |
issues | Issue открыт или отредактирован | Автоматически запускает OpenCode при создании или изменении issues. Требуется ввод prompt. |
pull_request | PR открыт или обновлён | Автоматически запускает OpenCode при открытии, синхронизации или повторном открытии PR. Полезно для автоматизированных ревью. |
schedule | Расписание на основе cron | Запуск OpenCode по расписанию. Требуется ввод prompt. Вывод идёт в логи и PR (нет issue для комментирования). |
workflow_dispatch | Ручной запуск из интерфейса GitHub | Запуск OpenCode по требованию через вкладку Actions. Требуется ввод prompt. Вывод идёт в логи и PR. |
Пример расписания
Запускайте OpenCode по расписанию для выполнения автоматизированных задач:
name: Scheduled OpenCode Task
on:
schedule:
- cron: "0 9 * * 1" # Every Monday at 9am UTC
jobs:
opencode:
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 OpenCode
uses: anomalyco/opencode/github@latest
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
with:
model: anthropic/claude-sonnet-4-20250514
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 обязателен, так как нет комментария, из которого можно извлечь инструкции. Запланированные workflow выполняются без пользовательского контекста для проверки разрешений, поэтому workflow должен предоставить contents: write и pull-requests: write, если вы ожидаете, что OpenCode создаст ветки или PR.
Пример Pull Request
Автоматически проверяйте PR при их открытии или обновлении:
name: opencode-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: anomalyco/opencode/github@latest
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
model: anthropic/claude-sonnet-4-20250514
use_github_token: true
prompt: |
Review this pull request:
- Check for code quality issues
- Look for potential bugs
- Suggest improvementsДля событий pull_request, если prompt не указан, OpenCode по умолчанию выполняет ревью 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: anomalyco/opencode/github@latest
if: steps.check.outputs.result == 'true'
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
with:
model: anthropic/claude-sonnet-4-20250514
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 обязателен, так как нет комментария, из которого можно извлечь инструкции.
Пользовательские промпты
Переопределите промпт по умолчанию, чтобы настроить поведение OpenCode для вашего рабочего процесса.
- uses: anomalyco/opencode/github@latest
with:
model: anthropic/claude-sonnet-4-5
prompt: |
Review this pull request:
- Check for code quality issues
- Look for potential bugs
- Suggest improvementsЭто полезно для применения определённых критериев ревью, стандартов кодирования или областей фокуса, актуальных для вашего проекта.
Примеры
Вот несколько примеров того, как вы можете использовать OpenCode в GitHub.
-
Объяснить issue Добавьте этот комментарий в issue GitHub.
/opencode explain this issueOpenCode прочитает весь тред, включая все комментарии, и ответит с понятным объяснением.
-
Исправить issue В issue GitHub напишите:
/opencode fix thisИ OpenCode создаст новую ветку, реализует изменения и откроет PR с изменениями.
-
Ревью PR и внесение изменений Оставьте следующий комментарий в PR GitHub.
Delete the attachment from S3 when the note is removed /ocOpenCode реализует запрошенное изменение и закоммитит его в тот же PR.
-
Ревью определённых строк кода Оставьте комментарий непосредственно к строкам кода во вкладке "Files" PR. OpenCode автоматически определяет файл, номера строк и контекст diff, чтобы предоставить точные ответы.
[Comment on specific lines in Files tab] /oc add error handling hereПри комментировании определённых строк OpenCode получает:
- Точный файл, который ревьюится
- Конкретные строки кода
- Окружающий контекст diff
- Информацию о номерах строк
Это позволяет делать более целенаправленные запросы без необходимости вручную указывать пути к файлам или номера строк.