Siapkan integrasi GitHub
Panduan ini membahas bagian-bagian penyiapan yang khusus untuk GitHub. GitHub adalah salah satu dari tiga host kode yang didukung — lihat Hubungkan host kode untuk menghubungkan GitLab atau Bitbucket, dan untuk cara sebuah ruang kerja memadukan ketiganya.
Prasyarat
Bagian berjudul “Prasyarat”- Akun GitHub dengan akses ke repo yang ingin Anda kerjakan
- Baik GitHub App yang terdaftar untuk server Anda (lihat
Buat GitHub App) agar Anda dapat masuk,
atau personal access token dengan
repodanread:orguntuk ditempel
Masuk dengan GitHub
Bagian berjudul “Masuk dengan GitHub”Sebuah alur perangkat: GitHub menampilkan kode singkat kepada Anda, Anda menyetujuinya di github.com, lalu server menerima kredensialnya — tanpa URL callback, tanpa port, tidak ada yang perlu diekspos. Tersedia kapan pun server punya client id, yang sudah disertakan pada build resmi.
- Buka Pengaturan → Ruang kerja → Profil & identitas → Hosting kode (atau langkah pertama onboarding)
- Pada baris GitHub, klik Masuk dengan GitHub
- Dialog menampilkan kode delapan karakter dan membuka github.com/login/device di browser Anda. Kodenya sudah ada di papan klip Anda
- Tempel kode itu, setujui aplikasinya, lalu kembali. Barisnya berubah sendiri menjadi “Masuk sebagai your-username”
Dialog boleh ditutup selama Anda menyelesaikan prosesnya di browser — server terus melakukan polling sampai kodenya kedaluwarsa (sekitar 15 menit), sehingga proses masuknya tetap berhasil.
Atau tempel token
Bagian berjudul “Atau tempel token”Alternatif yang dipakai saat server tidak punya app, saat app tidak terpasang di akun yang Anda butuhkan, atau saat Anda memang lebih suka memakai PAT.
- Buka Pengaturan → Ruang kerja → Profil & identitas → Hosting kode
- Pada baris GitHub, klik Tambah token
- Tempel token dengan
repodanread:org(classic) lalu simpan. Token fine-grained memerlukan Contents dan Pull requests pada repositori (baca dan tulis), ditambah Checks dan Actions (baca).
Token diperiksa saat disimpan, sehingga barisnya dapat menyebutkan akun pemiliknya. Klik Putuskan untuk menghapusnya.
Titik pemeriksaan: baris GitHub berbunyi “Masuk sebagai your-username”. Sebuah sufiks menyebutkan sumbernya saat kredensial yang menjawab bukan milik Anda — “lewat aplikasi server ini” atau “dari environment”.
Yang Anda dapatkan dari integrasi ini
Bagian berjudul “Yang Anda dapatkan dari integrasi ini”| Fitur | Cara |
|---|---|
| Daftar dan detail PR | API REST GitHub, dari server, dengan identitas app atau kredensial Anda sendiri |
| Hasil pemeriksaan | API Checks GitHub |
| Publikasi tinjauan | Langkah dengan gerbang pengguna yang memposting tinjauan Anda ke PR |
| Pendaftaran repo | Sebuah checkout diterima jika remote origin-nya menunjuk ke github.com — atau ke gitlab.com / bitbucket.org |
| Akses GitHub agen | Broker kredensial menyuntikkan token hanya-baca sebagai GH_TOKEN / GITHUB_TOKEN; push melewati Control Center |
| Ping notifikasi | Polling di sisi server atas kotak masuk notifikasi GitHub Anda memunculkan “Disebutkan di pull request” dan “Tinjauan diminta” |
| Profil pengguna | Kartu hover profil dan pemfilteran PR per penulis |
Sejumlah jalur memakai API GraphQL alih-alih REST jika lebih murah — aktivitas cabang untuk pemilih compose-PR dan keadaan tinjauan langsung yang menentukan apakah notifikasi permintaan tinjauan masih menggantung.
Perhatikan gangguan GitHub
Bagian berjudul “Perhatikan gangguan GitHub”Bilah judul menampilkan chip status saat sebuah penyedia sedang terganggu, mencakup GitHub, Claude, OpenAI, dan Kimi. Chip itu disembunyikan selama semuanya sehat — kehadirannya menandakan ada masalah, bukan ketiadaannya.
Klik chip itu untuk membuka panel sembul berisi status tiap penyedia dan tombol segarkan. Statusnya diperbarui sendiri setiap dua menit.
Pahami cara agen bertindak di GitHub
Bagian berjudul “Pahami cara agen bertindak di GitHub”- Agen yang bekerja di worktree GitHub selalu mendapat token GitHub hanya-baca. Push melewati Control Center, yang menanyakan aturan Push ke remote lalu meneruskannya dengan token tulis yang tidak pernah dipegang agen. Lihat Konfigurasi kebijakan sandbox
- Commit yang dibuat agen ditulis atas nama agen — nama tampilan ditambah
(agent), pada alamat sintetis yang dikunci berdasarkan id agen — tidak pernah atas nama manusia. Orang yang memintanya dicantumkan lewat trailerCo-Authored-By - Jika GitHub App dikonfigurasi, broker menerbitkan token instalasi
fine-grained, terbatas pada repo, berdurasi sekitar satu jam untuk setiap
peluncuran, alih-alih menyerahkan token yang luas. Instalasinya ditentukan
dari owner repo run tersebut, sehingga satu app yang terpasang di
beberapa akun tercakup dengan benar ke akun mana pun yang disentuh run itu.
Tanpa app, agen menerima token dari environment, yang tidak dapat dipersempit
menjadi hanya-baca: aturan push lalu mengikat
git push, tetapi tidak kode yang memakai token secara langsung - Token selalu milik broker, tidak pernah milik anggota yang meminta. Token server ditahan dari run yang bertindak untuk anggota yang bukan pemilik dan belum menghubungkan GitHub
Pemecahan masalah
Bagian berjudul “Pemecahan masalah”Daftar PR kosong dan menyebut GitHub tidak terhubung
Bagian berjudul “Daftar PR kosong dan menyebut GitHub tidak terhubung”Anda tidak punya kredensial GitHub di server ini. Masuk atau tempel token di Hosting kode. Repo di host kode lain tidak terpengaruh — hanya repo GitHub yang tidak menyumbang apa pun.
Baris menawarkan “Tambah token” tetapi tidak ada “Masuk dengan GitHub”
Bagian berjudul “Baris menawarkan “Tambah token” tetapi tidak ada “Masuk dengan GitHub””Server tidak punya client id — kondisi yang normal untuk build dari sumber, karena kredensial hanya ditanam pada build resmi. Lihat Buat GitHub App: prosesnya sekitar dua menit dan hanya pemilik server yang perlu melakukannya, sekali saja.
Dialog masuk menyebutkan penyedia tidak mengembalikan kode perangkat
Bagian berjudul “Dialog masuk menyebutkan penyedia tidak mengembalikan kode perangkat”GitHub App-nya ada, tetapi centang Device flow-nya mati. Aktifkan di pengaturan app tersebut (General → Device flow) lalu coba lagi.
Baris menyebutkan “lewat aplikasi server ini” padahal saya mengharapkan akun saya sendiri
Bagian berjudul “Baris menyebutkan “lewat aplikasi server ini” padahal saya mengharapkan akun saya sendiri”Anda belum masuk; yang Anda lihat adalah identitas app server yang menjawab. Klik Masuk dengan GitHub pada baris tersebut.
PAT fine-grained tidak menampilkan tombol merge atau status pemeriksaan
Bagian berjudul “PAT fine-grained tidak menampilkan tombol merge atau status pemeriksaan”Token tersebut memerlukan Contents dan Pull requests (baca dan tulis), ditambah Checks dan Actions (baca). Setelah mengubahnya, tempel lagi di Hosting kode.
Penambahan repo ditolak
Bagian berjudul “Penambahan repo ditolak”Pendaftaran mensyaratkan ketiganya: path berada di dalam work tree git, ada
remote origin, dan remote tersebut menunjuk ke host kode yang didukung
(github.com, gitlab.com, atau bitbucket.org). Lihat
Tambahkan repo ke ruang kerja.
Semua berhenti berfungsi untuk sementara setelah pemakaian berat
Bagian berjudul “Semua berhenti berfungsi untuk sementara setelah pemakaian berat”Itulah pemutus sirkuit batas laju. GitHub menandai batas utamanya dengan 403
yang membawa x-ratelimit-remaining: 0 dan waktu reset; ketika melihatnya,
klien menggagalkan permintaan berikutnya secara lokal tanpa panggilan jaringan
sampai jendela waktunya lewat, sehingga badai percobaan ulang tidak dapat
memperparah batas tersebut. Kegagalan sementara dicoba ulang hingga tiga kali
dengan backoff eksponensial, dengan menghormati retry-after.