Dokumen ini menjelaskan cara menyiapkan penyesuaian kode Gemini Code Assist dengan menghubungkan Gemini Code Assist ke repositori kode pribadi Anda. Fitur ini memungkinkan Anda menerima rekomendasi kode, yang diambil dari library internal, API pribadi, dan gaya coding organisasi Anda.
Sebelum memulai
- Siapkan Gemini Code Assist dengan langganan Enterprise.
- Membuat atau mengonfigurasi akun pengguna akhir. Setiap developer di organisasi Anda yang menggunakan Gemini Code Assist harus memiliki identitas pengguna di Google Cloud yang memiliki izin untuk mengakses project Google Cloud Anda. Untuk informasi selengkapnya, lihat Memberikan peran di Konsol Google Cloud. Pastikan setiap pengguna memiliki peran berikut:
Konfigurasikan Developer Connect, lalu hubungkan ke repositori GitHub.com atau GitLab.com Anda:
Selain itu, perhatikan bahwa penyesuaian kode hanya mendukung koneksi Developer Connect di lokasi (region) berikut:
us-central1
europe-west1
asia-southeast1
Di lingkungan shell, jalankan perintah
gcloud components update
untuk memastikan Anda telah mengupdate semua komponen yang diinstal dari gcloud CLI ke versi terbaru. Untuk langkah ini, Anda dapat menginstal dan melakukan inisialisasi gcloud CLI, atau menggunakan Cloud Shell.gcloud components update
Memilih repositori pribadi yang terhubung
Sebagai praktik terbaik, pastikan Anda menghubungkan repositori yang:
- Memiliki kode dengan gaya atau struktur yang mirip dengan yang Anda inginkan untuk ditulis developer.
- Memiliki library atau API pribadi yang ingin Anda panggil dari codebase saat ini.
(Opsional) Pilih file yang tidak diindeks
Secara default, penyesuaian kode mengindeks semua file kode yang didukung di repositori yang Anda tentukan.Dalam banyak skenario, Anda mungkin memiliki file atau sub-pohon tertentu yang tidak ingin diindeks. Contoh:
- Informasi yang sangat sensitif dengan akses terbatas di dalam organisasi Anda
- Kode lama atau yang tidak digunakan lagi
- Kode yang dibuat secara otomatis atau kode sementara
Untuk mencegah eksposur kode yang tidak ingin Anda indeks, Anda dapat menggunakan pola
cabang untuk
mengontrol akses ke indeks
dan menggunakan cabang yang stabil, seperti main
.
Atau, Anda juga dapat mengecualikan file dari indeks dengan
membuat file .aiexclude
.
Membuat indeks
Penyesuaian kode mengandalkan indeks untuk menganalisis dan mengurai repositori Anda guna mendapatkan saran dan pencarian pembuatan kode yang lebih cepat.
Untuk membuat indeks, di lingkungan shell, gunakan
perintah gemini code-repository-indexes create
:
gcloud gemini code-repository-indexes create INDEX_NAME \
--project=PROJECT_ID \
--location=REGION
Ganti kode berikut:
INDEX_NAME
: nama indeks Anda. Penting: Catat nama indeks Anda. Anda memerlukannya untuk beberapa langkah dalam dokumen ini.PROJECT_ID
: Project ID Google Cloud Anda.REGION
: region yang didukung, seperti yang dinyatakan di bagian Sebelum memulai di halaman ini, yang telah Anda konfigurasi di Developer Connect di project Google Cloud Anda.
Pembuatan indeks biasanya memerlukan waktu 30 menit untuk diselesaikan, tetapi mungkin memerlukan waktu hingga satu jam.
Google membatasi jumlah indeks repositori kode menjadi satu untuk setiap project dan organisasi.
Mengontrol akses ke indeks menggunakan grup repositori
Grup repositori adalah penampung untuk konfigurasi pengindeksan, yang mencakup repositori dan pola cabangnya. Grup repositori dirancang untuk kontrol IAM terperinci, yang memberi developer akses ke data yang diindeks dari grup tersebut, dengan izin cloudaicompanion.repositoryGroups.use
.
Grup repositori berisi repositori Developer Connect, atau link, dari project dan lokasi yang sama.
Administrator melakukan tindakan berikut:
- Buat resource Indeks Repositori Kode.
- Di project dan lokasi yang sama, konfigurasikan koneksi Developer Connect baru.
- Tautkan repo Git dalam koneksi.
- Dapatkan nama resource link, pilih pola cabang untuk diindeks untuk setiap link, lalu masukkan ke satu atau beberapa grup repositori.
Untuk membuat grup repositori, di lingkungan shell, gunakan
perintah gemini code-repository-indexes repository-groups create
:
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"}]'
Ganti kode berikut:
REPOSITORY_GROUP
: nama grup repositori, sepertidefault
.PROJECT_ID
: Project ID Google Cloud Anda.REGION
: region yang didukung, seperti yang dinyatakan di bagian Sebelum memulai di halaman ini, yang telah Anda konfigurasi di Developer Connect di project Google Cloud Anda.INDEX_NAME
: nama indeks yang Anda buat di langkah sebelumnya untuk membuat indeks.REPOSITORY_RESOURCE_NAME
: nama repositori di dalam koneksi Developer Connect. Untuk menemukan nama repositori, buka halaman Developer Connect di konsol Google Cloud, lalu di tab Repositori, cari ID Koneksi di kolom Koneksi dalam tabel. Untuk menyalin nama resource, klik menu more_vert untuk melihat opsi lainnya, lalu pilih Salin jalur resource.BRANCH_NAMES
: nama cabang yang ingin Anda indeks, sepertimain|dev
.
Anda juga dapat membuat grup repositori dengan repositori yang ditentukan dalam file JSON (atau YAML), yang diformat sebagai berikut:
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
Untuk membuat grup repositori berdasarkan file JSON atau YAML, di lingkungan
shell, gunakan
perintah gemini code-repository-indexes repository-groups create
:
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
Memberikan peran IAM ke grup repositori pada project
Anda hanya menerima saran dari repositori dalam indeks. Setiap repositori
merupakan bagian dari satu atau beberapa grup repositori. Untuk mengakses saran, Anda harus
memberikan peran IAM Pengguna Grup Repositori Cloud AI Companion
(roles/cloudaicompanion.repositoryGroupsUser
)—yang berisi izin IAM
cloudaicompanion.repositoryGroups.user
yang diperlukan—ke
grup repositori dengan salah satu cara berikut:
- Berikan izin kepada akun utama untuk mengakses seluruh indeks.
- Berikan akun utama akses ke subset indeks.
Memberikan izin akun utama untuk mengakses seluruh indeks
Untuk mengikat kebijakan IAM untuk project, di lingkungan shell, gunakan perintah
projects add-iam-policy-binding
:gcloud projects add-iam-policy-binding PROJECT_ID \ --member='PRINCIPAL' \ --role='roles/cloudaicompanion.repositoryGroupsUser'
Ganti kode berikut:
PROJECT_ID
: project ID tempat grup repositori berada.PRINCIPAL
: alamat email akun utama yang memerlukan akses—misalnya,user:test-user@gmail.com
untuk perorangan, ataugroup:admins@example.com
untuk grup.
Untuk informasi selengkapnya, lihat
gcloud projects set-iam-policy
.Saat diminta untuk menentukan kondisi, masukkan
None
.
Memberikan akses utama ke subset indeks
Anda dapat membuat beberapa grup repositori dan menetapkan peran IAM ke akun utama IAM yang berbeda.
Untuk menyiapkan kebijakan IAM, Anda harus menyiapkan file JSON atau YAML kebijakan IAM, yang akan berisi daftar grup IAM dan peran yang ditetapkan. Contoh:
bindings:
- members:
- group:my-group@example.com
- user:test-user@example.com
role: roles/cloudaicompanion.repositoryGroupsUser
Untuk detail dan sintaksis tambahan, lihat Memahami kebijakan izin.
Untuk menetapkan kebijakan IAM, di lingkungan shell, gunakan
perintah gemini code-repository-indexes repository-groups set-iam-policy
:
gcloud gemini code-repository-indexes repository-groups set-iam-policy GROUP_NAMEPOLICY_FILE \
--project=PROJECT_ID \
--location=REGION \
--code-repository-index=INDEX_NAME
Ganti kode berikut:
GROUP_NAME
: nama grup repositori yang Anda buat di langkah sebelumnya untuk mengontrol akses ke indeks menggunakan grup repositori.POLICY_FILE
: kebijakan IAM.REGION
: region yang didukung, seperti yang dinyatakan di bagian Sebelum memulai di halaman ini, yang telah Anda konfigurasikan di Developer Connect di project Google Cloud Anda.INDEX_NAME
: nama indeks yang Anda buat di langkah sebelumnya untuk membuat indeks.Untuk informasi selengkapnya, lihat
gcloud gemini code-repository-indexes repository-groups set-iam-policy
.
Memeriksa status pengindeksan
Bergantung pada jumlah repositori yang ingin diindeks dan ukurannya, pengindeksan konten dapat memerlukan waktu hingga 24 jam. Untuk repositori besar, pengindeksan dapat memerlukan waktu lebih lama. Pengindeksan terjadi sekali setiap 24 jam, yang mengambil perubahan apa pun yang dibuat di repositori.
Telusuri log
indexing
. Untuk mengetahui informasi selengkapnya, lihat Bahasa kueri logging.Konsol
Di konsol Google Cloud, buka Logs Explorer.
Gunakan filter nama log untuk melihat log
indexing
.
gcloud
Untuk menelusuri log pengindeksan, di lingkungan shell, gunakan perintah
logging read
:gcloud logging read "logName="projects/PROJECT_ID/logs/indexing""
Ganti
PROJECT_ID
dengan project ID tempat grup repositori berada.Misalnya, untuk melihat error dalam log
indexing
, jalankan perintah berikut:gcloud logging read "logName="projects/PROJECT_ID/logs/indexing" AND severity>=ERROR"
Tinjau status pengindeksan terkait, seperti berikut:
- Awal pengindeksan repositori-misalnya,
Indexing repository REPOSITORY_NAME. Total number of repositories: 10, succeeded: 6, failed: 0.
- Akhir pengindeksan repositori individual-misalnya:
- Berhasil:
Successfully finished indexing repository REPOSITORY_NAME. Total number of repositories: 10, succeeded: 7, failed: 0.
- Gagal:
Failed to index repository REPOSITORY_NAME. Error: [<error message>]. Total number of repositories: 10, succeeded: 7, failed: 1.
- Berhasil:
- Akhir pengindeksan repositori-misalnya:
- Berhasil:
Finished indexing process. Repositories attempted: 10. Repositories successfully indexed: 9. Repositories unsuccessfully fetched: 0.
- Gagal:
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.
- Berhasil:
Dalam status indeks,
REPOSITORY_NAME
adalah repositori yang ingin Anda tinjau.- Awal pengindeksan repositori-misalnya,
Tinjau error pengindeksan terkait, seperti berikut:
- Gagal mengambil repositori.
- Gagal mencantumkan file repositori.
- Gagal mengambil informasi repositori dari indeks.
- Gagal mengambil file dari indeks.
- Error internal.
Menggunakan penyesuaian kode
Setelah Anda menyiapkan penyesuaian kode, pengguna akan mulai melihat saran pembuatan kode dan penyelesaian kode yang mungkin didasarkan pada kode pribadi yang telah Anda masukkan ke dalam indeks, selain hasil dari kesadaran codebase lengkap.
Menonaktifkan penyesuaian kode
Untuk mencantumkan semua grup repositori untuk indeks saat ini, di lingkungan shell, gunakan perintah
gemini code-repository-indexes repository-groups list
:gcloud gemini code-repository-indexes repository-groups list --location=REGION \ --project=PROJECT_ID \ --code-repository-index=INDEX_NAME --uri
Ganti kode berikut:
REGION
: region yang didukung, seperti yang dinyatakan di bagian Sebelum memulai di halaman ini, yang telah Anda konfigurasikan di Developer Connect di project Google Cloud Anda.PROJECT_ID
: Project ID Google Cloud Anda.INDEX_NAME
: nama indeks yang Anda buat di langkah sebelumnya untuk membuat indeks.
Untuk menghapus grup repositori dari indeks saat ini, gunakan perintah
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
Ulangi langkah 3 untuk setiap grup repositori hingga Anda menghapus semua grup repositori dari indeks.
Opsional: Untuk menghapus indeks, di lingkungan shell, gunakan perintah
gemini code-repository-indexes delete
:gcloud gemini code-repository-indexes delete INDEX_NAME \ --location=REGION \ --project=PROJECT_ID
Langkah selanjutnya
- Mulai gunakan Gemini Code Assist:
- VS Code: Kode dengan Gemini Code Assist
- IntelliJ: Kode dengan Gemini Code Assist
- Cloud Shell Editor: Kode dengan Gemini Code Assist
- Cloud Workstations: Kode dengan Gemini Code Assist
- Pelajari Developer Connect lebih lanjut.
- Pelajari cara dan waktu Gemini untuk Google Cloud menggunakan data Anda.