Kulula ukusebenzisa isixhobo somgca womyalelo weGitHub: “gh”!

Ukuba ubusebenzisa i-GitHub kwaye ukhetha umgca womyalelo njengam ukwenza yonke into yenziwe ngaphandle kweengxaki kwi-GUI, usenokuba uqaphele ukuba iGitHub yaqala njani ukusebenzisa isixhobo sabo esingesiso-esitsha esibizwa ngokuba "gh". Ndaye ndagqiba kwelokuba mandiyidubule, kuba yayikhangeleka ithembisa emva kwayo yonke loo nto. Kwaye mna ndayithanda kakhulu-Kakhulu kangangokuba ndandifuna ukwenza inqaku malunga nalo!

Ngaphambi kokuba siqale, kufuneka ndichaze amagama aliqela endiza kuwasebenzisa kweli nqaku.

"GH" imele "GitHub”. Kulapho igama lesixhobo livela khona ngokunjalo, ke alinakubhidaniswa neGit ngokwayo. Ukuchaza into eyenzayo ngokubanzi, unokwenza, ifolokhwe, ucime, ukhangele ii-repos; yenza izicelo zotsalo; kunye nezinye ezininzi. Kwimeko apho awukwazi ukufumana uphawu kodwa ungafuni ukushiya i-terminal, ikwabonelela ngesikhangeli esekwe kwiteksti ukuze ukhangele amaphepha kwi-GitHub.

"CLI" imele "Command Lmna Iujongano”. Eso siterminal (okanye kwiWindows, Command Prompt) yenye yazo. Ukuba kukho "i-CLI" ehlonyelwe ecaleni kwegama le-app ("Git CLI" yeli nqaku), ithetha ukuba usetyenziso luhamba nge-terminal kuphela. Kwaye "iGit CLI" kulo mongo, kunjalo, yiGit esiyaziyo. Njengomyalelo esiwenzayo okanye siphinde sisuse ngawo.

I-GUI imele "GNgokulinganayo Uukuba Iujongano” kwaye lujongano “esihamba ngalo” kulo. Kungcono ukutsho, indawo ye-desktop ngokubanzi yi-GUI.

"Isitshixo se-API" luhlobo oluthile lomtya oyimfihlo / ifayile oyisebenzisayo ukuqinisekisa kwiinkonzo. Qaphela ukuba iyagqitha 2 uqinisekiso lwento kwaye njalo xa uqinisekisa ngayo. Ke qiniseka ukuba uzigcina zikhuselekile kwaye kwindawo ekungafikelelekiyo kuyo ngezinye iindlela.

Okokuqala, yintoni esi sixhobo? Iyiphatha njani imisebenzi ebesiya kuyenza ngeGit CLI?

“gh” inokuthathwa njengomthombo ovulekileyo (Ikhowudi yonikezo) usonga usebenzisa iGit CLI ngokwayo kunye neGitHub APIs ukwenza izinto zenziwe. Ngapha koko, ungadlula iiparamitha kwimiyalelo yeGit eyisebenzisayo! Ndizakungena kwezo kamva.

Ukufakela kunye nokumisela

Gcina ukhumbula ukuba ndiya kudlula ufakelo usebenzisa I-termux. Kodwa inkqubo kufuneka ifane kakhulu njengoko unokuba nayo kwi-Debian-based distro-Ubuntu bunayo kwiindawo zabo zokuhlala ezisemthethweni umzekelo. KwiWindows, kulungile, ufuna nokuba yiCygWin okanye iWSL ndiyacinga. ¯\_(ツ)_/¯

# Masifake isixhobo kuqala. Kwakhona ukufaka i-Git njengoko iyi-backend # ye-gh. $ pkg install git gh -y # Ke phambi kwayo yonke into, kufuneka siqinisekise. Oku kuzakugcina # iqhosha elitsha le-API kwisiseko sedatha yesixhobo ukuze ungadingi kuqinisekisa # kwakhona. Ukuba sele useta i-GITHUB_TOKEN, le ayizukusebenza ungayiseti # yona kuqala. :) $ gh auth login

