Mengonfigurasi penyesuaian kode Gemini Code Assist

Dokumen ini menjelaskan cara menyiapkan penyesuaian kode Gemini Code Assist di konsol Google Cloud , dengan Google Cloud CLI, atau dengan Terraform dengan menghubungkan Gemini Code Assist ke repositori kode pribadi Anda. Fitur penyesuaian kode Gemini Code Assist memungkinkan Anda menerima rekomendasi kode, yang diambil dari library internal, API pribadi, dan gaya coding organisasi Anda.

Untuk mengonfigurasi penyesuaian kode Gemini Code Assist di konsol Google Cloud , lihat Mengonfigurasi penyesuaian kode Gemini Code Assist.

Sebelum memulai

  1. Siapkan Gemini Code Assist dengan langganan Enterprise.
  2. Pastikan Anda memiliki peran Identity and Access Management (IAM) berikut di project yang memiliki langganan:

    • Admin Indeks Repositori Kode (roles/cloudaicompanion.codeRepositoryIndexesAdmin)
    • Pengguna Gemini untuk Google Cloud (roles/cloudaicompanion.user)
  3. Buat atau konfigurasi akun pengguna. Setiap developer di organisasi Anda yang menggunakan Gemini Code Assist harus memiliki identitas pengguna diGoogle Cloud yang memiliki izin untuk mengakses project Google Cloud Anda. Untuk mengetahui informasi selengkapnya, lihat Memberikan peran di konsol. Google Cloud Pastikan setiap pengguna memiliki peran berikut:

Memilih repositori yang diindeks

Sebagai praktik terbaik, Anda harus mengindeks repositori yang memiliki karakteristik berikut:

  • Kode yang memiliki gaya atau struktur serupa dengan yang Anda inginkan agar ditulis oleh developer Anda.
  • 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.

Untuk mencegah tereksposnya kode yang tidak ingin Anda indeks, Anda dapat menggunakan pola cabang untuk mengontrol akses ke indeks Anda dan menggunakan cabang yang stabil, seperti main.

Atau, Anda juga dapat mengecualikan file dari indeks dengan membuat file .aiexclude.

Mengonfigurasi penyesuaian kode Gemini Code Assist

Pilih salah satu opsi berikut:

Konsol

  1. Di konsol Google Cloud , buka halaman Produk Gemini.

    Buka Produk Gemini

    Halaman Produk Gemini akan dimuat.

  2. Di menu navigasi, klik Penyesuaian Kode.

    Halaman Penyesuaian Kode akan dimuat.

  3. Membuat indeks. Penyesuaian kode mengandalkan indeks untuk menganalisis dan mengurai repositori Anda agar saran dan pencarian pembuatan kode lebih cepat.

    1. Klik Buat dan konfigurasi detail indeks:

      • Pilih region yang dikonfigurasi di Developer Connect di project Google Cloud Anda.
      • Masukkan nama untuk indeks Anda. Catat nama indeks Anda. Anda memerlukannya untuk beberapa langkah dalam dokumen ini.
    2. Klik Buat.

    Pembuatan indeks umumnya memerlukan waktu 30 menit untuk selesai, tetapi mungkin memerlukan waktu hingga satu jam. Setelah pengindeksan selesai, Anda akan menerima notifikasi di konsol. Google Cloud

    Google membatasi jumlah indeks repositori kode menjadi satu untuk setiap project dan organisasi.

  4. Mengontrol akses ke indeks Anda menggunakan grup repositori.

    Grup repositori adalah penampung untuk konfigurasi pengindeksan, yang mencakup repositori dan pola cabangnya. Grup repositori dirancang untuk kontrol IAM terperinci, sehingga developer dapat mengakses data terindeks dari grup tersebut jika mereka memiliki izin cloudaicompanion.repositoryGroups.use.

    Grup repositori berisi repositori Developer Connect, atau link, dari project dan lokasi yang sama.

  5. Di halaman Penyesuaian kode untuk Gemini Code Assist, klik Tambahkan repositori, lalu pilih Tambahkan repositori sumber.

    Daftar repositori yang ada di Developer Connect akan ditampilkan untuk region yang Anda konfigurasi di langkah sebelumnya untuk membuat indeks.

    Jika Anda perlu menambahkan repositori baru ke grup repositori, klik Tautkan repositori, lalu ikuti langkah-langkah di konsol Google Cloud .

    Selain itu, Anda dapat memilih lalu mengedit satu atau beberapa repositori untuk menambahkan cabang baru.

  6. Pilih grup repositori yang ingin Anda tambahi repositori baru. Atau, klik Buat grup repositori baru untuk membuat dan mengonfigurasi grup repositori baru.

  7. Untuk mulai mengindeks repositori yang dipilih, klik Index.

    Waktu pengindeksan bervariasi, bergantung pada ukuran repositori.

