1. Sebelum memulai
Codelab ini menunjukkan cara menyiapkan Gemini Code Assist untuk memberikan saran penyesuaian kode yang disesuaikan dengan repositori pribadi Anda. Hal ini dapat membuat hasil dari Code Assist jauh lebih berguna, terutama bagi tim yang memiliki konvensi khusus untuk pekerjaan serupa yang sering diulang. Anda tidak perlu khawatir karena mengizinkan Gemini mengindeks codebase pribadi Anda untuk fitur ini tidak memungkinkan Gemini melatih kode pribadi Anda secara luas.
Kita juga akan membahas cara mengecualikan file sensitif atau tidak relevan agar tidak dipertimbangkan untuk penyesuaian kode dengan file .aiexclude.
Prasyarat
- Pemahaman dasar tentang Gemini Code Assist, dan akses ke project tempat fitur ini diaktifkan
- Memahami bahasa coding yang didukung untuk penyesuaian kode
- Kemampuan untuk membuat resource di
us-central1ataueurope-west1, karena penyesuaian kode memerlukan koneksi Developer Connect di lokasi tersebut. - Google Cloud CLI yang telah diupdate dan diautentikasi
Yang Anda pelajari
- Cara memanfaatkan penyesuaian kode di Gemini Code Assist Enterprise
- Salah satu dari banyak kasus penggunaan di mana penyesuaian kode dapat menghemat waktu tim Anda
Yang Anda perlukan
- Project Google Cloud yang mengaktifkan Gemini Code Assist
- Repositori pribadi untuk mengindeks permintaan penyesuaian
- Waktunya mengindeks kode untuk permintaan penyesuaian. Proses ini dapat memakan waktu hingga 24 jam
- IDE dengan Gemini Code Assist yang terinstal
2. Konteks
Untuk mencoba penyesuaian kode, ada dua hal yang diperlukan:
- Akses ke project Google Cloud dengan Gemini yang diaktifkan
- dan Repositori pribadi untuk menginformasikan respons Gemini.