Ngoku, ngaphambi kokuba siqhubeke apha, kufuneka ndibonise izinto ezininzi.

  • Okokuqala, musa ukukhetha "i-GitHub Enterprise Server" ukuba awunalo uhlobo oluthile lwe-GitHub yokuzibamba.
  • Okwesibini, sebenzisa i-SSH endaweni ye-HTTPS ukuba unesitshixo sakho sikawonke-wonke esongeziweyo kwiakhawunti yakho ye-GitHub. Kwimeko apho ulahlekelwe sisitshixo se-API, awusayi kuphulukana nesitshixo sakho se-SSH ukuze ibe yindlela elungileyo yokubuyela umva kwakhona.
  • Okwesithathu, khetha ukungena nge-browser kuphela ukuba awunaso isitshixo se-API esandleni! Ngokwenene, akuyi kuba sengqiqweni ukuba nesinye isitshixo ngelixa sele unaso.

Nje ukuba ugqibile ukuseta izinto, masixelele iGit CLI ngayo.

$ gh auth setup-git

Oku kuya kwenza uqwalaselo oluyimfuneko lwe-Git CLI nje ukuba i-reflexes yakho ingene kwaye ikwenze usebenzise i-Git endaweni ye-GH.

Eminye imiyalelo esisiseko

Ngoku ukuba usete i-GH, mandikufundise imiyalelo emininzi esisiseko kwisiseko sebali.

Okokuqala, masithi ufuna ukwenza isicelo sokutsalwa kwindawo yam ye-repo. Ufuna ukuyifaka ngefolokhwe kuqala.

$ gh repo fork windowz414/platform_manifest ! windowz414/platform_manifest sele ikhona ? Ngaba ungathanda ukufanisa ifolokhwe? Ewe Ukudibanisa kwi-'platform_manifest'... kude: Ukubala izinto: 136, kwenziwe. kude: Izinto zokubala: 100% (136/136), zenziwe. kude: Ukucinezela izinto: 100% (81/81), kwenziwe. kude: Iyonke 136 (delta 46), isetyenziswe kwakhona 89 (delta 12), ipakethe-isetyenziswe kwakhona 0 Ukufumana izinto: 100% (136/136), 30.70 KB | 166.00 KB/s, yenziwe. Ukusombulula i-deltas: 100% (46/46), yenziwe. Ukuhlaziya umlambo ukusuka github.com:windowz414/platform_manifest * [isebe elitsha] amyrom/rosie -> phezulu/amyrom/rosie * [isebe elitsha] aosp-eleven -> phezulu/aosp-eleven * [isebe elitsha] aosp-ten -> ngasentla/aosp-ten * [isebe elitsha] utolo-11.0 -> phezulu/utolo-11.0 * [isebe elitsha] cm-14.1 -> phezulu/cm-14.1 * [isebe elitsha] dot11 -> phezulu/dot11 * [isebe elitsha ] e/os/v1-nougat -> phezulu/e/os/v1-nougat * [isebe elitsha] ulwelo-11 -> phezulu/ulwelo-11 * [isebe elitsha] fox_7.1 -> phezulu/empungutye_7.1 * [isebe elitsha] hentai-rika -> phezulu/hentai-rika * [isebe elitsha] ion-pie -> phezulu/ion-pie * [isebe elitsha] umnombo-15.1 -> phezulu/umnombo-15.1 * [isebe elitsha] umnombo -17.1 -> upstream/lineage-17.1 * [isebe elitsha] lineage-18.1 -> upstream/lineage-18.1 * [isebe elitsha] lineage-18.1_teos -> upstream/lineage-18.1_teos * [isebe elitsha] lineage-19.0 - > umsinga/umnombo-19.0 * [isebe elitsha] eliyintloko -> phezulu/elingundoqo * [isebe elitsha] mkn-mr1 -> phezulu/mkn-mr1 * [isebe elitsha] impindezelo-r11.0 -> phezulu/revengeos-r11.0. 1 * [isebe elitsha] i-stellar-S1 -> phezulu/i-stellar-S11 * [isebe elitsha] teos-n -> phezulu/teos-n * [isebe elitsha] weebprojekt-11 -> phezulu/weebprojekt-XNUMX ✓ Ifolokhwe edibeneyo

