1. परिचय
Gemini CLI Security Extension, Google का बनाया हुआ ओपन सोर्स Gemini CLI एक्सटेंशन है. यह सुरक्षा से जुड़े जोखिमों और कमज़ोरियों के लिए कोड का विश्लेषण करता है. Gemini CLI के साथ Security एक्सटेंशन का इस्तेमाल करके, स्थानीय तौर पर सुरक्षा से जुड़ी समस्याओं का पता लगाया जा सकता है. ठीक उसी तरह जैसे Gemini CLI के किसी अन्य एक्सटेंशन का इस्तेमाल किया जाता है. इसका इस्तेमाल, GitHub पर पुल के अनुरोधों की समीक्षा करने के लिए भी किया जा सकता है. इस कोडलैब में, हम आपकी GitHub रिपॉज़िटरी में Security एक्सटेंशन इस्तेमाल करने का तरीका जानेंगे.
आपको क्या करना होगा
- GitHub से Google Cloud में सुरक्षित तरीके से पुष्टि करने की सुविधा कॉन्फ़िगर करना
- GitHub Actions का ऐसा वर्कफ़्लो बनाएं जो Gemini CLI के सुरक्षा एक्सटेंशन को कॉल करता हो
- GitHub Actions का इस्तेमाल करके, किसी नई या मौजूदा पीआर की सुरक्षा से जुड़ी समीक्षा करना
आपको क्या सीखने को मिलेगा
- GitHub Actions से Google Cloud में सुरक्षित तरीके से पुष्टि करने के लिए, वर्कलोड आइडेंटिटी फ़ेडरेशन का इस्तेमाल कैसे करें
- पुष्टि करने के लिए, Gemini API पासकोड के बजाय Workload Identity Pool और Workload Identity Provider का इस्तेमाल करने के फ़ायदे जानें
- पीआर की मदद से सुरक्षा की समीक्षा करने का तरीका
- सुरक्षा एक्सटेंशन से मिली सुरक्षा समीक्षाओं को समझने का तरीका
आपको इन चीज़ों की ज़रूरत होगी
- वेब ब्राउज़र
- GitHub खाता और रिपॉज़िटरी
- Google Cloud प्रोजेक्ट
यह कोडलैब, उन डेवलपर के लिए बनाया गया है जिन्हें GitHub पर CI/CD वर्कफ़्लो के बारे में जानकारी है. यह ज़रूरी नहीं है कि आपको Gemini सीएलआई या Gemini सीएलआई एक्सटेंशन के बारे में जानकारी हो. अगर आपको यह जानना है कि एक्सटेंशन कैसे काम करते हैं, तो यह कोडलैब देखें: Gemini सीएलआई एक्सटेंशन का इस्तेमाल शुरू करना.
इस कोडलैब में, आपको अपनी GitHub रिपॉज़िटरी में Gemini CLI Security Extension को सेट अप करने का तरीका बताया जाएगा. हम आपको ऐसा कोड नहीं सुझाएंगे जिससे आपकी रिपॉज़िटरी के ख़िलाफ़ पीआर खोला जा सके. इससे सुरक्षा से जुड़ी जोखिम की आशंका का पता चल सकता है.
2. शुरू करने से पहले
कोई प्रोजेक्ट बनाएं या चुनें
- Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर जाकर, Google Cloud प्रोजेक्ट चुनें या बनाएं.
- पक्का करें कि आपके Cloud प्रोजेक्ट के लिए बिलिंग चालू हो. बिलिंग की पुष्टि करने का तरीका जानें.
- Google Cloud में चलने वाले कमांड-लाइन एनवायरमेंट, Cloud Shell को खोलें. Google Cloud कंसोल में सबसे ऊपर मौजूद, Cloud Shell चालू करें पर क्लिक करें.

- Cloud Shell से कनेक्ट होने के बाद, यह पक्का करें कि आपने पुष्टि कर ली हो और प्रोजेक्ट को अपने प्रोजेक्ट आईडी पर सेट किया गया हो. इसके लिए, यहां दिया गया निर्देश इस्तेमाल करें:
gcloud auth list
- इस बात की पुष्टि करने के लिए कि
gcloudनिर्देश को आपके प्रोजेक्ट का इस्तेमाल करने के लिए कॉन्फ़िगर किया गया है, यह निर्देश चलाएं.
gcloud config list project
- अगर आपका प्रोजेक्ट सेट नहीं है, तो इसे सेट करने के लिए इस निर्देश का इस्तेमाल करें:
gcloud config set project ${GOOGLE_CLOUD_PROJECT}
3. GitHub से Google Cloud में पुष्टि करने की सुविधा सेट अप करना
यह कैसे काम करता है

