एक्सटेंशन के साथ Gemini सीएलआई की मदद से, कोड की समीक्षा करना और सुरक्षा का विश्लेषण करना

1. 📖 परिचय

194a7f6f1a93b614.png

इस कोडलैब में, आपको Gemini CLI की बुनियादी बातों के बारे में जानने को मिलेगा. साथ ही, आपको अपने सॉफ़्टवेयर डेवलपमेंट वर्कफ़्लो में, कोड की समीक्षा करने और सुरक्षा विश्लेषण करने वाले एक्सटेंशन का इस्तेमाल करने का तरीका भी पता चलेगा.

आपको क्या सीखने को मिलेगा

  • Gemini CLI को सेटअप करने का तरीका
  • Gemini CLI को कॉन्फ़िगर करने का तरीका
  • Gemini CLI एक्सटेंशन इंस्टॉल करने का तरीका
  • कोड की समीक्षा और सुरक्षा विश्लेषण के लिए, Gemini CLI एक्सटेंशन का इस्तेमाल कैसे करें
  • Gemini CLI के लिए एमसीपी को कॉन्फ़िगर करने का तरीका
  • CI/CD में Gemini CLI की जांच करने का तरीका

आपको इन चीज़ों की ज़रूरत होगी

  • Chrome वेब ब्राउज़र
  • Gmail खाता
  • ऐसा Cloud प्रोजेक्ट जिसमें बिलिंग खाता चालू हो

2. 🚀 वर्कशॉप डेवलपमेंट सेटअप तैयार किया जा रहा है

पहला चरण: Cloud Console में चालू प्रोजेक्ट चुनना

Google Cloud Console में, प्रोजेक्ट चुनने वाले पेज पर जाकर, Google Cloud प्रोजेक्ट चुनें या बनाएं. (अपनी कंसोल के सबसे ऊपर बाईं ओर मौजूद सेक्शन देखें)

3a143645e891087.png

इस पर क्लिक करने से, आपको अपने सभी प्रोजेक्ट की सूची दिखेगी. जैसे, इस उदाहरण में दिखाया गया है,

59e03077d1ba2039.png

लाल बॉक्स में दिखाई गई वैल्यू, प्रोजेक्ट आईडी है. इस वैल्यू का इस्तेमाल पूरे ट्यूटोरियल में किया जाएगा.

पक्का करें कि आपके Cloud प्रोजेक्ट के लिए बिलिंग चालू हो. इसे देखने के लिए, सबसे ऊपर बाईं ओर मौजूद बर्गर आइकॉन ☰ पर क्लिक करें. इससे नेविगेशन मेन्यू दिखेगा. इसके बाद, बिलिंग मेन्यू ढूंढें

973396bb9d9c3523.png

837e03fb7edafdc4.png

अगर आपको बिलिंग / खास जानकारी टाइटल ( Cloud Console के सबसे ऊपर बाईं ओर मौजूद सेक्शन ) में, "Google Cloud Platform का ट्रायल बिलिंग खाता" दिखता है, तो इसका मतलब है कि आपका प्रोजेक्ट इस ट्यूटोरियल के लिए तैयार है. अगर ऐसा नहीं होता है, तो इस ट्यूटोरियल की शुरुआत पर वापस जाएं और बिना शुल्क वाले आज़माने के लिए उपलब्ध बिलिंग खाते को रिडीम करें

7f607aa026552bf5.png

दूसरा चरण: Cloud Shell के बारे में जानकारी

ट्यूटोरियल के ज़्यादातर हिस्सों के लिए, आपको Cloud Shell का इस्तेमाल करना होगा. Google Cloud Console में सबसे ऊपर, Cloud Shell चालू करें पर क्लिक करें. अगर आपसे अनुमति देने के लिए कहा जाता है, तो अनुमति दें पर क्लिक करें

1829c3759227c19b.png

b8fe7df5c3c2b919.png

Cloud Shell से कनेक्ट होने के बाद, हमें यह देखना होगा कि शेल ( या टर्मिनल) की पुष्टि हमारे खाते से पहले ही हो चुकी है या नहीं