Ke masithi unombutho owahlukileyo weemvavanyo zakho ezibizwa ngokuba yi-“wz414-labs”, ongazange uyifake kwiprofayile yakho yobuqu kwaye ufuna ukuhlanganisa apho emva koko uvule isicelo sokutsalwa apho endaweni yoko. Uyafuna kwakhona ukwenza i-"cm-14.1" yesebe ukuze ungadingi ukwenza i-git-checkout kuyo kwakhona.

$ gh repo fork windowz414/platform_manifest --org="wz414-labs" -- --branch="cm-14.1" ✓ Yenziwe ifolokhwe wz414-labs/platform_manifest ? Ngaba ungathanda ukufanisa ifolokhwe? Ewe Ukudibanisa kwi-'platform_manifest'... kude: Ukubala izinto: 136, kwenziwe. kude: Izinto zokubala: 100% (136/136), zenziwe. kude: Ukucinezela izinto: 100% (81/81), kwenziwe. kude: Iyonke 136 (delta 46), isetyenziswe kwakhona 89 (delta 12), ipakethe-isetyenziswe kwakhona 0 Ukufumana izinto: 100% (136/136), 30.70 KB | 120.00 KB/s, yenziwe. Ukusombulula i-deltas: 100% (46/46), yenziwe. Ukuhlaziya umlambo ukusuka github.com:windowz414/platform_manifest * [isebe elitsha] amyrom/rosie -> phezulu/amyrom/rosie * [isebe elitsha] aosp-eleven -> phezulu/aosp-eleven * [isebe elitsha] aosp-ten -> ngasentla/aosp-ten * [isebe elitsha] utolo-11.0 -> phezulu/utolo-11.0 * [isebe elitsha] cm-14.1 -> phezulu/cm-14.1 * [isebe elitsha] dot11 -> phezulu/dot11 * [isebe elitsha ] e/os/v1-nougat -> phezulu/e/os/v1-nougat * [isebe elitsha] ulwelo-11 -> phezulu/ulwelo-11 * [isebe elitsha] fox_7.1 -> phezulu/empungutye_7.1 * [isebe elitsha] hentai-rika -> phezulu/hentai-rika * [isebe elitsha] ion-pie -> phezulu/ion-pie * [isebe elitsha] umnombo-15.1 -> phezulu/umnombo-15.1 * [isebe elitsha] umnombo -17.1 -> upstream/lineage-17.1 * [isebe elitsha] lineage-18.1 -> upstream/lineage-18.1 * [isebe elitsha] lineage-18.1_teos -> upstream/lineage-18.1_teos * [isebe elitsha] lineage-19.0 - > umsinga/umnombo-19.0 * [isebe elitsha] eliyintloko -> phezulu/elingundoqo * [isebe elitsha] mkn-mr1 -> phezulu/mkn-mr1 * [isebe elitsha] impindezelo-r11.0 -> phezulu/revengeos-r11.0. 1 * [isebe elitsha] i-stellar-S1 -> phezulu/i-stellar-S11 * [isebe elitsha] teos-n -> phezulu/teos-n * [isebe elitsha] weebprojekt-11 -> phezulu/weebprojekt-XNUMX ✓ Ifolokhwe edibeneyo

Uyabona khange ndisebenzise “-b cm-14.1” kwaye ndenze ingxabano ende endaweni yoko. Ukusukela ngomhla weli nqaku, ngoFebruwari 16, 2022, i-GH ine-bug engagqithisi iingxoxo ezimfutshane kwi-Git CLI ngokuchanekileyo kwaye ke kufuneka yenziwe njengeengxoxo ezinde endaweni yoko.

Nje ukuba yenziwe loo nto, ungene rhoqo kwifolda, wenze utshintsho lwakho, uzibophelele emva koko wayityhala, kwaye ulungele ukwenza isicelo sokutsala. Kule nto, yonke into oyifunayo yinto elula