Google Cloud में GitHub Actions से पुष्टि करने के लिए, Workload Identity Federation का इस्तेमाल करने का सुझाव दिया जाता है.
- हर GitHub Actions वर्कफ़्लो रन जॉब के लिए, GitHub, बाहरी पहचान देने वाली कंपनी के तौर पर हस्ताक्षर किया गया JWT (JSON वेब टोकन) जारी करता है. इस टोकन में
repository,workflow, औरjob_workflow_refजैसे "दावे" शामिल होते हैं. ये दावे, उस खास धावक के लिए डिजिटल पहचान पत्र के तौर पर काम करते हैं. इस लैब में, आपको GitHub Actions वर्कफ़्लो बनाना होगा. इसमें एक ऐसा जॉब होगा जोgoogle-github-actions/run-gemini-cliऐक्शन का इस्तेमाल करता है. यह ऐक्शन, GitHub से JWT का अनुरोध करेगा और इस टोकन को Google Cloud में मौजूद Security Token Service (एसटीएस) को भेजेगा. - Google Cloud में, Workload Identity Pool और Provider को कॉन्फ़िगर किया जाएगा. इसके लिए, जारी करने वाले का यूआरएल, GitHub की आधिकारिक टोकन सेवा के यूआरएल
https://token.actions.githubusercontent.comपर सेट किया जाएगा. साथ ही, "एट्रिब्यूट मैपिंग" तय की जाएंगी. इनमें आम तौर पर, रिपॉज़िटरी और ब्रांच के नाम शामिल होते हैं. Google Cloud STS, Workload Identity Pool के नियमों के हिसाब से JWT की पुष्टि करता है. अगर एट्रिब्यूट मैपिंग सहित सभी चीज़ें सही हैं, तो STS, GitHub टोकन को कुछ समय के लिए इस्तेमाल किए जा सकने वाले Google Cloud फ़ेडरेटेड ऐक्सेस टोकन के लिए एक्सचेंज करता है. - अब GitHub Actions वर्कफ़्लो में
google-github-actions/run-gemini-cliकार्रवाई, कनेक्ट किए गए सेवा खाते की "नकल" करने के लिए, कम समय के लिए मान्य Google Cloud फ़ेडरेटेड ऐक्सेस टोकन का इस्तेमाल कर सकती है. ऐसा Workload Identity Pool के लिए किया जाता है. कनेक्ट किए गए सेवा खाते के पास, Google Cloud के किसी भी संसाधन और सेवा को ऐक्सेस करने के लिए, ज़रूरी आईएएम भूमिकाएं और अनुमतियां होनी चाहिए.
Gemini API पासकोड के बजाय Workload Identity Federation का इस्तेमाल करने के फ़ायदे
Gemini API पासकोड का इस्तेमाल करके, GitHub Actions से शुरू किए गए Gemini CLI कॉल की पुष्टि की जा सकती है. इसके लिए, GEMINI_API_KEY नाम का नया GitHub Actions सीक्रेट बनाना होगा. साथ ही, उसमें सही पासकोड वैल्यू डालनी होगी. हालांकि, सुरक्षा से जुड़ी इन वजहों से ऐसा न करने का सुझाव दिया जाता है:
- Gemini API कुंजियों के पास, उनके संबंधित IAM रोल बाइंडिंग से जुड़ी ज़्यादा अनुमतियां हो सकती हैं. इनके साथ छेड़छाड़ होने पर, Google Cloud के कई संसाधनों और सेवाओं का ऐक्सेस मिल जाता है. वर्कलोड आइडेंटिटी फ़ेडरेशन, सेवा खातों और कम समय के लिए मान्य ऐक्सेस टोकन का इस्तेमाल करता है. इससे पुष्टि करने की प्रोसेस ज़्यादा सुरक्षित हो जाती है.
- Gemini API पासकोड को बड़े पैमाने पर मैनेज करना भी मुश्किल होता है. यह पता लगाने में समय लगता है कि कौनसे वर्कफ़्लो, किसी ऐसी कुंजी का इस्तेमाल कर रहे हैं जिसे सार्वजनिक किया गया है. कुंजियों को मैन्युअल तरीके से घुमाने में भी समय लगता है. दूसरी ओर, Cloud Console में जाकर, अपनी रिपॉज़िटरी से जुड़े Workload Identity Pool और उनकी सेवा देने वाली कंपनियों को आसानी से ढूंढा जा सकता है. साथ ही, उनमें बदलाव किया जा सकता है और उन्हें मिटाया जा सकता है.
- Gemini API पासकोड के साथ, आपको हमेशा यह पक्का करना होगा कि आपने उन्हें किसी ऐक्सेस या डीबग लॉग में गलती से तो नहीं दिखाया है. Workload Identity Federation की मदद से, GitHub Actions के वर्कफ़्लो के सीक्रेट नहीं, बल्कि सिर्फ़ वैरिएबल सेव किए जाते हैं. ये वैरिएबल, सीक्रेट की तुलना में कम संवेदनशील होते हैं.
GitHub Actions और Google Cloud को कॉन्फ़िगर करना
- अपने Cloud Shell में, GitHub खाते में लॉग इन करें.
gh auth login
- एक नई फ़ाइल
setup_workload_identity.shबनाएं. इसके बाद,google-github-actions/run-gemini-cliरिपॉज़िटरी से सेटअप स्क्रिप्ट को कॉपी करके चिपकाएं. - स्क्रिप्ट को एक्ज़ीक्यूटेबल फ़ाइल में बदलें.
chmod +x setup_workload_identity.sh
- स्क्रिप्ट चलाएं.
./setup_workload_identity.sh --repo {OWNER/REPO} --project {GOOGLE_CLOUD_PROJECT}
4. GitHub Actions वर्कफ़्लो बनाना
- उस GitHub रिपॉज़िटरी को देखें जिसका मालिकाना हक आपके पास है.
git clone {YOUR_REPO}
cd {YOUR REPO}
- GitHub Actions वर्कफ़्लो बनाएं, जो
/gemini-cli-extensions/securityrepo से उदाहरण वर्कफ़्लोymlस्क्रिप्ट कॉपी करके, स्लैश कमांड/security:analyze-github-prको कॉल करता हो.
git checkout -b workflow
mkdir .github/ && cd .github/
mkdir workflows/ && cd workflows/
curl -L https://raw.githubusercontent.com/gemini-cli-extensions/security/refs/heads/main/.github/workflows/gemini-review.yml -o gemini-review.yml
- GitHub Actions वर्कफ़्लो को GitHub पर मौजूद रिमोट ओरिजिन पर पुश करें.
git add .github/workflows/gemini-review.yml
git commit -m "add new gha workflow"
git push --set-upstream origin workflow
5. नई और मौजूदा पीआर पर सुरक्षा विश्लेषण वर्कफ़्लो चलाना
रिपॉज़िटरी के मालिक या योगदान देने वाले व्यक्ति के तौर पर, अपनी GitHub रिपॉज़िटरी में नई पुल रिक्वेस्ट (पीआर) शुरू करें या "@gemini-cli /review" के तौर पर नई टिप्पणी पोस्ट करें. इससे पीआर पर सुरक्षा की समीक्षा शुरू हो जाएगी. GitHub Actions वर्कफ़्लो से Gemini CLI Security Extension, आपकी रिपॉज़िटरी में मौजूद किसी भी सुरक्षा समस्या को टैग करेगा. यह टैगिंग, समस्या की गंभीरता के हिसाब से की जाएगी. जैसे, "बहुत गंभीर", "गंभीर", "सामान्य", और "कम गंभीर".
यहां नए पीआर की सुरक्षा समीक्षा का उदाहरण और मौजूदा पीआर की सुरक्षा समीक्षा का उदाहरण दिया गया है.
6. ज़्यादा जानकारी
हमारा सुझाव है कि आप Gemini सीएलआई के Security एक्सटेंशन में, नई सुरक्षा सुविधाओं वाली कस्टम कमांड की बढ़ती हुई सूची को एक्सप्लोर करें. साथ ही, अपने वर्कफ़्लो में इसका इस्तेमाल शुरू करें. उदाहरण के लिए:
/security:scan-depsआपके प्रोजेक्ट की डिपेंडेंसी को OSV.dev के साथ क्रॉस-रेफ़रंस करता है.
नई सुविधाओं और गड़बड़ियों को ठीक करने वाले अपडेट के बारे में जानने के लिए, रिलीज़ नोट देखें.
7. बधाई हो
बधाई हो, आपने GitHub रिपॉज़िटरी को Gemini सीएलआई के सुरक्षा एक्सटेंशन का इस्तेमाल करने के लिए कॉन्फ़िगर कर लिया है. इससे सुरक्षा से जुड़े जोखिमों और कमियों के लिए पीआर का विश्लेषण किया जा सकेगा.