Repositori kandidat terbaik yang akan diindeks oleh Gemini akan berisi kode yang sering digunakan kembali di seluruh organisasi Anda. Repositori contoh yang disediakan untuk codelab ini berisi layanan web Spring Boot standar, dengan folder Objek Transfer Data yang memenuhi kriteria ini, karena class serupa akan dibuat untuk menjelaskan setiap entitas dalam database saat ditransfer ke lapisan presentasi.
3. (Opsional) Penyiapan repositori
Jika Anda lebih suka menggunakan contoh repositori daripada repositori pribadi Anda sendiri, langkah-langkah berikut dapat diikuti di editor terminal pilihan Anda atau Cloud Shell. Mulai dengan membuat repositori pribadi untuk membantu kami melihat penyesuaian kode dalam tindakan:
mkdir customization-starter
cd customization-starter
curl https://start.spring.io/starter.zip -d dependencies=web,lombok \
-d javaVersion=21 \
-d type=maven-project \
-d bootVersion=3.3.4 -o cc-starter.zip
unzip cc-starter.zip
rm cc-starter.zip
pushd src/main/java/com/example/demo
mkdir dtos
touch dtos/LedgerDTO.java
Tambahkan kode berikut ke file LedgerDTO:
package com.example.demo.dtos;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
@Getter
@Setter
@Accessors(chain = true)
public class LedgerEntryDto {
private Long id;
private String accountName;
private double amount;
private String transactionType;
private String description;
private java.util.Date transactionDate;
}
Hal ini akan cukup untuk menunjukkan bahwa aksesor yang diharapkan oleh kontributor lain pada codebase ini akan dihasilkan secara akurat dengan mengaktifkan penyesuaian kode.
Buat repositori baru, dan pastikan repositori tersebut tetap bersifat pribadi. Ikuti langkah-langkah di bawah untuk mengirimkan starter ke repositori baru Anda:
popd
gh auth login
git init
git add .
git commit -m "code customization starter"
git remote add origin git@github.com:<YOUR_GITHUB_ID>/customization-starter.git
git branch -M main
git push -u origin main
4. Mengecualikan file
Sebelum memberikan akses Gemini ke repositori pribadi Anda, penting untuk memahami cara mengecualikan file yang tidak relevan atau sensitif yang tidak ingin diindeks oleh tim Anda. File .aiexclude digunakan untuk mencapai hal ini, yang serupa dengan .gitignore dengan beberapa perbedaan penting:
- File
.aiexcludekosong memblokir semua file dalam direktorinya dan semua subdirektori.- Hal ini sama seperti file yang berisi
**/*.
- Hal ini sama seperti file yang berisi
- File
.aiexcludetidak mendukung negasi (memberi awalan pola dengan!).
Dengan mempertimbangkan hal ini, coba pertimbangkan jenis file atau direktori yang ingin dikecualikan oleh tim Anda, dan cantumkan masing-masing di baris terpisah:
#Block all files with .key extensions
*.key
#Block all files under sensitive/dir
my/sensitive/dir/
#Block all .key files under sensitive/dir
my/sensitive/dir/ /.key
5. Mengonfigurasi Developer Connect
Developer Connect adalah layanan yang memfasilitasi Koneksi dan Link ke repositori kode pribadi Anda di GitHub atau GitLab. Ini adalah mekanisme yang memungkinkan Gemini Code Assist terhubung dengan aman ke repositori pribadi Anda, untuk membuat indeks yang akan digunakan untuk meningkatkan kualitas respons.
Kedua konsep ini berguna untuk memahami cara Developer Connect memberikan akses ke kode Anda secara aman:
Koneksi
- Mewakili jembatan antara Google dan platform pengelolaan kode sumber pihak ketiga.
Link
- Mewakili hubungan dengan repositori kode sumber individual yang Anda pilih dalam platform pengelolaan kode sumber yang terhubung.
Dengan memahami konsep tersebut, mulailah dengan membuka halaman Developer Connect untuk mengaktifkan API bagi project Anda.

Selanjutnya, ikuti langkah-langkah yang sesuai untuk membuat Koneksi dan Link untuk GitHub, atau GitLab. Kedua resource akan dibuat selama proses wizard.

Ulangi langkah-langkah ini untuk membuat Link untuk setiap repositori yang Anda inginkan agar fitur penyesuaian kode Gemini dipertimbangkan dalam responsnya. Anda dapat menggunakan kembali koneksi yang ada jika beberapa repositori berasal dari platform yang sama.
6. Membuat dan menghubungkan ke indeks
Untuk mengurai dan menganalisis repositori Anda dengan cepat, penyesuaian kode mengandalkan Indeks. Catat INDEX_NAME yang Anda gunakan, karena Anda akan membutuhkannya pada langkah berikutnya.
Untuk membuat indeks, jalankan perintah berikut:
gcloud gemini code-repository-indexes create <INDEX_NAME> \
--project=<YOUR_PROJECT_ID> \
--location=<REGION>
Jika Anda mengalami error Invalid choice: ..., pastikan Google Cloud CLI Anda sudah diupdate dengan menjalankan perintah berikut:
gcloud components update
Selanjutnya, izinkan akses ke indeks Anda dengan membuat grup repositori:
gcloud gemini code-repository-indexes repository-groups create REPOSITORY_GROUP \
--project=PROJECT_ID \
--location=REGION \
--code-repository-index=INDEX_NAME \
--repositories='[{"resource": "projects/PROJECT_ID/locations/REGION/connections/INDEX_CONNECTION/gitRepositoryLinks/REPOSITORY", "branch_pattern": "BRANCH_NAMES"}]'
Mengganti nilai berikut:
- REPOSITORY_GROUP: nama grup repositori yang akan Anda buat
- PROJECT_ID: ID project Google Cloud Anda.
- INDEX_NAME: nama indeks yang Anda tentukan di langkah sebelumnya untuk membuat indeks.
- REGION: region yang didukung dari daftar dalam dokumentasi, yang telah Anda konfigurasi di Developer Connect dalam project Google Cloud Anda.
- INDEX_CONNECTION: koneksi indeks yang Anda buat pada langkah sebelumnya untuk membuat indeks.
- REPOSITORY: repositori yang ingin Anda indeks. Anda harus menentukan setidaknya satu repositori, dan Anda dapat menentukan beberapa repositori sesuai kebutuhan.
- BRANCH_NAMES: nama cabang yang ingin Anda indeks, seperti main atau dev.
Bergantung pada jumlah repositori yang ingin Anda indeks dan ukurannya, pengindeksan konten dapat memerlukan waktu hingga 24 jam. Pengindeksan terjadi sekali setiap 24 jam, mengambil perubahan apa pun yang dilakukan di repositori. Anda dapat melihat langkah-langkah ini untuk memeriksa status pembuatan indeks Anda:

Terakhir, berikan akses akun utama yang diinginkan ke grup:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member='PRINCIPAL' \
--role='roles/cloudaicompanion.repositoryGroupsUser'
7. Membuat kode yang disesuaikan
Sekarang setelah Gemini memiliki akses ke kode di repositori pribadi Anda, kita dapat melihat cuplikan yang relevan muncul dalam permintaan penyelesaian kode kita. Di repositori contoh, kita dapat membuka folder DTO, dan saat membuat class baru untuk merepresentasikan objek baru, Anda dapat melihat anotasi yang diharapkan muncul saat kita mengetik:

8. Kesimpulan
Selamat, Anda telah menyelesaikan Codelab ini. Anda telah mempelajari cara menggunakan fitur Penyesuaian Kode Gemini Code Assist. Sekarang setelah respons dapat disesuaikan dengan codebase pribadi khusus tim Anda, setiap perintah dan penyelesaian kode akan lebih berharga bagi developer di tim Anda.
Jangan ragu untuk meninjau dokumen dan materi lainnya ini untuk bacaan lebih lanjut, dan dukungan untuk hal-hal seperti menyiapkan peran IAM: