Saltu al la enhavo
Reen al Nymbot

Sciobazo Kodo

Laborante en git-deponejo

Pro povas labori ene de unu el viaj repozitorioj tiel kiel koda agenteco faras — legante viajn realajn dosierojn, kaj per skribado sur ili, ŝanĝante ilin.

Konekti deponon

?git, aŭ la Git ĵetŝipo en la ilarujo, konektas provizanton: GitHub, GitLab, aŭ Gitea/Forgejo — kiu kovras Codeberg kaj memgastigitaj instancoj. Ĝi uzonas limigitan personan aliron-tokenon, repoziitorion kaj branĉon. Repoziitorio kiu anoncas sin sur Nostr povas esti gluitita kiel ĝia adreso anstataŭe.

Vi ne devas tajpi la nomon de la deponejo. Alklaku la tokenon kaj elektu Listu kion ĉi tiu jetono povas atingi: Nymbot demandas al la forĝo kion tiu jetono povas vidi kaj montras la respondon kiel liston, kiun vi kontrolas. Kontrolado konektas ĉiun unuon kun sia defaŭlta branĉo jam plenigita, kaj metas ilin ĉiujn en ĉi tiun babilejon. Ĉio jam konektita estas montrita tiel prefere ol ofertita degrue. Tiu peto iras de via aparato rekte al la forĝo — ne tra la Nymbot laboristo — tiel ke la jetono ne vojaĝas ien, kie ĝi jam ne iras. Mem-gastigita forĝo, kiu rifuzas interŝanĝajn petojn, simple ne povas esti listigita; tajpu la depozitorion mane kaj ĉio alia funkcias same.

Post kiam ĝi estas konektita, la ĉipo montras la nomon de la deponejo, kaj mesaĝojn senditajn per Profesia modelo elektita ekzekuto en la kunteksto de tiu repoziitorio. ?git disconnect forcias ĝin for. Malŝalti en la repoziaria listo forges la tokenon sed konservas la repoziaron tie, markita kiel sen tokeno, por ke vi povas aldoni novan poste.

La Repozitorioj-modulo, kie GitHub-, GitLab- aŭ Gitea-repozitorio estas konektita al babilejo.
Konektante deponon. La jetono sinkronigas al viaj aliaj aparatoj, sigelita de fino al fino.

Repositorioj anoncitaj en Nostr

Kelkaj depozitorioj anoncas sin en Nostr prefere ol nur en forĝo, uzante NIP-34 — la protokolo malantaŭ ngit kaj gitworkshop. La anonco estas Nostr-evento portanta la nomon de la projekto, ĝiajn prizorgantojn, la relajojn kiuj kolektas ĝiajn ŝanĝojn kaj problemojn, kaj la URL-ojn el kiuj ĝi povas esti klonita. Dua evento diras kie ĉiu branĉo nuntempe montras.

Alglui unu naddr aŭ a nostr:// enigi en la depoformularon kaj premi Serĉu ĝin. Nymbot legas la anoncon el la relajoj kaj plenigas la formularon: la git-gastiganton, el kiu ĝi estas klonita, la depozitorion tie, kaj la branĉon, kiun la projekto mem diras esti aktuala. Vi ankoraŭ aldonas tokenon por tiu gastiganto, ĉar Nostr portas la anoncon kaj la git-servero portas la kodon.

Kio signifas, ke la regulo estas simple kie ĝi estas klonita. Depozitorio, kies klona URL estas en GitHub, GitLab, Gitea aŭ Forgejo — inkluzive de mem-gastigitaj — estas unu, kiun Nymbot povas legi. Unu klonita nur super git:// sed SSH ne havas HTTP API por legi dosierojn per ĝi, kaj Nymbot diras tion prefere ol duon-konekti. Kie la gastiganto estas mem-gastigita, la provizanto estas supozo bazita sur ĝia nomo, kaj vi povas korekti ĝin antaŭ ol konservi.

