Langkau ke kandungan

Sambungkan hos kod

Control Center berfungsi dengan tiga hos kod, yang dipanggil forge sepanjang apl: GitHub, GitLab dan Bitbucket Cloud. Tiada satu pun daripadanya menjadi lalai. Sambungkan satu dan semuanya berfungsi; sambungkan beberapa dan satu ruang kerja boleh memegang repositori daripada kesemuanya sekali gus.

Forge ialah sifat bagi setiap repo, dibaca daripada remote origin-nya apabila anda mendaftarkannya. Anda tidak pernah memilihnya, dan tiada tetapan per-ruang-kerja yang boleh disalah tetapkan.

  1. Buka Tetapan → Ruang kerja → Profil & identiti (/settings/workspace/profile).
  2. Cari kad Hos kod. Setiap forge yang disokong disenaraikan, sama ada disambungkan atau tidak.
  3. Tekan Log masuk dengan … jika baris itu menawarkannya, atau Tambah token dan tampal satu.

Log masuk muncul untuk forge yang pelayan anda mempunyai apl berdaftar baginya — pada masa ini iaitu GitHub, melalui aliran peranti (lihat Cipta GitHub App). Selebihnya ialah token yang ditampal, yang merupakan afordans yang jujur dan bukannya butang yang tidak boleh diselesaikan.

Sama ada cara, kelayakan itu milik anda dan berada pada pelayan, dikunci mengikut id pengguna anda: tiada token disimpan pada mesin yang anda taipkannya, setiap peranti yang anda daftar masuk menggunakannya yang sama, dan tiada ahli lain boleh membacanya. Ia berkuat kuasa pada permintaan seterusnya — tiada apa yang perlu dimulakan semula, dan memutuskan sambungan menghentikannya dihantar serta-merta.

Setiap baris memberitahu anda dari mana kelayakannya datang, kerana itulah perbezaan antara “token saya tidak berfungsi” dan “token lain yang menjawab”:

Subtajuk Maksud
Log masuk sebagai octocat Kelayakan anda sendiri sedang digunakan
Log masuk sebagai octocat · melalui apl pelayan ini Identiti apl pelayan yang menjawab — anda belum daftar masuk
Log masuk sebagai octocat · dari persekitaran Pemboleh ubah persekitaran pelayan yang menjawab, bukan kelayakan anda
Tidak disambungkan Anda tiada kelayakan untuk forge ini
Forge Token Di mana menciptanya
GitHub Classic: repo dan read:org. Fine-grained: Contents + Pull requests (read/write), Checks + Actions (read) github.com → Settings → Developer settings → Tokens
GitLab Token akses peribadi dengan api gitlab.com → User settings → Access tokens
Bitbucket Token API Atlassian, serta e-mel akaun anda id.atlassian.com → Security → API tokens

Bitbucket mengesahkan dengan e-mel akaun anda sebagai nama pengguna dan token sebagai kata laluan. Tetapkan BITBUCKET_EMAIL dalam persekitaran pelayan supaya ia tahu e-mel mana yang perlu dipasangkan dengan token itu.

Untuk pemasangan tanpa kepala atau CI, pelayan membaca yang berikut:

  • GitHub — GITHUB_TOKEN, kemudian GH_TOKEN
  • GitLab — GITLAB_TOKEN, kemudian CI_JOB_TOKEN
  • Bitbucket — BITBUCKET_API_TOKEN, kemudian BITBUCKET_TOKEN (dengan BITBUCKET_EMAIL)

Ini ialah kelayakan pelayan, bukan milik anda, dan perbezaan itu penting: permintaan yang dibuat bagi pihak anda menggunakan kelayakan anda dan tiada yang lain, jadi persekitaran tidak pernah diam-diam menggantikan anda. Kerja tanpa manusia di belakangnya — webhook, pengundian PR, segerak tiket — meleraikan identiti apl pelayan dahulu, kemudian kelayakan pemilik pelayan, kemudian persekitaran. Susunannya tetap supaya “saya daftar masuk dan tiada apa yang berubah” tidak pernah menjadi hasil yang disokong.

Manusia yang sama ialah octocat di GitHub dan sesuatu yang sama sekali berbeza di GitLab. Control Center meleraikan identiti anda bagi setiap forge dan menggunakan yang betul untuk setiap repositori, itulah yang menjadikan “perlu semakan saya”, “dicipta oleh saya” dan “anda meluluskan ini” betul dalam ruang kerja bercampur.

