GitLab - GenAI এর সাথে কোড রিভিউ অটোমেশন

১. সংক্ষিপ্ত বিবরণ

এই ল্যাবে, আপনি GitLab CICD পাইপলাইন সেট আপ করবেন এবং কোড রিভিউ ধাপগুলো স্বয়ংক্রিয় করতে এটিকে Gemini-এর সাথে ইন্টিগ্রেট করবেন।

e6923862de67e3f5.png

আপনি যা শিখবেন

এই ল্যাবে, আপনারা নিম্নলিখিত বিষয়গুলো করতে শিখবেন:

  • গিটল্যাবে কীভাবে GenAI কোড রিভিউ অটোমেশন ধাপগুলি যুক্ত করবেন
  • কোড রিভিউ স্বয়ংক্রিয় করতে স্থানীয়ভাবে devai cli কীভাবে চালাবেন

পূর্বশর্ত

  • এই ল্যাবটি করার জন্য ক্লাউড কনসোল এবং ক্লাউড শেল পরিবেশ সম্পর্কে পূর্বপরিচিতি আছে বলে ধরে নেওয়া হচ্ছে।

২. সেটআপ এবং প্রয়োজনীয়তা

ক্লাউড প্রজেক্ট সেটআপ

  1. Google Cloud Console- এ সাইন-ইন করুন এবং একটি নতুন প্রজেক্ট তৈরি করুন অথবা বিদ্যমান কোনো প্রজেক্ট পুনরায় ব্যবহার করুন। যদি আপনার আগে থেকে Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে।

fbef9caa1602edd0.png

a99b7ace416376c4.png

