Membuat dan memperbarui repositori

Halaman ini menjelaskan cara membuat dan memperbarui repositori menggunakan antarmuka web Secure Source Manager atau Secure Source Manager API.

Jika instance Secure Source Manager Anda belum dibuat, lihat Membuat instance Secure Source Manager untuk mulai menggunakannya.

Sebelum memulai

  1. Buat atau minta akses ke instance Secure Source Manager. Untuk mengetahui informasi selengkapnya, lihat Membuat instance Secure Source Manager.
  2. Instal Google Cloud CLI.

  3. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  4. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  5. Instal komponen beta Google Cloud CLI:
    gcloud components install alpha

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk membuat repositori, 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 cara memberikan peran Secure Source Manager, lihat Kontrol akses dengan IAM dan Memberi pengguna akses instance.

Membuat repositori

Antarmuka web

  1. Untuk mengakses instance Secure Source Manager melalui antarmuka webnya, salin URL berikut ke kolom URL browser Anda.

    INSTANCE_ID-PROJECT_NUMBER.LOCATION.sourcemanager.dev

    Ganti kode berikut:

    • INSTANCE_ID dengan nama instance.
    • PROJECT_NUMBER dengan nomor project Google Cloud instance. Untuk mengetahui informasi tentang cara mengidentifikasi project, lihat Mengidentifikasi project.
    • LOCATION dengan region instance.

  2. Lakukan autentikasi menggunakan kredensial Secure Source Manager Anda jika diperlukan.

  3. Klik ikon + Create new repository di menu navigasi.

  4. Isi detail repositori:

    1. ID repositori: Masukkan nama untuk repositori.

    2. Deskripsi: Opsional: Masukkan deskripsi repositori.

    3. Cabang default: Nama cabang default.

  5. Akun layanan: Opsional: Masukkan akun layanan yang akan dikaitkan dengan repositori. Akun layanan yang dikelola pengguna ini digunakan untuk integrasi seperti Cloud Build. Untuk mengetahui informasi selengkapnya, lihat Menghubungkan ke Cloud Build.

  6. Inisialisasi repositori: Opsional: Pilih opsi ini jika Anda ingin menginisialisasi repositori dan menambahkan file .gitignore, lisensi, dan README.

  7. .gitignore: Opsional: Pilih file yang tidak dilacak menggunakan template menu drop-down.

  8. lisensi: Opsional: Pilih lisensi umum dari menu drop-down.

  9. Klik Buat repositori.

gcloud

  1. Buat repositori menggunakan gcloud CLI dengan menjalankan perintah berikut:

    gcloud source-manager repos create REPOSITORY_ID \
        --region=LOCATION \
        --project=PROJECT_ID \
        --instance=INSTANCE_ID \
        --description=DESCRIPTION \
        --default-branch=BRANCH \
        --gitignores=GITIGNORES \
        --license=LICENSE \
        --readme=README \
        --service-account=SERVICE_ACCOUNT
    

    Ganti kode berikut:

    • REPOSITORY_ID dengan nama untuk repositori Anda.

    • LOCATION dengan region tempat Anda ingin membuat repositori. Untuk mengetahui informasi selengkapnya tentang lokasi yang didukung, lihat Lokasi.

    • PROJECT_ID dengan project ID instance Secure Source Manager tempat Anda ingin membuat repositori.

    • INSTANCE_ID dengan ID instance dari instance tempat Anda membuat repositori. Untuk mencantumkan instance Secure Source Manager di project Anda, lihat Mencantumkan dan melihat instance.

    • DESCRIPTION dengan deskripsi repositori. Tindakan ini bersifat opsional dan dapat dihilangkan.

    • BRANCH dengan nama cabang default. Kolom ini bersifat opsional dan dapat dihilangkan. Nama cabang default jika tidak ditetapkan adalah main.

    • GITIGNORES dengan daftar nama template gitignore yang dipisahkan koma. Tindakan ini bersifat opsional dan dapat dihilangkan. Untuk melihat daftar lengkap template yang tersedia, lihat referensi konfigurasi inisialisasi repositori.

    • LICENSE dengan nama template lisensi yang akan diterapkan ke repositori Anda. Tindakan ini bersifat opsional dan dapat dihilangkan. Untuk melihat daftar lengkap template lisensi yang tersedia, lihat referensi konfigurasi inisialisasi repositori.

    • README dengan default untuk membuat file README dari template default. Tindakan ini bersifat opsional dan dapat dihilangkan. Jika dihilangkan, file README tidak akan dibuat.

    • SERVICE_ACCOUNT dengan alamat email akun layanan yang ingin Anda kaitkan dengan repositori. Kolom ini bersifat opsional dan dapat dihilangkan.