CLI

  1. Pastikan Anda telah mengonfigurasi Developer Connect dan terhubung ke repositori Anda:
  2. Di lingkungan shell, jalankan perintah gcloud components update untuk memverifikasi bahwa Anda telah mengupdate semua komponen gcloud CLI yang terinstal ke versi terbaru. Untuk langkah ini, Anda dapat menginstal dan melakukan inisialisasi gcloud CLI, atau Anda dapat menggunakan Cloud Shell Editor.

    gcloud components update
    
  3. Membuat indeks. Penyesuaian kode mengandalkan indeks untuk menganalisis dan mengurai repositori Anda agar saran dan pencarian pembuatan kode lebih cepat.

    1. 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: ID project Google Cloud Anda.
      • REGION: region yang dikonfigurasi di Developer Connect di project Google Cloud Anda.

      Pembuatan indeks umumnya memerlukan waktu 30 menit untuk selesai, tetapi mungkin memerlukan waktu hingga satu jam.

      Google membatasi jumlah indeks repositori kode menjadi satu untuk setiap project dan organisasi.

  4. Mengontrol akses ke indeks Anda 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, tempat mereka memiliki 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, konfigurasi koneksi Developer Connect baru.
    • Tautkan repositori Git dalam koneksi.
    • Dapatkan nama resource link, pilih pola cabang untuk mengindeks setiap link, dan 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, seperti default.
    • REPOSITORY_RESOURCE_NAME: nama repositori di dalam koneksi Developer Connect. Untuk menemukan nama repositori, buka halaman Git repositories di konsol Google Cloud , lalu di tab Repositories, cari ID Koneksi di kolom Connection 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, seperti main|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
    

    Jika mau, Anda dapat mengenkripsi dan mengontrol data Anda dengan kunci enkripsi yang dikelola pelanggan (CMEK) melalui Cloud Key Management Service. Untuk mempelajari lebih lanjut cara menggunakan CMEK, lihat Mengenkripsi data dengan kunci enkripsi yang dikelola pelanggan.

  5. Memberikan peran IAM ke grup repositori di project.

    Anda hanya menerima saran dari repositori dalam indeks. Setiap repositori termasuk dalam satu atau beberapa grup repositori. Untuk mengakses saran, Anda harus memberikan peran IAM Cloud AI Companion Repository Groups User (roles/cloudaicompanion.repositoryGroupsUser)—yang berisi izin IAM cloudaicompanion.repositoryGroups.user yang diperlukan—ke grup repositori dengan salah satu cara berikut:

    • Memberi pokok izin untuk mengakses seluruh indeks.
    • Memberikan akses utama ke subset indeks.

    Seluruh indeks

    1. 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:

      • PRINCIPAL: alamat email pokok yang memerlukan akses—misalnya, user:test-user@gmail.com untuk individu, atau group:admins@example.com untuk grup.

      Untuk informasi selengkapnya, lihat gcloud projects set-iam-policy.

    2. Saat diminta untuk menentukan kondisi, masukkan None.

    Subset indeks

    Anda dapat membuat beberapa grup repositori dan menetapkan peran IAM ke berbagai akun utama IAM.

    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 mengetahui 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:

Terraform

  1. Pastikan Anda telah mengonfigurasi Developer Connect dan terhubung ke repositori Anda:

  2. Membuat indeks. Penyesuaian kode mengandalkan indeks untuk menganalisis dan mengurai repositori Anda agar saran dan pencarian pembuatan kode lebih cepat.

    resource "google_gemini_code_repository_index" "example" {
      location = "REGION"
      code_repository_index_id = "INDEX_NAME"
    }
    

    Ganti kode berikut:

    • INDEX_NAME: nama indeks Anda. Penting: Catat nama indeks Anda. Anda akan memerlukannya untuk beberapa langkah dalam dokumen ini.
    • PROJECT_ID: ID project Google Cloud Anda.
    • REGION: region yang dikonfigurasi di Developer Connect di project Google Cloud Anda.

    Pembuatan indeks umumnya memerlukan waktu 30 menit untuk selesai, tetapi mungkin memerlukan waktu hingga satu jam.

    Google membatasi jumlah indeks repositori kode menjadi satu untuk setiap project dan organisasi.

  3. Mengontrol akses ke indeks Anda 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, tempat mereka memiliki 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, konfigurasi koneksi Developer Connect baru.
    • Tautkan repositori Git dalam koneksi.
    • Dapatkan nama resource link, pilih pola cabang untuk mengindeks setiap link, dan masukkan ke satu atau beberapa grup repositori.
    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"
      }
    }
    

    Ganti kode berikut:

    • REPOSITORY_GROUP: nama grup repositori, seperti default.
    • REPOSITORY_RESOURCE_NAME: nama repositori di dalam koneksi Developer Connect. Untuk menemukan nama repositori, buka halaman Git repositories di konsol Google Cloud , lalu di tab Repositories, cari ID Koneksi di kolom Connection dalam tabel. Untuk menyalin nama resource, klik menu more_vert untuk opsi lainnya, lalu pilih Salin jalur resource.
    • BRANCH_NAMES: nama cabang yang ingin Anda indeks, seperti main|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
    

    Jika mau, Anda dapat mengenkripsi dan mengontrol data Anda dengan kunci enkripsi yang dikelola pelanggan (CMEK) melalui Cloud Key Management Service. Untuk mempelajari lebih lanjut cara menggunakan CMEK, lihat Mengenkripsi data dengan kunci enkripsi yang dikelola pelanggan.

  4. Memberikan peran IAM ke grup repositori di project.

    Anda hanya menerima saran dari repositori dalam indeks. Setiap repositori termasuk dalam satu atau beberapa grup repositori. Untuk mengakses saran, Anda harus memberikan peran IAM Cloud AI Companion Repository Groups User (roles/cloudaicompanion.repositoryGroupsUser)—yang berisi izin IAM cloudaicompanion.repositoryGroups.user yang diperlukan—ke grup repositori dengan salah satu cara berikut:

    • Memberi pokok izin untuk mengakses seluruh indeks.
    • Memberikan akses utama ke subset indeks.

    Seluruh indeks

    1. 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:

      • PRINCIPAL: alamat email pokok yang memerlukan akses—misalnya, user:test-user@gmail.com untuk individu, atau group:admins@example.com untuk grup.

        Untuk informasi selengkapnya, lihat gcloud projects set-iam-policy.

    2. Saat diminta untuk menentukan kondisi, masukkan None.

    Subset indeks

    Anda dapat membuat beberapa grup repositori dan menetapkan peran IAM ke berbagai akun utama IAM.

      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
        ]
      }
    

    Anda juga dapat membuat binding:

      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"]
      }
    

    Ganti kode berikut:

    • GROUP_NAME: nama grup repositori yang Anda buat di langkah sebelumnya untuk mengontrol akses ke indeks menggunakan grup repositori.

Memeriksa status pengindeksan

Bergantung pada jumlah repositori yang ingin Anda indeks 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, mengambil perubahan apa pun yang dilakukan di repositori.

  1. Telusuri log indexing. Untuk mengetahui informasi selengkapnya, lihat Bahasa kueri logging.

    Konsol

    1. Di konsol Google Cloud , buka Logs Explorer.

      Buka Logs Explorer

    2. Gunakan filter nama log untuk melihat log indexing.

    CLI

    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 di log indexing, jalankan perintah berikut:

    gcloud logging read "logName="projects/PROJECT_ID/logs/indexing" AND severity>=ERROR"
    
  2. 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.
    • 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.

    Di status indeks, REPOSITORY_NAME adalah repositori yang ingin Anda tinjau.

  3. 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 menyiapkan penyesuaian kode, Anda akan mulai melihat penyelesaian kode dan saran pembuatan kode yang mungkin didasarkan pada kode pribadi yang telah Anda indeks, selain hasil dari pengetahuan codebase lengkap.

Untuk mempelajari lebih lanjut cara menggunakan penyesuaian kode dan praktik terbaik, lihat Menggunakan penyesuaian kode.

Menonaktifkan penyesuaian kode

Pilih salah satu opsi berikut:

Konsol

  1. Di konsol Google Cloud , buka halaman Produk Gemini.

    Buka Produk Gemini

    Halaman Produk Gemini akan dimuat.

  2. Di menu navigasi, klik Penyesuaian Kode.

    Halaman Penyesuaian Kode akan dimuat.

  3. Untuk menghapus indeks, klik Hapus indeks.

    Pesan peringatan akan ditampilkan. Jika Anda ingin melanjutkan dan menghapus indeks, masukkan nama indeks, lalu klik Hapus.

CLI

  1. 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 dikonfigurasi di Developer Connect di project Google Cloud Anda.
    • PROJECT_ID: ID project Google Cloud Anda.
    • INDEX_NAME: nama indeks yang Anda buat di langkah sebelumnya untuk membuat indeks.
  2. 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
    
  3. Ulangi langkah sebelumnya untuk setiap grup repositori hingga Anda menghapus semua grup repositori dari indeks.

  4. 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 berikutnya