gcloud auth list

अगर आपको नीचे दिए गए उदाहरण के आउटपुट की तरह अपना निजी Gmail दिखता है, तो इसका मतलब है कि सब ठीक है

Credentialed Accounts

ACTIVE: *
ACCOUNT: alvinprayuda@gmail.com

To set the active account, run:
    $ gcloud config set account `ACCOUNT`

अगर ऐसा नहीं होता है, तो अपने ब्राउज़र को रीफ़्रेश करें. साथ ही, यह पक्का करें कि प्रॉम्प्ट मिलने पर आपने अनुमति दें पर क्लिक किया हो. ऐसा हो सकता है कि कनेक्शन की समस्या की वजह से, यह प्रोसेस बीच में रुक गई हो

इसके बाद, हमें यह भी जांच करनी होगी कि शेल को आपके पास मौजूद सही PROJECT ID के लिए पहले से कॉन्फ़िगर किया गया है या नहीं. अगर आपको टर्मिनल में $आइकॉन से पहले ( ) के अंदर वैल्यू दिखती है ( नीचे दिए गए स्क्रीनशॉट में, वैल्यू "your-workshop-project" है), तो यह वैल्यू आपके चालू शेल सेशन के लिए कॉन्फ़िगर किए गए प्रोजेक्ट को दिखाती है.

25e65d7ad1d62de0.png

अगर दिखाई गई वैल्यू पहले से ही सही है, तो अगले निर्देश को छोड़ा जा सकता है. हालांकि, अगर यह सही नहीं है या मौजूद नहीं है, तो यह कमांड चलाएं

gcloud config set project <YOUR_PROJECT_ID>

तीसरा चरण: Cloud Shell Editor के बारे में जानना और ऐप्लिकेशन की वर्किंग डायरेक्ट्री सेट अप करना

अब हम कोडिंग से जुड़े कुछ काम करने के लिए, कोड एडिटर सेट अप कर सकते हैं. इसके लिए, हम Cloud Shell Editor का इस्तेमाल करेंगे

एडिटर खोलें बटन पर क्लिक करें. इससे Cloud Shell Editor b16d56e4979ec951.png खुल जाएगा

अब आपको Cloud Shell Editor इंटरफ़ेस दिखेगा. यह नीचे दिए गए उदाहरण की तरह होगा

74e9e030342164b6.png

अब उस डेमो रिपॉज़िटरी को क्लोन करें जिससे हमें इंटरैक्ट करना है. सबसे पहले, हमें एडिटर के लिए टर्मिनल खोलना होगा. इसके लिए, मेन्यू बार में टर्मिनल -> नया टर्मिनल पर क्लिक करें या Ctrl + Shift + C का इस्तेमाल करें. इससे ब्राउज़र के सबसे नीचे एक टर्मिनल विंडो खुलेगी

95e31ec63a88890d.png

इसके बाद, टर्मिनल पर यह निर्देश चलाएं

git clone https://github.com/alphinside/gemini-cli-code-analysis-demo.git code-analysis-demo

इसके बाद, Cloud Shell Editor के सबसे ऊपर वाले सेक्शन पर जाएं और File->Open Folder पर क्लिक करें. इसके बाद, अपनी username डायरेक्ट्री ढूंढें और क्लोन की गई रिपॉज़िटरी डायरेक्ट्री code-analysis-demo ढूंढें. इसके बाद, OK बटन पर क्लिक करें. इससे चुनी गई डायरेक्ट्री, मुख्य वर्किंग डायरेक्ट्री बन जाएगी. इस उदाहरण में, उपयोगकर्ता नाम alvinprayuda है. इसलिए, डायरेक्ट्री का पाथ यहां दिखाया गया है

ee00d484ff2f8351.png

194f63ef6de51b9.png

अब आपकी Cloud Shell Editor की वर्किंग डायरेक्ट्री ऐसी दिखनी चाहिए

2d53c6161b553e68.png

अब हम अगले चरण पर जा सकते हैं

