امنح العملاء وصولًا بصلاحية collaborator إلى مستودع GitHub خاص بمستوى الأذونات الذي تختاره، وألغِه تلقائيًا عند الإلغاء.
تضيف صلاحية GitHub عميلًا يدفع إلى مستودع خاص بصفته collaborator. تختار مستوى الأذونات (pull أو push أو triage أو maintain أو admin). يرسل Dodo Payments دعوة collaborator ويزيل collaborator عند إلغاء الصلاحية.
يربط العميل حسابه على GitHub من Customer Portal. يؤدي ذلك إلى ربط حساب GitHub الخاص به بعملية الشراء.
يدعو Dodo Payments هذا الحساب إلى مستودعك بمستوى الأذونات المُهيأ. يحصل العميل على الوصول بعد قبول الدعوة على GitHub. إذا كان العميل يملك المستودع، فلا حاجة إلى إرسال دعوة.
يؤدي الإلغاء أو استرداد المبلغ أو الإلغاء اليدوي إلى إزالة collaborator وإلغاء أي دعوة معلّقة.
تشمل الاستخدامات الشائعة المنتجات المتاحة المصدر، والقوالب المدفوعة، ومستودعات أكواد الدورات، وSDKs الخاصة بالعملاء والمقيّدة.
في لوحة معلومات Dodo Payments، انتقل إلى Entitlements وانقر على + لبدء صلاحية جديدة.
2
Pick GitHub
اختر GitHub Access باعتباره التكامل. إذا لم يكن GitHub متصلًا بعد، فانقر على Connect GitHub.
Connect GitHub prompt before the install handoff.
يفتح GitHub في علامة تبويب جديدة. سجّل الدخول، ثم ثبّت Dodo Payments GitHub App على المؤسسة أو حساب المستخدم الذي يملك المستودع. يمكنك منح التطبيق الوصول إلى All repositories أو Only select repositories. إذا اخترت مستودعات محددة، فأدرج كل مستودع تنوي تقييد الوصول إليه.
GitHub Install & Authorize page. Choose which repositories the app can manage.
عندما يعيد GitHub التوجيه، تعرض صفحة تأكيد أن الحساب متصل.
Account connected. Return to the Dodo Payments dashboard to continue.
3
Pick a Repository and Permission
بالعودة إلى لوحة المعلومات، حدد Repository الذي تمنح الصلاحية الوصول إليه، ثم حدد مستوى Permission. يعرض منتقي المستودعات المستودعات التي يمكن لـ GitHub App الوصول إليها فقط. أدخل Name للصلاحية وانقر على Create Entitlement.
Creating a GitHub entitlement. Pick the repository and the permission you want customers to receive.
4
Attach It to a Product
اربط الصلاحية بأي منتج. يحصل العملاء الذين يشترون هذا المنتج على دعوة GitHub بعد ربط حساب GitHub الخاص بهم.
ينشئ Dodo Payments منحة بالحالة Pending. يحاول Dodo Payments إنشاء عنوان URL للتفويض في GitHub فورًا، ويخزّنه في oauth_url. إذا فشلت العملية، يبقى oauth_url بالقيمة null حتى يبدأ العميل تدفق القبول.
يعرض البريد الإلكتروني لتأكيد الدفع الاستحقاق بالحالة Action Required ويرتبط بـ Customer Portal. في البوابة، ينقر العميل على Connect ويفوّض باستخدام GitHub. تنتهي صلاحية رابط التفويض بعد 30 دقيقة، وينشئ Customer Portal رابطًا جديدًا عند عودة العميل.
يرسل Dodo Payments دعوة إلى حساب GitHub الخاص بالعميل للانضمام إلى المستودع بالأذونات المُهيأة. تنتقل المنحة إلى Delivered بمجرد إنشاء الدعوة. إذا رفض GitHub الدعوة، فلا يتم تسليم المنحة.
إذا أُلغيت الاشتراكية، أو تم رد المبلغ، أو أُلغيت المنحة، يزيل Dodo Payments العميل بصفته متعاونًا ويلغي أي دعوة معلّقة.
// client is a *dodopayments.Client, for example from// dodopayments.NewClient(option.WithEnvironmentTestMode()); ctx is a context.Context.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(dodopayments.GitHubPermissionPull), }, ),})
يتم تشغيل entitlement_grant.created مع status: "Pending". قد يحتوي oauth_url مسبقًا على عنوان URL لتفويض GitHub. إذا كانت قيمته null، فستتم تعبئته بمجرد أن يبدأ العميل تدفق القبول من Customer Portal.
يتم تشغيل entitlement_grant.delivered بمجرد إنشاء دعوة المتعاون.
يتم تشغيل entitlement_grant.revoked عند سحب الوصول. إذا أزلت تثبيت GitHub App، فإن Dodo Payments يلغي المنح المعلّقة والمسلّمة الخاصة بذلك التثبيت باستخدام revocation_reason: platform_external.
يتم تشغيل entitlement_grant.failed مع error_code: "GRANT_ACCESS_FAILED" إذا تعذّر على Dodo Payments إضافة العميل إلى المستودع، مثلًا لأن GitHub App فقد الوصول إليه.
يجب تثبيت Dodo Payments GitHub App على المؤسسة أو المستخدم الذي يملك المستودع. في نموذج الاستحقاق، انقر على Disconnect في بطاقة GitHub، ثم انقر على Connect GitHub لإعادة تثبيت التطبيق، وامنحه الوصول إلى المستودعات التي تريد تقييد الوصول إليها.
Grant fails with a permission error
لم يعد تثبيت GitHub App يملك صلاحية الوصول إلى المستودع، أو أُعيدت تسمية المستودع أو نُقل. امنح التطبيق الوصول إلى المستودع مرة أخرى، وستنجح إعادة المنح التالية.
Customer hasn't accepted the invite
يقبل العملاء دعوة GitHub من إشعارات GitHub الخاصة بهم أو من الرابط الموجود في رسالة الدعوة الإلكترونية من GitHub. إلى أن يقبلوها، يكونون مدعوين لكن لا يمكنهم استنساخ المستودع. تظل المنحة في الحالة Delivered في Dodo Payments، لأن الدعوة هي ما يصدره Dodo Payments.