हिन्दी
दस्तावेज़
GitHub

GitHub

GitHub issues और pull-requests में OpenCode का उपयोग करें।

OpenCode आपके GitHub वर्कफ़्लो के साथ एकीकृत होता है। अपनी टिप्पणी में /opencode या /oc का उल्लेख करें, और OpenCode आपके GitHub Actions runner के भीतर कार्यों को निष्पादित करेगा।


विशेषताएँ

  • issues ट्राइएज करें : OpenCode से किसी issue पर ध्यान देने और इसे आपको समझाने के लिए कहें।
  • ठीक करें और कार्यान्वित करें : OpenCode से किसी issue को ठीक करने या किसी सुविधा को कार्यान्वित करने के लिए कहें। और यह एक नई ब्रांच में काम करेगा और सभी परिवर्तनों के साथ एक PR सबमिट करेगा।
  • सुरक्षित : OpenCode आपके GitHub के runners के अंदर चलता है।

इंस्टॉलेशन

किसी ऐसे प्रोजेक्ट में निम्नलिखित कमांड चलाएँ जो एक GitHub रेपो में है:

opencode github install

यह आपको GitHub ऐप इंस्टॉल करने, वर्कफ़्लो बनाने, और secrets सेट करने के लिए मार्गदर्शन करेगा।


मैन्युअल सेटअप

या आप इसे मैन्युअल रूप से सेट कर सकते हैं।

  1. GitHub ऐप इंस्टॉल करें github.com/apps/opencode-agent (opens in a new tab) पर जाएँ। सुनिश्चित करें कि यह लक्षित रिपॉज़िटरी पर इंस्टॉल है।

  2. वर्कफ़्लो जोड़ें अपने रेपो में .github/workflows/opencode.yml में निम्नलिखित वर्कफ़्लो फ़ाइल जोड़ें। env में उपयुक्त model और आवश्यक API कुंजियाँ सेट करना सुनिश्चित करें।

    .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
               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
  3. API कुंजियों को secrets में संग्रहीत करें अपने संगठन या प्रोजेक्ट settings में, बाईं ओर Secrets and variables का विस्तार करें और Actions चुनें। और आवश्यक API कुंजियाँ जोड़ें।


