Kennisbank De code
Werken in een git-repository
Pro kan werken binnen een van uw repositories zoals een codering agent doet - het lezen van uw feitelijke bestanden, en met schrijft op, het wijzigen van hen.
Deze pagina is voor het gemak automatisch vertaald. Het Engelse origineel is de versie die van toepassing is.
Een repository aansluiten
?git, of de Ga naar Chip in de werkbalk, verbindt een provider: GitHub, GitLab, of Gitea/Forgejo – die Codeberg en zelfhosted instanties dekt.
Zelf aankondigen op Nostra Het kan in plaats daarvan als adres worden geplaatst.
U hoeft de naam van het repository niet in te voeren. Pas het token in en kies Lijst wat deze token kan bereiken: Nymbot vraagt de forge wat die token kan zien en toont het antwoord als een lijst die u controleert. Checking verbindt elk met zijn standaardtak al ingevuld, en plaatst ze allemaal in deze chat. Alles wat al verbonden is, wordt als zodanig weergegeven in plaats van een tweede keer aangeboden. Dat verzoek gaat van uw apparaat rechtstreeks naar de forge - niet via de Nymbot worker - dus de token reist niet waar het niet al gaat. Een zelfhosted forge die weigert kruisverwijzingsverzoeken kan gewoon niet worden vermeld; typ de repository in met de hand en alles anders werkt hetzelfde.
Eenmaal aangesloten toont de chip de naam van het repository en berichten die met een
Voor het model geselecteerde run in de context van dat repository.
?git disconnect Verwijder het dan. ontkoppeld in de repository-lijst vergeet de token, maar houdt de repository er, gemarkeerd als geen token, zodat u later een nieuwe kunt toevoegen.
Repositories aangekondigd op Nostr
Sommige repositories kondigen zichzelf aan op Nostr in plaats van alleen op een forge, met behulp van Nieuw 34 Het protocol achter Nooit De aankondiging is een Nostr-evenement met de naam van het project, de onderhouders, de relays die zijn patches en problemen verzamelen, en de URL's waaruit het kan worden gekloond.
Paste een naddr of a nostr:// adres in het repositoryformulier en pers Kijk het op. Nymbot reads the announcement off the relays and fills the
form in: the git host it is cloned from, the repository there, and the branch the project
itself says is current. You still add a token for that host, because Nostr carries the
announcement and the git server carries the code.
Een repository waarvan de clone-URL op GitHub, GitLab, Gitea of Forgejo is - zelf gehost - is een Nymbot kan lezen. git:// of ssh heeft geen HTTP API om bestanden door te lezen, en Nymbot zegt dat in plaats van half-connecting.
Een op deze manier toegevoegde repository is badged Nooit in de lijst, en antwoorden noemt het door de naam die het aankondigt in plaats van door zijn pad op de spiegel.
Wat het kan doen
Een bericht in repo-context loopt als een kleine agent in plaats van een enkele voltooiing. het model kan mappen lijsten, bestanden lezen en de boom zoeken en vervolgens antwoorden met behulp van wat het daadwerkelijk heeft gevonden - dus "waarom geeft de retry loop vroeg op" wordt beantwoord uit uw code, niet uit een vermoeden over de code die eruit ziet als de jouwe.
Het ziet de tak die je hebt verbonden, op zijn huidige hoofd.
met De server loopt Als de chat is ingeschakeld, kan het ook vragen om een opdracht tegen uw code, zoals de tests, op een Nymbot-server uit te voeren.
Omdraaien schrijft
?git writes on voegt de mogelijkheid toe om bestanden te binden, takken te maken en trek- of fusieverzoeken te openen. De standaard is uitgeschakeld en het is de moeite waard om uit te laten totdat u het wilt.
Met schrijft op, vraag om een wijziging en je krijgt een tak en een pull verzoek om te beoordelen in plaats van een patch geplaatst in de chat: elke taak werkt op Een tak van zichzelfNiets wordt naar uw standaardtak geduwd tenzij u dat uitschakelt, dat is de tak die u hebt aangesloten en u hebt om het gevraagd.
De bewerkingen van een run gaan in als één commit per repository, aan het einde van de run of wanneer het model besluit dat een stuk werk gedaan is. Vraag voordat u zich bezighoudt De run houdt vervolgens zijn wijzigingen terug, het antwoord toont ze als een diff, en toepassen Verplicht hen, terwijl ontslag Gooi ze weg; het toepassen kost niets.
Een tak voor elke taak
met Elke taak krijgt zijn eigen tak op, die het is voor elk repository tenzij je het uitschakelt, een taak die schrijft verbindt aan een tak van zichzelf, genaamd
nymbot/ Nymbot maakt het van het hoofd van de werkvloer wanneer de taak zijn eerste commit maakt, dus een taak die alleen leest maakt geen tak helemaal.
Wanneer de taak is voltooid, doet Nymbot wat Wanneer gedaan zegt het. Open een pull verzoek Het is een default; Aanbiedingen voor een merge laat een Merge-knop achter op het antwoord; Verlaat de tak doet niets meer. De standaard is ingesteld in Settings, onder Wanneer een taak’s tak is voltooidAls de forge geen API heeft voor trekverzoeken die Nymbot kan gebruiken, of het een weigert, wordt de tak gelaten zoals het is en het antwoord zegt dat.
Het antwoord toont de tak met Open PR, gaan En Delete, en het taakpaneel vermeldt het met de taak. Terwijl de taak nog loopt, zijn kaart, het taakpaneel en de lijst met wat loopt de naam van de tak zodra het bestaat, op elk apparaat dat is ingelogd bij het account. Een taak die wordt gestopt of mislukt gedeeltelijk nog steeds haar tak terug, zodat het kan worden samengevoegd, verwijderd of opgeruimd als elke andere. Een fusie is een fusie commit via de forge’s eigen pull verzoek, gekoppeld aan de commit Nymbot opgenomen, zodat nieuwe commits geduwd daar in de tussentijd nooit worden samengevoegd onzichtbaar. Niets wordt ooit geduwd. Als de tak in conflict is met de werkende tak, biedt het antwoord Open de PR om op te lossen of Vraag Nymbot om de tak te updatenGitHub en Gitea of Forgejo kunnen dat doen; GitLab heeft er geen API voor, dus daar los je het op in de fusie-aanvraag.
Wijzigingen aan CI- en workflow-bestanden wachten nog steeds op uw beoordeling, net zoals ze zonder een eigen tak.
Uw apparaat herinnert zich de nymbot/ De volgende taak op dat repository, of Nymbot branches schoonmaken in de repository-lijst, verwijdert degenen wiens trekverzoek is samengevoegd of gesloten, of die zeven dagen oud zijn met niets over om te fuseren. Een tak wordt alleen verwijderd als het nog steeds eindigt bij de Commit Nymbot opgenomen, dus iemand heeft geduwd naar sinds is alleen achtergelaten, en geen andere tak wordt ooit aangeraakt. Het loopt van uw apparaat met de token die het al verzendt; de server bewaart geen token om het later te doen.
Schakel de optie uit om rechtstreeks te binden aan de werkvloer. Een taak heeft dan het repository voor zichzelf, en een tweede op dezelfde tak leest het alleen totdat de eerste is voltooid.
Onderzoeken wat een run veranderde
Een reactie die naar uw repository schreef, zegt wat het aanraakte: het repository, de tak en elk bestand. Ondo deze veranderingen zet ze terug - elk van die paden wordt gelezen op de opdracht die de tak stond op voor de run en toegezegd als het was. Een tak van zichzelf Hij heeft de werkende tak alleen achtergelaten, dus er is niets om terug te zetten: Delete Verwijder de tak in plaats daarvan.
Niets wordt verwijderd en geen geschiedenis wordt opnieuw geschreven: wat Nymbot deed, blijft in het logboek, het is gewoon niet langer de staat van de tak.
Undoing raakt geen model, dus het besteedt geen credits - de toegang token reist met dat ene verzoek zoals het doet met elke andere, en niets over het checkpoint wordt ergens opgeslagen dan je eigen apparaat.
Het sluiten van iemands trekverzoek namens hen is geen annulering en het verwijderen van een tak die andere mensen misschien hebben opgehaald is niet hetzelfde - doe die zelf als je wilt dat ze weg zijn.
Wat kost een repo-taak
Een repo-taak maakt gebruik van maximaal zes modeloproepen per bericht - kijken, lezen, zoeken, antwoorden - elk gefactureerd bij het geplaveide model Voor de prijsAlleen de daadwerkelijk gebruikte oproepen worden in rekening gebracht, dus een vraag beantwoord uit één bestand kost over wat een gewoon antwoord kost.
De app rapporteert het totaal en het aantal oproepen na elke repo-taak.
Wanneer een taak uit de kamer loopt
Een repository-taak is een loop, geen enkel antwoord: het model vermeldt een directory, leest een bestand, zoekt de boom, leest een andere en schrijft pas dan. Die loop heeft een toelating - een aantal modellen noemt het antwoord gereserveerde credits voor - omdat een onbeperkte agent een onbeperkte rekening is.
Wanneer een taak zijn toelating gebruikt met werk dat nog te doen is, stopt Nymbot, geeft u wat het heeft en zegt dat.
U kunt het ook laten doorgaan. Stel een vervolgbudget in Instellingen en Nymbot koopt een andere toelage uit hetzelfde saldo wanneer een taak loopt, het ophalen precies waar het gestopt is in plaats van het opnieuw lezen van het repository vanaf het begin. Het gaat één been per keer, elk been zegt wat het kost, en stopt op het moment dat het budget wordt besteed, de taak is voltooid, of u drukt op Stop.
De standaard is om te stoppen en u te vertellen. niets gaat door, en niets wordt besteed buiten het antwoord dat u hebt gevraagd, tenzij u een budget hebt ingesteld.
Normaal gesproken stuurt uw apparaat elk been, zodat een taak alleen wordt uitgevoerd terwijl de app open is. achtergrond runs ingeschakeld, stuurt de server de volgende benen zelf terwijl de app gesloten is, binnen hetzelfde budget, op maximaal 40 benen en 6 uur, en vertelt u eenmaal wanneer de taak is voltooid. Om dat te doen, houdt het de repository token verzegeld met een sleutel die alleen wordt gehouden terwijl de taak werkt, en verwijdert het wanneer de taak eindigt en altijd binnen 6 uur.
Over dat teken
De toegang token wordt bewaard op uw apparaten en synchroniseert tussen hen binnen uw end-to-end gecodeerde instellingen, dus de server houdt alleen een verzegelde kopie die niet kan worden gelezen. apparaat wipe, reist naar de Nymbot worker met elke verzoek, en is nooit opgeslagen leesbaar server-side of gepubliceerd aan relays. achtergrond run u hebt ingeschakeld werkt, voor maximaal 6 uur. Omvat het naar het ene repository dat u van plan bent te gebruiken, en herroep het bij uw provider wanneer u klaar bent.
Omdat het synchroniseert, werkt een chat die het repository gebruikt op elk apparaat waarop u zich aanmeldt zonder het opnieuw aan te sluiten. Server RunHet is een container.