Bu’uura beekumsaa Koodii
Kuusaa git keessatti hojjechuu
Pro akka agent koodingii tokkootti ragaa keessan keessaa tokko keessatti hojjechuu danda'a — fayyadamanii fi jijjiiruun, falaasii (files) dhugaa keessan dubbisuu.
Fuulli kun akka mijatutti maashiniin kan hiikamedha. Orijinaalli Ingiliffaa kan ilaallatudha.
Waliin hiikuu rẹpوزitirii (repository)
?git, ykn kan Git chip toolbar-keessatti argamu, tajaajila kennuu (provider) walitti hidha:
GitHub, GitLab, ykn Gitea/Forgejo — kanneen Codeberg fi instance-oota ofii keessaniin host godhaman cover godhu.
Token access personal scope qabu, repository fi branch fudhata. Repository kan...
Nostr irratti of beeksisa bakka teessuma isaa ta'ee itti dheekkamuu danda'a.
Maqaa galmeessa (repository) barreessuun hin barbaachisu. Tokinii (token) kophaa kaa'iitii filadhu Tokkeenyi kun maal gahuu danda'u tarreessi.: Nymbot gaaffii madda (forge) gaafata jedhani tokkoon maal argachuu danda'u akka ta'e, deebii sana immoo akka tarree itti fayyadamtuun siif agarsiisa. To'jechuun (Checking) kan hunda damee (branch) isaanii sirrii ta'een walitti hidha, achiis chat kana keessatti hunda isaanii siif agarsiisa. Kan duraan walitti hidhame hundi akka kanaan duraa agarsiifama, deebii lammaffaan siif hin kennamu. Gaaffiin sun meeshaa kee irraa kallattiin gara maddaatti (forge) dha—hojjetaa Nymbot malee—kanaaf token sun bakka hin deemuun hin deemu. Forge of-hosteddii ta'e kan gaaffii cross-origin dhoksu (refuses) tarreeffamuu hin danda'u; repository sana harkaan barreessi, achiis hundi akka kanaan duraa hojjata.
Walitti hidhamuun yoo xumurame, chippiin sun maqaa repoositiirii agarsiisa, akkasumas ergaafni kan...
Moodeelii Proo hojii filatame haala kuusaa sanaa keessatti.
?git disconnect hin balleessu. Hiikkaa tarreeffama repository irratti
token sana ni dagata garuu repository sana achi jiraachisa, token malee akka jiru godhee mallatteessuun, booda tokko haaraa dabaluuf si gargaara.
Nostr irratti beeksifamanni Repozitoriiwwan
Kuusoonni tokko tokko forge irratti qofa osoo hin taane, Nostr irratti of beeksisu, kan fayyadaman NIP-34 — kan piraatogola duubatti jiru ngit fi gitworkshop. Beeksisa sun waa'ee dhalaqa Nostr maqaa pirojeektichaa, qulqullayyiilee isaa, raayiiwwan (relays) dhimmoota fi sirreeffamoota isaa walitti qaban, fi kutaalee (URLs) irraa kibaasamee fudhatamuu danda'an of keessaa qaba. Beeksisa lammaffaan immoo gara kutaaleen (branches) hundi amma qabxii itti xiyyeeffatan bakka jiran ni hima.
Hiru naddr yookaan a nostr:// foormii kuusaa (repository) keessatti teessoo barreessi
halluu tuqi Barbaadi. Nymbot beeksisa relay-wwan irraa dubbisee
foormii guuta: bakka git host itti cloned ta'e, repository sanaa, fi damee (branch) pirojeektichi
amman akka jiraatu dubbatu. Atis token sana host sanaaf dabala, sababiin isaas Nostr beeksisa
geessa, server git immoo koodii geessa.
Kun jechuun seerri isaa salphaatti eessaa akka kophaadame jechuudha. Repository URL kophaa'umsa isaa GitHub, GitLab, Gitea ykn Forgejo irratti argamu — kan ofii keessan irratti fe'ame (self-hosted) dabalatee — isa Nymbot dubbisuu danda'udha. Kan kophaadame kan qofa... git:// akamasuu or ssh fakkii HTTP API faayila dubbisuuf qabu hin qabu, fi
Nymbot akka walitti hin hidhamne osoo hin taane akkas jedhee ibsa. Bakka hostii tokko tokko ofii keetiin host gootu, tajaajila kennu (provider) maqaa isaa irraa madaaluun tilmaamame dha, fi ati utuu hin kuufin sirreessuu dandeessa.
Kuusaan (repository) akkasitti dabarsame mallattoo qaba ngit Tarreeffama keessatti, deebiiwwan maqaa inni beeksisuun waamu, karaa isaa makkii irratti deemuun mannaa.
Maal gochuu danda'a?
Ergaan keessatti dhimma repo irratti xiyyeeffate guutuu tokko ta'uu mannaa, ajajaata (agent) xixinnoo ta'ee hojjeta. Moodelli sun diraktooriiwwan tarreessuu, faayiloota dubbisuu fi madda barbaaduu danda'a, achiis waan argate fayyadamee deebii kenna — kanaafuu, "sababni loop irra deebii (retry loop) sun dafee dhaabbatu maali?" jedhu deebii koodii kee irraa argata, koodii si fakkaatu irratti yaada qofaan miti.
Garaa itti walitti hidhamte, mataa isaa ammaa irratti argatu arguudha.
Waliin Serveeriin hojjeta sagalee chatii kanaaf banameera, itini immoo Nymbot server irratti qorumsa (tests) fakkaatan, ajaja koodii keetii irratti hojjechuuf gaafachuu danda'di. Adeemsi adeemsa kamiyyuu akka ati hayyamtuuf eega.
Barreeffamoota on: (on) gochaa jira
?git writes on faayilawwan commit gochuu, ramaddiiwwan (branches) uumuu fi pull or merge request-ota banuu danda'uu dabalata. Akka defaultitti dhafeera, hanga barbaaddetti dhaafuu dandeessu.
Hojii itti fufuun, jijjiirama gaafadhu; achiis dhimma chat keessatti qabxii (patch) qofa kophaa fudhachuu mannaa, damee (branch) fi gaaffii qabxii (pull request) madaaluuf argatta: hojiin tokko tokko irratti hojjata kutaa mataa isaa qabu. Wanti tokko fuula (branch) sirnaa keetti hin ergamu yoo ati sana dhiiftee malee; sun fuula ati walitti hidhe fi ati gaafatte dha.
Maloonni sirreeffamoota doxumentii tokkoo (run) ragaa (repository) tokko tokkoon commit tokkoon, xumura doxumentii sanaa yookaan modeliin hojii tokko xumurame jedhee murteesse irratti dhiyaatu. Yoo dura isaan arguuf barbaadde, banuun... Waliigalu dura gaafadhu dachaa sanaaf. Adeemsichi sana booda jijjiirama isaa dhaaba, deebiin immoo isaan akka diff (jijjiirama agarsiisuu) agarsiisa, fi Apply yeroo isaan sana raawwatan Gatuu fageessu warra sana gatu. Iyyachuun gatii hin qabu.
Hojii tokkoon tokkoof damee
Waliin Hojiin tokko tokko ramaddee mataa isaa argata. on, kan inni kan itti fayyadamudha repositowrii hundaaf
erga ati cufuu hin baate mannaa, hojiin commit-oota branch mataa isaa irratti barreessu, kan maqaan isaa jedhamu
nymbot/ fi ID gabaabaa tokko. Nymbot immoo gara kutaalee hojii (working branch) irraa argamee hojjeta
yeroo hojiin (task) commit isaa jalqabaa taasisu, kanaaf hojiin dubbisu qofaa qabu damee (branch) hin uumu.
Dameen hojii (working branch) ofii isaa hin qaqqabamu, kunis hojiiwwan hedduun yeroo tokkoo
repoositorii tokko irratti barreessuu akka danda'an taasisa, bakka tartiiba isaanii eeggachuu mannaa.
Hojiin yommuu xumuramu, Nymbot maal godha? Yommuu xumuramu jedha. Request pull tokko bani kan uumamaa dha; Walitti makuu ofeetu dhiyeessi Deebii irratti mallattoo walitti makuu (Merge) dhiisa; Gara damee sanaa ba'i dabalata hin hojjetu. Akkaataan bu'uraa Settings keessatti murteeffameera, jala Yeroo ramaddiin hojii tokkootii xumuramu, fi bakki (repository) kamiyyuu akkaataa mataa isaa kan birootiin filachuu danda'a. Yoo forge-ichi API pull request Nymbot fayyadamuu danda'u hin qabne, yookaan tokko fudhachuu dhiise, dameen (branch) akkuma jiru dhiifama, deebiin immoo akkas akka ta'e hima.
Deebiin laxa laxa kanaan agarsiisa PR bani, Walitti maku fi Haquu, fi kutaun 'Tasks' hojii sana waliin tarreessa. Hojiin sun yeroo itti hojjetamu, kaardii isaa, kutaun 'Tasks' fi tarreen hojiiwwan hojjetaman hundi, dameen (branch) sun yoo uumamu irratti hundaa'u, meeshaa (device) herrega sana irratti seenan hunda irratti maqaa isaa agarsiisu. Hojiin dhaabbate ykn gidduutti dadhabe damee isaa deebisa, akkasumas akka hojiiwwan biroo walitti makuu (merge), balleessuu ykn qulqulleessuu ni danda'ama. Walitti makuun (merge) 'merge commit' forge keessatti 'pull request' dhaabbata, kunis 'commit' Nymbot galmeesseen walitti hidhama, akkasumas 'commit' haaraawwan yeroo sana keessatti ergamanii hin makuun hin mul'atan. Wanti tokko illee 'force-push' hin ta'u. Yoo dameen sun damee hojii waliin walitti dhufa (conflict), deebiin kun ni dhiyeessa... PR kana banuuf furdee yookaan Nymbot gaafadhu akka branchii sana update godhu, kan damee hojii sana commit merge ta'een itti walitti maku, rebase gochuu mannaa. GitHub fi Gitea ykn Forgejo kana gochuu danda'u; GitLab API kanaaf hin qabu, kanaaf achi gaaffii merge request keessatti hiikta.
Jijjiiramniwwan faayiloota CI fi workflow illee akka ati sakatta'uuf eegaramu, akkataa isaan damee isaanii kan dhuunfaa hin qabne malee ta'an qixxaatti.
Meeshaan kee yaadachisa... nymbot/ waan herrega kanaatiin uumame. Hojii itti aanu
repository sana irratti, yookaan Iddoowwan Nymbot qulqulleessi liistii repoositirii keessatti,
warra pull request-iin isaanii walitti makuu (merged) ykn cufame (closed) ta'an, ykn kanneen guyyaa torba dura ta'anii fi
walitti makuuf waan tokkoyyuu hin jirre dhaaba. Waaraan tokko yoo walitti makuuf Nymbot
galmeesseffate irratti xumurame qofa balleeffama, kanaaf namni tokko kan irratti push godhe yoo jiraate dhiifama,
waaraan biraa immoo hin tuqamu. Meeshaa keessan irraa tokiniin tokenii inni dura erge kanaan hojjeta; serwerichi booda hojjechuuf
tokenii hin kuusu.
Branch hojii sana irratti kallattiin commit gochuuf filannoo sana dhaamsi. Hojiin tokko achii repository sana qofa qabaata, inni lammataa branch sana irratti jiru ammoo inni jalqabaa hamma xumuramuutti isaa dubbisa qofa. Akkaataa appiiwwan durii itti hojjetan akkasuma.
Wanta dabalata (run) jijjiire deebisanii sirreessuu
Deebiin gara kuusaa (repository) keetiitti barreeffame waan tuqe dubbata: kuusaa sana, damee (branch) sana, fi faayila hunda. Jijjiirama kana deebisi deebisanii kaa'u — karaaleen sun hundi commit ramichi fiigicha dura irratti ture irratti dubbifamu, akkasumas akka turetti commit godhame. Hojiin kan irratti hojjet kalaa isaa mataa isaa qabu branchii hojii sana qofaan dhiise, kanaaf deebisanii galchuuf waan tokko akkuma hin jirre: Haquu kan ramadduu isaa akkuma kanaan duraa osoo hin taane.
Sun deebisanii barreessuu miti, deebisanii sirreessuu dha. Wantiin tokko hin haqamne, seenaan immoo hin jijjiiramne: Nymbot hojjete galmee keessa ni hafa, garuu haala damee (branch) sanaa hin taane qofa. Namni gidduu galan kan inni fudhate (checkout) ammaaf hojjata.
Kaffaltii tokko malee. Erguun modelii tokkoyyuu hin tuqu, kanaafis kirediitii hin fayyadamu — tokenii seenumsaa akkuma kan biroo hundaatti ergaa sana waliin deema, waan tokko yoo ta'u checkpointiin keenya dhuunfaa kee malee bakka biraatti hin kuufamu.
Branch ykn pull request inni hojiin baname tarreeffamee bakka inni jiru qofa dhiifama. Pull request nama biraa bakka bu'uun deebisanii balleessuu miti, branch namoonni biroo feth (fetch) gochuu danda'an balleessuunis deebisanii balleessuu miti — yoo balleessuu barbaadde ofii keetiin hojjedhu.
Hojiin repo gatii meeqa?
Hojii repo tokko tokko ergaa tokko irratti kutaa modelii hanga ja'atti fayyadama — ilaaluu, dubbisuu, barbaaduu, deebisuu — kan tokko tokko gatii modelii murtaa'ee irratti kaffalama Gatii ProKallattiiwwan dhugumaan fayyadaman qofatu kaffalama, kanaafuu gaaffiin faayila tokko irraa deebifamu gatii deebii baramaa tokkoo walitti fakkata.
Appiinni walumaa galtee fi lakkoofsa waamicha tokko tokkoof hojii repo booda gabaasa kenna.
Yeroo hojiin bakka qabu dhabu
Hojii repository tokko tokko daddarbii (loop) dha, deebii tokko qofa miti: moodeelli galmee (directory) tokko tarreessa, faayila tokko dubbisa, madda (tree) barbaada, isa biraa dubbisa, achiis booda barreessa. Tokko tokkoon daddarbii sanaaf qajeelfama jira — lakkoofsa waamicha moodeelii deebiin qabeenya qabduuf qofa qabatu — sababni isaas agentan hin murtaa'ne kaffaltii hin murtaa'ne dha.
Yeroo hojiin tokko qooda isaa hojiin hojjetamuun hafu dhiisu, Nymbot dhaabbata, waan qabu siif kenna, akkasumas siif hima. Hojiin dabalataa tokkoyyuu hin kaffisamu.
Atis itti fufuun ni danda'ama. Tooftaa (Settings) keessatti baajata itti fuufiinsaa murtee, yeroo hojiin (task) xumuramu Nymbot baajata sana irraa kaffaltii biraa bitu; akkasumas akka bakka itti dhaabbate sana irraa itti fufu, osoo gara jalquraatti deebi'ee kuusaa (repository) hin dubbisu. Kutaa tokko tokkoon deema, kutaan tokko tokko gatii isaa ni hima, akkasumas yeroo baajata sun xumuramu, hojiin sun xumuramu, ykn ati 'Stop' kan jettu yeroo tuqxu dhaabbata. Filannoon “hangaga baajata koo xumurutti” jedhu iyyuu gubbaa (ceiling) dha — lakkoofsa ati barreessite osoo hin taane, baajata keeti dha.
Akkaataa dabeessaa ta'eef dhaabbachuu fi siif himuudha. Hamma ati baajata murteessiteetti, deebii ati gaafatte oliitti wanti tokko itti fufa hin jiru, wanti tokko ni fudhatamu hin jiru.
Yeroo baay'ee meeshaan kee kutaa hunda erga, kanaaf hojiin tokko appiin banamee jira malee itti fufa. Wajjiin duubatti fiiga ykn yoo baname, serverichi kutaalee (legs) itti aanan ergaa, appichi cufamee yoo jiraatunis, baajata sana keessatti, kutaalee 40 dabalataatti fi sa'aatii 6 keessatti, akkasumas hojiin sun yoo xumuramu yeroo tokko siif hima. Kana gochuuf, token repository sana furtii isaan qofa qabanitti cufeera, hojiin sun yoo hojjetamu, akkasumas hojiin sun yoo xumuramu balleessa, harkis sa'aatii 6 keessatti yeroo hunda. Hojiin duubatti hojjetamu (background task) hojiiwwan biroo hunda akka ramadatti ramaddii (branch) isaa irratti barreessa.
Waa'ee mallattoo sanaa
Tokenii seenuu meeshaalee keessan irratti kuufama, akkasumas tola-tole (end-to-end) qulqullaa'ee ta'e keessatti meeshaalee keessan gidduutti walitti hidhama, kanaafuu serverichi qophii sirraa qofa qabata kan inni dubbisuu hin dandeenye. Innis... meeshaa qulqulleessuu, gaaffii kutaalee hunda waliin hojjetaa Nymbotitti deema, akkasumas server-irratti dubbisuuf ta'ee hin kuufamu yookaan relayaaleen irratti hin maxxanfamu. Yeroo serverichi itti kuufatu qofaan irratti cufeedha, yeroo... Duubbeetti hojjechuu kan ati on goote hojjetaa jira, sa'aatii 6 ol hin taane. Bakka (repository) ati fayyadamuu barbaaddu tokko qofatti murtaa'u godhi, yoo xumurte immoo dhiyeessaa (provider) keetii irraa haqii.
Sababa inni walitti hidhamiinsa waan qabuuf, chatii repository fayyadamu isaa meeshaalee ati itti dhuftu hunda irratti tokko malee hojjecha, deebisanii walitti hin hidhimuun. Repository meeshaa tokko irratti walitti hidhamiinsa kutachisuun, tokenii meeshaalee kaan irrattis balleessa. Tokeniin hin seenu server hojii irratti kaayeekonteenera .s