3. 🚀 सेटअप और कॉन्फ़िगरेशन

अगर आपको अपने लोकल सिस्टम में Gemini CLI इंस्टॉल करना है, तो यह तरीका अपनाएं:

  1. पक्का करें कि आपके सिस्टम में Node का वर्शन 20 या इसके बाद का हो
  2. Gemini CLI को इनमें से किसी एक तरीके से चालू करें:
  • इसे ग्लोबल पैकेज के तौर पर इंस्टॉल करना
# Install as an executor

npm install -g @google/gemini-cli

# then run it from terminal
gemini
  • इसके अलावा, हमेशा नया वर्शन पाने के लिए, इसे सीधे सोर्स से चलाएं
npx https://github.com/google-gemini/gemini-cli

इसे पहली बार चलाने पर, आपसे कई सवाल पूछे जाएंगे. अगर इसे किसी आईडीई (जैसे, VSCode) से चलाया जाता है, तो आपसे यह सवाल पूछा जाएगा

7f0f7d5091df7abb.png

इसके बाद, पुष्टि करने के लिए आपसे कई विकल्प पूछेगा

7ce5c6574f249304.png

यहां कई विकल्प दिए गए हैं:

  • Google से लॉग इन करें को चुनने पर, ब्राउज़र में Google की मदद से पुष्टि करने वाला पेज खुलेगा. आपको सिर्फ़ इसे स्वीकार करना होगा
  • अगर आपको Gemini API कुंजी का इस्तेमाल करना है, तो आपको AI Studio पेज पर जाकर एक कुंजी बनानी होगी. इसके बाद, अपनी वर्किंग डायरेक्ट्री में .env फ़ाइल बनानी होगी. इसमें GEMINI_API_KEY वैरिएबल सेट करना होगा. इसके अलावा, कमांड लाइन पर export GEMINI_API_KEY="your-api-key" कमांड भी चलाई जा सकती है
  • अगर आपको Vertex AI का इस्तेमाल करना है, तो आपको पहले से सेट अप किए गए प्रोजेक्ट की ज़रूरत होगी. साथ ही, आपको .env फ़ाइल बनानी होगी और GOOGLE_CLOUD_PROJECT और GOOGLE_CLOUD_LOCATION सेट करना होगा

अगर आपको पुष्टि करने के इन तरीकों में बदलाव करना है, तो Gemini CLI से /auth कमांड चलाएं या कॉन्फ़िगरेशन फ़ाइल में बदलाव करें. अगर आपको कॉन्फ़िगरेशन फ़ाइल में सीधे तौर पर बदलाव करना है, तो Linux पर यह $HOME/.gemini/settings.json में होनी चाहिए . आपको security दिखेगा. इसे auth करें और इसमें बदलाव करें

{
  "security": {
    "auth": {
      "selectedType": "vertex-ai" # or "gemini-api-key" or "oauth-personal"
    }
  }
}

72300c1f781857c8.png

4. 🚀 बुनियादी निर्देश और पहले से मौजूद टूल

अब, आइए Gemini CLI का इस्तेमाल करके इसके बारे में ज़्यादा जानें. अगर आपको कुछ बुनियादी कमांड चाहिए, तो उपलब्ध सभी कमांड देखने के लिए /help टाइप करें

800d1b06a5ad9f9c.png

/help

आपको इस तरह का आउटपुट दिखेगा f46a75c6bb177a2b.png

Gemini CLI एक एआई एजेंट है. इसलिए, इसमें ऐसे टूल मौजूद होंगे जो उपयोगकर्ता के दिए गए टास्क को पूरा कर सकें. इसमें मौजूद टूल देखने के लिए, /tools कमांड चलाएं

17a6d7fcf06df563.png

/tools

आपको इस तरह का आउटपुट दिखेगा

7d22b38a387f45d0.png

यहां देखा जा सकता है कि Gemini CLI में कई सुविधाएं उपलब्ध हैं. जैसे, फ़ाइल को पढ़ना और उसमें बदलाव करना, वेब पर खोजना वगैरह. इनमें से कई टूल के लिए, डिफ़ॉल्ट रूप से उपयोगकर्ता की सहमति लेना ज़रूरी था. ऐसा संभावित जोखिम की वजह से किया गया था

