> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GitHub अधिकार

> ग्राहकों को आपके चुने गए अनुमति स्तर पर एक निजी GitHub भंडार में सहयोगी पहुंच दें, और रद्दीकरण पर स्वचालित रूप से इसे समाप्त कर दें।

<Info>
  GitHub अधिकार एक भुगतान करने वाले ग्राहक को एक निजी भंडार पर सहयोगी के रूप में जोड़ता है। आप अनुमति स्तर चुनते हैं (`pull`, `push`, `triage`, `maintain`, या `admin`) और Dodo Payments निमंत्रण, स्वीकृति ट्रैकिंग और रद्दीकरण पर हटाने को संभालता है।
</Info>

## क्या वितरित किया जाता है

* ग्राहक को OAuth प्रवाह के माध्यम से आपके GitHub भंडार में आमंत्रित किया जाता है जो उनके GitHub खाते को खरीद से लिंक करता है।
* एक बार जब वे स्वीकार कर लेते हैं, GitHub उन्हें निर्धारित अनुमति स्तर पर सहयोगी पहुंच देता है।
* रद्दीकरण, वापसी, या मैन्युअल रद्दीकरण से सहयोगी हटा दिया जाता है।

सामान्य उपयोगों में स्रोत-उपलब्ध उत्पाद, भुगतान किए गए टेम्प्लेट, पाठ्यक्रम कोड भंडार और बंद ग्राहक SDK शामिल हैं।

## GitHub कनेक्ट करें

<Steps>
  <Step title="Open Entitlements">
    अपने Dodo Payments डैशबोर्ड में, **Entitlements** पर जाएं और नया अधिकार शुरू करने के लिए **+** पर क्लिक करें।
  </Step>

  <Step title="Pick GitHub">
    संपर्क के रूप में **GitHub Access** चुनें। यदि GitHub अभी तक जुड़ा नहीं है, तो आपको **Connect GitHub** के लिए संकेत मिलेगा।

    <Frame caption="Connect GitHub prompt before the install handoff.">
      <img src="https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/github/connect-prompt.png?fit=max&auto=format&n=do-W-dMDGVB_xzr_&q=85&s=8a836c94099accdb2b3dc31c22d0e11b" alt="नए अधिकार पैनल जो व्यापारी को GitHub से जोड़ने के लिए प्रेरित करता है" style={{ maxHeight: '500px', width: 'auto' }} width="2000" height="1129" data-path="images/entitlements/github/connect-prompt.png" />
    </Frame>

    आगे बढ़ने पर GitHub एक नए टैब में खुलता है। साइन इन करें, फिर Dodo Payments GitHub ऐप को उस संगठन या उपयोगकर्ता खाते पर इंस्टॉल करें जो भंडार का मालिक है। आप **सभी भंडार** या केवल उन्हीं को गेट करने का इरादा रखते हैं उन्हें एक्सेस करने की अनुमति दे सकते हैं।

    <Frame caption="GitHub Install & Authorize page — choose which repositories the app can manage.">
      <img src="https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/github/oauth-install.png?fit=max&auto=format&n=do-W-dMDGVB_xzr_&q=85&s=0788d3f6e9df8a087de824967f09c215" alt="GitHub इंस्टॉल और प्रमाणीकरण पृष्ठ जिसमें सभी भंडार और केवल चयनित भंडार विकल्प शामिल हैं" style={{ maxHeight: '500px', width: 'auto' }} width="2000" height="1120" data-path="images/entitlements/github/oauth-install.png" />
    </Frame>

    जब GitHub वापस रीडायरेक्ट करता है, तो आपको एक पुष्टि दिखाई देगी कि खाता जुड़ा हुआ है।

    <Frame caption="Account connected — return to the Dodo Payments dashboard to continue.">
      <img src="https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/github/connected.png?fit=max&auto=format&n=do-W-dMDGVB_xzr_&q=85&s=ee3c87c3b3917f473ff3d376dfdc6494" alt="GitHub पहुंच सफलतापूर्वक जुड़ा हुआ पुष्टि पृष्ठ" style={{ maxHeight: '500px', width: 'auto' }} width="2000" height="1137" data-path="images/entitlements/github/connected.png" />
    </Frame>
  </Step>

  <Step title="Pick a repository and permission">
    डैशबोर्ड में वापस, उस **भंडार** का चयन करें जिसे अधिकार पहुंच देना चाहिए और **अनुमति** स्तर चुनें। भंडार चयनकर्ता केवल उन भंडारों को दिखता है जिनको GitHub ऐप की पहुंच है। अधिकार को एक **नाम** दें और **Create Entitlement** पर क्लिक करें।

    <Frame caption="Creating a GitHub entitlement. Pick the repository and the permission you want customers to receive.">
      <img src="https://mintcdn.com/dodopayments/do-W-dMDGVB_xzr_/images/entitlements/github/create.png?fit=max&auto=format&n=do-W-dMDGVB_xzr_&q=85&s=722e925ec5158a5d16c58213132ccb9d" alt="GitHub अधिकार फॉर्म जिसमें जुड़ा हुआ GitHub Access, भंडार चयनकर्ता, अनुमति ड्रॉपडाउन, और नाम फ़ील्ड शामिल हैं" style={{ maxHeight: '500px', width: 'auto' }} width="2000" height="1130" data-path="images/entitlements/github/create.png" />
    </Frame>
  </Step>

  <Step title="Save the entitlement">
    सहेजें और किसी भी उत्पाद के साथ अधिकार संलग्न करें। जो ग्राहक वह उत्पाद खरीदते हैं उन्हें वितरण पर एक GitHub निमंत्रण प्राप्त होता है।
  </Step>
</Steps>

## अनुमति स्तर

