GitHub ऐप्स क्या हैं?
यहां, हम चर्चा करते हैं कि GitHub ऐप्स क्या हैं, वे कैसे काम करते हैं, और आप अपने वर्कफ़्लोज़ को बेहतर बनाने के लिए उनका उपयोग कैसे कर सकते हैं। चाहे आप किसी और द्वारा निर्मित समाधान को अपना रहे हों या अपनी सटीक आवश्यकताओं को पूरा करने के लिए विकसित कर रहे हों, आपकी प्रक्रियाओं को बेहतर बनाने के लिए हमेशा जगह होती है।
GitHub API के माध्यम से प्लेटफ़ॉर्म का विस्तार करें
GitHub एक मजबूत एपीआई प्रदान करता है जो डेवलपर्स को प्लेटफॉर्म पर कुछ भी करने की अनुमति देता है। एपीआई आरईएसटी एंडपॉइंट के माध्यम से उजागर होता है, इसलिए किसी भी प्लेटफॉर्म या प्रोग्रामिंग भाषा से एकीकृत करना आसान है। हालाँकि, एपीआई एक्सेस अपने आप खड़ा नहीं होता है। डेवलपर्स जो अपनी सुविधाओं को दूसरों के साथ साझा करना चाहते हैं, उन्हें अभी भी उन्हें एक ऐप के रूप में पैकेज करने और किसी का उपयोग करने से पहले इसे प्रकाशित करने की आवश्यकता है।
अपने वर्कफ़्लो में OAuth ऐप या GitHub ऐप को शामिल करने के बीच चयन करते समय विचार करने के लिए कई कारक हैं। इस खंड में, हम आपको GitHub ऐप्स और OAuth ऐप्स, उनके उपयोग और अनुमति अंतर, और ईवेंट सदस्यताओं से परिचित कराते हैं।
GitHub वर्कफ़्लो को कस्टमाइज़ करते समय, आपके पास कई सुविधाएँ उपलब्ध होती हैं। जैसे, कस्टम स्क्रिप्ट लिखना, अपने स्वयं के OAuth ऐप्स बनाना और अधिकृत करना, या GitHub मार्केटप्लेस से उपलब्ध GitHub ऐप्स इंस्टॉल करना। सामान्य तौर पर, आप उन एकबारगी कार्यों के लिए स्क्रिप्ट का सबसे अच्छा उपयोग कर सकते हैं। अधिक बार चलने वाली कार्रवाइयों के लिए, OAuth और GitHub ऐप्स का स्वचालन आपके वर्कफ़्लोज़ के भीतर सुरक्षा के इष्टतम स्तर को बनाए रखते हुए आपको और आपकी टीम को समय बचाने में मदद कर सकता है। ऐसे कई अंतर हैं जो प्रभावित करते हैं कि आप GitHub ऐप या OAuth ऐप का उपयोग करने के बीच कैसे निर्णय लेते हैं। इन अंतरों को पहले से समझने से कुछ सिरदर्द कम हो सकते हैं और सड़क पर फिर से काम कर सकते हैं, और आपको अपने वर्कफ़्लो के भीतर अपने विशिष्ट उपयोग के मामले के लिए सबसे अच्छा एप्लिकेशन खोजने में मदद मिल सकती है।
इस खंड के अंत में, आपको GitHub ऐप और OAuth ऐप के बीच के अंतरों की अच्छी समझ होनी चाहिए, और यह जानना चाहिए कि सही स्थिति के लिए ऐप को सबसे अच्छा कैसे चुनना है।
पहुँच और अनुमतियाँ प्रदान करना
किसी ऐप को GitHub रिपॉजिटरी तक पहुंचने की अनुमति देने के लिए सबसे महत्वपूर्ण विचारों में से एक वह अनुमतियाँ हैं जिन्हें उसे संचालित करने की आवश्यकता होती है। कुछ ऐप्स पर भरोसा करना आसान होता है, लेकिन अन्य संदिग्ध हो सकते हैं। हमेशा सुनिश्चित करें कि आप उन अनुमतियों के साथ सहज हैं जो आप एक ऐप प्रदान करते हैं।
नोट
प्रत्येक ऐप आपके रिपॉजिटरी में डेटा के लिए अनुरोध करने के लिए एक अद्वितीय एपीआई कुंजी का उपयोग करता है। जब आप एक्सेस को अधिकृत करते हैं, तो यह वह कुंजी है जिसे आप अधिकृत कर रहे हैं। आप अपनी रिपॉजिटरी सेटिंग्स से किसी भी समय ऐप की कुंजी तक पहुंच को रद्द कर सकते हैं।
OAuth ऐप्स
OAuth ऐप्स उपयोगकर्ता की ओर से GitHub डेटा तक पहुंचने का एक तरीका प्रदान करते हैं। क्योंकि यह उपयोगकर्ता की ओर से कार्य कर रहा है, यह ध्यान रखना महत्वपूर्ण है कि यह GitHub लाइसेंस का उपभोग करता है। यदि आपके पास प्रशासनिक पहुंच है तो आप अपने व्यक्तिगत खाते में या संगठन स्तर पर एक OAuth ऐप बना और पंजीकृत कर सकते हैं। एक OAuth ऐप जो GitHub के साथ एकीकृत होता है, उस संगठन या भंडार तक पहुंच के प्रकार का खुलासा करता है जिसकी उसे आवश्यकता होती है। उपयोगकर्ता OAuth Apps को अधिकृत करते हैं, जो ऐप को प्रमाणित उपयोगकर्ता के रूप में कार्य करने की क्षमता देता है, जैसे डेटा पढ़ना या संशोधित करना। यह दृष्टिकोण अनिवार्य रूप से एक उपयोगकर्ता के रूप में GitHub डेटा को पढ़ने, लिखने या संपादित करने का एक स्वचालित तरीका है। यह भी ध्यान रखना महत्वपूर्ण है कि प्राधिकरण उन संसाधनों तक सीमित है जो उपयोगकर्ता के लिए सुलभ हैं। हालाँकि, OAuth ऐप को उन सभी संसाधनों तक भी पहुँच प्राप्त होती है जो उपयोगकर्ता के लिए उपलब्ध हैं।
नोट
एक्सेस स्तर टोकन (उपयोगकर्ता, संगठन, भंडार) के दायरे से सीमित है।
OAuth ऐप एक्सेस प्रतिबंध वाले संगठनों के लिए, व्यवस्थापक एप्लिकेशन का उपयोग करने के लिए अनुमोदन प्रदान करने में सक्षम है। ईवेंट सदस्यताओं के साथ, OAuth Apps गतिविधि का जवाब देते हैं जैसा कि होता है।
गिटहब ऐप्स
इसके विपरीत, GitHub ऐप्स आपके व्यक्तिगत खाते, आपके स्वामित्व वाले संगठनों या विशिष्ट रिपॉजिटरी में इंस्टॉल किए जाते हैं जिनमें आपके पास व्यवस्थापक पहुंच है। GitHub ऐप्स इंस्टॉल किए गए हैं और GitHub के साथ एक सेवा के रूप में इंटरैक्ट करते हैं, न कि OAuth Apps के साथ एक व्यक्तिगत उपयोगकर्ता के रूप में। GitHub Apps का एक लाभ यह है कि, OAuth ऐप्स के विपरीत, GitHub ऐप्स GitHub लाइसेंस का उपभोग नहीं करते हैं।
GitHub Apps एप्लिकेशन की ओर से एक निजी कुंजी के माध्यम से डेटा एक्सेस करता है जिसका उपयोग JSON वेब टोकन पर हस्ताक्षर करने के लिए किया जाता है। क्योंकि वे विशिष्ट रिपॉजिटरी पर स्थापित हैं, उपयोगकर्ता चुन सकते हैं कि ऐप किन रिपॉजिटरी तक पहुंच सकता है, जो ऐप तक पहुंचने में सक्षम डेटा की मात्रा को सीमित करता है। अनुमतियाँ परिभाषित करती हैं कि GitHub ऐप API के माध्यम से किन संसाधनों तक पहुँच सकता है। OAuth Apps के विपरीत, GitHub Apps में रिपॉजिटरी डेटा, समस्याओं और पुल अनुरोधों के लिए अनुकूलन योग्य अनुमतियाँ हैं। अनुकूलन आपको अधिक दानेदार अनुमतियां देने की अनुमति देता है, ऐप को केवल उन रिपॉजिटरी में पढ़ने और लिखने के लिए सीमित करता है जिन्हें आप इसे एक्सेस करने की अनुमति देते हैं। केवल संगठन के स्वामी ही किसी संगठन में GitHub Apps की सेटिंग प्रबंधित कर सकते हैं।
आप GitHub मार्केटप्लेस से GitHub ऐप्स ढूंढ और इंस्टॉल कर सकते हैं। जब आप GitHub Apps खोज रहे हों, तो ध्यान रखें कि कुछ ऐप्स में एक सत्यापित बैज होता है। सत्यापित बैज ऐप्लिकेशन और उसके स्वामी संगठन के बारे में निम्न बताता है:
- संगठन का उनके डोमेन का स्वामित्व सत्यापित किया जाता है।
- GitHub समर्थन संगठन के लिए ईमेल पते की पुष्टि करता है।
- संगठन को दो-कारक प्रमाणीकरण की आवश्यकता है।
- व्यवस्थापक रिपॉसिटरी व्यवस्थापन, जाँच, रिपॉजिटरी सामग्री, परिनियोजन और समस्याओं के बारे में अनुमतियाँ दे सकता है (व्यवस्थापक परिवर्तनों के लिए उपयोगकर्ता स्वीकृति की आवश्यकता होती है)
- एक व्यवस्थापक ऐप उपयोगकर्ता को किसी अन्य उपयोगकर्ता, ईमेल, अनुयायियों, GPG कुंजी, Git SSH कुंजी, अभिनीत, देखने (व्यवस्थापक परिवर्तनों को उपयोगकर्ता स्वीकृति की आवश्यकता होती है) को ब्लॉक करने की अनुमति दे सकता है
- इवेंट सदस्यता: सुरक्षा सलाहकार, चेक सूट, बनाएँ, परिनियोजन, फोर्क, लेबल, सदस्य, चेक इन, कमिट टिप्पणी, हटाएं, परिनियोजन स्थिति, मील का पत्थर, सदस्यता, संगठन (व्यवस्थापक GH Apps UI में कॉन्फ़िगर करता है और बदला जा सकता है)
GitHub ऐप्स और OAuth ऐप्स में से चुनें
जबकि GitHub ऐप्स कुछ स्थितियों में आपके वर्कफ़्लो में एकीकृत करने का एक आदर्श तरीका है, बड़े संगठनों को स्वचालन के लिए OAuth Apps के पारंपरिक उपयोग से संक्रमण करना चुनौतीपूर्ण लग सकता है। उदाहरण के लिए, सुरक्षा-नीति प्रतिबंध इन उपकरणों का उपयोग करने के लिए चुनने में व्यवस्थापक के विकल्पों को भी सीमित कर सकता है।
नोट
सिस्टम व्यवस्थापक के रूप में, आपको अपनी सुरक्षा नीति का पालन करते हुए इन अनुप्रयोगों का उपयोग करके स्वचालन के लिए श्रेष्ठ विकल्प ढूँढने के लिए अपने डेवलपर्स के साथ कार्य करना चाहिए.
यह निर्धारित करने के लिए कि आपकी स्थिति के लिए कौन सा ऐप सही समाधान है, यहां कुछ महत्वपूर्ण प्रश्नों पर विचार किया गया है:
- क्या मैं चाहता हूं कि ऐप उपयोगकर्ता के रूप में कार्य करे?
- दर-सीमा क्या होनी चाहिए?
- मैं संगठन और रिपॉजिटरी में ऐप को क्या एक्सेस देना चाहता हूं?
- क्या यह ऐप हमारी सुरक्षा नीति का अनुपालन करता है?
GitHub ऐप या OAuth ऐप के बीच चयन करते समय विचार करने के लिए यहां कुछ प्रमुख विशेषताएं और अंतर दिए गए हैं।
| गिटहब ऐप्स | OAuth ऐप्स |
|---|---|
| GitHub ऐप इंस्टॉल करने से ऐप को उपयोगकर्ता या संगठन के खाते के चुने हुए रिपॉजिटरी तक पहुंच मिलती है। | OAuth ऐप को अधिकृत करने से ऐप को उपयोगकर्ता के सुलभ संसाधनों तक पहुंच मिलती है; उदाहरण के लिए, रिपॉजिटरी वे एक्सेस कर सकते हैं। |
| इंस्टॉलेशन एक्सेस टोकन ऐप के निर्माता द्वारा चुनी गई अनुमतियों के साथ निर्दिष्ट रिपॉजिटरी तक सीमित हैं। | एक OAuth एक्सेस टोकन स्कोप के माध्यम से सीमित है। |
| एक इंस्टॉलेशन टोकन ऐप को GitHub Apps बॉट के रूप में पहचानता है। | एक एक्सेस टोकन ऐप को उस उपयोगकर्ता के रूप में पहचानता है जिसने ऐप को टोकन प्रदान किया था। |
| GitHub ऐप्स लक्षित अनुमतियों का उपयोग करते हैं जो उन्हें केवल उसी तक पहुंच का अनुरोध करने की अनुमति देते हैं जिसकी उन्हें आवश्यकता है। | OAuth ऐप्स ग्रैनुलर अनुमतियों का उपयोग नहीं कर सकते। |
| GitHub ऐप्स संगठन एप्लिकेशन नीतियों के अधीन नहीं हैं। एक GitHub ऐप के पास केवल उन रिपॉजिटरी तक पहुंच होती है जो एक संगठन का मालिक अनुदान देता है। | यदि कोई संगठन अनुप्रयोग नीति सक्रिय है, तो केवल संगठन स्वामी ही OAuth अनुप्रयोग की स्थापना को अधिकृत कर सकता है. यदि इंस्टॉल किया गया है, तो OAuth ऐप को उस टोकन के लिए दृश्यमान किसी भी चीज़ तक पहुंच प्राप्त होती है जो संगठन के स्वामी के पास स्वीकृत संगठन के भीतर है। |
| दर सीमा वृद्धि GitHub Apps स्तर (सभी इंस्टॉलेशन को प्रभावित करने) और व्यक्तिगत इंस्टॉलेशन स्तर दोनों पर दी जा सकती है। | दर सीमा वृद्धि प्रति OAuth ऐप दी जाती है। उस OAuth ऐप को दिए गए प्रत्येक टोकन को बढ़ी हुई सीमा मिलती है। |
| GitHub Apps उपयोगकर्ता की ओर से प्रमाणित कर सकते हैं, जिसे उपयोगकर्ता-से-सर्वर अनुरोध कहा जाता है। अधिकृत करने के लिए प्रवाह OAuth ऐप प्राधिकरण प्रवाह के समान है। उपयोगकर्ता-से-सर्वर टोकन की समय सीमा समाप्त हो सकती है और ताज़ा टोकन के साथ नवीनीकृत किया जा सकता है. | OAuth Apps द्वारा उपयोग किया जाने वाला OAuth प्रवाह उपयोगकर्ता की ओर से OAuth ऐप को अधिकृत करता है। यह प्रवाह वही है जिसका उपयोग GitHub ऐप उपयोगकर्ता-से-सर्वर प्राधिकरण में किया जाता है। |
| GitHub Apps रिपॉजिटरी सामग्री की अनुमति मांगते हैं और HTTP- आधारित Git के माध्यम से प्रमाणित करने के लिए आपके इंस्टॉलेशन टोकन का उपयोग करते हैं। | OAuth Apps स्कोप के लिए write:public_key पूछते हैं और API के माध्यम से एक परिनियोजन कुंजी बनाते हैं। फिर आप गिट कमांड करने के लिए उस कुंजी का उपयोग कर सकते हैं। |
अनुप्रयोग पहुँच और अनुमतियाँ
किसी ऐप को GitHub रिपॉजिटरी तक पहुंचने की अनुमति देने के लिए सबसे महत्वपूर्ण विचारों में से एक वह अनुमतियाँ हैं जिन्हें उसे संचालित करने की आवश्यकता होती है। कुछ ऐप्स पर भरोसा करना आसान होता है, लेकिन अन्य संदिग्ध हो सकते हैं। हमेशा सुनिश्चित करें कि आप उन अनुमतियों के साथ सहज हैं जो आप एक ऐप प्रदान करते हैं।
GitHub ऐप या OAuth ऐप का उपयोग करने का निर्णय लेना उस एक्सेस के स्तर पर निर्भर हो सकता है जिसे आप ऐप तक पहुंचाना चाहते हैं। सामान्य तौर पर, आपको अपनी टीम को कार्य पूरा करने के लिए सबसे छोटे दायरे वाले टूल का उपयोग करने के लिए प्रोत्साहित करना चाहिए। OAuth ऐप के पास उपयोगकर्ता या संगठन के स्वामी के सभी संसाधनों तक पहुंच होती है।
- OAuth ऐप्स में आपके GitHub डेटा को पढ़ने या लिखने की पहुंच हो सकती है
- आप GitHub ऐप को दूसरे खाते तक पहुंच प्रदान किए बिना एक खाते तक पहुंच प्रदान कर सकते हैं
आवेदन सुरक्षा
जब आप अपने आवेदन में कोई भेद्यता पाते हैं, तो यह आपके प्रोजेक्ट के उपयोगकर्ताओं को बताने के लिए प्राथमिकता और आपकी सुरक्षा नीति के भीतर होना चाहिए। सुरक्षा समस्या को जल्दी से संप्रेषित करने का मतलब यह हो सकता है कि आपके उपयोगकर्ता समझौता किए गए टोकन को रद्द करने में सक्षम हैं या संवेदनशील डेटा उजागर होने में सक्षम हैं। जबकि टोकन पासवर्ड की तुलना में बहुत अधिक सुरक्षित हैं, फिर भी सुरक्षा से समझौता किया जा सकता है, और आपके संगठन के लिए तैयार रहना महत्वपूर्ण है।
एक README.md फ़ाइल के अलावा, हम अनुशंसा करते हैं कि आपके रिपॉजिटरी में एक SECURITY.md फ़ाइल जोड़ें। SECURITY.md फ़ाइल रिपॉजिटरी के लिए सुरक्षा से संबंधित जानकारी पर प्रकाश डालती है। फ़ाइल में सुरक्षा संपर्क, आपकी संगठन नीतियाँ, और भेद्यता का पता चलने पर आपके द्वारा लिए जाने वाले प्रतिसाद का विवरण शामिल होना चाहिए.
घटनाओं पर प्रतिक्रिया
GitHub ऐप्स को निष्क्रिय होने के लिए डिज़ाइन किया गया है। वे कुछ होने की प्रतीक्षा करते हैं और फिर प्रतिक्रिया करते हैं, आमतौर पर GitHub API के माध्यम से। GitHub पर होने वाली घटनाओं की प्रतीक्षा करते समय, दो दृष्टिकोण होते हैं: वेबहुक और मतदान।
नोट
GitHub ऐप्स GitHub डेटा के साथ काम करने तक सीमित नहीं हैं। आप अन्य स्रोतों से होने वाले ईवेंट पर आसानी से प्रतीक्षा कर सकते हैं या अन्य सेवाओं को अपडेट करने वाली कार्रवाइयाँ कर सकते हैं.
GitHub वेबहुक का उपयोग करना
वेबहुक इवेंट हैंडलिंग के लिए पसंदीदा तरीका है। जब वेबहुक के दायरे में GitHub पर कुछ होता है, तो एक घटना तुरंत उठाई जाती है। वेबहुक उन सूचनाओं को पुश करते हैं जिन्हें आपका ऐप वास्तविक समय में सुन सकता है और संसाधित कर सकता है। आप अपनी रिपॉजिटरी सेटिंग्स में वेबहुक कॉन्फ़िगर कर सकते हैं, जिसमें ईवेंट के प्रकार, प्रमाणीकरण और HTTP सूचनाएं वितरित करने का तरीका शामिल है।
मतदान
कभी-कभी वेबहुक एक विकल्प नहीं होते हैं। आपके ऐप को कॉर्पोरेट फ़ायरवॉल के पीछे रहने की आवश्यकता हो सकती है जहां GitHub सीधे उस तक नहीं पहुंच सकता है। उस स्थिति में, एक विकल्प GitHub API का उपयोग करके आपके द्वारा ट्रैक किए जा रहे डेटा के लिए मतदान करना है।
वेबहुक रिले
फ़ायरवॉल के पीछे ऐप्स के लिए मतदान का एक विकल्प वेबहुक अग्रेषण सेवा का उपयोग करना है, जैसे smee.io। इस दृष्टिकोण के साथ, सार्वजनिक सेवा रिपॉजिटरी के वेबहुक की सदस्यता लेती है, फिर आने वाले डेटा को फ़ायरवॉल के पीछे चलने वाली क्लाइंट सेवा में रिले करती है। वह क्लाइंट सेवा तब सूचनाओं को आपके चल रहे ऐप पर धकेलती है जैसे कि वे मूल स्रोत से आए हों।