API

  1. Buat repositori menggunakan panggilan REST dengan menjalankan perintah berikut:

    curl \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/repositories?repository_id=REPOSITORY_ID \
        -d '{
          "instance": "projects/PROJECT_ID/locations/REGION/instances/INSTANCE_ID",
          "serviceAccount": "SERVICE_ACCOUNT"
        }'
    

    Ganti kode berikut:

    • REGION dengan region instance Secure Source Manager Anda. Untuk mengetahui informasi selengkapnya tentang lokasi yang didukung, lihat Lokasi.
    • INSTANCE_ID dengan ID instance Secure Source Manager Anda.
    • PROJECT_ID dengan project ID instance Secure Source Manager Anda. Untuk mengetahui informasi selengkapnya tentang tempat menemukan project ID, lihat Mengidentifikasi project.
    • REPOSITORY_ID dengan nama untuk repositori Anda.
    • SERVICE_ACCOUNT dengan alamat email akun layanan yang ingin Anda kaitkan dengan repositori.

    Nilai tambahan dapat ditentukan menggunakan tanda data HTTP POST, -d'{}' termasuk menginisialisasi repositori, menambahkan file .gitignore tertentu, atau lisensi. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi.

    Jika ingin output Anda dapat dibaca manusia, Anda dapat menyalurkannya ke JSON menggunakan json_pp.

    Contoh:

    curl \
        -X POST \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        https://securesourcemanager.googleapis.com/v1/projects/my-project-id/locations/us-central1/repositories?repository_id=my-repo \
        -d '{
          "instance": "projects/my-project-id/locations/us-central1/instances/prod-test-instance",
          "serviceAccount": "my-service-account@my-project-id.iam.gserviceaccount.com",
          "initialConfig": {
            "defaultBranch": "main"
          }
        }' | json_pp
    

    Responsnya akan terlihat seperti berikut:

    {
      "name": "operations/266bf4c7-13fe-11ed-be24-da823b7355d0",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata",
        "createTime": "2022-08-04T14:02:59.810496928Z",
        "endTime": "2022-08-04T14:03:00.558354528Z",
        "target": "projects/654987321654/locations/us-central1/repositories/my-repo",
        "verb": "create",
        "apiVersion": "v1"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.Repository",
        "name": "projects/my-project-id/locations/us-central1/repositories/my-repo",
        "instance": "projects/654987321654/locations/us-central1/instances/prod-test-instance",
        "serviceAccount": "my-service-account@my-project-id.iam.gserviceaccount.com",
        "createTime": "2022-08-04T14:03:00Z",
        "uris": {
          "html": "https://prod-test-instance-654987321654.us-central1.sourcemanager.dev/my-project-id/my-repo",
          "gitHttps": "https://prod-test-instance-654987321654-git.us-central1.sourcemanager.dev/my-project-id/my-repo.git"
        }
    }
    

    Dengan:

    • 654987321654 adalah nomor project repositori.
    • my-project-id adalah project ID repositori.
    • my-repo adalah REPOSITORY_ID yang Anda tetapkan dalam perintah pembuatan. Kolom uris berisi URL untuk mengakses repositori melalui browser web atau melalui akses HTTPS protokol Git.
  2. Akses repositori baru Anda dengan HTML URI dalam respons. Peninjauan kode, pelacakan masalah, dan permintaan pull didukung di antarmuka web Secure Source Manager.

Repositori dibuat di instance Secure Source Manager Anda.

Saat membuat repositori baru, Anda akan diberi peran Admin Repo (roles/securesourcemanager.repoAdmin). Izin IAM baru mungkin memerlukan waktu hingga 2 menit untuk diterapkan, jadi jika Anda mendapatkan error izin saat mencoba mengakses repositori setelah pembuatan, tunggu beberapa menit dan coba lagi.

Repositori yang telah Anda buat tercantum di antarmuka web Secure Source Manager di halaman Repositori saya.

Memperbarui repositori

Antarmuka web

  1. Buka halaman repositori di antarmuka web Secure Source Manager.
  2. Klik Setelan repositori di menu navigasi.
  3. Di bagian Setelan dasar, masukkan alamat email akun layanan di kolom Akun layanan.
  4. Klik Simpan perubahan.

gcloud

  1. Untuk memperbarui akun layanan repositori, jalankan perintah berikut:

    gcloud source-manager repos update REPOSITORY_ID \
        --region=LOCATION \
        --project=PROJECT_ID \
        --service-account=SERVICE_ACCOUNT
    

    Ganti kode berikut:

    • REPOSITORY_ID dengan nama repositori yang ingin Anda perbarui.
    • LOCATION dengan region tempat repositori berada.
    • PROJECT_ID dengan project ID.
    • SERVICE_ACCOUNT dengan alamat email akun layanan yang ingin Anda kaitkan dengan repositori.

API

  1. Untuk memperbarui akun layanan repositori menggunakan panggilan REST, jalankan perintah berikut:

    curl --request PATCH \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/repositories/REPOSITORY_ID?updateMask=serviceAccount \
        -d '{"serviceAccount": "SERVICE_ACCOUNT"}'
    

    Ganti kode berikut:

    • PROJECT_ID dengan project ID.
    • REGION dengan region.
    • REPOSITORY_ID dengan ID repositori.
    • SERVICE_ACCOUNT dengan email akun layanan.

Langkah berikutnya