Menggunakan pengelolaan kode sumber Git

Secure Source Manager mendukung semua SCM Git perintah klien dan memiliki fitur bawaan untuk permintaan pull dan pelacakan masalah. Autentikasi HTTPS dan SSH didukung.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk menggunakan Git guna berinteraksi dengan repositori Secure Source Manager, minta administrator untuk memberi Anda peran IAM berikut:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Untuk mengetahui informasi tentang pemberian peran Secure Source Manager, lihat Kontrol akses dengan IAM dan Memberikan akses instance kepada pengguna.

Menginstal Git dan Google Cloud CLI

  1. Instal Git.

  2. Jika Anda diminta untuk Choose a credential helper oleh penginstal Git, pilih None (Do not use a credential helper).

  3. Instal gcloud CLI.

  4. gcloud CLI versi 395.0.0 atau yang lebih baru diperlukan untuk menggunakan Git dengan HTTPS. Untuk memeriksa versi gcloud CLI, jalankan perintah berikut:

    gcloud --version
    
  5. Untuk mengupdate gcloud CLI, jalankan perintah berikut.

    gcloud components update
    
  6. Setelah mengupdate, jalankan gcloud init untuk menginisialisasi gcloud CLI.

    Lihat dokumentasi gcloud CLI tentang mengupdate komponen untuk mengetahui informasi selengkapnya.

Menyiapkan kredensial

Jika Anda melakukan autentikasi ke Secure Source Manager menggunakan penyedia identitas pihak ketiga dan Workforce Identity Federation, Anda tidak perlu menyelesaikan bagian ini. Sebagai gantinya, Anda harus membuat konfigurasi login workforce identity pool.

Tambahkan helper autentikasi Secure Source Manager ke konfigurasi Git global Anda dengan menjalankan perintah berikut:

Linux

git config --global credential.'https://*.*.sourcemanager.dev'.helper gcloud.sh

Versi Git yang lebih lama mungkin tidak mendukung karakter pengganti. Untuk menambahkan helper autentikasi tanpa karakter pengganti, jalankan perintah berikut:

git config --global credential.'https://INSTANCE_ID-PROJECT_NUMBER-git.LOCATION.sourcemanager.dev'.helper gcloud.sh

Ganti kode berikut:

  • INSTANCE_ID dengan nama instance Secure Source Manager Anda.
  • PROJECT_NUMBER dengan nomor project Anda. Untuk mendapatkan bantuan dalam menemukan nomor project Anda, lihat Mengidentifikasi project.
  • LOCATION dengan region instance. Untuk mengetahui informasi selengkapnya tentang region, lihat Lokasi.

Windows

git config --global credential.https://*.*.sourcemanager.dev.helper gcloud.cmd

Versi Git yang lebih lama mungkin tidak mendukung karakter pengganti. Untuk menambahkan helper autentikasi tanpa karakter pengganti, jalankan perintah berikut:

git config --global credential.https://INSTANCE_ID-PROJECT_NUMBER-git.LOCATION.sourcemanager.dev.helper gcloud.cmd

Ganti kode berikut:

  • INSTANCE_ID dengan nama instance Secure Source Manager Anda.
  • PROJECT_NUMBER dengan nomor project Anda. Untuk mendapatkan bantuan dalam menemukan nomor project Anda, lihat Mengidentifikasi project.
  • LOCATION dengan region instance. Untuk mengetahui informasi selengkapnya tentang region, lihat Lokasi.

Helper autentikasi menggunakan gcloud CLI untuk mengambil Google Cloud kredensial Anda saat menggunakan perintah Git dengan Secure Source Manager.

Untuk melakukan autentikasi ulang setelah penyiapan kredensial awal, jalankan perintah gcloud CLI berikut:

gcloud auth login

Melakukan autentikasi dari VM Compute Engine menggunakan akun layanan

Anda dapat melakukan autentikasi dari virtual machine (VM) Compute Engine menggunakan akun layanan terlampir.

Mengonfigurasi VM dan akun layanan

Jika Anda menggunakan akun layanan default Compute Engine, buat VM Anda dengan cakupan OAuth yang diperlukan:

