GitHubのエンタイトルメントは、有料顧客をプライベートリポジトリの共同作業者として追加します。権限レベル(
pull、push、triage、maintain、または admin)を選択し、Dodo Paymentsが招待、受諾の追跡、キャンセル時の削除を行います。配信されるもの
- 顧客はOAuthフローを通じてGitHubリポジトリに招待され、彼らのGitHubアカウントと購入をリンクします。
- 受諾すると、GitHubが設定された権限レベルで共同作業者アクセスを付与します。
- キャンセル、払い戻し、または手動の取り消しにより、共同作業者が削除されます。
GitHubを接続
1
Open Entitlements
Dodo Paymentsダッシュボードで、Entitlementsに移動し、**+**をクリックして新しいエンタイトルメントを開始します。
2
Pick GitHub
統合としてGitHub Accessを選択します。GitHubがまだ接続されていない場合は、Connect GitHubを促されます。
クリックすると、新しいタブでGitHubが開きます。サインインしてから、Dodo Payments GitHubアプリをリポジトリを所有する組織またはユーザーアカウントにインストールします。全てのリポジトリまたはゲートを設定する予定のリポジトリにのみアクセス権を付与できます。
GitHubがリダイレクトされると、アカウントが接続されたことが確認できます。

Connect GitHub prompt before the install handoff.

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

Account connected — return to the Dodo Payments dashboard to continue.
3
Pick a repository and permission
ダッシュボードに戻り、エンタイトルメントがアクセスを許可するリポジトリを選択し、権限レベルを選びます。リポジトリピッカーにはGitHubアプリがアクセス可能なリポジトリのみが表示されます。エンタイトルメントに名前を付けてCreate Entitlementをクリックします。

Creating a GitHub entitlement. Pick the repository and the permission you want customers to receive.
4
Save the entitlement
エンタイトルメントを保存して任意の商品に添付します。その商品を購入した顧客は、配信時にGitHubの招待を受け取ります。
権限レベル
GitHubの標準リポジトリ権限が適用されます:顧客フロー
- 顧客がチェックアウトを完了します。
- Dodo Payments は、
Pendingステータスで grant を作成します。そのoauth_urlは、顧客が accept フローを開始するまでnullです。開始すると、GitHub の認証 URL が設定されます。 - 顧客が、メールまたは Customer Portal のリンクから認証します。
- Dodo Payments は、設定された権限で顧客の GitHub アカウントをリポジトリに招待します。招待が作成されると、grant は
Deliveredに移行します。 - サブスクリプションがキャンセル、返金、または取り消しされた場合、顧客はコラボレーターから削除されます。
必要な設定
API経由で作成
Webhooks
標準のentitlement_grant.* webhookイベントはGitHubフローをカバーします:
entitlement_grant.createdはstatus: "Pending"とともに発生し、oauth_urlは引き続きnullです。顧客が配信メールまたは Customer Portal から accept フローを開始すると、GitHub の認証 URL が設定されます。- コラボレーターへの招待が作成されると、
entitlement_grant.deliveredが発生します。 - GitHub App がリポジトリへのアクセスを失った場合、
entitlement_grant.failedがerror_code: "github_permission_denied"(または類似の値)とともに発生します。
トラブルシューティング
Repository picker is empty
Repository picker is empty
Dodo Payments GitHubアプリはリポジトリを所有する会社またはユーザーにインストールされている必要があります。Entitlements → Integrations → GitHub を開き、アプリを再インストールし、関連するリポジトリへのアクセス権を付与してください。
Grant fails with permission_denied
Grant fails with permission_denied
GitHubアプリのインストールがリポジトリへのアクセス権を持たなくなったか、リポジトリ名が変更された/転送されました。アプリへのアクセスを再度許可し、次の再付与が成功します。
Customer hasn't accepted the invite
Customer hasn't accepted the invite
顧客は、通知ページから、またはメール内のリンクをクリックして GitHub の招待を承諾する必要があります。承諾するまで、顧客は「invited」の状態のままで、リポジトリを clone できません。Dodo Payments の観点では、grant は引き続き
oauth_url です。発行するのは招待そのものです。