कॉन्फ़िगरेशन

  • model: OpenCode के साथ उपयोग किया जाने वाला मॉडल। provider/model का प्रारूप लेता है। यह आवश्यक है।

  • agent: उपयोग किया जाने वाला एजेंट। एक प्राथमिक एजेंट होना चाहिए। यदि नहीं मिलता है तो कॉन्फ़िग से default_agent या "build" पर फॉलबैक करता है।

  • share: OpenCode सत्र को साझा करना है या नहीं। सार्वजनिक रिपॉज़िटरी के लिए true पर डिफ़ॉल्ट होता है।

  • prompt: डिफ़ॉल्ट व्यवहार को ओवरराइड करने के लिए वैकल्पिक कस्टम प्रॉम्प्ट। OpenCode अनुरोधों को कैसे संसाधित करता है इसे कस्टमाइज़ करने के लिए इसका उपयोग करें।

  • token: टिप्पणियाँ बनाने, परिवर्तन कमिट करने, और pull requests खोलने जैसे ऑपरेशन करने के लिए वैकल्पिक GitHub एक्सेस टोकन। डिफ़ॉल्ट रूप से, OpenCode OpenCode GitHub App से इंस्टॉलेशन एक्सेस टोकन का उपयोग करता है, इसलिए कमिट, टिप्पणियाँ, और pull requests ऐप से आते हुए दिखाई देते हैं। वैकल्पिक रूप से, आप OpenCode GitHub App इंस्टॉल किए बिना GitHub Action runner के बिल्ट-इन GITHUB_TOKEN (opens in a new tab) का उपयोग कर सकते हैं। बस अपने वर्कफ़्लो में आवश्यक अनुमतियाँ देना सुनिश्चित करें:

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

    यदि पसंद हो तो आप एक personal access tokens (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 संदर्भ प्राप्त करता है।
issuesissue खोली या संपादित की गईissue बनने या संशोधित होने पर स्वचालित रूप से OpenCode को ट्रिगर करें। prompt इनपुट की आवश्यकता है।
pull_requestPR खोली या अपडेट की गईPR खुलने, सिंक्रनाइज़ होने, या फिर से खुलने पर स्वचालित रूप से OpenCode को ट्रिगर करें। स्वचालित समीक्षाओं के लिए उपयोगी।
scheduleCron-आधारित शेड्यूलएक शेड्यूल पर OpenCode चलाएँ। prompt इनपुट की आवश्यकता है। आउटपुट लॉग और PR में जाता है (टिप्पणी करने के लिए कोई issue नहीं)।
workflow_dispatchGitHub UI से मैन्युअल ट्रिगरActions टैब के माध्यम से मांग पर OpenCode को ट्रिगर करें। prompt इनपुट की आवश्यकता है। आउटपुट लॉग और PR में जाता है।

शेड्यूल उदाहरण

स्वचालित कार्य करने के लिए एक शेड्यूल पर OpenCode चलाएँ:

.github/workflows/opencode-scheduled.yml
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 इनपुट आवश्यक है क्योंकि निर्देश निकालने के लिए कोई टिप्पणी नहीं होती। शेड्यूल किए गए वर्कफ़्लो अनुमति-जाँच के लिए बिना किसी उपयोगकर्ता संदर्भ के चलते हैं, इसलिए यदि आप OpenCode से ब्रांच या PR बनाने की अपेक्षा करते हैं तो वर्कफ़्लो को contents: write और pull-requests: write देना होगा।


Pull Request उदाहरण

PR खुलने या अपडेट होने पर स्वचालित रूप से उनकी समीक्षा करें:

.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
        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 दिन से पुराने खातों तक फ़िल्टर करता है:

.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'
        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 के व्यवहार को कस्टमाइज़ करने हेतु डिफ़ॉल्ट प्रॉम्प्ट को ओवरराइड करें।

.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

यह विशिष्ट समीक्षा मानदंड, कोडिंग मानकों, या आपके प्रोजेक्ट के लिए प्रासंगिक फोकस क्षेत्रों को लागू करने के लिए उपयोगी है।


उदाहरण

यहाँ कुछ उदाहरण दिए गए हैं कि आप GitHub में OpenCode का उपयोग कैसे कर सकते हैं।

  • किसी issue की व्याख्या करें एक GitHub issue में यह टिप्पणी जोड़ें।

    /opencode explain this issue

    OpenCode सभी टिप्पणियों सहित पूरे थ्रेड को पढ़ेगा, और एक स्पष्ट व्याख्या के साथ उत्तर देगा।

  • किसी issue को ठीक करें एक GitHub issue में, कहें:

    /opencode fix this

    और OpenCode एक नई ब्रांच बनाएगा, परिवर्तनों को कार्यान्वित करेगा, और परिवर्तनों के साथ एक PR खोलेगा।

  • PR की समीक्षा करें और परिवर्तन करें एक GitHub PR पर निम्नलिखित टिप्पणी छोड़ें।

    Delete the attachment from S3 when the note is removed /oc

    OpenCode अनुरोधित परिवर्तन को कार्यान्वित करेगा और इसे उसी PR में कमिट करेगा।

  • विशिष्ट कोड लाइनों की समीक्षा करें PR के "Files" टैब में सीधे कोड लाइनों पर एक टिप्पणी छोड़ें। OpenCode सटीक प्रतिक्रियाएँ प्रदान करने के लिए फ़ाइल, लाइन नंबर, और diff संदर्भ का स्वचालित रूप से पता लगाता है।

    [Comment on specific lines in Files tab]
    /oc add error handling here

    विशिष्ट लाइनों पर टिप्पणी करते समय, OpenCode प्राप्त करता है:

    • समीक्षा की जा रही सटीक फ़ाइल
    • कोड की विशिष्ट लाइनें
    • आसपास का diff संदर्भ
    • लाइन नंबर जानकारी

    यह फ़ाइल पथ या लाइन नंबर मैन्युअल रूप से निर्दिष्ट किए बिना अधिक लक्षित अनुरोधों की अनुमति देता है।