अब इसे इस्तेमाल करके देखते हैं. Gemini CLI में इन प्रॉम्प्ट को चलाकर देखें

15e2d863a4eb8df4.png

Find top 10 OWASP security issue and write it down to owasp.md

आपको दिखेगा कि यह GoogleSearch टूल को चालू करेगा. इसके बाद, यह WriteFile टूल का इस्तेमाल करके नतीजे लिखेगा. अगर आईडीई का इस्तेमाल किया जाता है, तो आपको दिखेगा कि इसे अंतर के तौर पर दिखाया जाएगा. साथ ही, यह सुझावों को स्वीकार या अस्वीकार करने का विकल्प दिखाएगा. यहां आपको दिखेगा कि Gemini CLI, फ़ाइल में लिखने की अनुमति मांग रहा है

8163f43b05ca59a3.png

5. 🚀 एक्सटेंशन

एआई एजेंट की मदद से किसी टास्क को बेहतर तरीके से पूरा करने के लिए, हमें यह तय करना होता है कि हम सही प्रॉम्प्ट कैसे तैयार करें, सही टूल इंटिग्रेशन के साथ सही कॉन्टेक्स्ट इंजीनियरिंग को कैसे मैनेज करें वगैरह.

Gemini CLI एक्सटेंशन, पहले से पैकेज किए गए और आसानी से इंस्टॉल किए जा सकने वाले प्रॉम्प्ट और इंटिग्रेशन होते हैं. इन्हें बाहरी टूल से कनेक्ट किया जा सकता है. हर एक्सटेंशन में, टूल का बेहतर तरीके से इस्तेमाल करने के बारे में एक "प्लेबुक" शामिल होती है. इसमें ये कॉम्पोनेंट शामिल हो सकते हैं:

  • कस्टम स्लैश कमांड
  • एमसीपी कॉन्फ़िगरेशन
  • कॉन्टेक्स्ट फ़ाइलें

6da12f33463ac755.png

सुरक्षा एक्सटेंशन इंस्टॉल करना

उदाहरण के लिए, इस ट्यूटोरियल में हम जानेंगे कि code-review और security एक्सटेंशन कैसे इंस्टॉल किए जा सकते हैं

टर्मिनल से security एक्सटेंशन इंस्टॉल करने के लिए, यह कमांड चलाएं

gemini extensions install https://github.com/gemini-cli-extensions/security

इसमें ये सवाल दिखेंगे. स्वीकार करने के लिए, बस enter दबाएं

Installing extension "gemini-cli-security".
**Extensions may introduce unexpected behavior. Ensure you have investigated the extension source and trust the author.**
This extension will run the following MCP servers:
  * securityServer (local): node /home/alvinprayuda/.gemini/extensions/gemini-cli-security/mcp-server/dist/security.js
This extension will append info to your gemini.md context using GEMINI.md
Do you want to continue? [Y/n]:
Extension "gemini-cli-security" installed successfully and enabled.

कोड की समीक्षा करने वाले एक्सटेंशन इंस्टॉल करना

इसके बाद, code-review एक्सटेंशन इंस्टॉल करने के लिए, यहां दिया गया निर्देश चलाएं

gemini extensions install https://github.com/gemini-cli-extensions/code-review

प्रोसेस पूरी होने के बाद, Gemini CLI को फिर से चलाएं

gemini

और /extensions कमांड चलाएं. आपको दिखेगा कि ये दो एक्सटेंशन पहले से ही इंस्टॉल हैं

88a86a0dc42fc510.png

/extensions

ठीक है, अब हम उस सैंपल रिपो पर प्रैक्टिकल एक्ज़ीक्यूशन करते हैं जिसे आपने पहले क्लोन किया था

6. 🚀 इंटरैक्टिव मोड - कोड की सुरक्षा का विश्लेषण करने वाले एक्सटेंशन का ऐप्लिकेशन

