GitHub

Konektor GitHub memungkinkan Anda melakukan operasi penyisipan, penghapusan, pembaruan, dan pembacaan pada data GitHub.

Sebelum memulai

Sebelum menggunakan konektor GitHub, lakukan tugas berikut:

  • Di project Google Cloud Anda:
    • Pastikan konektivitas jaringan sudah disiapkan. Untuk mengetahui informasi tentang pola jaringan, lihat Konektivitas jaringan.
    • Berikan peran IAM roles/connectors.admin kepada pengguna yang mengonfigurasi konektor.
    • Berikan peran IAM berikut ke akun layanan yang ingin Anda gunakan untuk konektor:
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor

      Akun layanan adalah jenis Akun Google khusus yang dimaksudkan untuk mewakili pengguna non-manusia yang perlu diautentikasi dan diberi otorisasi untuk mengakses data di Google API. Jika tidak memiliki akun layanan, Anda harus membuat akun layanan. Untuk informasi selengkapnya, lihat Membuat akun layanan.

    • Aktifkan layanan berikut
      • secretmanager.googleapis.com (Secret Manager API)
      • connectors.googleapis.com (Connectors API)

      Untuk memahami cara mengaktifkan layanan, lihat Mengaktifkan layanan.

    Jika layanan atau izin ini belum diaktifkan untuk project Anda sebelumnya, Anda akan diminta untuk mengaktifkannya saat mengonfigurasi konektor.

  • Di GitHub, berdasarkan persyaratan Anda, selesaikan tugas berikut:

    Mengonfigurasi konektor

    Untuk mengonfigurasi konektor, Anda harus membuat koneksi ke sumber data (sistem backend). Koneksi bersifat khusus untuk sumber data. Artinya, jika memiliki banyak sumber data, Anda harus membuat koneksi terpisah untuk setiap sumber data. Untuk membuat koneksi, lakukan langkah-langkah berikut:

    1. Di konsol Cloud, buka halaman Konektor Integrasi > Koneksi, lalu pilih atau buat project Google Cloud.

      Buka halaman Koneksi

    2. Klik + CREATE NEW untuk membuka halaman Create Connection.
    3. Di bagian Location, pilih lokasi untuk koneksi.
      1. Region: Pilih lokasi dari menu drop-down.

        Untuk mengetahui daftar semua region yang didukung, lihat Lokasi.

      2. Klik NEXT.
    4. Di bagian Connection Details, selesaikan tindakan berikut:
      1. Konektor: Pilih GitHub dari menu drop-down Konektor yang tersedia.
      2. Versi konektor: Pilih versi Konektor dari menu drop-down versi yang tersedia.
      3. Di kolom Connection Name, masukkan nama untuk instance Connection.

        Nama koneksi harus memenuhi kriteria berikut:

        • Nama koneksi dapat menggunakan huruf, angka, atau tanda hubung.
        • Huruf harus berupa huruf kecil.
        • Nama koneksi harus diawali dengan huruf dan diakhiri dengan huruf atau angka.
        • Nama koneksi tidak boleh melebihi 49 karakter.
      4. Secara opsional, masukkan Description untuk instance koneksi.
      5. Secara opsional, aktifkan Cloud Logging, lalu pilih level log. Secara default, level log ditetapkan ke Error.
      6. Service Account: Pilih akun layanan yang memiliki peran yang diperlukan.
      7. Secara opsional, tentukan OwnerLogin: Nama login unik milik pengguna atau organisasi.
      8. Secara opsional, tentukan Skema: Gunakan skema untuk membatasi skema yang diambil secara dinamis ke skema project atau repositori tertentu. Untuk mengambil semua skema, jangan tentukan nilai apa pun di kolom ini. Untuk mengetahui informasi tentang skema yang didukung, lihat Skema dan cakupan
      9. Secara opsional, konfigurasikan Setelan node koneksi:

        • Jumlah node minimum: Masukkan jumlah minimum node koneksi.
        • Maximum number of nodes: Masukkan jumlah maksimum node koneksi.

        Node adalah unit (atau replika) koneksi yang memproses transaksi. Semakin banyak node yang diperlukan untuk memproses lebih banyak transaksi untuk koneksi, dan sebaliknya, semakin sedikit node yang diperlukan untuk memproses lebih sedikit transaksi. Untuk memahami pengaruh node terhadap harga konektor, lihat Harga untuk node koneksi. Jika Anda tidak memasukkan nilai apa pun, secara default, node minimum ditetapkan ke 2 (untuk ketersediaan yang lebih baik) dan node maksimum ditetapkan ke 50.

      10. Secara opsional, klik + TAMBAHKAN LABEL untuk menambahkan label ke Koneksi dalam bentuk pasangan kunci/nilai.
      11. Klik NEXT.
    5. Di bagian Destinations, masukkan detail host jarak jauh (sistem backend) yang ingin Anda hubungkan.
      1. Jenis Tujuan: Pilih Jenis Tujuan.
        • Pilih Host address dari daftar untuk menentukan nama host atau alamat IP tujuan.
        • Jika Anda ingin membuat koneksi pribadi ke sistem backend, pilih Endpoint attachment dari daftar, lalu pilih lampiran endpoint yang diperlukan dari daftar Endpoint Attachment.

        Jika ingin membuat koneksi publik ke sistem backend dengan keamanan tambahan, Anda dapat mempertimbangkan untuk mengonfigurasi alamat IP keluar statis untuk koneksi, lalu mengonfigurasi aturan firewall untuk hanya mengizinkan alamat IP statis tertentu.

        Untuk memasukkan tujuan tambahan, klik +TAMBAHKAN TUJUAN.

      2. Klik NEXT.
    6. Di bagian Authentication, masukkan detail autentikasi.

      Untuk memahami cara mengonfigurasi jenis autentikasi ini, lihat Mengonfigurasi autentikasi.

    7. Klik NEXT.
    8. Tinjau: Tinjau detail koneksi dan autentikasi Anda.
    9. Klik Create.

    Mengonfigurasi autentikasi

    Masukkan detail berdasarkan autentikasi yang ingin Anda gunakan.

    • Client ID: Client ID yang digunakan untuk meminta token akses.
    • Cakupan: Daftar cakupan yang diinginkan yang dipisahkan koma.
    • Rahasia Klien: Secret Manager Secret yang berisi rahasia klien untuk aplikasi terhubung yang Anda buat.

    Contoh konfigurasi koneksi

    Bagian ini mencantumkan contoh nilai untuk berbagai kolom yang Anda konfigurasi saat membuat koneksi.

    OAuth 2.0 - jenis koneksi kode otorisasi

    Nama kolom Detail
    Lokasi europe-west1
    Konektor GitHub
    Versi konektor 1
    Nama Koneksi Konektor GitHub
    Mengaktifkan Cloud Logging Tidak
    Akun Layanan Your_Project_Number@serviceaccount
    OwnerLogin souvikg-Your_Owner_Login
    Skema
    Jumlah minimum node 2
    Jumlah maksimum node 50
    ID Klien ClientID
    Cakupan repo repo:status repo_deployment
    Rahasia Klien Rahasia klien
    Versi Secret 1

    Skema dan cakupan GitHub

    Konektor GitHub mendukung skema berikut:
    • Skema informasi: Skema ini berisi tabel yang berisi informasi pemberian lisensi dan ringkasan tingkat tinggi tentang project dan repositori yang terkait dengan akun yang diautentikasi. Hanya ada satu skema informasi. Untuk mengambil skema informasi, tentukan hal berikut di kolom skema: Informasi
    • Skema repositori: Konektor mendukung skema untuk setiap repositori di akun pengguna atau organisasi yang diautentikasi. Gunakan format berikut untuk menentukan skema repositori: Repository_.
    • Skema project: Konektor mendukung skema untuk setiap project di akun pengguna atau organisasi yang diautentikasi. Gunakan format berikut untuk menentukan skema project: Project_

    Untuk mengetahui informasi selengkapnya tentang cakupan, lihat Cakupan GitHub.

    Entity, operasi, dan tindakan

    Semua Konektor Integrasi menyediakan lapisan abstraksi untuk objek aplikasi yang terhubung. Anda hanya dapat mengakses objek aplikasi melalui abstraksi ini. Abstraksi ditampilkan kepada Anda sebagai entitas, operasi, dan tindakan.

    • Entity: Entity dapat dianggap sebagai objek, atau kumpulan properti, dalam aplikasi atau layanan yang terhubung. Definisi entitas berbeda dari konektor ke konektor. Misalnya, dalam konektor database, tabel adalah entitas, dalam konektor server file, folder adalah entitas, dan dalam konektor sistem pesan, antrean adalah entitas.

      Namun, mungkin konektor tidak mendukung atau memiliki entity apa pun, dalam hal ini, daftar Entities akan kosong.

    • Operasi: Operasi adalah aktivitas yang dapat Anda lakukan pada entity. Anda dapat melakukan salah satu operasi berikut pada entitas:

      Memilih entitas dari daftar yang tersedia akan menghasilkan daftar operasi yang tersedia untuk entitas tersebut. Untuk deskripsi mendetail tentang operasi, lihat operasi entity tugas Konektor. Namun, jika konektor tidak mendukung operasi entitas apa pun, operasi yang tidak didukung tersebut tidak akan tercantum dalam daftar Operations.

    • Tindakan: Tindakan adalah fungsi kelas satu yang tersedia untuk integrasi melalui antarmuka konektor. Tindakan memungkinkan Anda membuat perubahan pada satu atau beberapa entitas, dan bervariasi dari satu konektor ke konektor lainnya. Biasanya, tindakan akan memiliki beberapa parameter input, dan parameter output. Namun, konektor mungkin tidak mendukung tindakan apa pun, dalam hal ini daftar Actions akan kosong.

    Batasan sistem

    Konektor GitHub dapat memproses 2 transaksi per detik, per node, dan mencegah transaksi apa pun melampaui batas ini. Secara default, Konektor Integrasi mengalokasikan 2 node (untuk ketersediaan yang lebih baik) untuk koneksi.

    Untuk mengetahui informasi tentang batas yang berlaku untuk Konektor Integrasi, lihat Batas.

    Tindakan

    Bagian ini mencantumkan tindakan yang didukung oleh konektor GitHub. Untuk memahami cara mengonfigurasi tindakan, lihat Contoh tindakan.

    Tindakan UpdatePullRequestBranch

    Tindakan ini akan memperbarui cabang permintaan pull.

    Parameter input tindakan UpdatePullRequestBranch

    Nama Jenis Deskripsi
    PullRequestId string ID Node permintaan pull.
    ExpectedHeadOid string OID referensi head untuk cabang upstream.
    UpdateMethod string Metode cabang update yang akan digunakan. Defaultnya adalah 'MERGE'. Nilai yang diizinkan adalah MERGE dan REBASE.

    Parameter output tindakan AppsDeployStatus

    Tindakan ini menampilkan status 200 (OK) dan memperbarui cabang permintaan pull.

    Misalnya, cara mengonfigurasi tindakan UpdatePullRequestBranch, lihat Contoh.

    Tindakan MergePullRequest

    Tindakan ini menggabungkan permintaan pull.

    Parameter input tindakan MergePullRequest

    Nama Jenis Deskripsi
    PullRequestId string ID Node permintaan pull yang akan digabungkan.
    ExpectedHeadOid string OID yang harus cocok dengan ref head permintaan pull untuk memungkinkan penggabungan; jika dihilangkan, tidak ada pemeriksaan yang dilakukan.
    CommitHeadline string Judul commit yang akan digunakan untuk commit penggabungan; jika dihilangkan, pesan default akan digunakan.
    CommitBody string Isi commit yang akan digunakan untuk commit penggabungan; jika dihilangkan, pesan default akan digunakan.
    MergeMethod string Metode penggabungan yang akan digunakan. Defaultnya adalah 'MERGE'. Nilai yang diizinkan adalah MERGE, SQUASH, dan REBASE.
    AuthorEmail string Alamat email yang akan dikaitkan dengan penggabungan ini.

    Parameter output tindakan MergePullRequest

    Tindakan ini menampilkan status 200 (OK) dan menggabungkan permintaan pull.

    Misalnya, cara mengonfigurasi tindakan MergePullRequest, lihat Contoh.

    Contoh tindakan

    Bagian ini menjelaskan cara melakukan beberapa tindakan di konektor ini.

    Contoh - UpdatePullRequestBranch

    Contoh ini mengambil status deployment aplikasi.

    1. Pada dialog Configure connector task, klik Action.
    2. Pilih tindakan UpdatePullRequestBranch, lalu klik Selesai.
    3. Di bagian Task Input pada tugas Connectors, klik connectorInputPayload, lalu masukkan nilai yang mirip dengan berikut di kolom Default Value:
            {
          "PullRequestId": "PR_kwDOLywhW8537gcA"
            } 
        
    4. Jika tindakan berhasil, parameter respons connectorOutputPayload tugas UpdatePullRequestBranch akan memiliki nilai yang mirip dengan berikut:

             {
          "pullrequestid": "PR_kwDOLywhW8537gcA"
             } 
        

    Contoh - MergePullRequest

    Contoh ini menggabungkan permintaan pull.

    1. Pada dialog Configure connector task, klik Action.
    2. Pilih tindakan MergePullRequest, lalu klik Selesai.
    3. Di bagian Task Input pada tugas Connectors, klik connectorInputPayload, lalu masukkan nilai yang mirip dengan berikut di kolom Default Value:
            {
          "PullRequestId": "PR_kwDOLywhW8537gcA",
          "CommitHeadline": "Google MERGE",
          "CommitBody": "This is Google Merge"
            }
        
    4. Jika tindakan berhasil, parameter respons connectorOutputPayload tugas MergePullRequest akan memiliki nilai yang mirip dengan berikut:

              {
          "pullrequestid": "PR_kwDOLywhW8537gcA"
              } 
        

    Contoh operasi entity

    Bagian ini menunjukkan cara melakukan beberapa operasi entity di konektor ini.

    Contoh - Mencantumkan semua Cabang

    1. Pada dialog Configure connector task, klik Entities.
    2. Pilih Branches dari daftar Entity.
    3. Pilih operasi List, lalu klik Selesai.
    4. Di bagian Task Input pada tugas Connectors, Anda dapat menetapkan filterClause sesuai kebutuhan Anda.

    Contoh - Mencantumkan semua Commit

    1. Pada dialog Configure connector task, klik Entities.
    2. Pilih Commits dari daftar Entity.
    3. Pilih operasi List, lalu klik Selesai.
    4. Di bagian Task Input pada tugas Connectors, Anda dapat menetapkan filterClause sesuai kebutuhan Anda.

    Pertimbangan

    • Commit adalah nama entity. Anda harus meneruskan nilai untuk klausa filter menggunakan tanda kutip tunggal ('), seperti City='Redwood City'. Dengan City adalah nama kolom dan Redwood city adalah nilainya.
    • Anda dapat menggunakan klausa filter untuk memfilter data berdasarkan kolom. Misalnya, jika ada 20 data dengan name = demo16975280986860, kita dapat memfilter data dengan kolom Address='Redwood City' dan region='us-east1'.

    Anda dapat melakukan operasi List pada entitas berikut:

    CommitComments, Forks, IssueComments, Issue, IssueAssignees, AssignableUser,Labels, Milestones, PullRequestReviews, PullRequests, PullRequestComments, ReleaseAssets, Releases, Watcher, Users, Repositories, Collaborators, OrganizationTeams, OrganizationsMannequins, OrganizationMember, Organization, Licenses, LicensePermission, LicenseLimitation, LicenseConditions, Projects, dan PullRequestReviewRequests

    Contoh - Mendapatkan data Cabang

    1. Pada dialog Configure connector task, klik Entities.
    2. Pilih Branches dari daftar Entity.
    3. Pilih operasi Get, lalu klik Selesai.
    4. Di sini, ID entity ditetapkan ke 4. Untuk menetapkan ID entitas, di bagian Task Input pada tugas Connectors, klik EntityId, lalu masukkan 4 di kolom Default Value.

    Contoh - Mendapatkan data Repositori

    1. Pada dialog Configure connector task, klik Entities.
    2. Pilih Repositories dari daftar Entity.
    3. Pilih operasi Get, lalu klik Selesai.
    4. Tetapkan ID entity ke 4 yang merupakan Kunci yang akan diteruskan. Untuk menetapkan ID entitas, di bagian Task Input pada tugas Connectors, klik EntityId, lalu masukkan 4 di kolom Default Value.
    5. Dalam beberapa kasus, meneruskan satu ID Entitas dapat menyebabkan error karena dua kunci gabungan. Dalam kasus tersebut, gunakan klausa filter dengan kolom yang diperlukan.

      Untuk tampilan, operasi Get tidak berfungsi karena tampilan tidak memiliki kunci utama. Sebagai gantinya, Anda dapat menggunakan operasi List dengan filter pada tampilan, yang berfungsi mirip dengan operasi Get.

    Anda dapat melakukan operasi Get pada entitas berikut:

    CommitComments, Commits, IssueAssignees, Labels, Milestones, PullRequestReviews, PullRequests, PullRequestComments, ReleaseAssets, Release, Topics, Users, Collaborators, Organizations, dan Licenses

    Contoh - Membuat data Masalah

    1. Pada dialog Configure connector task, klik Entities.
    2. Pilih Issues dari daftar Entity.
    3. Pilih operasi Create, lalu klik Done.
    4. Di bagian Task Input pada tugas Connectors, klik connectorInputPayload, lalu masukkan nilai yang mirip dengan berikut di kolom Default Value:
           {
        "Title": "Google_Cloud_GitHub_Issues_Create",
        "Body": "Please check hence raising the Feature Request for the same."
           }
      

      Menjalankan contoh ini akan menampilkan respons yang mirip dengan berikut ini dalam variabel output connectorOutputPayload tugas Konektor:

           {
        "Id": "I_kwDOLywhW86Sd-xF"
           } 
      

    Contoh - Membuat kumpulan data PullRequests

    1. Pada dialog Configure connector task, klik Entities.
    2. Pilih PullRequests dari daftar Entity.
    3. Pilih operasi Create, lalu klik Done.
    4. Di bagian Task Input pada tugas Connectors, klik connectorInputPayload, lalu masukkan nilai yang mirip dengan berikut di kolom Default Value:
           {
        "BaseRefName": "main",
        "HeadRefName": "New_Branch",
        "Title": "DEMO_Google_Cloud_PULLRequest",
        "Body": "This is demo Google_Cloud pull"
           }
      

      Menjalankan contoh ini akan menampilkan respons yang mirip dengan berikut ini dalam variabel output connectorOutputPayload tugas Konektor:

            {
        "Id": "PR_kwDOLywhW8537gcA"
            }
      

    Contoh - Membuat kumpulan data Repositori

    1. Pada dialog Configure connector task, klik Entities.
    2. Pilih Repositories dari daftar Entity.
    3. Pilih operasi Create, lalu klik Done.
    4. Di bagian Task Input pada tugas Connectors, klik connectorInputPayload, lalu masukkan nilai yang mirip dengan berikut di kolom Default Value:
           {
        "Name": "Google_Cloud_DEMO_REPO",
        "OwnerId": "O_kgDOCaxLsg",
        "Visibility": "PUBLIC"
           }
      

      Menjalankan contoh ini akan menampilkan respons yang mirip dengan berikut ini dalam variabel output connectorOutputPayload tugas Konektor:

            {
        "Id": "R_kgDOMhWBEQ"
            } 
      

    Contoh - Memperbarui data Masalah

    1. Pada dialog Configure connector task, klik Entities.
    2. Pilih Issues dari daftar Entity.
    3. Pilih operasi Update, lalu klik Done.
    4. Di bagian Task Input pada tugas Connectors, klik connectorInputPayload, lalu masukkan nilai yang mirip dengan berikut di kolom Default Value:
           {
        "Title": "New_Updated_Google_Cloud_Issue",
        "Body": "Newly Updated from Google_Cloud"
           }
      
    5. Tetapkan nilai untuk entityId ke I_kwDOLywhW86Sd-xF. Untuk menetapkan nilai filterClause, klik entityId, lalu masukkan I_kwDOLywhW86Sd-xF di kolom Default Value.

      Menjalankan contoh ini akan menampilkan respons yang mirip dengan berikut ini dalam variabel output connectorOutputPayload tugas Konektor:

           {
        "Id": "I_kwDOLywhW86Sd-xF"
           }
      

    Contoh - Memperbarui data PullRequests

    1. Pada dialog Configure connector task, klik Entities.
    2. Pilih PullRequests dari daftar Entity.
    3. Pilih operasi Update, lalu klik Done.
    4. Di bagian Task Input pada tugas Connectors, klik connectorInputPayload, lalu masukkan nilai yang mirip dengan berikut di kolom Default Value:
            {
        "Title": "Updated_Google_Cloud_PULL",
        "Body": "Update New pull Body"
            }
      
    5. Tetapkan nilai untuk entityId ke PR_kwDOLywhW8537gcA. Untuk menetapkan nilai filterClause, klik entityId, lalu masukkan PR_kwDOLywhW8537gcA di kolom Default Value.

      Menjalankan contoh ini akan menampilkan respons yang mirip dengan berikut ini dalam variabel output connectorOutputPayload tugas Konektor:

            {
        "Id": "PR_kwDOLywhW8537gcA"
            } 
      

    Contoh - Memperbarui data Repositori

    1. Pada dialog Configure connector task, klik Entities.
    2. Pilih Repositories dari daftar Entity.
    3. Pilih operasi Update, lalu klik Done.
    4. Di bagian Task Input pada tugas Connectors, klik connectorInputPayload, lalu masukkan nilai yang mirip dengan berikut di kolom Default Value:
            {
        "Name": "Updated_New_Google_Cloud_Repo"
            }
      
    5. Tetapkan nilai untuk entityId ke R_kgDOMhWBEQ. Untuk menetapkan nilai filterClause, klik entityId, lalu masukkan R_kgDOMhWBEQ di kolom Default Value.

      Menjalankan contoh ini akan menampilkan respons yang mirip dengan berikut ini dalam variabel output connectorOutputPayload tugas Konektor:

            {
        "Id": "R_kgDOMhWBEQ"
            }
      

    Contoh - Menghapus data PullRequestReviewRequests

    1. Pada dialog Configure connector task, klik Entities.
    2. Pilih PullRequestReviewRequests dari daftar Entity.
    3. Pilih operasi Delete, lalu klik Selesai.
    4. Tetapkan nilai untuk filterClause, klik filterClause, lalu masukkan PullRequestId= 'PR_kwDOLywhW85yNWPa' and RequestedReviewerUserId= 'U_kgDOCebPLA' di kolom Default Value.
    5. Dalam contoh ini, PullRequestReviewRequests adalah nama tabel dan nilai untuk filterClause harus diteruskan secara langsung.
      Misalnya, PullRequestId= 'PR_kwDOLywhW85yNWPa' dan RequestedReviewerUserId= 'U_kgDOCebPLA'.
      Di sini, PullRequestId= 'PR_kwDOLywhW85yNWPa' dan RequestedReviewerUserId= 'U_kgDOCebPLA' adalah nilai kunci utama unik yang harus diteruskan.

    Menggunakan koneksi GitHub dalam integrasi

    Setelah Anda membuat koneksi, koneksi tersebut akan tersedia di Integration Apigee dan Integration Aplikasi. Anda dapat menggunakan koneksi dalam integrasi melalui tugas Konektor.

    • Untuk memahami cara membuat dan menggunakan tugas Konektor di Apigee Integration, lihat Tugas konektor.
    • Untuk memahami cara membuat dan menggunakan tugas Konektor di Integrasi Aplikasi, lihat Tugas konektor.

    Mendapatkan bantuan dari komunitas Google Cloud

    Anda dapat memposting pertanyaan dan mendiskusikan konektor ini di komunitas Google Cloud di Cloud Forums.

    Langkah selanjutnya