GitHub
Используйте OpenCode в issues и pull requests 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 requests. По умолчанию OpenCode использует токен доступа установки из приложения OpenCode GitHub App, поэтому коммиты, комментарии и pull requests отображаются как исходящие от приложения.В качестве альтернативы вы можете использовать встроенный
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 | Ручной запуск из UI 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 в вашем workflow.
- 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
- Информацию о номерах строк
Это позволяет делать более целенаправленные запросы без необходимости вручную указывать пути к файлам или номера строк.