メインコンテンツへスキップ

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のエンタイトルメントは、有料顧客をプライベートリポジトリの共同作業者として追加します。権限レベル(pullpushtriagemaintain、または admin)を選択し、Dodo Paymentsが招待、受諾の追跡、キャンセル時の削除を行います。

配信されるもの

  • 顧客はOAuthフローを通じてGitHubリポジトリに招待され、彼らのGitHubアカウントと購入をリンクします。
  • 受諾すると、GitHubが設定された権限レベルで共同作業者アクセスを付与します。
  • キャンセル、払い戻し、または手動の取り消しにより、共同作業者が削除されます。
一般的な用途には、ソース利用可能な製品、有料テンプレート、コースコードリポジトリ、ゲート付きクライアントSDKが含まれます。

GitHubを接続

1

Open Entitlements

Dodo Paymentsダッシュボードで、Entitlementsに移動し、**+**をクリックして新しいエンタイトルメントを開始します。
2

Pick GitHub

統合としてGitHub Accessを選択します。GitHubがまだ接続されていない場合は、Connect GitHubを促されます。
新しいエンタイトルメントパネルがGitHubの接続を促している
クリックすると、新しいタブでGitHubが開きます。サインインしてから、Dodo Payments GitHubアプリをリポジトリを所有する組織またはユーザーアカウントにインストールします。全てのリポジトリまたはゲートを設定する予定のリポジトリにのみアクセス権を付与できます。
全リポジトリと選択したリポジトリのオプションを持つGitHubインストールおよび認証ページ
GitHubがリダイレクトされると、アカウントが接続されたことが確認できます。
GitHub Accessが正常に接続された確認ページ
3

Pick a repository and permission

ダッシュボードに戻り、エンタイトルメントがアクセスを許可するリポジトリを選択し、権限レベルを選びます。リポジトリピッカーにはGitHubアプリがアクセス可能なリポジトリのみが表示されます。エンタイトルメントに名前を付けてCreate Entitlementをクリックします。
接続されたGitHub Access、リポジトリセレクター、権限ドロップダウン、名前フィールドを持つGitHubエンタイトルメントフォーム
4

Save the entitlement

エンタイトルメントを保存して任意の商品に添付します。その商品を購入した顧客は、配信時にGitHubの招待を受け取ります。

権限レベル

GitHubの標準リポジトリ権限が適用されます:
権限最適な用途
pull読み取り専用アクセス。顧客はリポジトリをクローン、フェッチ、表示できます。
triage読み取りアクセスに加え、問題とプルリクエストを管理する能力があります。
push読み取り+書き込みアクセス。顧客はブランチをプッシュし、プルリクエストを作成できます。
maintainプッシュアクセスに加え、リポジトリ設定(機密を除く)を管理します。
adminリポジトリの完全な制御。使用には注意が必要です。
使用ケースに合った最低限の権限を付与してください。ほとんどの有料コンテンツシナリオにはpullだけが必要です。

顧客フロー

  1. 顧客がチェックアウトを完了します。
  2. Dodo Paymentsが顧客がGitHubアカウントをリンクするための pendingステータスの付与を作成します。
  3. 顧客はメールや顧客ポータル内のリンクを介して認可します。
  4. Dodo Paymentsが設定された権限でリポジトリに顧客のGitHubアカウントを招待します。招待が作成されると付与はdeliveredに移動します。
  5. サブスクリプションがキャンセル、払い戻し、または取り消されると、顧客が共同作業者として削除されます。

必要な設定

フィールド必須説明
target_idはい顧客を招待するリポジトリ。ダッシュボードのリポジトリピッカーがこれを自動入力します。
permissionはいpull, push, triage, maintain, adminのいずれか。

API経由で作成

const entitlement = await client.entitlements.create({
  name: 'Code Share Repository',
  integration_type: 'github',
  integration_config: {
    target_id: 'acme/private-sdk',
    permission: 'pull',
  },
});

Webhooks

標準のentitlement_grant.* webhookイベントはGitHubフローをカバーします:
  • entitlement_grant.createdにはGitHub認証用のoauth_urlを含みます。
  • entitlement_grant.deliveredは共同作業者の招待が作成されると発火します。
  • entitlement_grant.failedはGitHubアプリがリポジトリへのアクセスを失った場合にerror_code: "github_permission_denied"(または類似のもの)と共に発火します。

トラブルシューティング

Dodo Payments GitHubアプリはリポジトリを所有する会社またはユーザーにインストールされている必要があります。Entitlements → Integrations → GitHub を開き、アプリを再インストールし、関連するリポジトリへのアクセス権を付与してください。
GitHubアプリのインストールがリポジトリへのアクセス権を持たなくなったか、リポジトリ名が変更された/転送されました。アプリへのアクセスを再度許可し、次の再付与が成功します。
顧客は通知ページからまたはメール内のリンクをクリックして、GitHubの招待を受け入れる必要があります。彼らが受け入れるまで、“招待済み”のままであり、リポジトリをクローンすることはできません。Dodo Paymentsの観点から、付与はまだdeliveredです。招待が発行したものです。
Last modified on May 14, 2026