ما هي تطبيقات GitHub؟

مكتمل

هنا ، نناقش ماهية تطبيقات GitHub ، وكيف تعمل ، وكيف يمكنك استخدامها لتحسين سير العمل الخاص بك. سواء كنت تتبنى حلاً تم إنشاؤه بواسطة شخص آخر أو تقوم بتطوير حل لتلبية احتياجاتك الدقيقة، فهناك دائمًا مجال لتحسين عملياتك.

توسيع النظام الأساسي من خلال واجهة برمجة تطبيقات GitHub

يوفر GitHub واجهة برمجة تطبيقات قوية تسمح للمطورين بفعل أي شيء تقريبًا على النظام الأساسي. يتم عرض واجهة برمجة التطبيقات عبر نقاط نهاية REST ، لذلك من السهل التكامل معها من أي نظام أساسي أو لغة برمجة. ومع ذلك، لا يقف الوصول إلى واجهة برمجة التطبيقات من تلقاء نفسه. لا يزال المطورون الذين يرغبون في مشاركة ميزاتهم مع الآخرين بحاجة إلى حزمها كتطبيق ونشرها قبل أن يتمكن أي شخص من استخدامها.

هناك عدة عوامل يجب مراعاتها عند الاختيار بين دمج تطبيق OAuth أو تطبيق GitHub في سير العمل خاصتك. في هذا القسم، نقدم لك تطبيقات GitHub وتطبيقات OAuth، واختلافات الاستخدام والأذونات واشتراكات الأحداث.

صورة لأيقونة تثبيت وأيقونة موافقة لتطبيقات GitHub وتطبيقات OAuth.

عند تخصيص سير عمل GitHub، لديك العديد من الميزات المتاحة. مثل كتابة البرامج النصية المخصصة ، أو إنشاء تطبيقات OAuth الخاصة بك وتفويضها ، أو تثبيت تطبيقات GitHub المتاحة من سوق GitHub. بشكل عام، يمكنك استخدام البرامج النصية لهذه المهام لمرة واحدة على أفضل نحو. بالنسبة للإجراءات التي يتم تشغيلها في كثير من الأحيان، يمكن أن تساعدك أتمتة تطبيقات OAuth وGitHub أنت وفريقك في توفير الوقت، مع الاحتفاظ بالمستوى الأمثل من الأمان داخل مهام سير العمل الخاصة بك. هناك العديد من الاختلافات التي تؤثر على كيفية اتخاذ قرار بين استخدام تطبيق GitHub أو تطبيق OAuth. يمكن أن يقلل فهم هذه الاختلافات مسبقا من بعض الصداع وإعادة العمل على الطريق، ويساعدك على العثور على أفضل تطبيق لحالة الاستخدام الخاصة بك ضمن سير العمل الخاص بك.

في نهاية هذا القسم ، يجب أن يكون لديك فهم جيد للاختلافات بين تطبيق GitHub وتطبيق OAuth ، ومعرفة أفضل طريقة لاختيار تطبيق للموقف المناسب.

منح حق الوصول والأذونات

أحد أهم الاعتبارات للسماح للتطبيق بالوصول إلى مستودع GitHub هو الأذونات التي يتطلبها للعمل. من السهل الوثوق ببعض التطبيقات، ولكن قد يكون البعض الآخر مشبوها. تأكد دائمًا من أنك تشعر بالراحة بالأذونات التي تمنحها للتطبيق.

لقطة شاشة لمراجعة الأذونات المطلوبة والوصول إلى المستودع.

إشعار

يستخدم كل تطبيق مفتاح API فريدًا لتقديم طلبات للبيانات في مستودعك. عندما تقوم بتخويل الوصول، فهو المفتاح الذي تخوله. يمكنك إبطال الوصول إلى مفتاح التطبيق في أي وقت من إعدادات المستودع الخاص بك.

تطبيقات OAuth