Depozitorioo aldonita tiel ricevas emblemon ngit en la listo, kaj respondoj nomu ĝin laŭ la nomo, kiun ĝi anoncas, anstataŭ laŭ sia vojo sur la spegulo.

Kion ĝi povas fari

Mesage en repo-konteksto funkcias kiel malgranda agenteco anstataŭ kiel ununura plenumado. La modelo povas listigi dosierujojn, legi dosierojn kaj serĉi la arbon, poste respondi uzante tion, kion ĝi vere trovis — tiel "kial la reprova ciklo rezignas frue" estas respondata el via kodo, ne el supozo pri kodo, kiu similas al via.

Ĝi vidas la branĉon, kiun vi konektis, ĉe ĝia nuna ĉefo.

Kun server funkcias ŝaltita por la babilejo, ĝi ankoraŭ povas peti ruli komandon kontraŭ via kodo, kiel la testojn, sur Nymbot-servero. Ĉiu kurado atendas vin permesi ĝin.

Depozita tasko en telefono: Nymbot trovas bugon kaj montras la riparon kiel difon.
Repo-tasko sur telefono, kun la peĉo kaj kio la kuro kostis.

Turnante la skribojn enĝenon

?git writes on aldonas la eblecon komiti dosierojn, krei branĉojn kaj malfermi pull- aŭ merge-petojn. Malŝaltita defaŭlte, kaj valoras lasi malŝaltita ĝis kiam vi volas ĝin.

Kun skribado daŭra, petu ŝanĝon kaj vi ricevas branĉon kaj pull-peton por revizii anstataŭ patch gluitita en ĉaton: ĉiu tasko laboras pri propra branĉo de ĝi. Nenio estas puŝita al via defaŭlta branĉo krom se vi malŝaltas tion, tio estas la branĉo kiun vi konektis, kaj vi petis ĝin.

La redaktoj de kuro eniras kiel unu komitaton por ĉiu depozitorio, ĉe la fino de la kuro aŭ kiam la modelo decidas, ke parto de laboro estas finita. Se vi preferus vidi ilin unue, ŝaltu on Demandu antaŭ kompromiti por tiu repozitorio. La kuro tiam retenas siajn ŝanĝojn, la respond'o montras ilin kiel difon, kaj Aplikiĝi komitas ilin dum Forĵetu ĵetas ilin fore. Aplikiĝo ne kostas nenion.

Branĉo por ĉiu tasko

Kun Ĉiu tasko ricevas sian propran branĉon ŝaltita, kio estas por ĉiu deponejo krom se vi malŝaltas ĝin, tasko kiu skribas komitojn al propra branĉo, nomata nymbot/ kaj mallongan ID-on. Nymbot kreas ĝin el la kapo de la laborkatra branĉo kiam la tasko faras sian unuan komiton, do tasko, kiu nur legas, tute ne kreas branĉon. La laborkatra branĉo mem ne estas tuŝata, tial pluraj taskoj povas skribi al la sama deponejo samtempe anstataŭ atendi sian turnon.

Kiam la tasko estas finita, kion Nymbot faras Kiam finita diras. Malfermu pull peton estas la defaŭlto; Proponu kunfandiĝon lasas Kunigi-butonon en la respondo; Forlasu la branĉon ne faras ion pli. La defaŭlto estas agordita en Agordoj, sub Kiam branĉo de tasko estas finita, kaj ĉiu deponejo povas elekti diverse en sia propra formo. Se la kreiilo ne havas API por tirpetoj, kiun Nymbot povas uzi, aŭ ĝi rifuzas unu, la branĉo restas tiel, kiel ĝi estas, kaj la respondo diras tion.

