हिन्दी
दस्तावेज़
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 app इंस्टॉल करने, वर्कफ़्लो बनाने और secrets सेटअप करने में गाइड करेगा।


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

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

  1. GitHub app इंस्टॉल करें

    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. secrets में API कुंजियाँ स्टोर करें

    अपने ऑर्गनाइज़ेशन या प्रोजेक्ट सेटिंग्स में, बाईं ओर 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

    आप चाहें तो पर्सनल एक्सेस टोकन (opens in a new tab) (PAT) का भी उपयोग कर सकते हैं।


समर्थित इवेंट्स

OpenCode निम्नलिखित GitHub इवेंट्स द्वारा ट्रिगर किया जा सकता है:

इवेंट टाइपट्रिगरविवरण
issue_commentissue या PR पर कमेंटअपने कमेंट में /opencode या /oc मेंशन करें। OpenCode कॉन्टेक्स्ट पढ़ता है और ब्रांचेस बना सकता है, PRs खोल सकता है, या रिप्लाई कर सकता है।
pull_request_review_commentPR में विशिष्ट कोड लाइनों पर कमेंटकोड रिव्यू करते समय /opencode या /oc मेंशन करें। OpenCode फाइल पाथ, लाइन नंबर और diff कॉन्टेक्स्ट प्राप्त करता है।
issuesIssue खोला या एडिट किया गयाissues बनाए या मॉडिफाई किए जाने पर OpenCode को ऑटोमैटिकली ट्रिगर करें। prompt इनपुट आवश्यक है।
pull_requestPR खोला या अपडेट किया गयाPRs खोले, सिंक्रोनाइज़ या रीओपन किए जाने पर OpenCode को ऑटोमैटिकली ट्रिगर करें। ऑटोमेटेड रिव्यूज़ के लिए उपयोगी।
scheduleCron-आधारित शेड्यूलशेड्यूल पर OpenCode चलाएं। prompt इनपुट आवश्यक है। आउटपुट लॉग्स और PRs में जाता है (कमेंट करने के लिए कोई issue नहीं)।
workflow_dispatchGitHub UI से मैन्युअल ट्रिगरActions टैब के माध्यम से ऑन-डिमांड OpenCode ट्रिगर करें। prompt इनपुट आवश्यक है। आउटपुट लॉग्स और PRs में जाता है।

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

ऑटोमेटेड टास्क करने के लिए शेड्यूल पर 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 से ब्रांचेस या PRs बनाने की उम्मीद करते हैं तो वर्कफ़्लो को contents: write और pull-requests: write देना होगा।


Pull Request उदाहरण

PRs खोले या अपडेट किए जाने पर ऑटोमैटिकली रिव्यू करें:

.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 खोलेगा।

  • PRs रिव्यू करें और बदलाव करें

    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 कॉन्टेक्स्ट
    • लाइन नंबर जानकारी

    यह फाइल पाथ या लाइन नंबर मैन्युअली स्पेसिफाई किए बिना अधिक टारगेटेड रिक्वेस्ट्स की अनुमति देता है।