Rumah >hujung hadapan web >tutorial js >Membina jargons.dev [# Skrip Fork
Ini adalah yang pertama daripada 4 skrip yang saya akan tulis seperti yang dinyatakan dalam seni bina sistem. Terasa bersemangat! ia merupakan satu langkah ke arah mencipta pengalaman "wiki" yang mendapat sumbangan kepada Sumber Terbuka tanpa berantara muka dengan UI GitHub ?.
Ini adalah fail js yang memegang beberapa fungsi boleh guna semula yang berkaitan terutamanya bertujuan untuk digunakan untuk berinteraksi dengan API GitHub; ia sama ada digunakan dalam skrip yang sama atau dieksport untuk digunakan untuk melaksanakan fungsi asas mereka di tempat lain dalam projek. Mereka menerima tika Octokit yang disahkan pengguna sebagai parameter daripada orang lain, tika ini digunakan untuk melaksanakan tindakan/fungsi melalui API GitHub bagi pihak pengguna yang disahkan.
Keperluan untuk mencipta aliran sumbangan kepada Sumber Terbuka tanpa berantaramuka dengan UI GitHub bermakna kami perlu mengautomasikan beberapa proses - mensimulasikan setiap langkah yang akan diambil oleh pengguna jika mereka menyumbang melalui UI GitHub, langkah-langkahnya adalah seperti mengikuti..
Saya mula menulis skrip ini sejurus selepas komit awal, ini sebenarnya PR #2, tetapi ia mendapat kesan semasa rehat bulan yang panjang? saya mengambil daripada projek itu sebelum kembali bekerja pada ciri kamus asas.
Tugas di sini adalah untuk mencipta "Skrip Fork" — yang matlamat akhirnya adalah untuk mencipta/mendapatkan percabangan repo jargons.dev pada/daripada akaun pengguna. Ia sepatutnya menempatkan setiap fungsi yang akan melakukan perkara berikut.
Memahami tugasan itu, saya "menyelidiki" terus dalam mengusahakan skrip.
Saya sudah sangat terbiasa dengan API GitHub kerana penggunaan kerap saya dalam kerja harian saya di Hearts ❤️... Jadi saya mempunyai Dokumentasi Fork GitHub kelihatan seperti broski kepada saya ?...
Terlintas di fikiran saya? semasa saya menulis skrip ini adalah pemikiran yang saya pegang selepas membaca perenggan yang dipetik di bawah pada Dokumentasi Fork GitHub
Nota: Forking Repository berlaku secara tidak segerak. Anda mungkin perlu menunggu masa yang singkat sebelum anda boleh mengakses objek git. Jika ini mengambil masa lebih daripada 5 minit, pastikan anda menghubungi Sokongan GitHub.
Saya salah faham ini dan menganggap bahawa kami hanya akan dapat memulakan proses garpu, meneruskan dan pastinya tidak akan dapat menunggu objek tindak balas yang mengembalikan butiran garpu baharu kerana kami tidak tahu apabila proses garpu selesai.
Andaian ini memaksa saya untuk tidak memulangkan sebarang data daripada fungsi forkRepository utama dan saya sudah mula berfikir pada ketika ini - bagaimana saya hendak mendapatkan butiran fork untuk diproses ke fasa seterusnya proses sumbangan!? Hmm, mungkin saya akan menggunakan webhooks?!?
Nampaknya saya terlalu memikirkannya?, Saya menyedari kemudian bahawa saya akan mendapatkan butiran tindak balas untuk garpu dan ini menyebabkan saya melakukan susulan PR untuk menangani pemulangan data yang diperlukan daripada objek tindak balas garpu untuk penggunaan dalam proses sumbangan.
Utama:
Permintaan Tarik ini melaksanakan skrip garpu; skrip ini bertujuan untuk digunakan untuk memprogramkan repo projek utama ke akaun pengguna; Ia menempatkan fungsi utama dan fungsi pembantu lain yang digunakannya untuk melakukan beberapa tindakan yang perlu bagi memastikan operasi garpu repo yang cekap.
Menyelesaikan #2
https://github.com/babblebey/jargons.dev/assets/25631971/16221b7e-3c28-4c6c-a1f3-24d583ce7e3a
?
PR ini adalah susulan kepada langkah yang hilang dalam pelaksanaan awal skrip fork di #3; skrip fork gagal mengembalikan repo yang boleh digunakan dalam langkah pengiraan seterusnya. Ini adalah kerana andaian aneh yang saya ada semasa pelaksanaan awal. ?Lihat andaian saya di bawah...
Saya menganggap bahawa panggilan ke titik akhir "POST /repos/{owner}/{repo}/forks" hanya memastikan untuk memulakan proses fork tanpa memberi jaminan kepada kami tentang respons sama sekali. Bermaksud kami mungkin tidak mendapat respons.data selepas panggilan
...tetapi itu tidak benar, saya mendapati bahawa respons.data sebenarnya datang, tetapi ia mungkin mengambil sedikit masa dan hanya dalam kes di mana repo yang dicabang adalah besar.... dan pada masa ini forking repo projek berlaku dalam masa kurang daripada 5 saat.
?
Atas ialah kandungan terperinci Membina jargons.dev [# Skrip Fork. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!