GitHub
Utilisez OpenCode dans les problèmes et les pull-requests GitHub.
OpenCode s’intègre à votre flux de travail GitHub. Mentionnez /opencode ou /oc dans votre commentaire, et OpenCode exécutera des tâches dans votre runner GitHub Actions.
Caractéristiques
- Problèmes de triage : demandez à OpenCode d’examiner un problème et de vous l’expliquer.
- Réparer et implémenter : demandez à OpenCode de résoudre un problème ou d’implémenter une fonctionnalité. Et il fonctionnera dans une nouvelle branche et soumettra un PR avec tous les changements.
- Sécurisé : OpenCode s’exécute à l’intérieur de vos runners GitHub.
Installation
Exécutez la commande suivante dans un projet qui se trouve dans un dépôt GitHub :
opencode github installCela vous guidera dans l’installation de l’application GitHub, la création du flux de travail et la configuration des secrets.
Configuration manuelle
Ou vous pouvez le configurer manuellement.
- Installez l’application GitHub
Rendez-vous sur github.com/apps/opencode-agent. Assurez-vous qu’il est installé sur le référentiel cible.
- Ajouter le flux de travail
Ajoutez le fichier de workflow suivant à .github/workflows/opencode.yml dans votre référentiel. Assurez-vous de définir les clés model appropriées et API requises dans env.
name: 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- Stockez les clés API en secret
Dans les paramètres de votre organisation ou de votre projet, développez Secrets et variables sur la gauche et sélectionnez Actions. Et ajoutez les clés API requises.
Configuration
model: Le modèle à utiliser avec OpenCode. Prend le formatprovider/model. Ceci est obligatoire.agent: l’agent à utiliser. Doit être un agent principal. Revient àdefault_agentà partir de la configuration ou à"build"s’il n’est pas trouvé.share: s’il faut partager la session OpenCode. La valeur par défaut est true pour les référentiels publics.prompt: invite personnalisée facultative pour remplacer le comportement par défaut. Utilisez-le pour personnaliser la façon dont OpenCode traite les demandes.token: jeton d’accès GitHub facultatif pour effectuer des opérations telles que la création de commentaires, la validation de modifications et l’ouverture de demandes d’extraction. Par défaut, OpenCode utilise le jeton d’accès à l’installation de l’application OpenCode GitHub, de sorte que les validations, les commentaires et les demandes d’extraction apparaissent comme provenant de l’application.
Vous pouvez également utiliser le GITHUB_TOKEN](https://docs.github.com/en/actions/tutorials/authenticate-with-github_token) intégré du runner GitHub Actions sans installer l’application OpenCode GitHub. Assurez-vous simplement d’accorder les autorisations requises dans votre flux de travail :
permissions: id-token: write contents: write pull-requests: write issues: writeVous pouvez également utiliser un jetons d’accès personnels(PAT) si vous préférez.
Événements pris en charge
OpenCode peut être déclenché par les événements GitHub suivants :
| Type d’événement | Déclenché par | Détails |
|---|---|---|
issue_comment | Commenter un problème ou un PR | Mentionnez /opencode ou /oc dans votre commentaire. OpenCode lit le contexte et peut créer des branches, ouvrir des PR ou répondre. |
pull_request_review_comment | Commentez des lignes de code spécifiques dans un PR | Mentionnez /opencode ou /oc lors de la révision du code. OpenCode reçoit le chemin du fichier, les numéros de ligne et le contexte de comparaison. |
issues | Numéro ouvert ou modifié | Déclenchez automatiquement OpenCode lorsque des problèmes sont créés ou modifiés. Nécessite une entrée prompt. |
pull_request | PR ouvert ou mis à jour | Déclenchez automatiquement OpenCode lorsque les PR sont ouverts, synchronisés ou rouverts. Utile pour les avis automatisés. |
schedule | Planification basée sur Cron | Exécutez OpenCode selon un planning. Nécessite une entrée prompt. La sortie va aux journaux et aux PR (aucun problème à commenter). |
workflow_dispatch | Déclenchement manuel depuis l’interface utilisateur GitHub | Déclenchez OpenCode à la demande via l’onglet Actions. Nécessite une entrée prompt. La sortie va aux journaux et aux PR. |
Exemple d’horaire
Exécutez OpenCode selon un planning pour effectuer des tâches automatisées :
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.Pour les événements planifiés, l’entrée prompt est obligatoire car il n’y a aucun commentaire pour extraire les instructions. Les workflows planifiés s’exécutent sans contexte utilisateur pour vérifier les autorisations. Le workflow doit donc accorder contents: write et pull-requests: write si vous vous attendez à ce que OpenCode crée des branches ou des PR.
Exemple de Pull Request
Examinez automatiquement les PR lorsqu’ils sont ouverts ou mis à 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 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 improvementsPour les événements pull_request, si aucun prompt n’est fourni, OpenCode examine par défaut la demande d’extraction.
Exemple de Issue Triage
Triez automatiquement les nouveaux problèmes. Cet exemple filtre les comptes datant de plus de 30 jours pour réduire 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' 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.Pour les événements issues, l’entrée prompt est obligatoire car il n’y a aucun commentaire à partir duquel extraire les instructions.
Invites personnalisées
Remplacez l’invite par défaut pour personnaliser le comportement de OpenCode pour votre flux de travail.
- 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 appliquer des critères d’évaluation spécifiques, des normes de codage ou des domaines d’intervention pertinents pour votre projet.
Exemples
Voici quelques exemples de la façon dont vous pouvez utiliser OpenCode dans GitHub.
- Expliquez un problème
Ajoutez ce commentaire dans un numéro GitHub.
/opencode explain this issueOpenCode lira l’intégralité du fil de discussion, y compris tous les commentaires, et répondra avec une explication claire.
- Résoudre un problème
Dans un numéro GitHub, dites :
/opencode fix thisEt OpenCode créera une nouvelle branche, mettra en œuvre les modifications et ouvrira un PR avec les modifications.
- Examinez les PR et apportez des modifications
Laissez le commentaire suivant sur un PR GitHub.
Delete the attachment from S3 when the note is removed /ocOpenCode mettra en œuvre la modification demandée et la validera dans le même PR.
- Revoir des lignes de code spécifiques
Laissez un commentaire directement sur les lignes de code dans l’onglet “Fichiers” du PR. OpenCode détecte automatiquement le fichier, les numéros de ligne et le contexte de comparaison pour fournir des réponses précises.
[Comment on specific lines in Files tab] /oc add error handling hereLorsqu’il commente des lignes spécifiques, OpenCode reçoit :
- Le dossier exact en cours d’examen
- Les lignes de code spécifiques
- Le contexte différentiel environnant
- Informations sur le numéro de ligne
Cela permet des requêtes plus ciblées sans avoir besoin de spécifier manuellement les chemins de fichiers ou les numéros de ligne.