5e3ff691252acf41.png

  • প্রজেক্টের নামটি হলো এই প্রজেক্টের অংশগ্রহণকারীদের প্রদর্শিত নাম। এটি একটি ক্যারেক্টার স্ট্রিং যা গুগল এপিআই ব্যবহার করে না। আপনি যেকোনো সময় এটি আপডেট করতে পারেন।
  • প্রজেক্ট আইডি সমস্ত গুগল ক্লাউড প্রজেক্ট জুড়ে অনন্য এবং অপরিবর্তনীয় (একবার সেট করার পর এটি পরিবর্তন করা যায় না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত এটি কী তা নিয়ে আপনার মাথা ঘামানোর দরকার নেই। বেশিরভাগ কোডল্যাবে, আপনাকে আপনার প্রজেক্ট আইডি উল্লেখ করতে হবে (যা সাধারণত PROJECT_ID হিসাবে চিহ্নিত করা হয়)। তৈরি করা আইডিটি আপনার পছন্দ না হলে, আপনি এলোমেলোভাবে আরেকটি তৈরি করতে পারেন। বিকল্পভাবে, আপনি আপনার নিজের আইডি দিয়ে চেষ্টা করে দেখতে পারেন যে সেটি উপলব্ধ আছে কিনা। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রজেক্টের পুরো সময়কাল জুড়ে এটি অপরিবর্তিত থাকবে।
  • আপনার অবগতির জন্য জানানো যাচ্ছে যে, তৃতীয় একটি ভ্যালু রয়েছে, যা হলো প্রজেক্ট নম্বর , এবং কিছু এপিআই এটি ব্যবহার করে থাকে। ডকুমেন্টেশনে এই তিনটি ভ্যালু সম্পর্কে আরও বিস্তারিত জানুন।
  1. এরপর, ক্লাউড রিসোর্স/এপিআই ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং চালু করতে হবে। এই কোডল্যাবটি সম্পন্ন করতে খুব বেশি খরচ হবে না, এমনকি আদৌ কোনো খরচ নাও হতে পারে। এই টিউটোরিয়ালের পর বিলিং এড়াতে রিসোর্সগুলো বন্ধ করার জন্য, আপনি আপনার তৈরি করা রিসোর্সগুলো অথবা প্রজেক্টটি ডিলিট করে দিতে পারেন। নতুন গুগল ক্লাউড ব্যবহারকারীরা ৩০০ মার্কিন ডলারের ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য।

পরিবেশ সেটআপ

জেমিনি চ্যাট খুলুন।

bc3c899ac8bcf488.png

অথবা সার্চ বারে 'Ask Gemini' টাইপ করুন।

e1e9ad314691368a.png

Google Cloud API-এর জন্য Gemini সক্রিয় করুন:

990a0ceea7d05531.png

" Start chatting "-এ ক্লিক করুন এবং এটি পরখ করে দেখার জন্য নমুনা প্রশ্নগুলোর মধ্যে একটি অনুসরণ করুন অথবা আপনার নিজের প্রশ্ন টাইপ করুন।

ed120d672468b412.png

চেষ্টা করার মতো কিছু প্রম্পট:

  • ৫টি মূল পয়েন্টে ক্লাউড রান ব্যাখ্যা করুন।
  • আপনি গুগল ক্লাউড রান-এর প্রোডাক্ট ম্যানেজার, একজন শিক্ষার্থীকে ৫টি সংক্ষিপ্ত ও গুরুত্বপূর্ণ পয়েন্টে ক্লাউড রান ব্যাখ্যা করুন।
  • আপনি গুগল ক্লাউড রান প্রোডাক্ট ম্যানেজার, একজন সার্টিফায়েড কুবারনেটিস ডেভেলপারকে ৫টি সংক্ষিপ্ত ও মূল পয়েন্টে ক্লাউড রান ব্যাখ্যা করুন।
  • আপনি গুগল ক্লাউড রান-এর প্রোডাক্ট ম্যানেজার। একজন সিনিয়র ডেভেলপারকে ৫টি সংক্ষিপ্ত ও গুরুত্বপূর্ণ পয়েন্টে ব্যাখ্যা করুন, কখন আপনি GKE-এর পরিবর্তে ক্লাউড রান ব্যবহার করবেন।

আরও ভালো প্রম্পট লেখার বিষয়ে জানতে প্রম্পট গাইড দেখুন।

গুগল ক্লাউডের জন্য জেমিনি কীভাবে আপনার ডেটা ব্যবহার করে

গুগলের গোপনীয়তার প্রতিশ্রুতি

এআই/এমএল গোপনীয়তার প্রতিশ্রুতি প্রকাশকারী শিল্পখাতে গুগল অন্যতম প্রথম প্রতিষ্ঠান, যেখানে আমাদের এই বিশ্বাসটি তুলে ধরা হয়েছে যে, ক্লাউডে সংরক্ষিত গ্রাহকদের ডেটার ওপর সর্বোচ্চ স্তরের নিরাপত্তা এবং নিয়ন্ত্রণ থাকা উচিত।

আপনার জমা দেওয়া এবং প্রাপ্ত ডেটা

আপনি জেমিনিকে যে প্রশ্নগুলো করেন, যার মধ্যে বিশ্লেষণ বা সম্পূর্ণ করার জন্য আপনার জমা দেওয়া যেকোনো ইনপুট তথ্য বা কোডও অন্তর্ভুক্ত, সেগুলোকে প্রম্পট বলা হয়। জেমিনি থেকে আপনি যে উত্তর বা কোড সম্পূর্ণকরণ পান, সেগুলোকে রেসপন্স বলা হয়। জেমিনি তার মডেলগুলোকে প্রশিক্ষণ দেওয়ার জন্য আপনার প্রম্পট বা তার রেসপন্সগুলোকে ডেটা হিসেবে ব্যবহার করে না

প্রম্পটের এনক্রিপশন

আপনি যখন জেমিনিতে প্রম্পট জমা দেন, তখন আপনার ডেটা জেমিনির অন্তর্নিহিত মডেলে ইনপুট হিসেবে স্থানান্তরের সময় এনক্রিপ্ট করা হয়

জেমিনি থেকে তৈরি প্রোগ্রাম ডেটা

জেমিনি গুগল ক্লাউডের নিজস্ব কোডের পাশাপাশি নির্বাচিত তৃতীয় পক্ষের কোডের উপরও প্রশিক্ষিত। আপনার কোডের নিরাপত্তা, পরীক্ষা এবং কার্যকারিতার জন্য আপনিই দায়ী থাকবেন , যার মধ্যে জেমিনির দেওয়া যেকোনো কোড কমপ্লিশন, জেনারেশন বা অ্যানালাইসিসও অন্তর্ভুক্ত।

গুগল আপনার অনুরোধগুলো কীভাবে পরিচালনা করে, সে সম্পর্কে আরও জানুন

৩. প্রম্পট পরীক্ষা করার বিকল্পসমূহ

আপনি যদি বিদ্যমান devai cli প্রম্পটগুলো পরিবর্তন বা সম্প্রসারণ করতে চান, তার জন্য আপনার কাছে বেশ কয়েকটি বিকল্প রয়েছে।

ভার্টেক্স এআই স্টুডিও হলো গুগল ক্লাউডের ভার্টেক্স এআই প্ল্যাটফর্মের একটি অংশ, যা বিশেষভাবে জেনারেটিভ এআই মডেলের উন্নয়ন ও ব্যবহারকে সহজ এবং দ্রুততর করার জন্য ডিজাইন করা হয়েছে।

গুগল এআই স্টুডিও হলো প্রম্পট ইঞ্জিনিয়ারিং এবং জেমিনি এপিআই নিয়ে প্রোটোটাইপিং ও পরীক্ষা-নিরীক্ষার জন্য একটি ওয়েব-ভিত্তিক টুল।

গুগল জেমিনি ওয়েব অ্যাপ (gemini.google.com) হলো একটি ওয়েব-ভিত্তিক টুল, যা আপনাকে গুগলের জেমিনি এআই মডেলগুলোর শক্তি অন্বেষণ ও ব্যবহার করতে সাহায্য করার জন্য ডিজাইন করা হয়েছে।

৪. পরিষেবা অ্যাকাউন্ট তৈরি করুন

সার্চ বারের ডানদিকে থাকা আইকনটিতে ক্লিক করে ক্লাউড শেল সক্রিয় করুন।

3e0c761ca41f315e.png

খোলা টার্মিনালে, Vertex AI API এবং Gemini চ্যাট ব্যবহার করার জন্য প্রয়োজনীয় পরিষেবাগুলি সক্রিয় করুন।

gcloud services enable \
    aiplatform.googleapis.com \
    cloudaicompanion.googleapis.com \
    cloudresourcemanager.googleapis.com \
    secretmanager.googleapis.com

অনুমতি দিতে বলা হলে, চালিয়ে যাওয়ার জন্য 'Authorize'-এ ক্লিক করুন।

6356559df3eccdda.png

একটি নতুন সার্ভিস অ্যাকাউন্ট ও কী তৈরি করতে নিম্নলিখিত কমান্ডগুলো চালান।

আপনি CICD পাইপলাইন থেকে Vertex AI Gemini API-তে API কল করার জন্য এই সার্ভিস অ্যাকাউন্টটি ব্যবহার করবেন।

PROJECT_ID=$(gcloud config get-value project)
SERVICE_ACCOUNT_NAME='vertex-client'
DISPLAY_NAME='Vertex Client'
KEY_FILE_NAME='vertex-client-key'

gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME --display-name "$DISPLAY_NAME"

ভূমিকা মঞ্জুর করুন।

gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/aiplatform.admin" --condition None

gcloud projects add-iam-policy-binding $PROJECT_ID --member="serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com" --role="roles/secretmanager.secretAccessor" --condition None

gcloud iam service-accounts keys create $KEY_FILE_NAME.json --iam-account=$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com

৫. গিটহাব রিপোকে গিটল্যাব রিপোতে ইম্পোর্ট করুন

https://gitlab.com/projects/new- এ যান এবং " Import project " / " Repository by URL " বিকল্পটি নির্বাচন করুন:

গিট রিপোজিটরি ইউআরএল:

https://github.com/GoogleCloudPlatform/genai-for-developers.git

প্রজেক্ট ইউআরএল (Project URL)-এর অধীনে আপনার গিটল্যাব ইউজার আইডি (gitlab userid) নির্বাচন করুন।

দৃশ্যমানতা Public করুন।

ইম্পোর্ট প্রক্রিয়া শুরু করতে " Create Project " এ ক্লিক করুন।

যদি আপনি অবৈধ গিটহাব রিপোজিটরি ইউআরএল (URL) সংক্রান্ত কোনো ত্রুটি দেখতে পান, তাহলে পাবলিক রিপোজিটরিগুলোতে শুধুমাত্র পঠনযোগ্য (read-only) অ্যাক্সেসসহ একটি নতুন (ফাইন-গ্রেইনড) গিটহাব টোকেন তৈরি করুন এবং আপনার গিটহাব ইউজারআইডি ও টোকেন দিয়ে পুনরায় ইম্পোর্ট করার চেষ্টা করুন।

৬. গিটল্যাব সিআইসিডি পাইপলাইন ভেরিয়েবল যোগ করুন

এরপরে আপনি GitLab CICD পাইপলাইনটি সক্রিয় করবেন, যাতে রিপোজিটরিতে কোনো পরিবর্তন পুশ করা হলে কোড রিভিউ চালানো হয়।

ব্রাউজারে GitLab রিপোজিটরিটি খুলুন এবং " Settings / CICD" বিভাগে যান।

Variables সেকশনটি প্রসারিত করুন এবং " Add variable "-এ ক্লিক করুন।

নতুন ভেরিয়েবলগুলো যোগ করার সময় সব চেকবক্স আনচেক করতে ভুলবেন না।

উদাহরণ:

5644cec84e7303c3.png

৩টি ভেরিয়েবল যোগ করুন:

  • PROJECT_ID - আপনার কুইকল্যাবস প্রজেক্ট আইডি
  • LOCATION - ইউএস-সেন্ট্রাল১
  • GOOGLE_CLOUD_CREDENTIALS

GOOGLE_CLOUD_CREDENTIALS ভেরিয়েবলের মানের জন্য, উপরের বিভাগে তৈরি করা সার্ভিস অ্যাকাউন্ট কী-টি ব্যবহার করুন। Google Cloud Shell-এ এই কমান্ডটি চালান এবং মানটি কপি/পেস্ট করুন।

cat ~/vertex-client-key.json

CI/CD ভেরিয়েবল ভিউ:

2f4594ce72be4834.png

৭. গিটল্যাব সিআইসিডি পাইপলাইন চালান

GitLab UI-তে " Build / Pipelines " খুলুন এবং " Run Pipeline "-এ ক্লিক করুন।

a7518e37dde42366.png

৮. গিটল্যাব পাইপলাইন আউটপুট পর্যালোচনা করুন।

GitLab UI-তে " Build / Jobs " খুলুন এবং পাইপলাইন আউটপুট পর্যালোচনা করুন।

985e4b322fb73b1c.png

পাইপলাইন কমান্ডের সংক্ষিপ্ত বিবরণ

গিটল্যাব পাইপলাইন কনফিগারেশন: .gitlab-ci.yml

টেস্ট কভারেজ কমান্ড :

devai review testcoverage -c ./sample-app/src

এই devai review testcoverage কমান্ডটি একটি জেনারেটিভ এআই মডেল, `Gemini` ব্যবহার করে কোড এবং এর সাথে সম্পর্কিত টেস্ট স্যুট (যদি থাকে) বিশ্লেষণ করে। এটি প্রদত্ত কোডের টেস্ট কভারেজ মূল্যায়ন করে এবং ইউনিট টেস্ট আছে বা নেই এমন ফাইল ও মেথড শনাক্ত করে। এরপর কমান্ডটি মডেলটিকে কাজে লাগিয়ে কভারেজের একটি সারাংশ প্রদান করে, যার মধ্যে কভার করা লাইন এবং ব্রাঞ্চ/কন্ডিশনের মতো মেট্রিক অন্তর্ভুক্ত থাকে। এর বিশ্লেষণের উপর ভিত্তি করে, এটি টেস্ট কভারেজ উন্নত করার জন্য সুপারিশ করে, নির্দিষ্ট টেস্ট যোগ করার পরামর্শ দেয় এবং টেস্টিংয়ের সেরা অনুশীলন সম্পর্কে সাধারণ উপদেশ প্রদান করে। সবশেষে, এটি কমান্ড লাইনের মাধ্যমে ব্যবহারকারীকে `Gemini` মডেলের প্রতিক্রিয়া আউটপুট করে, যার মধ্যে কভারেজের অভাব রয়েছে এমন ফাইলের বিবরণ এবং বিদ্যমান টেস্টগুলো উন্নত করার জন্য পরামর্শ অন্তর্ভুক্ত থাকে।

কোড পর্যালোচনা কমান্ড :

devai review code -c ./sample-app/src/main/java/anthos/samples/bankofanthos/balancereader

devai review code কমান্ডটি একটি জেনারেটিভ এআই মডেল ব্যবহার করে প্রদত্ত কোড স্নিপেটের একটি বিশদ পর্যালোচনা করে। এটি পর্যালোচনার জন্য কোডটিকে ইনপুট (context) এবং আউটপুট ফরম্যাটের পছন্দকে (output) গ্রহণ করে। এটি একটি বৃহৎ ল্যাঙ্গুয়েজ মডেল ব্যবহার করে কোডের সঠিকতা, কার্যকারিতা, রক্ষণাবেক্ষণযোগ্যতা, নিরাপত্তা এবং সর্বোত্তম অনুশীলনের প্রতি আনুগত্য বিশ্লেষণ করে। কমান্ডটি জেমিনিকে পর্যালোচনাটি কীভাবে পরিচালনা করতে হবে সে সম্পর্কে নির্দেশ দিয়ে একটি বিস্তারিত প্রম্পট তৈরি করে এবং তারপর প্রদত্ত কোডটি মূল্যায়ন করার জন্য মডেলের কাছে পাঠায়। সবশেষে, এটি জেমিনির প্রতিক্রিয়াটি প্রসেস করে, ব্যবহারকারীর পছন্দ অনুযায়ী সেটিকে মার্কডাউন, JSON বা একটি টেবিলে ফরম্যাট করে এবং পর্যালোচনার ফলাফল আউটপুট হিসেবে প্রদান করে।

সম্মতি পর্যালোচনা কমান্ড :

devai review compliance --context ./sample-app/k8s --config ./devai-cli/gemini/styleguide.md

devai review compliance কমান্ডটি সাধারণত Kubernetes কনফিগারেশনের জন্য ব্যবহৃত কিছু সেরা অনুশীলনের (best practices) সাথে মিলিয়ে কোড বিশ্লেষণ করে। এটি একটি Gemini মডেল ব্যবহার করে প্রদত্ত কোড ( context ) পর্যালোচনা করে এবং একটি পৃথক কনফিগারেশন ফাইলে ( config ) সংজ্ঞায়িত নির্দিষ্ট মানগুলির সাথে তুলনা করে। কমান্ডটি একটি প্রম্পট ব্যবহার করে Gemini মডেলকে একজন বিশেষজ্ঞ Kubernetes ইঞ্জিনিয়ারের মতো কাজ করতে এবং একটি কমপ্লায়েন্স রিপোর্ট প্রদান করতে নির্দেশ দেয়। এরপর এটি প্রাপ্ত ফলাফলগুলোকে একটি সংক্ষিপ্ত ব্যাখ্যা হিসেবে উপস্থাপন করে, যেখানে চিহ্নিত সমস্যাগুলোর সমাধান কীভাবে করা যায় তা দেখানোর জন্য কোডের নমুনাগুলোর উপর আলোকপাত করা হয়। সবশেষে, কমান্ডটি Gemini-র কমপ্লায়েন্স পর্যালোচনার আউটপুট কনসোলে প্রিন্ট করে। এর ফলে একজন ব্যবহারকারী সহজেই কমপ্লায়েন্সের জন্য তার কোড নিরীক্ষা করতে পারেন।

৯. গিটল্যাব রিপো ক্লোন করুন

গুগল ক্লাউড শেল টার্মিনালে ফিরে যান এবং রিপোজিটরিটি ক্লোন করুন।

cd ~
mkdir gitlab
cd gitlab

আপনার সদ্য তৈরি করা GitLab ইউজার আইডি এবং রিপোজিটরি ইউআরএল দিয়ে প্রতিস্থাপন করুন।

git clone https://gitlab.com:YOUR_GITLAB_USERID/genai-for-developers.git

ডিরেক্টরি পরিবর্তন করে .gitlab-ci.yml ফাইলটি খুলুন। ইম্পোর্ট করার সময় যদি আপনি রিপোজিটরির নাম পরিবর্তন করে থাকেন, তাহলে নিম্নলিখিত কমান্ডগুলো চালানোর আগে ফোল্ডারের নাম আপডেট করুন।

cd genai-for-developers

cloudshell edit .gitlab-ci.yml

১০. জেমিনি কোড অ্যাসিস্টের সাহায্যে কোড ব্যাখ্যা করুন।

.gitlab-ci.yml ফাইলের যেকোনো জায়গায় রাইট ক্লিক করুন এবং Gemini Code Assist > Explain this নির্বাচন করুন।

f112229bcb52f48a.png

পর্যালোচনার ব্যাখ্যা:

b07fb4cdf803c141.png

১১. দেবএআই সিএলআই উন্নয়ন

এই অংশে আপনি devai cli তে পরিবর্তন আনবেন।

শুরু করার জন্য, পাইথন ভার্চুয়ালএনভ সেট আপ করুন, প্রয়োজনীয় জিনিসপত্র ইনস্টল করুন এবং নমুনা কমান্ডটি চালান।

cd ~/gitlab/genai-for-developers/devai-cli
python3 -m venv venv
. venv/bin/activate
pip3 install -r src/requirements.txt
pip3 install --editable ./src
devai echo

প্রয়োজনীয় এনভায়রনমেন্ট ভেরিয়েবল সেট করুন।

export PROJECT_ID=$(gcloud config get-value project)
export LOCATION=us-central1

সবকিছু ঠিকঠাক কাজ করছে কিনা তা পরীক্ষা করতে কোড রিভিউ কমান্ডটি চালান:

devai review code -c ~/gitlab/genai-for-developers/sample-app/src/main/java/anthos/samples/bankofanthos/balancereader > code-review.md

cloudshell edit code-review.md

ক্লাউড শেল এডিটরে মার্কডাউন প্রিভিউ ব্যবহার করে ফলাফল পর্যালোচনা করুন।

কমান্ড প্যালেট ব্যবহার করে ' Markdown: Open Preview ' নির্বাচন করুন।

9587123b62f12a55.png

9999e7fbb20cf251.png

9a12ba6ee8b3eedd.png

12. devai cli কমান্ডগুলি অন্বেষণ করুন

টেস্ট কভারেজ পর্যালোচনা কমান্ড

devai review testcoverage -c ~/genai-for-developers/sample-app/src > testcoverage.md

cloudshell edit testcoverage.md

সম্মতি পর্যালোচনা কমান্ড

devai review compliance --context ~/genai-for-developers/sample-app/k8s --config ~/genai-for-developers/devai-cli/.gemini/styleguide.md > k8s-review.md

cloudshell edit k8s-review.md

কর্মক্ষমতা পর্যালোচনা কমান্ড

devai review performance -c ~/genai-for-developers/sample-app/src/main/java > performance-review.md

cloudshell edit performance-review.md

নিরাপত্তা পর্যালোচনা কমান্ড

devai review security -c ~/genai-for-developers/sample-app/src/main/java > security-review.md

cloudshell edit security-review.md

ব্লকার পর্যালোচনা কমান্ড

devai review blockers -c ~/gitlab/genai-for-developers/sample-app/pom.xml
devai review blockers -c ~/gitlab/genai-for-developers/sample-app/setup.md

চিত্র/ডায়াগ্রাম পর্যালোচনা এবং সারসংক্ষেপ

ইনপুট ডায়াগ্রাম[ ~/genai-for-developers/images/extension-diagram.png ]:

4b109a74e1aa3fb6.png

পর্যালোচনা আদেশ:

devai review image \
  -f ~/genai-for-developers/images/extension-diagram.png \
  -p "Review and summarize this diagram" > image-review.md

cloudshell edit image-review.md

আউটপুট:

The diagram outlines a process for conducting local code reviews using a VS Code extension or CLI, leveraging Google Cloud's Vertex AI (Gemini Pro) for generating review prompts. 

**Process Flow:**

1. **Code Style Check:** Developers initiate the process by checking their code for adherence to pre-defined style guidelines.
2. **Prompt Generation:** The VS Code extension/CLI sends the code to Vertex AI (Gemini Pro) on Google Cloud. 
3. **Vertex AI Review:**  Vertex AI analyzes the code and generates relevant review prompts.
4. **Local Review:** The prompts are sent back to the developer's IDE for their consideration.
5. **Optional Actions:** Developers can optionally: 
    - Create new JIRA issues directly from the IDE based on the review prompts.
    - Generate new issues in a GitLab repository.

**Key Components:**

* **VS Code Extension/CLI:** Tools facilitating the interaction with Vertex AI and potential integrations with JIRA and GitLab.
* **Vertex AI (Gemini Pro):**  Google Cloud's generative AI service responsible for understanding the code and generating meaningful review prompts.
* **Google Cloud Secret Manager:** Securely stores API keys and access tokens required to authenticate and interact with Google Cloud services.
* **JIRA/GitLab (Optional):** Issue tracking and project management tools that can be integrated for a streamlined workflow.

**Benefits:**

* **Automated Review Assistance:**  Leveraging AI to generate review prompts saves time and improves the consistency and quality of code reviews. 
* **Local Development:** The process empowers developers to conduct reviews locally within their familiar IDE.
* **Integration Options:** The flexibility to integrate with project management tools like JIRA and GitLab streamlines workflow and issue tracking.

চিত্র পার্থক্য বিশ্লেষণ:

devai review imgdiff \
  -c ~/genai-for-developers/images/devai-api.png \
  -t ~/genai-for-developers/images/devai-api-slack.png > image-diff-review.md

 cloudshell edit image-diff-review.md

আউটপুট:

The following UI elements are missing in the "AFTER UPGRADE STATE" image compared to the "BEFORE UPGRADE STATE" image:

1. **Slack:** The entire Slack element, including the icon, "Team channel" label, and the arrow indicating interaction, is absent in the AFTER UPGRADE image. 
2. **Storage Bucket:**  The "Storage Bucket" element with its icon and "PDFs" label is missing in the AFTER UPGRADE image. 
3. **"GenAI Agents" label in Vertex AI block:** The BEFORE UPGRADE image has "Vertex AI Agents" and "GenAI Agent" labels within the Vertex AI block, while the AFTER UPGRADE image only has "Vertex AI."
4. **"Open JIRA Issue" and "Team Project" labels:** In the BEFORE UPGRADE image, these labels are connected to the JIRA block with an arrow. These are missing in the AFTER UPGRADE image.

**Decision Explanation:**

The analysis is based on a direct visual comparison of the two provided images, noting the presence and absence of specific UI elements and their associated labels. The elements listed above are present in the BEFORE UPGRADE image but absent in the AFTER UPGRADE image.

ভিডিও ফাইল বিশ্লেষণ:

devai review video \
  -f "/tmp/video.mp4" \
  -p "Review user journey video and create unit tests using jest framework"

ডকুমেন্টেশন তৈরির কমান্ড

devai document readme -c ~/gitlab/genai-for-developers/sample-app/src/main/

আউটপুট:

# Bank of Anthos - Balance Reader Service

## Description

The Balance Reader service is a component of the Bank of Anthos sample application. It provides a REST endpoint for retrieving the current balance of a user account. This service demonstrates key concepts for building microservices with Spring Boot and deploying them to a Kubernetes cluster.

## Features

- Securely retrieves account balances using JWT authentication.
- Leverages a local cache for fast balance retrieval.
- Asynchronously processes transactions from a central ledger.
- Provides health check endpoints for Kubernetes liveness and readiness probes.
...

ক্লাউড শেল এডিটরে উপলব্ধ devai cli কমান্ডগুলো পর্যালোচনা করুন:

cloudshell edit ~/gitlab/genai-for-developers/devai-cli/README.md

অথবা গিটহাব রিপোজিটরিতে থাকা README.md ফাইলটি পর্যালোচনা করুন।

১৩. অভিনন্দন!

অভিনন্দন, আপনি কোডল্যাবটি সম্পন্ন করেছেন!

আমরা যা আলোচনা করেছি:

  • গিটল্যাবে GenAI কোড রিভিউ অটোমেশন ধাপ যোগ করা
  • স্থানীয়ভাবে দেবাই সিএলআই চালানো হচ্ছে

এরপর কী:

  • আরও হাতে-কলমে শেখার সেশন আসছে!

পরিষ্কার করা

এই টিউটোরিয়ালে ব্যবহৃত রিসোর্সগুলোর জন্য আপনার গুগল ক্লাউড অ্যাকাউন্টে চার্জ হওয়া এড়াতে, হয় রিসোর্সগুলো যে প্রজেক্টে রয়েছে সেটি ডিলিট করে দিন, অথবা প্রজেক্টটি রেখে দিয়ে আলাদা আলাদা রিসোর্সগুলো ডিলিট করে দিন।

প্রকল্পটি মুছে ফেলা হচ্ছে

বিলিং বন্ধ করার সবচেয়ে সহজ উপায় হলো টিউটোরিয়ালের জন্য তৈরি করা প্রজেক্টটি ডিলিট করে দেওয়া।

©২০২৪ গুগল এলএলসি। সর্বস্বত্ব সংরক্ষিত। গুগল এবং গুগল লোগো হলো গুগল এলএলসি-এর ট্রেডমার্ক। অন্য সকল কোম্পানি ও পণ্যের নাম তাদের সংশ্লিষ্ট কোম্পানিগুলোর ট্রেডমার্ক হতে পারে।