gcloud compute instances create VM_NAME \
    --project=PROJECT_ID \
    --zone=ZONE \
    --scopes=openid,https://www.googleapis.com/auth/userinfo.profile,https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/cloud-platform

Ganti kode berikut:

  • VM_NAME: nama untuk VM Anda.
  • PROJECT_ID: project ID Anda Google Cloud .
  • ZONE: zona untuk VM Anda.

Jika Anda menggunakan akun layanan kustom, buat akun layanan, lalu buat VM.

  1. Membuat akun layanan:

    gcloud iam service-accounts create SA_NAME --project=PROJECT_ID
    

    Ganti SA_NAME dengan nama untuk akun layanan.

  2. Memberikan izin untuk menggunakan akun layanan. Untuk membuat VM dengan akun layanan, Anda memerlukan peran Pengguna Akun Layanan (roles/iam.serviceAccountUser) di akun layanan. Berikan peran ini kepada principal yang membuat VM:

    gcloud iam service-accounts add-iam-policy-binding SA_NAME@PROJECT_ID.iam.gserviceaccount.com \
        --member="user:USER_EMAIL" \
        --role="roles/iam.serviceAccountUser"
    

    Ganti USER_EMAIL dengan email pengguna yang membuat VM.

  3. Membuat VM:

    gcloud compute instances create VM_NAME \
        --project=PROJECT_ID \
        --zone=ZONE \
        --scopes=openid,https://www.googleapis.com/auth/userinfo.profile,https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/cloud-platform \
        --service-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
    

Memberikan peran IAM ke akun layanan

Beri akun layanan akses ke instance dan repositori Secure Source Manager:

  1. Memberikan akses instance:

    SA_EMAIL=$(gcloud compute instances describe VM_NAME --project=PROJECT_ID --zone=ZONE --format="get(serviceAccounts[0].email)")
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:$SA_EMAIL" \
        --role=roles/securesourcemanager.instanceAccessor
    
  2. Memberikan akses baca repositori.

    Untuk memberikan akses baca ke repositori tertentu, jalankan perintah berikut:

    gcloud ssm repos add-iam-policy-binding REPOSITORY_ID \
        --instance=INSTANCE_ID \
        --location=LOCATION \
        --member="serviceAccount:$SA_EMAIL" \
        --role=roles/securesourcemanager.repoReader
    

    Ganti kode berikut:

    • REPOSITORY_ID: ID repositori.
    • INSTANCE_ID: ID instance Secure Source Manager.
    • LOCATION: Region instance Secure Source Manager.

    Untuk memberikan akses tulis, gunakan peran roles/securesourcemanager.repoWriter.

    Sebaiknya berikan akses di tingkat repositori untuk mengikuti prinsip hak istimewa terendah. Jika Anda perlu memberikan akses ke semua repositori dalam project, lihat Kontrol akses dengan IAM.

Penyebaran izin IAM dapat memerlukan waktu beberapa menit.

Mengonfigurasi Git di VM

  1. Hubungkan ke VM menggunakan SSH:

    gcloud compute ssh VM_NAME --project=PROJECT_ID --zone=ZONE
    
  2. Di VM, instal Git:

    sudo apt-get install git
    
  3. Di VM, konfigurasi helper kredensial Git seperti yang dijelaskan di Menyiapkan kredensial. Misalnya, di Linux:

    git config --global credential.'https://*.*.sourcemanager.dev'.helper gcloud.sh
    

Setelah Anda mengonfigurasi helper kredensial, Git akan menggunakan Kredensial Default Aplikasi dari akun layanan VM untuk melakukan autentikasi ke Secure Source Manager. Sekarang Anda dapat meng-clone repositori. Anda harus menggunakan URL repositori HTTPS untuk melakukan autentikasi dengan Kredensial Default Aplikasi.

Membuat konfigurasi login workforce identity pool

Anda tidak perlu menyelesaikan bagian ini kecuali jika Anda menggunakan Workforce Identity Federation untuk melakukan autentikasi ke Secure Source Manager dengan penyedia identitas pihak ketiga.