توفر تطبيقات OAuth طريقة للوصول إلى البيانات GitHub نيابةً عن المستخدم. نظرا لأنه يعمل نيابة عن المستخدم ، فمن المهم ملاحظة أنه يستهلك ترخيص GitHub. يمكنك إنشاء تطبيق OAuth وتسجيله في حسابك الشخصي أو على مستوى المؤسسة إذا كان لديك حق الوصول الإداري. يكشف تطبيق OAuth الذي يتكامل مع GitHub عن نوع الوصول إلى المؤسسة أو المستودع الذي يتطلبه. يأذن المستخدمون لتطبيقات OAuth، مما يمنح التطبيق القدرة على العمل باعتباره مستخدم مصدق عليه، مثل قراءة البيانات أو تعديلها. هذا النهج هو في الأساس طريقة آلية لقراءة بيانات GitHub أو كتابتها أو تحريرها كمستخدم. من المهم أيضا ملاحظة أن التفويض يقتصر على الموارد التي يمكن للمستخدم الوصول إليها. ومع ذلك ، يمكن لتطبيق OAuth أيضا الوصول إلى جميع الموارد المتاحة للمستخدم.

إشعار

مستوى الوصول مقيد بنطاق الرمز المميز (مستخدم أو مؤسسة أو مستودع).

بالنسبة للمؤسسات التي لديها قيود على الوصول لتطبيق OAuth، يمكن للمسؤول منح الموافقة على استخدام التطبيق. مع اشتراكات الحدث، تستجيب تطبيقات OAuth للنشاط عند حدوثه.

تطبيقات GitHub

على النقيض من ذلك، يجري تثبيت تطبيقات GitHub في حسابك الشخصي، أو في المؤسسات التي تمتلكها، أو في مستودعات معينة تمتلك فيها حق وصول المسؤول. تُثبَّت تطبيقات GitHub ويجري التفاعل معها باعتبارها خدمة، وليس باعتبارها مستخدم فردي كما هو الحال مع تطبيقات OAuth. تتمثل إحدى مزايا تطبيقات GitHub في أنه ، على عكس تطبيقات OAuth ، لا تستهلك تطبيقات GitHub ترخيص GitHub.

تصل تطبيقات GitHub إلى البيانات نيابة عن التطبيق نفسه من خلال مفتاح خاص يستخدم لتوقيع رمز ويب JSON. نظرا لأنها مثبتة على مستودعات معينة، يمكن للمستخدمين اختيار المستودعات التي يمكن للتطبيق الوصول إليها، مما يحد من كمية البيانات التي يمكن للتطبيق الوصول إليها. تحدد الأذونات الموارد التي يمكن لتطبيق GitHub الوصول إليها عبر واجهة برمجة التطبيقات. على عكس تطبيقات OAuth، تتمتع تطبيقات GitHub بأذونات قابلة للتخصيص لبيانات المستودع والمشكلات وطلبات السحب. يسمح لك التخصيص بمنح أذونات أكثر دقة ، مما يحد من التطبيق للقراءة والكتابة فقط في المستودعات التي تسمح له بالوصول إليها. يمكن لمالكي المؤسسة فقط إدارة إعداد تطبيقات GitHub في إحدى المؤسسات.

يمكنك العثور على تطبيقات GitHub وتثبيتها من GitHub Marketplace. عندما تبحث عن تطبيقات GitHub ، ضع في اعتبارك أن بعض التطبيقات لها شارة تم التحقق منها. تشير شارة التحقق إلى ما يلي حول التطبيق والمؤسسة التي تمتلكه:

  • يتم التحقق من ملكية المؤسسة لنطاقها.
  • يؤكد دعم GitHub عناوين البريد الإلكتروني للمؤسسة.
  • تتطلب المنظمة مصادقة ثنائية.

صورة شارة تم التحقق منها لتطبيق GitHub.

  • يمكن للمسؤول منح أذونات تتعلق بإدارة المستودع والفحوصات ومحتويات المستودع وعمليات التوزيع والمشكلات (تتطلب تغييرات المسؤول قبول المستخدم)
  • يمكن للمسؤول منح أذونات مستخدم التطبيق لحظر مستخدم آخر، ورسائل البريد الإلكتروني، والمتابعين، ومفاتيح GPG، ومفاتيح Git SSH، والتمييز بنجمة، والمشاهدة (تغييرات المسؤول تتطلب قبول المستخدم)
  • اشتراكات الأحداث: الاستشارات الأمنية، مجموعة التحقق، الإنشاء، التوزيع، نسخة المستودع، الملصق، العضو، تسجيل الوصول، الالتزام بالتعليق، الحذف، حالة التوزيع، مرحلة رئيسية، العضوية، المؤسسة (تكوينات المسؤول في واجهة مستخدم تطبيقات GH ويمكن تغييرها)

الاختيار بين تطبيقات GitHub وتطبيقات OAuth

في حين أن تطبيقات GitHub هي طريقة مثالية للاندماج في سير عملك في بعض المواقف، يمكن للمؤسسات الكبيرة أن تجد صعوبة في الانتقال من الاستخدام التقليدي لتطبيقات OAuth للأتمتة. على سبيل المثال، قد يحد تقييد نهج الأمان أيضا من خيارات المسؤول في اختيار استخدام هذه الأدوات.

إشعار

بصفتك مسؤول النظام، يجب أن تعمل مع المطورين للعثور على الخيارات الأنسب للأتمتة باستخدام هذه التطبيقات مع الاستمرار في اتباع سياسة الأمان الخاصة بك.

لتحديد التطبيق الذي يمثل الحل المناسب لموقفك، إليك بعض الأسئلة المهمة التي يجب وضعها في الاعتبار:

  • هل أريد أن يعمل التطبيق باعتباره مستخدم؟
  • ماذا يجب أن يكون حد المعدل؟
  • ما هو الوصول الذي أريده للتطبيق في المؤسسة والمستودعات؟
  • هل يتوافق هذا التطبيق مع نهج الأمان خاصتنا؟

فيما يلي بعض الخصائص والاختلافات الرئيسية التي يجب مراعاتها عند الاختيار بين تطبيق GitHub أو تطبيق OAuth.

تطبيقات GitHub تطبيقات OAuth
تثبيت تطبيق GitHub يمنح التطبيق حق الوصول إلى المستودعات المختارة لحساب المستخدم أو المؤسسة. يمنح تفويض تطبيق OAuth التطبيق حق الوصول إلى الموارد التي يمكن للمستخدم الوصول إليها؛ على سبيل المثال، المستودعات التي يمكنهم الوصول إليها.
تقتصر الرموز المميزة للوصول على التثبيت على مستودعات محددة مع الأذونات التي اختارها منشئ التطبيق. رمز مميز للوصول OAuth محدود عبر النطاقات.
يحدد رمز التثبيت التطبيق على أنه روبوت تطبيقات GitHub. يحدد الرمز المميز للوصول التطبيق باعتباره المستخدم الذي منح الرمز المميز للوصول للتطبيق.
تستخدم تطبيقات GitHub أذونات مستهدفة تسمح لها بطلب الوصول إلى ما يحتاجون إليه فقط. لا يمكن لتطبيقات OAuth استخدام أذونات دقيقة.
لا تخضع تطبيقات GitHub لنُهج تطبيق المؤسسة. لا يمكن لتطبيق GitHub الوصول إلا إلى المستودعات التي يمنحها مالك المؤسسة. إذا كانت إحدى نُهج تطبيق المؤسسة نشطة، فلا يمكن إلا لمالك المؤسسة أن يصرح بتثبيت تطبيق OAuth. في حالة التثبيت، يحصل تطبيق OAuth على إمكانية الوصول إلى أي شيء مرئي للرمز المميز الذي يمتلكه مالك المؤسسة داخل المؤسسة المعتمدة.
يمكن منح زيادات في حد المعدل على مستوى تطبيقات GitHub (التي تؤثر على جميع التثبيتات) وعلى مستوى التثبيت الفردي. تُمنح زيادات في حد المعدل لكل تطبيق OAuth. يحصل كل رمز مميز ممنوح لتطبيق OAuth على الحد الأقصى.
يمكن لتطبيقات GitHub المصادقة نيابة عن المستخدم، وهو ما يسمى بطلبات المستخدم إلى الخادم. يتطابق تدفق المصادقة مع تدفق مصادقة تطبيق OAuth. يمكن أن تنتهي صلاحية الرموز المميزة من مستخدم إلى خادم ويمكن تجديدها برمز تحديث مميز. يخوّل تدفق OAuth الذي تستخدمه تطبيقات OAuth تطبيق OAuth نيابةً عن المستخدم. هذا التدفق هو نفس التدفق المستخدم في تخويل مستخدم إلى خادم تطبيق GitHub.
تطلب تطبيقات GitHub إذناً بمحتويات المستودع واستخدم رمز التثبيت خاصتك للمصادقة عبر Git المستند إلى HTTP. تطبيقات OAuth تسأل عن write:public_key نطاق وإنشاء مفتاح توزيع عبر API. يمكنك بعد ذلك استخدام ذلك المفتاح لتنفيذ أوامر Git.

الوصول إلى التطبيق والأذونات

أحد أهم الاعتبارات للسماح للتطبيق بالوصول إلى مستودع GitHub هو الأذونات التي يتطلبها للعمل. من السهل الوثوق ببعض التطبيقات، ولكن قد يكون البعض الآخر مشبوها. تأكد دائمًا من أنك تشعر بالراحة بالأذونات التي تمنحها للتطبيق.

قد يعتمد اتخاذ قرار استخدام تطبيق GitHub أو تطبيق OAuth على مستوى الوصول الذي تريد أن يصل إليه التطبيق. بشكل عام، يجب أن تشجع فريقك على استخدام الأداة مع أصغر نطاق لإنجاز المهمة. يتمتع تطبيق OAuth بإمكانية الوصول إلى جميع موارد مالك المستخدم أو المؤسسة.

  • يمكن أن يكون لتطبيقات OAuth حق الوصول للقراءة أو الكتابة إلى بيانات GitHub خاصتك
  • يمكن منح تطبيق GitHub حق الوصول إلى حساب واحد دون منحه حق الوصول إلى حساب آخر

أمان التطبيقات

عند عثورك على ثغرة أمنية في تطبيقك، يجب أن تمثل أولوية وتضعها ضمن نهج الأمان خاصتك لإخبار مستخدمي مشروعك. قد يعني الإبلاغ السريع عن مشكلة متعلقة بالأمان أن الاختلاف بين قدرة مستخدميك على إبطال رمز مميز تم اختراقه أو كشف بيانات حساسة. في حين أن الرموز المميزة أكثر أماناً من كلمات المرور، لا يزال من الممكن اختراق الأمان ومن المهم أن تكون مؤسستك جاهزة.

بالإضافة إلى ملف README.md، نوصى بإضافة ملف SECURITY.md إلى مستودعاتك. يبرز ملف SECURITY.md المعلومات المتعلقة بالأمان للمستودع. يجب أن يتضمن الملف جهات اتصال الأمان ونهج المؤسسة وتفاصيل الاستجابة التي تخطط لاتخاذها عند اكتشاف ثغرة أمنية.

رد الفعل على الأحداث

تم تصميم تطبيقات GitHub لتكون سلبية. فهي تنتظر حدوث شيء ما، ثم تتفاعل، وعادة عبر GitHub API. عند انتظار الأحداث التي تحدث على GitHub، هناك نهجان: خطافات الويب والتحقق.

إشعار

لا تقتصر تطبيقات GitHub على العمل مع بيانات GitHub. يمكنك بسهولة انتظار الأحداث التي تحدث من مصادر أخرى أو تنفيذ الإجراءات التي تحدث الخدمات الأخرى.

استخدام خطافات ويب GitHub

تعتبر خطافات الويب هي الطريقة المفضلة لمعالجة الأحداث. عندما يحدث شيء ما على GitHub في نطاق خطاف الويب ، يتم رفع حدث على الفور. تدفع الإخطارات على الويب بالإعلامات المنبثقة التي يمكن لتطبيقك الاستماع إليها ومعالجتها في الوقت الفعلي. يمكنك تكوين خطافات الويب في إعدادات المستودع، بما في ذلك أنواع الأحداث، والمصادقة، وطريقة تلقي إشعارات HTTP.

الاستقصاء

في بعض الأحيان خطافات الويب ليست خيارًا. قد يحتاج تطبيقك إلى العيش خلف جدار حماية الشركة حيث لا يمكن ل GitHub الوصول إليه مباشرة. في هذه الحالة، هناك بديل هو للتحقق من البيانات التي تتعقبها باستخدام واجهة برمجة تطبيقات GitHub.

ترحيل خطافات الويب

بديل التحقق للتطبيقات التي تعمل خلف جدار حماية هو استخدام خدمة إعادة توجيه خطاف الويب، مثل smee.io. باستخدام هذا النهج، تشترك الخدمة العامة في خطاف الويب الخاص بالمستودع، ثم تقوم بترحيل البيانات الواردة إلى خدمة عميل تعمل خلف جدار الحماية. ثم تدفع خدمة العميل هذه الإشعارات إلى تطبيق التشغيل الخاص بك كما لو أنها جاءت من المصدر الأصلي.