Security एक्सटेंशन, Gemini सीएलआई का एक ओपन-सोर्स एक्सटेंशन है. इसे रिपॉज़िटरी की सुरक्षा को बेहतर बनाने के लिए बनाया गया है. यह एक्सटेंशन, Gemini सीएलआई में एक नई कमांड जोड़ता है. यह कमांड, कोड में हुए बदलावों का विश्लेषण करती है, ताकि सुरक्षा से जुड़े अलग-अलग जोखिमों और कमज़ोरियों की पहचान की जा सके.

अब हम अपनी डेमो रिपॉज़िटरी तैयार करते हैं. सुरक्षा जोखिम वाले बदलावों को पहले से लागू की गई ब्रांच पर स्विच करने के लिए, यह कमांड चलाएं

git checkout refactor/analysis-demo

इसके बाद, टर्मिनल में Gemini सीएलआई चलाएं

gemini

इसके बाद, एक्सटेंशन चलाएं

e3fcf630238f9b2e.png

/security:analyze

इससे एक लंबी प्रोसेस शुरू हो जाएगी. इस प्रोसेस के दौरान, आपको कई बार रुकावटें आएंगी. इनमें आपसे कुछ खास कार्रवाइयां करने की अनुमति मांगी जाएगी. जैसे, नीचे दिखाया गया mkdir

10d6ad2ef91b5acf.png

यह एक सुरक्षा सुविधा है. इससे यह पक्का किया जाता है कि उपयोगकर्ताओं को इस बात की जानकारी हो कि Gemini CLI कौनसी कार्रवाई करेगी. ट्यूटोरियल के बाकी चरणों के लिए, आपके पास हमेशा अनुमति देने का विकल्प होता है ( दूसरा विकल्प).

यह एक्सटेंशन, लंबे समय तक चलने वाली प्रोसेस को शुरू करेगा. आपको .gemini_security डायरेक्ट्री में एक प्लानिंग फ़ाइल बनती हुई दिखेगी. साथ ही, आपको एक चेकलिस्ट दिखेगी, जिसमें यह जानकारी होगी कि कौनसी प्रोसेस पूरी हो गई है और कौनसी नहीं. नीचे दिए गए उदाहरण में दिखाया गया है:

543035cb65d27804.png

इसे अपने टास्क पूरे करने में कुछ समय लगेगा. इंतज़ार करते समय, हम Github रिपॉज़िटरी में जाकर, इन एक्सटेंशन का सोर्स देख सकते हैं. इस यूआरएल में, सुरक्षा से जुड़ी सभी स्कैनिंग प्रोसेस को चलाने के लिए इस्तेमाल किया गया प्रॉम्प्ट दिखता है

73f4966870bc9ddf.png

जैसा कि यहां देखा जा सकता है, Gemini CLI के तौर पर प्रॉम्प्ट को स्कैन करने के लिए, दो बार जांच की जाती है. पहली बार रेकनाइसेंस पास और दूसरी बार ज़्यादा जानकारी वाली इनवेस्टिगेशन पास की जांच की जाती है.

अगर आपको Gemini CLI में यह प्रॉम्प्ट दिखता है, तो लूप का पता लगाने की सुविधा बंद करने के लिए, दूसरा विकल्प चुनें

a0af5e15627afa83.png

इसके बाद, Gemini CLI को जारी रखने के लिए प्रॉम्प्ट करें

611a7ed0fb6fc44b.png

continue

यह एक ऐसा तरीका है जिससे टूल को बार-बार कॉल करने से बचा जा सकता है. साथ ही, इसे समय के साथ बेहतर बनाया जाता रहेगा.

प्रोसेस पूरी होने के बाद, यह इंटरैक्टिव टर्मिनल पर रिपोर्ट दिखाएगा. इसे आसान बनाने के लिए, Gemini CLI को security-analysis.md में लिखने का निर्देश देते हैं

b4cbad3aaeaa8dce.png

write the result to security-analysis.md file

