يوضّح هذا المستند كيفية إعداد تخصيص رمز Gemini Code Assist من خلال ربط Gemini Code Assist بمستودعات رموزك الخاصة. تتيح لك هذه الميزة تلقّي اقتراحات بشأن الرموز البرمجية، وهي مستندة إلى المكتبات الداخلية وواجهات برمجة التطبيقات الخاصة وأسلوب الترميز في مؤسستك.
قبل البدء
- إعداد Gemini Code Assist من خلال اشتراك Enterprise
- إنشاء حسابات المستخدمين أو ضبطها يجب أن يكون لكل مطوّر في مؤسستك يستخدم Gemini Code Assist هوية مستخدم في Google Cloud لديه إذن بالوصول إلى مشروعك على Google Cloud. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة منح الأدوار في Google Cloud Console. تأكَّد من أنّ كل مستخدم لديه الأدوار التالية:
اضبط Developer Connect، ثم اربط حسابك بمستودع GitHub.com أو GitLab.com أو Bitbucket.org:
GitHub
GitLab
Bitbucket
بالإضافة إلى ذلك، يُرجى العِلم أنّ تخصيص الرمز لا يتيح سوى عمليات ربط حسابات Developer Connect في المواقع الجغرافية (المناطق) التالية:
us-central1
europe-west1
asia-southeast1
في بيئة shell، شغِّل الأمر
gcloud components update
للتأكّد من أنّك حدّثت جميع المكوّنات المثبَّتة من gcloud إلى أحدث إصدار. في هذه الخطوة، يمكنك تثبيت أداة gcloud وتهيئة إعداداتها، أو يمكنك استخدام محرّر Cloud Shell.gcloud components update
اختيار المستودعات الخاصة المرتبطة
كأفضل ممارسة، احرص على ربط المستودعات التي:
- أن يتضمّن رمزًا برمجيًا بأسلوب أو بنية مشابهة لما تريد أن يكتبه المطوّرون.
- لديك مكتبات أو واجهات برمجة تطبيقات خاصة تريد استدعاءها من قاعدة الرموز البرمجية الحالية.
(اختياري) اختَر الملفات التي لا تريد فهرستها
بشكلٍ تلقائي، يفهرس تخصيص الرمز البرمجي جميع ملفات الرمز البرمجي المتوافقة في المستودعات التي تحدّدها.
لمنع عرض الرمز الذي لا تريد فهرسته، يمكنك استخدام أنماط الفروع من أجل التحكّم في الوصول إلى الفهرس واستخدام فرع ثابت، مثل main
.
بدلاً من ذلك، يمكنك أيضًا استبعاد الملفات من الفهرس عن طريق
إنشاء ملف .aiexclude
.
إنشاء فهرس
تعتمد عملية تخصيص الرموز البرمجية على فهرس لتحليل مستودعك وتفسيره من أجل تقديم اقتراحات وعمليات بحث أسرع بشأن إنشاء الرموز البرمجية.
gcloud
لإنشاء الفهرس، استخدِم الأمر
gemini code-repository-indexes create
في بيئة shell:
gcloud gemini code-repository-indexes create INDEX_NAME \
--project=PROJECT_ID \
--location=REGION
Terraform
resource "google_gemini_code_repository_index" "example" {
location = "REGION"
code_repository_index_id = "INDEX_NAME"
}
غيِّر القيم في السلسلة على الشكل التالي:
INDEX_NAME
: اسم الفهرس. ملاحظة مهمة: سجِّل اسم الفهرس. ستحتاج إليه في عدة خطوات في هذا المستند.- استبدِل
PROJECT_ID
بمعرّف مشروع Google Cloud. -
REGION
: منطقة متوافقة، كما هو موضّح في قسم قبل البدء من هذه الصفحة، والتي تم إعدادها في Developer Connect في مشروعك على Google Cloud.
تستغرق عملية إنشاء الفهرس عادةً 30 دقيقة، ولكن قد تستغرق ما يصل إلى ساعة واحدة.
تفرض Google حدًا أقصى على عدد فهارس مستودعات الرموز، وهو فهرس واحد لكل مشروع ومؤسسة.
التحكّم في الوصول إلى الفهرس باستخدام مجموعات المستودعات
مجموعة المستودعات هي حاوية لإعدادات الفهرسة، وتشمل المستودعات وأنماط فروعها. تم تصميم مجموعات المستودعات لتوفير تحكّم دقيق في إدارة الهوية وإمكانية الوصول (IAM)، ما يتيح للمطوّرين الوصول إلى البيانات المفهرسة من تلك المجموعات التي لديهم فيها إذن cloudaicompanion.repositoryGroups.use
.
تحتوي مجموعات المستودعات على مستودعات Developer Connect أو روابط من المشروع والموقع الجغرافي نفسهما.
ينفّذ المشرفون الإجراءات التالية:
- أنشئ مورد فهرس مستودع الرموز البرمجية.
- في المشروع والموقع الجغرافي نفسهما، اضبط إعدادات اتصال جديد في Developer Connect.
- ربط مستودعات Git في عملية الربط
الحصول على أسماء موارد الروابط، واختيار نمط الفروع المطلوب فهرسته لكل رابط، ووضعه في مجموعة واحدة أو أكثر من مجموعات المستودعات
gcloud
لإنشاء مجموعة مستودعات، استخدِم الأمر
gemini code-repository-indexes repository-groups create
في بيئة shell:
gcloud gemini code-repository-indexes repository-groups create REPOSITORY_GROUP \
--project=PROJECT_ID \
--location=REGION \
--code-repository-index=INDEX_NAME \
--repositories='[{"resource": "REPOSITORY_RESOURCE_NAME", "branchPattern": "BRANCH_NAMES"}]'
Terraform
resource "google_gemini_repository_group" "example" {
location = "REGION"
code_repository_index = "INDEX_NAME"
repository_group_id = "REPOSITORY_GROUP"
repositories {
resource = "REPOSITORY_RESOURCE_NAME"
branch_pattern = "BRANCH_NAMES"
}
}
غيِّر القيم في السلسلة على الشكل التالي:
-
REPOSITORY_GROUP
: اسم مجموعة المستودع، مثلdefault
- استبدِل
PROJECT_ID
بمعرّف مشروع Google Cloud. REGION
: منطقة متوافقة، كما هو موضّح في قسم قبل البدء من هذه الصفحة، والتي تم إعدادها في Developer Connect في مشروعك على Google Cloud.INDEX_NAME
: اسم الفهرس الذي أنشأته في خطوة سابقة من أجل إنشاء فهرس.-
REPOSITORY_RESOURCE_NAME
: اسم المستودع داخل اتصال Developer Connect. للعثور على اسم المستودع، انتقِل إلى صفحة Developer Connect في Google Cloud Console، وفي علامة التبويب المستودعات، ابحث عن رقم تعريف الاتصال ضمن عمود الاتصال في الجدول. لنسخ اسم المورد، انقر على قائمة more_vert لعرض المزيد من الخيارات، ثم اختَر نسخ مسار المورد. BRANCH_NAMES
: اسم الفروع التي تريد فهرستها، مثلmain|dev
يمكنك أيضًا إنشاء مجموعة مستودعات تتضمّن مستودعات محدّدة في ملف JSON (أو YAML) بالتنسيق التالي:
JSON
[
{
"resource": "REPOSITORY_RESOURCE_NAME", "branchPattern": "main|dev"
},
{
"resource": "REPOSITORY_RESOURCE_NAME", "branchPattern": "dev"
}
]
YAML
- resource: REPOSITORY_RESOURCE_NAME
branchPattern: main|dev
- resource: REPOSITORY_RESOURCE_NAME
branchPattern: dev
لإنشاء مجموعة مستودعات استنادًا إلى ملف JSON أو YAML، استخدِم الأمر gemini code-repository-indexes repository-groups create
في بيئة shell:
JSON
gcloud gemini code-repository-indexes repository-groups create REPOSITORY_GROUP \
--project=PROJECT_ID \
--location=REGION \
--code-repository-index=INDEX_NAME \
--repositories=FILEPATH.json
YAML
gcloud gemini code-repository-indexes repository-groups create REPOSITORY_GROUP \
--project=PROJECT_ID \
--location=REGION \
--code-repository-index=INDEX_NAME \
--repositories=FILEPATH.yaml
إذا كنت تفضّل ذلك، يمكنك تشفير بياناتك والتحكّم فيها باستخدام مفتاح تشفير يديره العميل (CMEK) من خلال Cloud Key Management Service. لمزيد من المعلومات حول استخدام مفتاح CMEK، يُرجى الاطّلاع على تشفير البيانات باستخدام مفاتيح التشفير التي يديرها العميل.
منح دور إدارة الهوية وإمكانية الوصول لمجموعة المستودع في مشروع
لن تتلقّى اقتراحات إلا من المستودعات المتوفّرة في الفهرس. ينتمي كل مستودع إلى مجموعة واحدة أو أكثر من مجموعات المستودعات. للوصول إلى الاقتراحات، يجب منح دور "مستخدِم مجموعات مستودع Cloud AI Companion" ضِمن "إدارة الهوية وإمكانية الوصول" (roles/cloudaicompanion.repositoryGroupsUser
)، والذي يتضمّن إذن cloudaicompanion.repositoryGroups.user
المطلوب ضِمن "إدارة الهوية وإمكانية الوصول"، إلى مجموعة المستودع بإحدى الطرق التالية:
- امنح الجهات الرئيسية إذن الوصول إلى الفهرس بأكمله.
- منح الجهات الرئيسية إذن الوصول إلى مجموعة فرعية من الفهرس
منح الجهات الرئيسية إذن الوصول إلى الفهرس بأكمله
لربط سياسة إدارة الهوية وإمكانية الوصول بمشروع، استخدِم الأمر
projects add-iam-policy-binding
في بيئة shell:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='PRINCIPAL' \ --role='roles/cloudaicompanion.repositoryGroupsUser'
غيِّر القيم في السلسلة على الشكل التالي:
PROJECT_ID
: رقم تعريف المشروع الذي تقع فيه مجموعة المستودع.PRINCIPAL
: عنوان البريد الإلكتروني الخاص بالكيان الأساسي الذي يحتاج إلى إذن الوصول، مثلuser:test-user@gmail.com
لفرد أوgroup:admins@example.com
لمجموعة
لمزيد من المعلومات، يُرجى الاطّلاع على
gcloud projects set-iam-policy
.عندما يُطلب منك تحديد شرط، أدخِل
None
.
منح النطاقات الرئيسية إذن الوصول إلى مجموعة فرعية من الفهرس
يمكنك إنشاء مجموعات مستودعات متعددة وتعيين أدوار IAM لجهات مختلفة في IAM.
gcloud
لإعداد سياسة إدارة الهوية وإمكانية الوصول، عليك إعداد ملف JSON أو YAML الخاص بسياسة إدارة الهوية وإمكانية الوصول، والذي سيتضمّن قائمة بمجموعات إدارة الهوية وإمكانية الوصول والأدوار المخصّصة. على سبيل المثال:
bindings:
- members:
- group:my-group@example.com
- user:test-user@example.com
role: roles/cloudaicompanion.repositoryGroupsUser
لمزيد من التفاصيل والصيغة، يُرجى الاطّلاع على التعرّف على سياسات السماح.
لضبط سياسة إدارة الهوية وإمكانية الوصول، استخدِم أمر gemini code-repository-indexes repository-groups set-iam-policy
في بيئة shell:
gcloud gemini code-repository-indexes repository-groups set-iam-policy GROUP_NAMEPOLICY_FILE \
--project=PROJECT_ID \
--location=REGION \
--code-repository-index=INDEX_NAME
غيِّر القيم في السلسلة على الشكل التالي:
GROUP_NAME
: اسم مجموعة المستودع الذي أنشأته في خطوة سابقة للتحكّم في الوصول إلى الفهرس باستخدام مجموعات المستودع-
POLICY_FILE
: سياسة إدارة الهوية وإمكانية الوصول REGION
: منطقة متوافقة، كما هو موضّح في قسم قبل البدء من هذه الصفحة، والتي تم ضبطها في Developer Connect في مشروعك على Google CloudINDEX_NAME
: اسم الفهرس الذي أنشأته في خطوة سابقة من أجل إنشاء فهرسلمزيد من المعلومات، يُرجى الاطّلاع على
gcloud gemini code-repository-indexes repository-groups set-iam-policy
.
Terraform
data "google_iam_policy" "foo" {
binding {
role = "roles/cloudaicompanion.repositoryGroupsUser"
members = ["test-user@example.com"]
}
}
resource "google_gemini_repository_group_iam_policy" "foo" {
project = "PROJECT_ID"
location = "REGION"
code_repository_index_id = "INDEX_NAME"
repository_group_id = "GROUP_NAME"
policy_data = data.google_iam_policy.foo.policy_data
}
data "google_gemini_repository_group_iam_policy" "foo" {
project = "PROJECT_ID"
location = "REGION"
code_repository_index_id = "INDEX_NAME"
repository_group_id = "GROUP_NAME"
depends_on = [
google_gemini_repository_group_iam_policy.foo
]
}
يمكنك أيضًا إنشاء ربط:
resource "google_gemini_repository_group_iam_binding" "foo" {
project = "PROJECT_ID"
location = "REGION"
code_repository_index_id = "INDEX_NAME"
repository_group_id = "GROUP_NAME"
role = "roles/cloudaicompanion.repositoryGroupsUser"
members = ["test-user@example.com"]
}
غيِّر القيم في السلسلة على الشكل التالي:
GROUP_NAME
: اسم مجموعة المستودع الذي أنشأته في خطوة سابقة للتحكّم في الوصول إلى الفهرس باستخدام مجموعات المستودعREGION
: منطقة متوافقة، كما هو موضّح في قسم قبل البدء من هذه الصفحة، والتي تم ضبطها في Developer Connect في مشروعك على Google CloudINDEX_NAME
: اسم الفهرس الذي أنشأته في خطوة سابقة من أجل إنشاء فهرسلمزيد من المعلومات، يُرجى الاطّلاع على
gcloud gemini code-repository-indexes repository-groups set-iam-policy
.
التحقّق من حالة الفهرسة
بناءً على عدد المستودعات التي تريد فهرستها وحجمها، قد تستغرق عملية فهرسة المحتوى ما يصل إلى 24 ساعة. بالنسبة إلى المستودعات الكبيرة، قد يستغرق الفهرسة وقتًا أطول. تتم الفهرسة مرة واحدة كل 24 ساعة، ويتم رصد أي تغييرات تم إجراؤها في المستودع.
ابحث عن سجلّات
indexing
. لمزيد من المعلومات، راجِع لغة طلب البحث في السجلّات.وحدة التحكّم
في "وحدة تحكّم Google API"، انتقِل إلى مستكشف السجلات.
استخدِم فلتر أسماء السجلات لعرض سجلات
indexing
.
gcloud
للبحث عن سجلات الفهرسة، استخدِم الأمر
logging read
في بيئة shell:gcloud logging read "logName="projects/PROJECT_ID/logs/indexing""
استبدِل
PROJECT_ID
برقم تعريف المشروع الذي توجد فيه مجموعة المستودع.على سبيل المثال، لعرض الأخطاء في سجلّات
indexing
، شغِّل الأمر التالي:gcloud logging read "logName="projects/PROJECT_ID/logs/indexing" AND severity>=ERROR"
راجِع حالات الفهرسة المرتبطة، مثل ما يلي:
- بداية فهرسة المستودع، على سبيل المثال
Indexing repository REPOSITORY_NAME. Total number of repositories: 10, succeeded: 6, failed: 0.
- نهاية فهرسة المستودع الفردي، على سبيل المثال:
- تمّ بنجاح:
Successfully finished indexing repository REPOSITORY_NAME. Total number of repositories: 10, succeeded: 7, failed: 0.
- الإخفاق:
Failed to index repository REPOSITORY_NAME. Error: [<error message>]. Total number of repositories: 10, succeeded: 7, failed: 1.
- تمّ بنجاح:
- نهاية فهرسة المستودع، على سبيل المثال:
- تمّ بنجاح:
Finished indexing process. Repositories attempted: 10. Repositories successfully indexed: 9. Repositories unsuccessfully fetched: 0.
- الإخفاق:
Finished indexing process. Repositories attempted: 10. Repositories successfully indexed: 9. Repositories unsuccessfully fetched: 1. Repositories that were not successfully fetched will be retried in the next run.
- تمّ بنجاح:
في حالات الفهرس،
REPOSITORY_NAME
هو المستودع الذي تريد مراجعته.- بداية فهرسة المستودع، على سبيل المثال
راجِع أخطاء الفهرسة المرتبطة، مثل ما يلي:
- تعذَّر جلب المستودع.
- تعذّر إدراج ملفات المستودع.
- تعذّر استرداد معلومات المستودع من الفهرس.
- تعذّر استرداد الملفات من الفهرس.
- حدث خطأ داخلي.
استخدام خيار تخصيص الرمز
بعد إعداد تخصيص الرموز البرمجية، ستبدأ في تلقّي اقتراحات لإكمال الرموز البرمجية وإنشائها، وقد تستند هذه الاقتراحات إلى رموز برمجية خاصة سبق لك فهرسةها، بالإضافة إلى نتائج من إدراك قاعدة الرموز البرمجية الكاملة.
لمزيد من المعلومات عن استخدام ميزة "تخصيص الرمز" وأفضل الممارسات، يُرجى الاطّلاع على استخدام ميزة "تخصيص الرمز".
إيقاف تخصيص الرمز
لعرض جميع مجموعات المستودعات للفهرس الحالي، استخدِم الأمر
gemini code-repository-indexes repository-groups list
في بيئة shell:gcloud gemini code-repository-indexes repository-groups list --location=REGION \ --project=PROJECT_ID \ --code-repository-index=INDEX_NAME --uri
غيِّر القيم في السلسلة على الشكل التالي:
REGION
: منطقة متوافقة، كما هو موضّح في قسم قبل البدء من هذه الصفحة، والتي تم ضبطها في Developer Connect في مشروعك على Google Cloud- استبدِل
PROJECT_ID
بمعرّف مشروع Google Cloud. INDEX_NAME
: اسم الفهرس الذي أنشأته في خطوة سابقة من أجل إنشاء فهرس.
لحذف مجموعة مستودع من الفهرس الحالي، استخدِم الأمر
gemini code-repository-indexes repository-groups delete
:gcloud gemini code-repository-indexes repository-groups delete REPOSITORY_GROUP \ --location=REGION \ --project=PROJECT_ID \ --code-repository-index=INDEX_NAME
كرِّر الخطوة 3 لكل مجموعة مستودعات إلى أن تحذف جميع مجموعات المستودعات من الفهرس.
اختياري: لحذف الفهرس، استخدِم الأمر
gemini code-repository-indexes delete
في بيئة shell:gcloud gemini code-repository-indexes delete INDEX_NAME \ --location=REGION \ --project=PROJECT_ID
الخطوات التالية
- لبدء استخدام Gemini Code Assist، اتّبِع الخطوات التالية:
- VS Code وIntelliJ وبيئات تطوير JetBrains المتكاملة الأخرى المتوافقة: الترميز باستخدام Gemini Code Assist
- Cloud Shell: كتابة الرمز البرمجي باستخدام Gemini Code Assist
- Cloud Workstations: الترميز باستخدام Gemini Code Assist
- تعرَّف على كيفية استخدام تخصيص الرمز وأفضل الممارسات.
- كيفية ترميز البيانات باستخدام مفاتيح التشفير التي يديرها العميل (CMEK)
- مزيد من المعلومات عن Developer Connect
- كيف ومتى يستخدم "Gemini في Google Cloud" بياناتك؟