Arandupykuaaty ñemopyenda Kóde
Ombaꞌapóva peteĩ git ryru’ípe
Pro ikatu oñepytyvõ peteĩ ne repozitorio rendápe peichaichaite pe coding agent ojejapóva — oñehecha ne tembiapo (files) ha oñemyatyrõ haguã.
Ko páhina oñembohasa máquina-pe iporãve hag̃ua. Pe inglés original ha’e pe versión ojeporúva.
Mbojoaju peteĩ mbojerure
?git, térã pe Git Chip tuju mbojoaju rupi, oñembojoaju peteĩ provider ndive: GitHub, GitLab, térã Gitea/Forgejo — upéva oñembosako'i Codeberg ha self-hosted instances-pe avei. Oñemongeta peteĩ scoped personal access token, peteĩ repository ha peteĩ branch. Peteĩ repository oĩva...
oñemoandu Nostr-pe upéicha oñemopyta hína i'adehápe.
Ndaipóri nderehe reñe'ẽ hag̃ua pe repository ryre'áva. Eheja pe token ha eiporavo Emoĩ mba'épa ko token oĩ porãvaNymbot oipurú pe forge heka hag̃ua mba'épa pe token ohecha ha ohechauka pe hesakãva peteĩ listague reñe'ẽ hag̃ua. Reñe'ẽ hag̃ua, oñemohenda opaite peẽme i'eha'e ramo pe branch-pe ha omoĩ opaite ko chat-pe. Mba'e oñemohenda katu, upéicha ohechauka, ndaha'éi pe oñemohendu mboyve. Pe peteĩ hesakuã oho ne dispositivo rupive peteĩnte pe forge-pe — ndaha'éi Nymbot worker rupive — upéicha pe token ndaha'éi peve oho ndajeve. Peteĩ forge self-hosted oje'e hag̃ua ndajeve pe cross-origin request ndaikatúi oñomombyaty; eñemboja pe repository rupive ha opaite oñeñe'ẽna hína peve.
Oñeha'ã rire, pe chip moandu'a pe repository ñe'ẽ, ha umi mensahe ojejo'u peteĩ
Tekopa'umi mba'erehe Oñembojotýva mbojoaju pe mba'erepy tendaguépe.
?git disconnect oñembojererekua. Moĩpa pe repository lista reheve
ohekombo'e pe token ha oheja pe repository upépe, omoĩva'ekue ndaha'ei porãicha pe token, upéicha reityta hag̃ua
peicha avei peteĩ ambue opaite ko'ẽrãme.
Nostr-pe oñe'ẽva repozitóriu guare
Mba'e kuaapy oĩva ohechakuaa hikuái Nostr rehe, ndaha'éi peteĩ forge rehe añónte, oipurúvo NIP-34 — pe protocol oñeñandu hag̃ua ngit ha gitworkshop. Pe ñemohenda ha'e peteĩ Nostr evento oĩhápe pe proyecto ryéva réra, iñangareko va'ekue, umi relay omoĩháva iñembojayry ha iñemoñe'ẽ, ha umi URL oñemboja haguãva. Peteĩ ambue evento omohendávo mba'épa oĩ umi branch ko'ágãme.
Eñemoĩ peteĩ naddr ha'e oĩva nostr:// eñe'ẽmboty repy ári ha
pẽ mbegue Ehecha upéva. Nymbot oñe'ẽ tembiapo kuaapy rehegua relays-gui ha omoĩ tembiapo: pe git host oñembohovái upéicha guéva, pe repository upépe, ha pe rama (branch) pe tembiapo oje'éva ha oĩ upépe. Nde reñembosarái avei peteĩ token upépe host-pe g̃uarã, hesakuãramo Nostr omoĩ tembiapo kuaapy ha pe git server omoĩ pe kódigo.
Upéva he'ise umi mba'e ojeheréa haguére añónte. Peteĩ repo rembiapo i-clone URL oĩháva
GitHub, GitLab, Gitea térã Forgejo-pe — self-hosted oĩramo oñembojoapy avei — ha'e peteĩ mba'e Nymbot oñeñe'ẽ va'erã.
Ojeheréa añónte over git:// peẽme ssh ndaha'éi HTTP API oñembo'epyrũ hag̃ua tembiapo oñeñe'ẽ hag̃uã, ha
Nymbot he'i upéicha ndaha'ei oñepyrũmby hague. Pe host oñembo'e oñemoĩramo, pe provider ha'e peteĩ
pyrũ ha peẽre oñeñe'ẽ haguã ihesakãramo, ha reñembo'e haguã peẽme oñemoĩ mboyve.
Peteicháva oiméva ko'ãmeveicha oñembohovái peteĩ sỹi reheve ngit ñemongove rehe, ha ombohovái chupe pe ñe'ẽ omohendáva rehe, ndaha'éi pe tape oĩva jerokyry rehe.
Mba'épa oĩva ikatu omoĩ
Pe mensaje oĩva repo rupiápe oñe'ẽ peteĩ michi'i agentéramo, ndaha'éi peteĩ techapyrã reínte. Pe modelo ikatu ohecha katuity rupiápe, ojere tembiapo rupiápe ha oheka opaite mba'e, ha upéi oñe'ẽ pe mba'e oheka haguéva — upéicha "mba'érepa pe retry loop omoĩ hesa pe mba'e" oñe'ẽ peẽme kódo rupiápe, ndaha'éi peteĩ ñembosarái pe mba'e oĩva peẽme oĩva ári.
Ohecha pe branch reñongatúva, i'ãgua ko'ágãme.
ndive Server oje'a ñemongu'e ñe'ẽnguéra reheve hag̃ua, opaichagua ikatu avei he'i oipytyvõ oguata haguã peteĩ tembiapo ne kódi reheve, upeicha mba'e tembiapo oñeembopyhy hag̃ua, oñeñe'ẽramo Nymbot server-pe. Mba'eveichaguáicha oñeembopyhy, nderehe aguarakuẽ hag̃ua.
Ñe'ẽmbo'e ñemopu'ã
?git writes on ojapo ko'ãva ikatu hag̃ua omoĩ tembiapo, omoheñói ramas ha ojehechauka pull
or merge requests. Oñemboty mboyve, ha iporã oñemboty mboyve reikotevẽramo.
Mba'eichaitépa oñembopota oñemohenda hag̃ua, eñe'ẽ peteĩ ñeñembopyahu ha oĩta ndéve peteĩ kuatiaha (branch) ha peteĩ ñeñembohovái (pull request) rehesakã hag̃ua, ndaha'éi peteĩ ñe'ẽ oñemopyhyre'ỹva chat-pe oñemoĩva: mba'eichaitépa tembiapo oñembohasa ha'eite peteĩ opaite pahaMba'eve ndaikatúi oñemombo ne rembiapo rupive ne rãypytyvõ (default branch) upéicha ndereheváivo, upéva ningo pe rãypyvõ reñe'ẽva ha reipotyva.
Mba'eichaitépa peteĩ mbojoaju oñembojegua ko'ã ñeñembogua peteĩ commit rupive opaite repository-pe, pe ñembogua reheta pahápe térã oñombojegua oñemboypyrevo pe tembiapo. Pemba'ẽramo opaite pe oñembogua mokõi tapiaite, eñemboypyrevo Eipuka ñembojoapy mboyve aimandu'apýre. Upéicha pe ñeñandúpe omoĩ hikuái iñe'ẽkue, pe mbojerovay pytyvõ rupive ohecha chupekuéra, ha Eñemoĩ oñe'ẽ chupekuéra oiko jave Ejepurú Mohesãi chupekuéra. Moambue hag̃ua ndoguerói mba'eve.
Mba'ehesakã opaite tembiapo reheve
ndive Mba'eichaitépa mba'e haipyre oĩ opaite tembiapo rehegua oĩ, ha'e opaite repository guã
ndéve remoĩ ndaha'áirã, ha'e pe tembiapo omoĩva commits peteĩ hesembajápe, oje'éva
nymbot/ ha peteĩ id ipetĩva. Nymbot omohenda upéicha pe working branch rembiapo yvágui oñehendavo pe tembiapo pevei commit, upévare tembiapo oñeñanduva ndojejapóiichante pe branch. Pe working branch ndoñembosakoíichante, upéva rupive tembiapo oĩva opaite ojehasa ndaha'éi orendave hikuái, ojehasa omoñe'ẽ hikuái pe repository oñondivepa.
Mba'éichapa Nymbot ojapo ja'e mboyve tembiapo omoĩ haguére Oñembojavéramante e'i. Ñembopu'ã peteĩ pull request ha'e pe tembiapo oñembosako'i katu; Emoĩ mbojoaju oheja peteĩ Merge botón pe mbojejavopy; Ejereka pe yvoty mbo'e ndojapo mba'eve heseve avei. Pe mba'e oñemboherakuãva oĩ Apytépe, pe... rupi. Tarea peteĩ renoháre omoĩramo oñembojoapy haguã, ha umi repository ikatu omoĩ ambueichagua iñehendápe. Ápe ndoĩramo pe forge API pull requests reheve Nymbot ikatu ojepurúva, térã ndo'ai pe API, pe branch oĩ upéicha ha pe mbojerary peicha upéicha oñe'ẽ.
Pe móra oguerekó pe yvágara ndive Mbojerovay PR, Mbojoaju ha Ñembyaty, ha pe Tasks pane ohechauka chupe pe tembiapo ndive. Pe tembiapo oikove jave, pe iñe’ẽ, pe Tasks pane ha pe tembiapo oikóva mbykymi ome’ẽ pe yvyra rire oñembosakoĩramo oñembojoaju hag̃ua, oñembyaty hag̃ua térã oñembojegua hag̃ua ambue tembiapokuéra ndive. Pe tembiapo oñemopyendáva térã oñemopotĩramo mbykymi, pe iñe’ẽ oñembojerere avei, ikatúma oñembojoaju, oñembojegua térã oñembohusya ambue mba’éicha. Pe ñembojoaju ha’e peteĩ merge commit pe forge-pe oñemoĩva pull request reheve, pe Nymbot omoĩva commit rehe, upéicha peẽme oñembojoaju va’ekue commits oñemoĩva upépe upégui, ndaikatúi oñembojoaju oñembohecháirõihápe. Nderehevái mba’eve. Pe yvyra oñembosakoĩramo pe tembiapo oikóva jave, pe ñe’ẽ oipytyvõ Ti'ẽvo pe PR oñembohovái hag̃ua ha'e Ejerure Nymbot-pe oñembopyahu pe branch, oñembojoaju pe rama'i iñirũme peteĩ merge commit-pe, ndaha'éi rebasing peicha. GitHub ha Gitea térã Forgejo ikatu ikondu'u upéva; GitLab ndaikatúi upéva reheve API, upévare pe merge request-pe reñombojoaju upéva.
Tekombo'e ha workflow archivos ñemombarete ha'e haguére ne ñe'ẽnguéra orende haguére, oñemongetaichaite pe oĩramo ndive peteĩ ramo'i ndive.
Ne mba'ehesa'úgui oñombre'ẽ pe nymbot/ apepóva ko mba'e account omoĩva. Pe mbojerovia
heko peẽme pe rekoha rehegua, térã Ñembopyatã Nymbot mboapykuérare rekuapy mbojerovia rupi,
ñemomombyry umi reitytyvõ (pull request) oñemohesakã térã oñemopu'ã va'ekue, térã oñemongu'e pytu katuete piruhu mokõi mokõi ary (tésa) ndaha'éi opa mba'e oñemongu'e va'ekue. Ko'ã ramo oñemombyrymante ko'áicha oñemombyryva'ekue oñepyrũva Nymbot oñemboheguáicha commit rupi, upéicha oĩramo oñembojereva haguã mba'e porã, oñemombyry ndaha'éi, ha ndaha'éi ambue ramo oñemombaretéva. Oñemohenda ne rembiapo rupi pe token oñemomusainda va'ekue; pe server ndopori mba'eve omohenda hag̃ua upéicha oikotevẽramo.
Eñembo'y umi tapicha omoĩ haguãta umi mba'e ojejapóva tekotevẽva ára ha ára reheve. Upéicha, peteĩ tembiapo oñandu ko'ãg̃a reheve, ha ambue tembiapo opaichagua ramo avei omohenda haguãva pe hendáre, ikatúvo pe katupyry omoĩmbaitévo. App opaite ára rupi avei upéicha oñeñongatu.
Mboypýicha mba'épa peteĩ mbojerure omoĩva'ekue
Peteĩ mbojerovia omoĩva ne repository-pe ohechauka mba'épa omoĩ: pe repository, pe branch, ha opaite tembiapo. Eñembopyre umi mba'e oñemoambue ko'ãva jeputy'u opaite reheve — opaite hendáicha peve ñeñe'ẽmi pe commit reheve pe yvyra oĩva pe mbojerure mboyve ha oñeñe'ẽ opaite oĩva ndive. Tekombo'e oĩva oñemoambueva I ramoite Oĩ porãnte pe tembiapo ramo, upévare ndaha'éi mba'eve oñemoĩva avei: Ñembyaty oñembojotỹ iñe'ẽ rã upéicha.
Upéva ha'e peteĩ revert, ndaha'éi peteĩ rewrite. Mba'eve ndaikatúi ñemombara; ha umi mba'e oje'e haguére ndaikatúi oñemomboyve: mba'épa Nymbot ojapo oĩ hi'ãnte pe log-pe, ha katu ndaha'ei'ỹ avei pe branch-pe oĩva. Kuatiaha omoĩva oĩva upéicha oĩ haguére peteĩ checkout oĩhápe oĩhápe.
Ndaipóri mba'e ojehecha. Ñemoirũ ndaha'éi mba'eve, upévare ndaikatúi oipurúva mba'e — pe access token oho peteĩ rehegua pe ñemoirũ rehegua, jaipytyvõ haguã opaite ambue rehegua, ha ndaikatúi mba'eve pe checkpoint-gui oĩva opaite mba'e ndepetaihápe.
Peteĩ ramo térã pull request oñeñembosako'i va'ekue oĩva ára ha oĩmbahápe oĩva upépe. Peẽnguéra pull request heñói hag̃ua peẽnguéra renondépe ndaha'éi peteĩ ñemomirimí, ha pe ramo peẽnguéra oñemoirũ va'ekue ndaha'éi avei peteĩ ñemomirimí — eñemoirũ ndéve katu reipotávo opa hag̃ua.
Mba'épa mba'e jepuru ha'e peteĩ repó térã mba'e rekóva?
Peteĩ tembiapo repó oipurú upéicha mbohapyveve (6) model call peteĩ mensaje rehe — hesakã, moñe'ẽ, oheka, epyru — opaite ojegua'a pe model ojeipuru hag̃ua... Pro réraÁpe oñembojegua'aicha oñeñe'ẽva mba'ére añónte, upévare peteĩ porandu oñeñe'ẽva peteĩ tembiapo (file) rehegua oĩ hínaicha peteĩ mbohovái opaite mba'e.
Pe appéva oñe'ẽ tota ha call kuéra papapy rehegua repo tembiapo opa jave.
Tekopa'u puku oñembojegua jave
Pete hendive repósito remba'apo ha'e peteĩ mba'e oñembojerurevoyúva, ndaha'éi peteĩ mba'e oipytyvõkue añónte: pe modelo omohenda peteĩ tendakuéra, omoĩ porã peteĩ tembiapo, oheka pe mbyky, omoĩ porã ambue, ha upéi añeteve omoĩ. Pe mba'e oñembojerurevoyúva ndaha'éi peteĩ mba'e oñemopytendéva — peteĩ mba'e oĩva oñemopotĩva pe repiti omoĩva mba'e ojehechakuaápe g̃uarã — hesakãnte umi mba'e ojehecha hag̃ua: peteĩ mba'e ojejapóva ndaikatúi oñemopytendéva ndaha'éinte, ha upéva ha'e peteĩ mba'e omoĩva mba'e guasu oñeha'ãva.
Oiméramo peteĩ tembiapo omoĩ opaite iñe'ẽme ha oĩ porãnte ojejapóva, Nymbot omoĩ opa, omoĩ ndéve opaite oĩva ha oñe'e avei upéicha. Ndokotevẽi ambue mba'e ndéve.
Reheja avei upéicha oñemba'apo hag̃ua. Emoĩ peteĩ presupuesto remba'apo Settings-pe ha Nymbot omoĩ ambue mba'e peẽme peteĩ mba'e oñeñotỹramo peteĩ mba'e, oñeñotỹ hína pe oñembojegua hag̃ua oñembohéi haguã, ndaha'éi reñe'ẽ mboyve umi mba'e oñeñotỹramo umi guive. Oñemba'apo mboyve peteĩ mba'e ojejapóramo, peteĩ mba'e ojejapóramo omoĩ pe mba'e ojejapóva ha omoĩ pe mba'e oñembojegua hag̃ua, ha omoĩ pe mba'e ojejapóva, ha peẽ omoĩ Stop. Pe “hasta upéva che mba'e omoĩramo” oĩ hína peteĩ límite — peẽme mba'e oĩva ndaha'éi peteĩ mba'e reñotỹramo.
Oñembojegua'a peẽme he'íva. Ára mba'eve ndaikatúi oñembopy'apy, ha mba'eve ndaikatúi oñeipuru ndereikuaáirõ peẽme peteĩ presupuesto oñemohendáva.
Oñondivepa ne rembiapo remimandu'aicha, upévare peteĩ tembiapo oñembojaite añónte ka'aguĩ tembiapo ha'e haguã app oĩhápe. Katu tekove rãypápe oñehendu turned on, the server sends the next legs itself while the app is closed, within the same budget, at most 40 legs and 6 hours, and tells you once when the task is done. To do that it keeps the repository token sealed with a key only it holds while the task is working, and deletes it when the task ends and always within 6 hours. A background task writes to its own branch like any other task.
Upe token rehegua
Pe access token ne rembiapo hape oĩ ha oñondivepa upéicha opavave ne rembiapo, ne end-to-end encrypted settings reheve, upéicha pe server oguerekóramo pe peteĩ mokõiicha oguerekóva ha ndaikatúi omoĩ, ha upéicha oñembohory peteĩ Mbo'ehára moĩmby, oho Nymbot worker-pe peteĩ peteĩ mba'e oikotevẽva rehe, ha ndaikatúi oñembopota oñeñe'ẽ hag̃ua server-pe térã omoheñói relays-pe. Haete pe oñemonguera va'erãva server-pe ha'e hína oñemboja, ikatúvo peteĩ reko opaite mba'e ñembo'e haguã oñeñangareko, upéva oĩta hetaveve 6 ára rehente. Emoĩ hína pe repository reñemongetaiteva, ha eñembo'e haguã nde provider-pe reipyre'ỹvo.
Oñemoĩmína, peteĩ ñe'ẽnguéra (chat) oipusávape pe repositorio oĩhápe, oĩ opaite ára ha ára ne rembiapo reheve ne rembiapápe nde reñemoĩhápe ndereheve ndereikotevẽi nderepaga haguã avei. Pe repositorio nderepaga jave peteĩ ára rehe, pe token nderepaga avei opaite ára rehe. Pe token ndoikói mboyve a servidor ñembosako'iha'e hína pe'ápe oĩva.