अब फ़ाइल में लिखे गए नतीजे की जांच की जा सकती है

7. 🚀 नॉन-इंटरैक्टिव मोड - कोड की समीक्षा करने वाले एक्सटेंशन का ऐप्लिकेशन

code-review एक्सटेंशन, Gemini सीएलआई में एक नई कमांड जोड़ता है. यह कमांड, कोड में हुए बदलावों का विश्लेषण करती है, ताकि कोड की क्वालिटी से जुड़ी अलग-अलग समस्याओं की पहचान की जा सके.

इस एक्सटेंशन को Gemini CLI के नॉन-इंटरैक्टिव मोड में इस्तेमाल किया जा सकता है. इसका मतलब है कि पूरी प्रोसेस को Gemini CLI शेल में डाले बिना ही पूरा किया जा सकता है. Gemini CLI को नॉन-इंटरैक्टिव मोड में चलाने के लिए, इस कमांड पैटर्न का इस्तेमाल किया जा सकता है

gemini "put your command here"

हालांकि, यह ध्यान रखना ज़रूरी है कि नॉन-इंटरैक्टिव मोड में चलाने पर, टूल के उन सभी ऑपरेशन को बंद कर दिया जाएगा जिनके लिए उपयोगकर्ता की अनुमति ज़रूरी है. इसलिए, हमें --yolo फ़्लैग जोड़ना होगा, ताकि सभी कार्रवाइयों को अपने-आप मंज़ूरी मिल जाए. इसका मतलब है कि नॉन-इंटरैक्टिव मोड के दौरान सभी टूल चालू हो जाएंगे

आइए, इस कमांड की मदद से code-review एक्सटेंशन चलाएं

gemini "/code-review" --yolo -e code-review > code-review.md

इस कमांड से, Gemini CLI के आउटपुट का नतीजा code-review.md फ़ाइल में लिखा जाएगा. यहां -e फ़्लैग पर ध्यान दें. यह फ़्लैग कंट्रोल करता है कि सेशन के दौरान कौनसा एक्सटेंशन चालू करना है. यहां हम सिर्फ़ code-review एक्सटेंशन को चालू करते हैं और बाकी को बंद कर देते हैं.

इसमें कुछ समय लगेगा. हालांकि, इसके पूरा होने के बाद, आपको मार्कडाउन फ़ाइल में लिखा गया, यहां दिखाया गया आउटपुट दिखेगा

Here are the results of the code review.

While the recent changes to rename `get_products` and `get_product` to `GetProducts` and `GetProduct` are minor, the codebase has some inconsistencies in its naming conventions. For instance, other functions like `create_product` use `snake_case`, while the newly renamed functions use `PascalCase`. For better code quality and readability, I recommend using a consistent naming convention throughout the project.

More importantly, I have identified several security vulnerabilities in the `main.py` file. Here is a summary of the findings:

### 1. SQL Injection
*   **Severity**: High
*   **Location**: 
    *   `main.py:99` in `get_products_by_category`
    *   `main.py:146` in `search_products`
    *   `main.py:372` in `get_user_transactions`
    *   `main.py:438` in `adjust_inventory_by_query`
*   **Description**: The endpoints directly use f-strings to construct SQL queries, making them vulnerable to SQL injection attacks. An attacker could manipulate the input to execute arbitrary SQL commands, potentially leading to data breaches or unauthorized modifications.
*   **Recommendation**: Use parameterized queries or an ORM to handle database interactions. This will ensure that user input is properly sanitized and prevent SQL injection attacks.

### 2. Server-Side Request Forgery (SSRF)
*   **Severity**: High
*   **Location**: `main.py:265` in `fetch_url`
*   **Description**: The `fetch_url` endpoint allows users to specify an arbitrary URL, which the server then requests. This can be exploited to make requests to internal services or local files, leading to information disclosure or other security breaches.
*   **Recommendation**: Implement a whitelist of allowed domains or protocols to restrict the URLs that can be requested. Additionally, you can disable redirects and use a timeout to limit the impact of an attack.

