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が顧客がGitHubアカウントをリンクするための
pendingステータスの付与を作成します。 - 顧客はメールや顧客ポータル内のリンクを介して認可します。
- Dodo Paymentsが設定された権限でリポジトリに顧客のGitHubアカウントを招待します。招待が作成されると付与は
deliveredに移動します。 - サブスクリプションがキャンセル、払い戻し、または取り消されると、顧客が共同作業者として削除されます。
必要な設定
API経由で作成
Webhooks
標準のentitlement_grant.* webhookイベントはGitHubフローをカバーします:
entitlement_grant.createdにはGitHub認証用のoauth_urlを含みます。entitlement_grant.deliveredは共同作業者の招待が作成されると発火します。entitlement_grant.failedはGitHubアプリがリポジトリへのアクセスを失った場合に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の招待を受け入れる必要があります。彼らが受け入れるまで、“招待済み”のままであり、リポジトリをクローンすることはできません。Dodo Paymentsの観点から、付与はまだ
deliveredです。招待が発行したものです。