Aller au contenu

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 :

Fenêtre de terminal
opencode github install

Cela 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.

  1. Installer l’application GitHub

    Rendez-vous sur github.com/apps/opencode-agent. Assurez-vous qu’elle est installee sur le depot cible.

  2. Ajouter le workflow

    Ajoutez le fichier workflow suivant a .github/workflows/opencode.yml dans votre depot. Assurez-vous de definir le model approprie et les cles API requises dans env.

    .github/workflows/opencode.yml
    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
    - 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
  3. 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 de fournisseur/modele. Ceci est requis.

  • agent: L’agent a utiliser. Doit etre un agent primaire. Revient a default_agent de 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_TOKEN integre du runner GitHub Action sans installer l’application GitHub OpenCode. Assurez-vous simplement d’accorder les autorisations requises dans votre workflow :

    permissions:
    id-token: write
    contents: write
    pull-requests: write
    issues: write

    Vous 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’evenementDeclenche parDetails
issue_commentCommentaire sur une issue ou PRMentionnez /opencode ou /oc dans votre commentaire. OpenCode lit le contexte et peut creer des branches, ouvrir des PR ou repondre.
pull_request_review_commentCommentaire sur des lignes de code specifiques dans une PRMentionnez /opencode ou /oc lors de la revision du code. OpenCode recoit le chemin du fichier, les numeros de ligne et le contexte du diff.
issuesIssue ouverte ou modifieeDeclencher automatiquement OpenCode lorsque les issues sont creees ou modifiees. Necessite l’entree prompt.
pull_requestPR ouverte ou mise a jourDeclencher automatiquement OpenCode lorsque les PR sont ouvertes, synchronisees ou rouvertes. Utile pour les revisions automatiques.
schedulePlanification basee sur cronExecuter OpenCode selon un calendrier. Necessite l’entree prompt. La sortie va vers les logs et les PR (pas d’issue pour commenter).
workflow_dispatchDeclenchement manuel depuis l’interface GitHubDeclencher 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 :

.github/workflows/opencode-scheduled.yml
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 :

.github/workflows/opencode-review.yml
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 improvements

Pour 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 :

.github/workflows/opencode-triage.yml
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.

.github/workflows/opencode.yml
- 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

Ceci 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 issue

    OpenCode 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 this

    Et 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 /oc

    OpenCode 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 here

    Lorsque 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.