메인 콘텐츠로 건너뛰기
GitHub entitlement는 결제 고객을 비공개 repository의 collaborator로 추가합니다. 권한 수준(pull, push, triage, maintain 또는 admin)을 선택하면 Dodo Payments가 초대, 수락 추적 및 취소 시 제거를 처리합니다.

제공되는 항목

  • 고객은 GitHub 계정과 구매를 연결하는 OAuth flow를 통해 GitHub repository로 초대됩니다.
  • 고객이 초대를 수락하면 GitHub가 구성된 권한 수준으로 collaborator 액세스 권한을 부여합니다.
  • 취소, 환불 또는 수동 철회가 발생하면 collaborator가 제거됩니다.
일반적인 사용 사례로는 source-available 제품, 유료 템플릿, 강의 코드 repository 및 액세스가 제한된 client SDK가 있습니다.

GitHub 연결

1

Open Entitlements

Dodo Payments dashboard에서 Entitlements로 이동한 다음 **+**를 클릭하여 새 entitlement를 시작합니다.
2

Pick GitHub

통합으로 GitHub Access를 선택합니다. GitHub가 아직 연결되지 않은 경우 Connect GitHub하라는 메시지가 표시됩니다.
Merchant에게 GitHub 연결을 요청하는 새 entitlement 패널

Connect GitHub prompt before the install handoff.

클릭하면 새 탭에서 GitHub가 열립니다. 로그인한 다음 repository를 소유한 organization 또는 user account에 Dodo Payments GitHub App을 설치합니다. all repositories에 액세스 권한을 부여하거나, 액세스를 제한할 repository만 선택할 수 있습니다.
All repositories 및 Only select repositories 옵션이 표시된 GitHub Install and Authorize 페이지

GitHub Install & Authorize page — choose which repositories the app can manage.

GitHub가 다시 리디렉션되면 계정이 연결되었다는 확인 메시지가 표시됩니다.
GitHub Access가 성공적으로 연결되었다는 확인 페이지

Account connected — return to the Dodo Payments dashboard to continue.

3

Pick a repository and permission

대시보드로 돌아와 entitlement에서 액세스 권한을 부여할 repository를 선택하고 permission 수준을 지정합니다. repository picker에는 GitHub App이 액세스할 수 있는 repository만 표시됩니다. entitlement에 name을 지정한 다음 Create Entitlement를 클릭합니다.
연결된 GitHub Access, repository 선택기, permission 드롭다운 및 name 필드가 포함된 GitHub entitlement 양식

Creating a GitHub entitlement. Pick the repository and the permission you want customers to receive.

4

Save the entitlement

저장한 후 모든 제품에 entitlement를 연결할 수 있습니다. 해당 제품을 구매한 고객은 제공 시 GitHub 초대를 받습니다.

권한 수준

GitHub의 표준 repository permission이 적용됩니다:
사용 사례에 맞는 최소 권한을 부여하세요. 대부분의 유료 콘텐츠 시나리오에는 pull만 필요합니다.

고객 flow

  1. 고객이 checkout을 완료합니다.
  2. Dodo Payments가 pending 상태로 grant를 생성하고, 고객이 GitHub 계정을 연결할 수 있는 oauth_url를 제공합니다.
  3. 고객이 이메일 또는 Customer Portal의 링크를 통해 권한을 부여합니다.
  4. Dodo Payments가 구성된 permission으로 고객의 GitHub 계정을 repository에 초대합니다. 초대가 생성되면 grant가 delivered로 변경됩니다.
  5. subscription이 취소, 환불 또는 철회되면 고객이 collaborator에서 제거됩니다.

필수 구성

API로 생성

Webhooks

표준 entitlement_grant.* webhook events가 GitHub flow를 처리합니다:
  • entitlement_grant.created에는 GitHub authorization을 위한 oauth_url가 포함됩니다.
  • entitlement_grant.delivered는 collaborator 초대가 생성되면 한 번 실행됩니다.
  • GitHub App이 repository에 대한 액세스 권한을 잃은 경우 error_code: "github_permission_denied"(또는 유사한 값)와 함께 entitlement_grant.failed가 실행됩니다.

문제 해결

repository를 소유한 org 또는 user에 Dodo Payments GitHub App이 설치되어 있어야 합니다. Entitlements → Integrations → GitHub를 열고 앱을 다시 설치하면서 관련 repository에 대한 액세스 권한을 부여했는지 확인하세요.
GitHub App의 installation에 더 이상 repository에 대한 액세스 권한이 없거나 repository 이름이 변경되었거나 이전되었습니다. 앱에 대한 액세스 권한을 다시 부여하면 다음 regrant가 성공합니다.
고객은 notifications page에서 GitHub 초대를 수락하거나 이메일의 링크를 클릭해야 합니다. 수락하기 전에는 “invited” 상태로 유지되며 repository를 clone할 수 없습니다. grant는 Dodo Payments의 관점에서 여전히 delivered 상태이며, 발급되는 것은 초대입니다.
마지막 수정일 2026년 7월 21일