GitHub
Utilisez OpenCode dans les issues et pull-requests GitHub.
OpenCode s’integre a votre flux de travail GitHub. Mentionnez /opencode ou /oc dans votre commentaire, et OpenCode executera des taches dans votre runner GitHub Actions.
Fonctionnalites
- Triage des issues: Demandez a OpenCode d’examiner une issue et de vous l’expliquer.
- Corriger et implementer: Demandez a OpenCode de corriger une issue ou d’implementer une fonctionnalite. Il travaillera dans une nouvelle branche et soumettra une PR avec tous les changements.
- Securise: OpenCode s’execute dans les runners de votre GitHub.
Installation
Lancez la commande suivante dans un projet qui est dans un depot GitHub :
opencode github installCela vous guidera dans l’installation de l’application GitHub, la creation du workflow et la configuration des secrets.
Configuration manuelle
Ou vous pouvez le configurer manuellement.
-
Installer l’application GitHub
Rendez-vous sur github.com/apps/opencode-agent. Assurez-vous qu’elle est installee sur le depot cible.
-
Ajouter le workflow
Ajoutez le fichier workflow suivant a
.github/workflows/opencode.ymldans votre depot. Assurez-vous de definir lemodelapproprie et les cles API requises dansenv..github/workflows/opencode.yml name: opencodeon: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-latestpermissions:id-token: writesteps:- name: Checkout repositoryuses: actions/checkout@v6with:fetch-depth: 1- name: Run OpenCodeuses: anomalyco/opencode/github@latestenv:ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}with:model: anthropic/claude-sonnet-4-20250514# share: true# github_token: xxxx -
Stocker les cles API dans les secrets
Dans les parametres de votre organisation ou projet, developpez Secrets et variables a gauche et selectionnez Actions. Ajoutez les cles API requises.
Configuration
-
model: Le modele a utiliser avec OpenCode. Prend le format defournisseur/modele. Ceci est requis. -
agent: L’agent a utiliser. Doit etre un agent primaire. Revient adefault_agentde la configuration ou"build"s’il n’est pas trouve. -
share: S’il faut partager la session OpenCode. Par defaut a true pour les depots publics. -
prompt: Prompt personnalise optionnel pour remplacer le comportement par defaut. Utilisez-le pour personnaliser la facon dont OpenCode traite les demandes. -
token: Jeton d’acces GitHub optionnel pour effectuer des operations telles que la creation de commentaires, la validation des changements et l’ouverture de pull requests. Par defaut, OpenCode utilise le jeton d’acces d’installation de l’application GitHub OpenCode, donc les validations, commentaires et pull requests apparaissent comme provenant de l’application.Alternativement, vous pouvez utiliser le
GITHUB_TOKENintegre du runner GitHub Action sans installer l’application GitHub OpenCode. Assurez-vous simplement d’accorder les autorisations requises dans votre workflow :permissions:id-token: writecontents: writepull-requests: writeissues: writeVous pouvez egalement utiliser des jetons d’acces personnels(PAT) si vous preferez.
Evenements pris en charge
OpenCode peut etre declenche par les evenements GitHub suivants :
| Type d’evenement | Declenche par | Details |
|---|---|---|
issue_comment | Commentaire sur une issue ou PR | Mentionnez /opencode ou /oc dans votre commentaire. OpenCode lit le contexte et peut creer des branches, ouvrir des PR ou repondre. |
pull_request_review_comment | Commentaire sur des lignes de code specifiques dans une PR | Mentionnez /opencode ou /oc lors de la revision du code. OpenCode recoit le chemin du fichier, les numeros de ligne et le contexte du diff. |
issues | Issue ouverte ou modifiee | Declencher automatiquement OpenCode lorsque les issues sont creees ou modifiees. Necessite l’entree prompt. |
pull_request | PR ouverte ou mise a jour | Declencher automatiquement OpenCode lorsque les PR sont ouvertes, synchronisees ou rouvertes. Utile pour les revisions automatiques. |
schedule | Planification basee sur cron | Executer OpenCode selon un calendrier. Necessite l’entree prompt. La sortie va vers les logs et les PR (pas d’issue pour commenter). |
workflow_dispatch | Declenchement manuel depuis l’interface GitHub | Declencher OpenCode a la demande via l’onglet Actions. Necessite l’entree prompt. La sortie va vers les logs et les PR. |
Exemple de planification
Executer OpenCode selon un calendrier pour effectuer des taches automatisees :
name: Scheduled OpenCode Task
on: schedule: - cron: "0 9 * * 1" # Tous les lundis a 9h 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
- 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.Pour les evenements planifies, l’entree prompt est requise car il n’y a pas de commentaire pour extraire les instructions. Les workflows planifies s’executent sans contexte utilisateur pour verifier les autorisations, donc le workflow doit accorder contents: write et pull-requests: write si vous vous attendez a ce qu’OpenCode cree des branches ou des PR.
Exemple de Pull Request
Reviser automatiquement les PR lorsqu’elles sont ouvertes ou mises a jour :
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 - uses: anomalyco/opencode/github@latest env: ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} with: model: anthropic/claude-sonnet-4-20250514 prompt: | Review this pull request: - Check for code quality issues - Look for potential bugs - Suggest improvementsPour les evenements pull_request, si aucun prompt n’est fourni, OpenCode revise par defaut la pull request.
Exemple de triage d’issues
Trier automatiquement les nouvelles issues. Cet exemple filtre les comptes de plus de 30 jours pour reduire le 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'
- 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.Pour les evenements issues, l’entree prompt est requise car il n’y a pas de commentaire pour extraire les instructions.
Prompts personnalises
Remplacer le prompt par defaut pour personnaliser le comportement d’OpenCode pour votre 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 improvementsCeci est utile pour faire respecter des criteres de revision specifiques, des normes de codage ou des domaines d’interet pertinents pour votre projet.
Exemples
Voici quelques exemples de la facon dont vous pouvez utiliser OpenCode dans GitHub.
-
Expliquer une issue
Ajoutez ce commentaire dans une issue GitHub.
/opencode explain this issueOpenCode lira l’ensemble du fil, y compris tous les commentaires, et repondra avec une explication claire.
-
Corriger une issue
Dans une issue GitHub, dites :
/opencode fix thisEt OpenCode creera une nouvelle branche, implementera les changements et ouvrira une PR avec les changements.
-
Reviser les PR et apporter des modifications
Laissez le commentaire suivant sur une PR GitHub.
Delete the attachment from S3 when the note is removed /ocOpenCode implementera le changement demande et le validera dans la meme PR.
-
Reviser des lignes de code specifiques
Laissez un commentaire directement sur les lignes de code dans l’onglet “Fichiers” de la PR. OpenCode detecte automatiquement le fichier, les numeros de ligne et le contexte du diff pour fournir des reponses precises.
[Commentaire sur des lignes specifiques dans l'onglet Fichiers]/oc add error handling hereLorsque vous commentez des lignes specifiques, OpenCode recoit :
- Le fichier exact en cours de revision
- Les lignes de code specifiques
- Le contexte diff environnant
- Les informations de numeros de ligne
Cela permet des demandes plus ciblees sans avoir besoin de specifier manuellement les chemins de fichiers ou les numeros de ligne.