La respondo montras la branĉon kun Malfermi PR, Kunigi kaj Forvortu, kaj la Tasks-panelo listigas ĝin kun la tasko. Dum la tasko ankoraŭ funkcias, ĝia karto, la Tasks-panelo kaj la listo de tio, kio funkcias, nomas la branĉon tuj kiam ĝi ekzistas, en ĉiu aparato ensignita al la konto. Tasko, kiu haltas aŭ malsukcesas parte, ankoraŭ liveras sian branĉon reen, por ke ĝi estu povata kunmetita, forigita aŭ purigita kiel ajna alia. Kunmetado estas kunmeta komito tra la propra pull request de la forĝo, fiksita al la komito, kiun Nymbot registris, do novaj komitoj senditaj tie intertempe neniam estas kunmetitaj sen videblo. Nenio estas iam devigita sendita. Se la branĉo konflikto kun la laborkonstruita branĉo, la respondo proponas Malfermu la PR por solvi aŭ Petu Nymbot ĝisdatigi la branĉon, kiu kunigas la laborbranĉon en ĝin per kuniga komito anstataŭ per rebasado. GitHub kaj Gitea aŭ Forgejo povas fari tion; GitLab ne havas API por tio, do tie vi solvas ĝin en la kuniga peto.

Ŝanĝoj en la CI- kaj laborfluaj dosieroj ankoraŭ atendas vian revizion, precize same kiel ili faras sen sia propra branĉo.

Purigado

Via aparato memoras la nymbot/ branchetujoj, kiuj ĉi tiu konto faris. La sekva tasko en tiu deponejo, aŭ Purigu la Nymbot-branchegojn en la listo de depozitorioj, forviŝas tiujn, kies tira peto estas unuigita aŭ fermita, aŭ kiuj estas septem tagojn malnovaj kun nenio restanta por unuigi. Branĉo estas forviŝata nur se ĝi ankoraŭ finiĝas ĉe la komito, kiun Nymbot registris, tiel oni lasas senŝanĝite tiun, al kiu iu sendis plian komiton ekde tiam, kaj neniu alia branĉo estas iam tuŝita. Ĝi funkcias de via aparato per la tokeno, kiun ĝi jam sendas; la servilo ne konservas żadun tokenon por fari tion poste.

Malŝaltu la opcion por komiti rekte al la labormanko. Tasko tiam havas la repositorion je si mem, kaj dua tasko sur la sama branĉo nur legas ĝin ĝis kiam la unua finis. Malnovaj versioj de la aplikaĵo funkcias tiel ankaŭ.

Malfari tion, kion kuro ŝanĝis

Respondo, kiu skribis al via repozitorio, diras kion ĝi tuŝis: la repozitorion, la branĉon, kaj ĉiejn dosieron. Malfari tiujn ŝanĝojn metas ilin reen — ĉiu el tiuj vojoj estas legata ĉe la komito, sur kiu la branĉo staris antaŭ la ekzekuto kaj komitis kiel ĝi estis. Tasko kiu laboris pri propra branĉo de ĝi mem lasis la laborkradon alone, do ĉe tie ne estas io ajn por remeti: Forvortu foras sian branĉon anstataŭe.

Tio estas revizio, ne reformulado. Nio estas forviŝita kaj neniu historio estas reformulita: tio, kion Nymbot faris, restas en la protokolo, ĝi simple ne plu estas la stato de la branĉo. Ĉiu, kiu tiris interligojn interligite, konservas ĉekomton, kiu ankoraŭ funkcias.

Ĝi kostas nenion. Malpliigi ne tuŝas modelon, do ĝi ne elspezas kreditojn — la alirŝlosilo vojaĝas kun tiu unu peto tiel kiel ĝi faras kun ĉiu alia, kaj nenio pri la kontrolpunkto estas konservata ĉien krom en via propra aparato.

Nur dosieroj

Branĉo aŭ tirpeto, kiu estis malfermita, estas listigita kaj restas tie kie ĝi estas. Fermi iun ajn tirpeton nomde tiu persono ne estas malfariĝo, kaj forigi branĉon, kiun aliaj eble jam elŝutris, ne estas ĉiam tie ankaŭ — faru tion mem se vi volas, ke ili malaperu.