GitHub की मानक भंडार अनुमतियाँ लागू होती हैं:

| अनुमति     | इसके लिए सबसे अच्छा                                                            |
| ---------- | ------------------------------------------------------------------------------ |
| `pull`     | केवल-पढ़ने के लिए पहुंच। ग्राहक रेपो को क्लोन, फेच और देख सकते हैं।            |
| `triage`   | पढ़ने की पहुंच के साथ मुद्दों और पुल अनुरोधों का प्रबंधन करने की क्षमता।       |
| `push`     | पढ़ना + लिखना पहुंच। ग्राहक शाखाएं पुश कर सकते हैं और पुल अनुरोध खोल सकते हैं। |
| `maintain` | पुश पहुंच के साथ भंडार सेटिंग्स का प्रबंधन (संवेदनशील को छोड़कर)।              |
| `admin`    | भंडार का पूर्ण नियंत्रण। सावधानी से उपयोग करें।                                |

<Warning>
  उपयोग के मामले के लिए **सबसे कम विशेषाधिकार** प्रदान करें। अधिकांश भुगतान-सम्बंधित परिदृश्यों को केवल `pull` की आवश्यकता होती है।
</Warning>

## ग्राहक प्रवाह

1. ग्राहक चेकआउट पूरा करता है।
2. Dodo Payments ग्राहक को उनके GitHub खाते को लिंक करने के लिए एक `oauth_url` के साथ `pending` स्थिति में एक अनुदान बनाता है।
3. ग्राहक अपने ईमेल या ग्राहक पोर्टल में लिंक के माध्यम से अधिकृत करता है।
4. Dodo Payments ग्राहक के GitHub खाते को निर्धारित अनुमति पर भंडार में आमंत्रित करता है। एक बार जब निमंत्रण बनाया जाता है, तो अनुदान `delivered` में चला जाता है।
5. यदि सदस्यता रद्द, वापसी, या रद्दीकरण की जाती है, तो ग्राहक को सहयोगी के रूप में हटा दिया जाता है।

## आवश्यक कॉन्फ़िगरेशन

| फ़ील्ड       | आवश्यक | विवरण                                                                                        |
| ------------ | ------ | -------------------------------------------------------------------------------------------- |
| `target_id`  | हाँ    | भंडार जिसके लिए ग्राहक को आमंत्रित करना है। डैशबोर्ड का भंडार चयनकर्ता इसे आपके लिए भरता है। |
| `permission` | हाँ    | इनमें से एक `pull`, `push`, `triage`, `maintain`, `admin`।                                   |

## API के माध्यम से बनाएँ

<CodeGroup>
  ```typescript TypeScript theme={null} theme={null}
  const entitlement = await client.entitlements.create({
    name: 'Code Share Repository',
    integration_type: 'github',
    integration_config: {
      target_id: 'acme/private-sdk',
      permission: 'pull',
    },
  });
  ```

  ```python Python theme={null} theme={null}
  client.entitlements.create(
      name="Code Share Repository",
      integration_type="github",
      integration_config={
          "target_id": "acme/private-sdk",
          "permission": "pull",
      },
  )
  ```

  ```go Go theme={null} theme={null}
  client.Entitlements.New(ctx, dodopayments.EntitlementNewParams{
    Name:            dodopayments.F("Code Share Repository"),
    IntegrationType: dodopayments.F(dodopayments.EntitlementIntegrationTypeGithub),
    IntegrationConfig: dodopayments.F[dodopayments.IntegrationConfigUnionParam](
      dodopayments.IntegrationConfigGitHubConfigParam{
        TargetID:   dodopayments.F("acme/private-sdk"),
        Permission: dodopayments.F("pull"),
      },
    ),
  })
  ```
</CodeGroup>

## Webhooks

मानक [`entitlement_grant.*` वेबहुक ईवेंट](/developer-resources/webhooks/intents/entitlement-grant) GitHub प्रवाह को कवर करते हैं:

* `entitlement_grant.created` में GitHub प्रमाणीकरण के लिए `oauth_url` शामिल है।
* `entitlement_grant.delivered` एक बार सहयोगी निमंत्रण बनाए जाने पर फायर करता है।
* `entitlement_grant.failed` `error_code: "github_permission_denied"` (या समान) के साथ फायर होता है यदि GitHub ऐप की भंडार तक पहुंच खो गई हो।

## समस्या निवारण

<AccordionGroup>
  <Accordion title="Repository picker is empty">
    Dodo Payments GitHub ऐप को उस संगठन या उपयोगकर्ता पर इंस्टॉल होना चाहिए जो भंडार का मालिक है। **Entitlements → Integrations → GitHub** खोलें और ऐप को पुनः इंस्टॉल करें, यह सुनिश्चित करके कि महत्वपूर्ण भंडारों तक पहुंच प्रदान करें।
  </Accordion>

  <Accordion title="Grant fails with permission_denied">
    GitHub ऐप की स्थापना के पास अब भंडार तक पहुंच नहीं है, या भंडार का नाम बदल दिया गया/हस्तांतरित कर दिया गया। ऐप को पुनः अनुमोदन दें और अगली पुनःग्रांट सफल होगी।
  </Accordion>

  <Accordion title="Customer hasn't accepted the invite">
    ग्राहकों को उनके विवरण पृष्ठ से या उनके ईमेल में लिंक पर क्लिक करके GitHub निमंत्रण को स्वीकार करना होगा। जब तक वे स्वीकार नहीं करते, वे "आमंत्रित" रहते हैं लेकिन रेपो को क्लोन नहीं कर सकते। Dodo Payments के दृष्टिकोण से, अनुदान अभी भी `delivered` है; निमंत्रण वह है जो हम जारी करते हैं।
  </Accordion>
</AccordionGroup>
