> ## 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-rättighet

> Ge kunder åtkomst till en privat GitHub-repository som samarbetare med den behörighetsnivå du väljer, och återkalla automatiskt vid avbokning.

<Info>
  GitHub-rättigheten lägger till en betalande kund som en samarbetare i ett privat repository. Du väljer behörighetsnivån (`pull`, `push`, `triage`, `maintain`, eller `admin`) och Dodo Payments hanterar inbjudan, acceptansuppföljning och borttagning vid avbokning.
</Info>

## Vad som levereras

* Kunden blir inbjuden till ditt GitHub-repository genom ett OAuth-flöde som länkar deras GitHub-konto till köpet.
* När de accepterar, ger GitHub dem samarbetaråtkomst på den konfigurerade behörighetsnivån.
* Avbokning, återbetalning eller manuell ångerrätt tar bort samarbetaren.

Vanliga användningar inkluderar källkodstillgängliga produkter, betalda mallar, kurskodsrepos och låsta klient-SDK.

## Anslut GitHub

<Steps>
  <Step title="Open Entitlements">
    Gå till **Rättigheter** i din Dodo Payments-instrumentpanel och klicka på **+** för att starta en ny rättighet.
  </Step>

  <Step title="Pick GitHub">
    Välj **GitHub Access** som integration. Om GitHub inte är anslutet ännu, kommer du att uppmanas att **Anslut 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="Ny rättighetspanel som uppmanar handlaren att ansluta GitHub" style={{ maxHeight: '500px', width: 'auto' }} width="2000" height="1129" data-path="images/entitlements/github/connect-prompt.png" />
    </Frame>

    När du klickar öppnas GitHub i en ny flik. Logga in och installera Dodo Payments GitHub App på organisationens eller användarkontot som äger repositoty. Du kan ge åtkomst till **alla repositories** eller bara de du avser att låsa.

    <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 installations- och auktoriseringssida med alternativen Alla repositories och Endast valda repositories" style={{ maxHeight: '500px', width: 'auto' }} width="2000" height="1120" data-path="images/entitlements/github/oauth-install.png" />
    </Frame>

    När GitHub omdirigeras tillbaka, ser du en bekräftelse på att kontot är anslutet.

    <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 Access anslutet framgångsrikt bekräftelsesida" 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">
    Tillbaka i instrumentpanelen, välj **repositoryn** som rättigheten ska ge åtkomst till och välj **behörighetsnivån**. Repositoryväljaren visar endast repositories som GitHub-appen har åtkomst till. Ge rättigheten ett **namn** och klicka på **Skapa Rättighet**.

    <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-rättighetsformulär med ansluten GitHub Access, repositoryväljare, behörighetsdrop-down, och namnfält" style={{ maxHeight: '500px', width: 'auto' }} width="2000" height="1130" data-path="images/entitlements/github/create.png" />
    </Frame>
  </Step>

  <Step title="Save the entitlement">
    Spara och bifoga rättigheten till vilken produkt som helst. Kunder som köper den produkten får en GitHub-inbjudan vid leverans.
  </Step>
</Steps>

## Behörighetsnivåer

GitHubs standard repository-behörigheter gäller:

| Behörighet | Bäst för                                                                         |
| ---------- | -------------------------------------------------------------------------------- |
| `pull`     | Endast lästillgång. Kunder kan klona, hämta, och visa repositot.                 |
| `triage`   | Läsbehörighet plus möjlighet att hantera problem och pull requests.              |
| `push`     | Läs + skrivbehörighet. Kunder kan pusha grenar och öppna pull requests.          |
| `maintain` | Push-behörighet plus hantering av repository-inställningar (exklusive känsliga). |
| `admin`    | Full kontroll över repositot. Använd med försiktighet.                           |

<Warning>
  Ge den **minsta privilegienivån** som passar ditt användningsfall. De flesta betalinnehållsscenarier behöver endast `pull`.
</Warning>

## Kundflöde

1. Kunden slutför kassaprocessen.
2. Dodo Payments skapar ett beviljande i `pending` status med en `oauth_url` för kunden att länka sitt GitHub-konto.
3. Kunden godkänner genom länken i deras e-post eller kundportal.
4. Dodo Payments bjuder in kundens GitHub-konto till repositot på den konfigurerade behörigheten. Beviljandet övergår till `delivered` när inbjudningen skapas.
5. Om prenumerationen avslutas, återbetalas eller återkallas, tas kunden bort som samarbetare.

## Obligatorisk konfiguration

| Fält         | Obligatorisk | Beskrivning                                                                                             |
| ------------ | ------------ | ------------------------------------------------------------------------------------------------------- |
| `target_id`  | Ja           | Repositot som kunden ska bli inbjuden till. Instrumentpanelens repositoryväljare fyller i detta åt dig. |
| `permission` | Ja           | En av `pull`, `push`, `triage`, `maintain`, `admin`.                                                    |

## Skapa via 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

De vanliga [`entitlement_grant.*` webhook-händelserna](/developer-resources/webhooks/intents/entitlement-grant) täcker GitHub-flödet:

* `entitlement_grant.created` innehåller `oauth_url` för GitHub-auktorisering.
* `entitlement_grant.delivered` utlöses när samarbetarinbjudan skapas.
* `entitlement_grant.failed` utlöses med `error_code: "github_permission_denied"` (eller liknande) om GitHub-appen har förlorat åtkomst till repositot.

## Felsökning

<AccordionGroup>
  <Accordion title="Repository picker is empty">
    Dodo Payments GitHub App måste vara installerad på organisationen eller användaren som äger repositot. Öppna **Rättigheter → Integrationer → GitHub** och installera om appen, se till att ge åtkomst till de relevanta repositories.
  </Accordion>

  <Accordion title="Grant fails with permission_denied">
    GitHub-appens installation har inte längre åtkomst till repositot, eller repositot har bytt namn/flyttats. Ge appen åtkomst igen och nästa beviljande kommer att lyckas.
  </Accordion>

  <Accordion title="Customer hasn't accepted the invite">
    Kunder måste acceptera GitHub-inbjudan från deras notifikationssida eller genom att klicka på länken i deras e-post. Tills de accepterar, förblir de "inbjudna" men kan inte klona repositot. Beviljandet är fortfarande `delivered` ur Dodo Payments perspektiv; inbjudan är vad vi utfärdar.
  </Accordion>
</AccordionGroup>