### 3. Information Exposure
*   **Severity**: Medium
*   **Location**: `main.py:423` in `get_environment_variables`
*   **Description**: The `get_environment_variables` endpoint exposes all environment variables to the user. This can include sensitive information such as API keys, database credentials, and other secrets.
*   **Recommendation**: Remove this endpoint or restrict access to it to authorized users. If you need to expose some environment variables, do so selectively and avoid exposing sensitive information.

8. 🚀 मॉडल कॉन्टेक्स्ट प्रोटोकॉल के साथ काम करने की सुविधा

अब, जैसा कि हमने एक्सटेंशन के बारे में दी गई जानकारी में बताया था, Gemini CLI, एमसीपी सर्वर से कनेक्ट हो सकता है. ये ऐसे ऐप्लिकेशन होते हैं जो मॉडल कॉन्टेक्स्ट प्रोटोकॉल के ज़रिए टूल और संसाधन उपलब्ध कराते हैं. इस कनेक्शन की मदद से, Gemini CLI बाहरी सिस्टम और डेटा सोर्स के साथ इंटरैक्ट कर पाता है. इसके लिए, यह MCP सर्वर का इस्तेमाल करता है. ये सर्वर, आपके लोकल एनवायरमेंट और एपीआई जैसी बाहरी सेवाओं के बीच पुल का काम करते हैं.

5f1cdd4be3e7b42a.png

अगर आपको अपना एमसीपी सर्वर सेट अप करना है, तो आपको अपनी .gemini/settings.json फ़ाइल में बदलाव करना होगा. साथ ही, ये कॉन्फ़िगरेशन जोड़ने होंगे :

{
    ...
    # Previous settings above if any
    "mcpServers": {
       "server_name": {
           # MCP server configurations here
       }
    }
}

इस ट्यूटोरियल के लिए, आइए अपने GitHub खाते से कनेक्शन कॉन्फ़िगर करें, ताकि पिछली रिपोर्ट का डेटा GitHub में पुश किया जा सके

GitHub MCP सर्वर को कॉन्फ़िगर करना

सबसे पहले, Gemini CLI प्रोजेक्ट कॉन्फ़िगरेशन फ़ाइल बनाते हैं. यह कमांड चलाएं

mkdir -p .gemini && touch .gemini/settings.json

इसके बाद, .gemini/settings.json फ़ाइल खोलें और इसमें यह कॉन्फ़िगरेशन डालें

{
  "mcpServers": {
       "github": {
            "httpUrl": "https://api.githubcopilot.com/mcp/",
            "headers": {
                "Authorization": "your-personal-access-token"
            },
            "timeout": 5000
       }
  }
}

अब हमें यहां आपके GitHub खाते का निजी ऐक्सेस टोकन चाहिए होगा. इसलिए, पक्का करें कि आपके पास पहले से ही अपना GitHub खाता हो.

Github में लॉगिन करें और Settings पर जाएं

dc57f047ca9a2b83.png

इसके बाद, नीचे की ओर स्क्रोल करके डेवलपर के लिए सेटिंग और टूल ढूंढें और उस पर क्लिक करें

59d9b700c41ca1b6.png

इसके बाद, निजी ऐक्सेस टोकन को चुनें और टोकन (क्लासिक) को चुनें

e96fccd80872e480.png

30ac727da307602b.png

यहाँ अपने निजी ऐक्सेस टोकन का नाम डालें और repo स्कोप की जाँच करें

ad167223fa231e3c.png

इसके बाद, नीचे की ओर स्क्रोल करें और टोकन जनरेट करें बटन पर क्लिक करें.

नया टोकन जनरेट करें बटन पर क्लिक करें. इसके बाद, नया टोकन जनरेट करें (क्लासिक) को चुनें. इसके बाद, जनरेट किए गए टोकन को कॉपी करें और इसे .gemini/settings.json फ़ाइल में लिखें

efd82711868093c0.png

इसलिए, आपका .gemini/settings.json फ़ाइल, यहाँ दिए गए उदाहरण की तरह दिखनी चाहिए