Jika identiti sesuatu forge belum dileraikan, repositorinya tidak menyumbang apa-apa kepada peti masuk dan bukannya memadankan semuanya. Peti masuk menyatakannya dan bukannya mendakwa anda sudah mengejar semuanya.

Peti masuk dan baris gilir PR menyebar merentas setiap forge yang diwakili dalam ruang kerja dan menggabungkan hasilnya menjadi satu aliran — pull request GitHub dan pull request Bitbucket duduk bersebelahan, disusun mengikut masa dan bukannya dikelompokkan mengikut vendor.

Kegagalan diasingkan. Forge yang tidak berfungsi, dihadkan kadar atau tidak disambungkan tidak menyumbang apa-apa dan membiarkan yang lain tidak tersentuh; ia tidak pernah mengosongkan seluruh peti masuk. Repositorinya sendiri terus memaparkan keadaan terakhir yang diketahui sehingga ia pulih.

Setiap forge menyokong gelung teras: menyenaraikan dan membuka pull request, membaca diff, mengomen secara sebaris dan pada peringkat atas, menyemak, mencantum dan menutup. Selebihnya ia benar-benar berbeza, dan Control Center menyembunyikan apa yang tidak boleh dilakukan oleh sesuatu forge dan bukannya menunjukkan kawalan yang gagal secara senyap.

Keupayaan GitHub GitLab Bitbucket
Semakan berkumpulan (tertunda) ✓ ✓ —
Minta perubahan ✓ ✓ ✓
Keadaan “dilihat” setiap fail disegerakkan ✓ — —
Tindak balas emoji ✓ ✓ —
Penyemak pasukan / kumpulan ✓ ✓ —
Penyemak dicadangkan ✓ — ✓
Hasil CI pada PR ✓ ✓ ✓
Telusuri langkah/log sesuatu kerja CI ✓ ✓ —
Pull request bertindan ✓ — —
Templat perihalan PR ✓ ✓ —
Pengundian pemberitahuan ✓ — —
Profil pengguna yang kaya ✓ ✓ —
Ref kepala PR di sisi pelayan ✓ ✓ —

Apabila sesuatu keupayaan tiada, ciri itu merosot dengan jujur:

  • Keadaan dilihat masih berfungsi, tetapi hanya pada peranti anda menetapkannya.
  • Semakan berkumpulan pada Bitbucket disiarkan komen demi komen, jadi penyemak melihatnya tiba satu per satu dan bukannya sekaligus.
  • Tiada ref kepala PR pada Bitbucket bermakna checkout sesuatu pull request mengambil cawangan sumbernya mengikut nama, yang gagal sebaik sahaja cawangan itu dipadam.

GitLab memanggil pull request sebagai merge request. Control Center menyebut “pull request” sepanjang modelnya sendiri, dan menggunakan kata nama setiap forge sendiri apabila ia bercakap tentang forge itu.

Senarai PR kosong dan menyatakan sesuatu forge tidak disambungkan

Bahagian bertajuk “Senarai PR kosong dan menyatakan sesuatu forge tidak disambungkan”

Anda tiada kelayakan untuk forge itu. Daftar masuk atau tampal token dalam Tetapan → Ruang kerja → Profil & identiti → Hos kod. Repositori forge lain tidak terjejas.

Saya menyambungkan forge tetapi repositorinya masih tidak menunjukkan apa-apa

Bahagian bertajuk “Saya menyambungkan forge tetapi repositorinya masih tidak menunjukkan apa-apa”

Semak subtajuk baris itu. Jika ia berbunyi “melalui apl pelayan ini” atau “dari persekitaran”, kelayakan yang berbeza daripada yang anda jangkakan sedang menjawab — kelayakan anda sendiri menang untuk apa sahaja yang anda minta, jadi jika ia menyatakan sebaliknya, milik anda tidak disimpan.

Pendaftaran memerlukan ketiga-tiganya: laluan itu berada di dalam pokok kerja git, ia mempunyai remote origin, dan remote itu menunjuk ke github.com, gitlab.com atau bitbucket.org. Lihat Tambah repositori ke ruang kerja.

Semuanya berhenti berfungsi untuk seketika selepas penggunaan berat

Bahagian bertajuk “Semuanya berhenti berfungsi untuk seketika selepas penggunaan berat”

Itulah pemutus litar had kadar. Forge yang memberi isyarat had utamanya menyebabkan klien menggagalkan permintaan selanjutnya secara setempat, tanpa panggilan rangkaian, sehingga tetingkap itu berlalu — jadi ribut cuba semula tidak boleh mendalamkan had itu. Kegagalan sementara dicuba semula dengan undur eksponen.