Kiom repo-tasko kostas

Repo-tasko uzas ĝis six modelo-vokojn por ĉiu mesaĝo — rigardu, legu, serĉu, respondu — ĉiu fakturiĝante laŭ la fiksiĝinta modelo's Prezo de Pro. Nur la vokoj efektive uzataj estas fakturataj, do demando respondita el unu dosiero kostas proksimume kion ordinara respondo kostas.

La aplikaĵo raportas la totalon kaj la nombron da vokoj post ĉiu repo-tasko.

Kiam tasko ne plu havas spacon

Depozitorio-tasko estas loop, ne ununura respondo: la modelo listigas direktorion, legas dosieron, serĉas la arbon, legas alian, kaj nur tiam skribas. Tiu loop havas permeson — nombron de modelo-vokoj, por kiuj la respondo rezervas kreditojn — ĉar senlimiga agenteco estas senlimiga fakturo.

Kiam tasko uzas sian kvoton dum restas laboro farinda, Nymbot ĉesas, donas al vi tion, kion ĝi havas, kaj diras tion. Nenio plu estas elŝargita.

Vi ankaŭ povas lasi ĝin daŭri. Agordu daŭrigan buĝeton en Agordoj kaj Nymbot aĉetas alian permision el la sama saldo kiam tasko finiĝas, plukiĝante precize tie kie ĝi ĉesis, anstataŭ relegi la repertorion de la komenco. Ĝi iras unu etapon tempe, ĉiu etapo dirante kion ĝi kostis, kaj ĉesas tuj kiam la buĝeto estas elĉerpita, la tasko estas finita, aŭ vi premas Haltigi. Elekti “ĝis mia saldo elĉerpita” estas ankoraŭ limo — ĝi estas via saldo anstataŭ nombro kiun vi tajpis.

Notu

La defaŭlto estas ĉesi kaj informi vin. Nenio daŭras, kaj nenio estas elspezita preter la respondo, kiun vi petis, krom se vi agis buĝeton.

Kutime via aparato sendas ĉium etapon, do tasko nur daŭras dum la aplikaĵo estas malfermita. Kun malantaŭaj agoj ŝaltita, la servilo sendas la sekvajn jambojn mem dum la aplikaĵo estas fermita, ene de la sama buĝeto, plej multaj 40 da jamboj kaj 6 horoj, kaj informas vin unufoje kiam la tasko estas finita. Por fari tion, ĝi tenas la deponian tokenon sigeltan per ŝlosilo, kiun nur ĝi havas dum la tasko laboras, kaj forigas ĝin kiam la tasko finiĝas kaj ĉiam ene de 6 horoj. Fono-tasko skribas al sia propra branĉo kiel iu ajn alia tasko.

Pri tiu ĵetono

Pri tiu ĵetono

La alirtokeno estas konservata sur viaj aparatoj kaj sinkroniĝas inter ili ene de viaj fine-al-fine ĉifritaj agordoj, do la servilo tenas nur sigeltan kopion, kiun ĝi ne povas legi. Ĝi estas forviŝata de... viŝado de aparato, vojaĝas al la Nymbot-laboristo kun ĉiu peto, kaj neniam estas konservita legeble en la servilon aŭ publikigita al relajoj. La sola tempo, kiam la servilo konservas ĝin, estas sigelita, dum a malantaŭa funkcio via aktivigo funkcias, dum plej multaj 6 horoj. Limigu ĝin al la unu depozitorio, kiun vi intencas uzi, kaj revoku ĝin ĉe via provizanto kiam vi finos.

Ĉar ĝi sinkronigas, babilejo kiu uzas la depozitorion funkcias en ĉiu aparato, en kiu vi ensignas sin sen realiĝi ĝin denove. Malaliĝigi la depozitorion en unu aparato forigas la tokenon en la aliaj ankaŭ. La tokeno neniam eniras server kurigu's ricevilo.