{
  "mcpServers": {
       "github": {
            "httpUrl": "https://api.githubcopilot.com/mcp/",
            "headers": {
                "Authorization": "ghp-xxxx"
            },
            "timeout": 5000
       }
  }
}

अब, कनेक्शन की पुष्टि करते हैं. इस कमांड को चलाकर Gemini CLI में जाएं

gemini

इसके बाद, /mcp कमांड चलाएं. आपको दिखेगा कि GitHub MCP पहले से ही सही तरीके से कॉन्फ़िगर किया गया है

a97c9a98f07dc87c.png

/mcp

इसके बाद, इस निर्देश को सबमिट करके, इस एमसीपी कनेक्शन की जांच करते हैं

59bfd79aba7cc386.png

Aggregate the findings from @code-review.md and @security-analysis.md into a single report and ensure no duplicates issues reported. Post this report as a comment on the relevant pull request for the current git branch on GitHub and display the pull request URL for manual review

यहां @code-review.md और @security-analysis.md नोटेशन देखें. Gemini CLI को पास की जाने वाली फ़ाइलों को इसी तरह से रेफ़रंस किया जाता है. यह कमांड, दोनों फ़ाइलों का कॉन्टेंट पढ़ेगी. साथ ही, Github MCP कनेक्शन का इस्तेमाल करके, इस ब्रांच से जुड़ी पुल रिक्वेस्ट में एक टिप्पणी जोड़ेगी. इसके बाद, इसकी पुष्टि करने के लिए पुल अनुरोध यूआरएल में जाकर देखें.

864b859b56cfe9e7.png

9. 💡सीआई/सीडी वर्कफ़्लो में Gemini CLI

अगर आप Github के उपयोगकर्ता हैं, तो run-gemini-cli Github Action का इस्तेमाल करके, Gemini CLI को अपनी CI/CD पाइपलाइन में आसानी से एम्बेड किया जा सकता है. यह कोडिंग से जुड़े ज़रूरी कामों को अपने-आप पूरा करने वाले एजेंट के तौर पर काम करता है. साथ ही, यह एक ऐसे सहयोगी के तौर पर भी काम करता है जिसे ज़रूरत पड़ने पर, काम सौंपा जा सकता है

इसका इस्तेमाल, पुल अनुरोधों की समीक्षा करने, समस्याओं को हल करने, कोड का विश्लेषण और उसमें बदलाव करने जैसे कई कामों के लिए किया जा सकता है. इसके लिए, सीधे GitHub रिपॉज़िटरी में Gemini से बातचीत करें

इस इंटिग्रेशन का उदाहरण इस पुल अनुरोध में देखा जा सकता है. इसमें, हम रनर के अंदर Gemini सीएलआई के सुरक्षा एक्सटेंशन का इस्तेमाल करते हैं और पुल अनुरोध बनाए जाने पर समीक्षाएँ देते हैं

ad2a8e8d0a15e3f5.png

3cb40f104ce6a594.png

8edb7277fa6324b.png

ef48414c02a16dfa.png

10. 💡Gemini CLI के अन्य एक्सटेंशन एक्सप्लोर करें

8a7939ee0328e6e2.png

https://geminicli.com/extensions पर जाकर, अन्य एक्सटेंशन भी देखे जा सकते हैं . ज़्यादा दिलचस्प टूल के लिए, इसे देखें!

11. 🧹 स्टोरेज खाली करें

इस कोडलैब में इस्तेमाल किए गए संसाधनों के लिए, अपने Google Cloud खाते से शुल्क न लिए जाने के लिए, यह तरीका अपनाएं:

  1. Google Cloud Console में, संसाधन मैनेज करें पेज पर जाएं.
  2. प्रोजेक्ट की सूची में, वह प्रोजेक्ट चुनें जिसे आपको मिटाना है. इसके बाद, मिटाएं पर क्लिक करें.
  3. डायलॉग बॉक्स में, प्रोजेक्ट आईडी डालें. इसके बाद, प्रोजेक्ट मिटाने के लिए बंद करें पर क्लिक करें.