Untuk melakukan autentikasi dengan kredensial workforce identity pool ke instance Secure Source Manager menggunakan perintah gcloud CLI atau perintah Git, Anda harus membuat konfigurasi login dengan workforce identity pool.

Untuk membuat konfigurasi login workforce identity pool, ikuti petunjuk di Mendapatkan token berdurasi singkat untuk Workforce Identity Federation guna membuat login berbasis browser dengan gcloud CLI.

Setelah melakukan autentikasi, Anda dapat menggunakan perintah Git untuk berinteraksi dengan instance Secure Source Manager. Anda harus melakukan autentikasi ulang saat durasi sesi untuk workforce identity pool Anda berakhir.

Meng-clone repositori

Clone repositori dengan menjalankan perintah berikut:

git clone REPOSITORY_URL

Dengan REPOSITORY_URL adalah URL HTTPS atau SSH yang ditampilkan di bagian atas halaman repositori yang ingin Anda clone.

Meng-clone dengan Developer Connect

Anda dapat meng-clone repositori menggunakan proxy Git Developer Connect jika telah menautkan repositori Secure Source Manager di Developer Connect. Meng-clone dengan Developer Connect menggunakan IAM untuk mengautentikasi dan mengotorisasi akses repositori.

Sebelum memulai

  1. Ikuti petunjuk untuk membuat koneksi ke repositori Secure Source Manager di Developer Connect.
  2. Pastikan proxy Git diaktifkan pada koneksi Developer Connect Anda. Lihat Mengonfigurasi dan menggunakan proxy Developer Connect untuk mengetahui petunjuk tentang cara mengaktifkan proxy Git.
  3. Beri principal yang perlu meng-clone menggunakan URI proxy peran roles/developerconnect.gitProxyReader di resource GitRepositoryLink di Developer Connect. Lihat Kontrol akses Developer Connect dengan IAM untuk mengetahui petunjuk tentang cara memberikan peran.

Menyiapkan kredensial untuk Developer Connect

Tambahkan helper autentikasi Developer Connect ke konfigurasi Git global Anda dengan menjalankan perintah berikut:

Linux

git config --global credential.'https://*.developerconnect.dev'.helper gcloud.sh

Windows

git config --global credential.https://*.developerconnect.dev.helper gcloud.cmd

Meng-clone menggunakan URI proxy

Untuk meng-clone repositori menggunakan URI proxy Developer Connect, jalankan perintah berikut:

git clone https://REGION-git.developerconnect.dev/v1/projects/PROJECT_ID/locations/REGION/connections/CONNECTION_ID/gitRepositoryLinks/LINK_ID

Ganti kode berikut:

  • REGION: Region resource Developer Connect Anda.
  • PROJECT_ID: Project ID resource Developer Connect Anda.
  • CONNECTION_ID: ID koneksi Developer Connect Anda.
  • LINK_ID: ID resource GitRepositoryLink Developer Connect Anda.

Untuk mengetahui petunjuk tentang cara melihat detail resource GitRepositoryLink, lihat gcloud developer-connect connections git-repository-links. Anda dapat menggunakan subperintah list atau describe untuk melihat detail link.

Mengirim repositori yang ada ke Secure Source Manager

Anda harus membuat repositori Secure Source Manager untuk bertindak sebagai jarak jauh sebelum dapat mengirim ke repositori tersebut.

Untuk mengirim repositori Git yang ada ke repositori Secure Source Manager yang kosong, Anda harus menambahkan repositori Secure Source Manager sebagai jarak jauh dan mengirim ke repositori tersebut.

  1. Untuk menetapkan repositori Secure Source Manager sebagai jarak jauh, jalankan perintah berikut:

    git remote add origin REPOSITORY_URL
    

    Dengan REPOSITORY_URL adalah URL HTTPS atau SSH yang ditampilkan di bagian atas halaman repositori.

  2. Untuk mengirim ke repositori, jalankan perintah berikut:

    git push -u origin main
    

Untuk mengetahui informasi selengkapnya tentang pengelolaan kode sumber Git, baca dokumentasi Git.

Langkah berikutnya