$ gh pr dala --branch="cm-14.1" Yenza isicelo sokutsala se-wz414-labs:cm-14.1 kwi-cm-14.1 kwi-windowz414/platform_manifest ? Title teos: Tshintshela kwiGit-Polycule? Umzimba ? Yintoni elandelayo? Ngenisa https://github.com/windowz414/platform_manifest/pull/1

Ukuba awuhlomeli u-“–branch=cm-14.1”, uya kube udala i-PR ukuya kwisebe “elingundoqo,” eliya kubangela iingxaki xa ingaphathwanga kakuhle.

Kwaye ngoku, kufuneka ndidibanise le PR, akunjalo? Ngoko ndiqala ngokuthelekisa irepo, ndihlawule isebe elabelweyo, ndize ndidwelise iiPRs kuqala.

# Ukudibanisa kuqala. $ git clone https://github.com/windowz414/platform_manifest Cloning ibe 'platform_manifest'... remote: Ukubala izinto: 136, kwenziwe. kude: Izinto zokubala: 100% (136/136), zenziwe. kude: Ukucinezela izinto: 100% (81/81), kwenziwe. kude: Iyonke 136 (delta 46), isetyenziswe kwakhona 89 (delta 12), ipakethe-isetyenziswe kwakhona 0 Ukufumana izinto: 100% (136/136), 30.70 KB | 137.00 KB/s, yenziwe. Ukusombulula i-deltas: 100% (46/46), yenziwe. # Emva koko ujonge kwisebe. $ git checkout cm-14.1 isebe 'cm-14.1' ukuseta ukulandelela 'imvelaphi/cm-14.1'. Tshintshela kwisebe elitsha 'cm-14.1' # Kwaye ngoku dwelisa iiPRs. $ gh pr uluhlu Ukubonisa i-1 yesicelo esi-1 esivulekileyo sokutsalwa kwiwindowz414/platform_manifest #1 teos: Guqula kwiGit-Polycule wz414-labs:cm-14.1

Ngoku sibona ukuba kukho i-PR yokutshintsha ikude ibe yi "Git-Polycule", masibone ukuba yintoni etshintshileyo ngayo.

$ gh pr diff 1 diff --git a/teos.xml b/teos.xml index b145fc0..3aadeb6 100644 --- a/teos.xml +++ b/teos.xml @@ -2,7 +2,7, 414 @@ 

Kubonakala ngathi kuyathembisa! Ixesha lokudibanisa!

$ gh dibanisa 1 ? Yeyiphi indlela yokudibanisa ongathanda ukuyisebenzisa? Hlaziya kwaye udibanise? Yintoni elandelayo? Ngenisa ✓ Isicelo sokutsalwa esisekelwe kwakhona kunye nesidityanisiweyo #1 (teos: Guqula kwiGit-Polycule)

Ngoku ukuba ndiyidibanise, ungayicima ifolokhwe yakho.

$ gh repo cima --qinisekisa i-wz414-labs/platform_manifest ✓ Ugcino olucinyiweyo wz414-labs/platform_manifest

Uyabona ukuba ngqo icime i-repo ngaphandle kwesicelo sokuqinisekisa kuba ndipasile "-qinisekisa" iparamitha apho. Ukuba awuyi kudlula, uya kufumana oku:

$ gh repo cima windowz414/systemd ? Chwetheza iwindowz414/systemd ukuqinisekisa ukucinywa:

Kwaye kuya kufuneka uchwetheze lonke igama lerepo. Inkcitho yexesha...

isishwankathelo

Ukubeka nje, `gh` yinto entle eyenziwe lula yeGit CLI / Curl esongayo edibanisa imisebenzi elula yeGit kunye nezinto zeGitHub API phantsi kophahla olufanayo. Uyisebenzisa njani? Ngaba ibonakala ngathi iyathembisa kuwe njengoko isenza kum? Ndijonge phambili ukuva kuwe!

Amanqaku Afana