Пойгоҳи дониш Код
Кор дар анбори git
Pro метавонад дар дохили яке аз репозиториҳои шумо мисли агенти кодинг кор кунад — файлҳои воқеии шуморо хонда, ва бо имконияти навиштану тағйир додани онҳо.
Ин саҳифа барои роҳат бо мошин тарҷума шудааст. Нусхаи аслии англисӣ версияи татбиқшаванда аст.
Пайваст кардани репозиторий
?git, ё Git чип дар панели абзорӣ, провайдерро пайваст мекунад:
GitHub, GitLab, ё Gitea/Forgejo — ки Codeberg ва инстансияҳои худхобро фаро мегирад. Он
токени шахсии маҳдуд (scoped personal access token), репозиторий ва шохаро (branch) мегирад. Репозиторие, ки
худро дар Nostr эълон мекунад метавон ба ҷои он ҳамчун суроғааш пест кард.
Латмос номи репозиториро нанависед. Токенро гузоред ва интихоб кунед Рӯйхат кунед, ки ин токен ба чӣ метавонад расад: Nymbot аз forge мепурсад, ки он токен чӣ чизҳоро метавонад бинад ва ҷавобро ҳамчун рӯйхате, ки шумо месанҷед, нишон медиҳад. Санҷидан ҳар яке аз онҳоро бо шохаи (branch) пешфарз, ки аллакай пур карда шудааст, пайваст мекунад ва ҳамаи онҳоро ба ин чат мефиристад. Ҳар чизе, ки аллакай пайваст шудааст, ба ҷои пешниҳоди дубора, ҳамчун пайвастшуда нишон дода мешавад. Ин дархост аз дастгоҳи шумо мустақиман ба forge меравад — на тавассути корнамои Nymbot — бинобар ин токен ба ҳеҷ ҷое, ки аллакай намеравад, рафта намекунад. Forge-и худхоб (self-hosted), ки дархостҳои cross-origin-ро рад мекунад, наметавонад дар рӯйхат гузошта шавад; номгузории репозиториро дастӣ нависед ва ҳама чиз ба таври гузашта кор мекунад.
Пас аз пайваст шудан, чип номи репозиторий ва паёмҳоеро, ки бо ... фиристода шудаанд, нишон медиҳад
Модели Pro дар заминаи он репозиторий иҷро шуд.
?git disconnect онро мегирад. Катта кардан дар рӯйхати репозиторияҳо
токенро фаромӯш мекунад, аммо репозиторияро дар он ҷо нигоҳ медорад, ки ҳамчун бетокен қайд шудааст, то шумо тавонед
баъдтар яке навро илова кунед.
Рэпозиториҳо дар Nostr эълон шуданд
Баъзе репозиториҳо худро дар Nostr эълон мекунанд, на танҳо дар forge, бо истифода аз NIP-34 — протоколи дар паси ngit ва gitworkshop. Эълон як чорабинии Nostr мебошад, ки номи лоиҳа, нигоҳдорандагони он, релеҳое, ки патчҳо ва мушкилоти онро ҷамъоварӣ мекунанд ва URL-ҳоеро, ки аз онҳо метавон лоиҳаро нусхабардорӣ (clone) кард, дар бар мегирад. Чорабинии дуюм мегӯяд, ки ҳар як шоха (branch) айни замон ба куҷо ишора мекунад.
Лон кунед naddr ё як nostr:// сурогатиро ба шакли репозиторий ворид кунед ва
фишуред Ҷустуҷӯ кунедNymbot эълонро аз релейҳо мехонад ва шаклро пур мекунад: хости git, ки аз он клони шудааст, репозиторий дар он ҷо ва шохае (branch), ки худи лоиҳа онро мунтазам меҳисобад. Шумо бо вуҷуди ин барои он хост токен илова мекунед, зеро Nostr эълонро мебарад ва сервери git кодро мебарад.
Ин маънои онро дорад, ки қоида танҳо дар он ҷоест, ки он нусхабардорӣ (clone) шудааст. Репозиторие, ки URL-и нусхабардории он дар
GitHub, GitLab, Gitea ё Forgejo — аз ҷумла вариантҳои худхоб (self-hosted) — мавҷуд аст, яке аз онҳоест, ки Nymbot метавонад хонад.
Танҳо тавассути нусхабардорӣ дар... git:// ё ssh барои хондани файлҳо API-и HTTP надорад, ва
Nymbot инро мегӯяд, на ин ки қисман пайваст шавад. Дар ҳолатҳое, ки хост худамӣ (self-hosted) аст, провайдер аз рӯи номаш тахмин карда мешавад ва шумо метавонед пеш аз захира кардан онро ислоҳ кунед.
Репозиторийе, ки ин тариқа илова шудааст, дорои нишон (badge) мебошад ngit дар рӯйхат ва ҷавобҳо онро бо номе, ки эълон мекунад, на бо роҳаш дар оина, фаъол кунед.
Он чӣ кор карда метавонад
Паёми дар контексти репозиторий ҳамчун агенти хурд кор мекунад, на ҳамчун як иҷроии ягона. Модел метавонад папкаҳоро рӯйхат кунад, файлҳоро бихонад ва дар сохтор ҷустуҷӯ кунад, ва сипас бо истифода аз он чизе, ки воқеан ёфтааст, ҷавоб диҳад — бинобар ин саволи «чаро ҳалқаи такрорӣ пеш аз вақт қатъ мешавад» аз рӯи коди шумо ҷавоб дода мешавад, на аз рӯи тахмин дар бораи коде, ки ба коди шумо шабоҳат дорад.
Он шохаеро, ки шумо пайваст кардаед, дар сари ҷории он мебинад.
бо сервер кор мекунад барои чат фаъол карда шудааст, он метавонад инчунин дархост кунад, ки фармонро дар муқобили коди шумо, ба монанди тестҳо, дар сервери Nymbot иҷро кунад. Ҳар як иҷро интизори иҷозати шумо мемонад.
Танзимоти навиштанро фаъол кардан
?git writes on имконияти фиристодани файлҳо (commit), сохтани шохаҳо (branches) ва кушодани дархостҳои pull ё merge-ро илова мекунад. Ба таври пешфарз ғайрифаъол аст ва то он вақте ки ба он ниёз надоред, беҳтар аст ки ғайрифаъол бошад.
Бо ҳуқуқи навиштан, дархости тағйиротиро пешниҳод кунед ва ба ҷои патчи дар чат гузошташуда, шумо шоха (branch) ва дархости кашиданиро (pull request) барои баррасӣ мегиред: ҳар як вазифа дар бораи шохаи худашҲеҷ чиз ба шохаи асосии шумо фиристода намешавад, магар ин ки шумо онро хомӯш накунед, ин ҳамон шохаест, ки шумо пайваст кардед ва дархост намудед.
Таҳрироти як давра ҳамчун як комит барои ҳар як репозиторий, дар анҷоми давра ё вақте ки модел тасмим мегирад, ки як қисми кор анҷом ёфтааст, ворид мешаванд. Агар шумо хоҳед, ки аввал онҳоро бинед, инро фаъол кунед Пеш аз иҷро кардан пурсед барои он репозиторий. Сипас, иҷро тағйироти худро нигоҳ медорад, ҷавоб онҳоро ҳамчун diff нишон медиҳад, ва Апликсонсӣ кардан онҳоро содир мекунад, дар ҳоле ки Паш андохтан онҳоро партофт мекунад. Дархост додан ҳиҷа гаронӣ надорад.
Барои ҳар як вазифа як шоха
бо Ҳар як вазифа шохаи худро мегирад фаъол, ки барои ҳар як репозиторий ҳаст
магар ин ки шумо онро хомӯш накунед, вазифае, ки коммитҳоро ба шохаи худаш менависад, ки номаш
nymbot/ ва як ID-и кӯтоҳ. Nymbot онро аз сари шохаи корӣ месозад,
вақте ки вазифа аввалин commit-и худро иҷро мекунад, бинобар ин вазифае, ки танҳо мехонад, ҳеҷ шохаеро намесозад.
Худи шохаи корӣ дигаргуна намешавад, бинобар ин якчанд вазифа метавонанд ба якҷоягӣ ба ҳамон
репозиторий нависанд, ба ҷои ин ки навбати худро интизор шаванд.
Вақте ки супориш анҷом меёбад, Nymbot чӣ кор мекунад? Вақте ки анҷом ёфт мегӯяд. дархости pull кушоед стандартӣ аст; Пешниҳоди як таслиҳ (merge) тугмаи Merge-ро дар ҷавоб мегузорад; Шохаро тарк кунед ҳич чиз намекунад. Танзимот дар Танзимот, зери Вақте ки шохаи вазифа тамом мешавад, ва ҳар як репозиторий метавонад ба шакли худаш гуногун интихоб кунад. Агар forge барои pull request-ҳо API-е, ки Nymbot метавонад истифода барад, надошта бошад ё аз истифодаи он даст занад, шоха ба ҳолати аввалааш мемонад ва дар ҷавоб ин қайд карда мешавад.
Ҷавоб шохаро бо... Пешниҳоди PR-ро кушоед, Ҳамроҳ кардан ва Нест кардан, ва панели Вазифаҳо (Tasks) онро ҳамроҳ бо вазифа рӯйхат мекунад. Дар ҳоле ки вазифа ҳанӯз дар ҳоли иҷро аст, корт, панели Вазифаҳо ва рӯйхати чизҳое, ки дар ҳоли иҷро ҳастанд, номи шохаро бародар ба он ҷой медиҳанд, ҳоле ки он вуҷуд дорад, дар ҳама дастгоҳҳое, ки ба ҳисоб ворид шудаанд. Вазифае, ки қатъ шудааст ё дар миёна ноком мешавад, шохаи худро боз мегардонад, то онро муттаҳид кард, нест кард ё мисли дигарҳо тоза кард. Муттаҳидшавӣ (merge) як commit-и муттаҳидкунанда тавассути pull request-и худи forge мебошад, ки ба commit-и сабтшуда аз ҷониби Nymbot принс (pinned) шудааст, бинобар ин commit-ҳои наве, ки дар ин вақт ба он ҷо фиристода мешаванд, ҳеҷ гоҳ бе дида муттаҳид намешаванд. Ҳеҷ чиз ҳеҷ гоҳ бо force-push фиристода намешавад. Агар шоха бо шохаи корӣ мунофиқат кунад, ҷавоб пешниҳод мекунад PR-ро кушое, то ҳал кунад ё Аз Nymbot хоҳиш кунед, ки шохаро навсозӣ кунад., ки шохаи корӣро ба он тавассути комити гирдиш (merge commit), ба ҷои ребаз (rebasing), ҳамроҳ мекунад. GitHub ва Gitea ё Forgejo метавонанд ин корро иҷро кунанд; GitLab барои ин API надорад, бинобар ин дар он ҷо шумо онро дар дархости гирдиш (merge request) ҳал мекунед.
Тағйиротҳо дар файлҳои CI ва workflow ҳале ҳоло ҳам интизори баррасии шумо ҳастанд, маҳз ҳамон тавр, ки онҳо бидуни шохаи худашон мешаванд.
Ҷоҳиши шумо сабт мекунад nymbot/ шохаҳое, ки ин аккаунт сохтааст. Вазифаи навбатӣ
дар он репозиторий, ё Шохаҳои Nymbot-ро тоза кунед дар рӯйхати репозиторийҳо,
онҳоеро, ки дархости pull-и онҳо пайваст ё баста шудааст, ё ҳафт рӯз аст ва
ҳеҷ чиз барои пайваст кардан намондааст, мешакӯфад. Шобо (branch) танҳо дар ҳолате
пайваст мешавад, ки то ҳол дар комити Nymbot тамом мешавад, ки сабт карда буд;
бинобар ин, агар касе ба он чизе илова карда бошад, онҳо бе тағйир мемонанд, ва
ҳеҷ шохаи дигаре ҳеҷ гоҳ дигаргун карда намешавад. Он аз дастгоҳи шумо бо
токене, ки аллакай мефиристад, иҷро мешавад; сервер барои иҷрои он дар оянда
ягон токен нигоҳ намедорад.
Интихобро барои иҷрои мустақим ба шохаи корӣ (working branch) хомӯш кунед. Пас аз ин, як вазифа (task) репозиторияро танҳо ба худ хусус мекунад ва вазифаи дуюм дар ҳамон шоха танҳо то вақте ки аввал тамом нашудааст, онро мехонад. Версияҳои кӯҳнаи барнома ин тавр кор мекунанд.
Лотҳои тағйирёфта аз натиҷаи иҷрои дастурро бекор кардан
Ҷавобе, ки ба репозитории шумо навишта шудааст, мегӯяд, ки он ба чӣ таъсир расонидааст: репозиторий, шоха ва ҳама файлҳо. Ин тағйиротҳоро бекор кунед онҳоро бармегардонад — ҳар як аз ин роҳҳо дар комит (commit), ки шоха (branch) пеш аз иҷро дар он қарор дошт, хонда шуда, дар ҳолати аввала комит мешавад. Вазифае, ки дар бораи шохаи худаш шохаи корӣро танҳо гузоштам, бинобар ин дар он ҷо чизе барои баргардон кардан нест: Нест кардан шохаашро бардор мекунад ба ҷои ин.
Ин баргардонидан аст, на азнавдисозӣ. Ҳеҷ чиз намешавӣ ва таърих азнав нанавишта мешавад: он чизе ки Nymbot анҷом дод, дар журнал мемонад, танҳо он дигар ҳолати шоха (branch) нест. Ҳар касе, ки дар ин фосила маълумотро гирифта бошад, нусхаи корӣ дорад, ки ҳанӯз ҳам кор мекунад.
Он ҳеҷ чиз наметавонад. Бекор кардани он ба модел таъсир намерасонад, бинобар ин он кредитро сарф намекунад — токени дастрасӣ бо ҳамон як дархост, ҳамон тавре ки бо ҳамаи дигарҳо меравад, ҳамроҳ мешавад ва ҳеҷ чиз дар бораи чекпойнт дар ҳеҷ ҷо ба истифода намебарад, мавқеи он танҳо дар дастгоҳи худи шумост.
Шоха ё дархости pull, ки дастур кушода шудааст, рӯйхат шуда, дар ҳамон ҷо боқӣ мемонад. Пайдо кардани pull request-и касе аз номи ӯ идомаи кор нест ва нест кардани шохае, ки дигарон онро fetch кардаанд ҳам идомаи кор нест — агар мехоҳед онҳо нест шаванд, ин корро худатон иҷро кунед.
Вазифаи репозиторий чанд арзиш дорад?
Вазифаи repo то шаш дафъа ба модел муроҷиат мекунад — нигоҳтан, хондан, ҷустуҷӯ ва ҷавоб додан — ки ҳар кадоми онҳо бо нархи модели муайян ҳисоб карда мешавад Нархи ProТанҳо барои зангҳои воқеан истифодашуда пардохт сурат мегирад, бинобар ин ҷавоб ба савол аз як файл тақрибан ба андозаи нархи як ҷавоби оддӣ меарзад.
Барнома пас аз ҳар як вазифаи репозиторий ҷамъ ва шумораи даъватҳоро гузориш медиҳад.
Вақте ки вазифа ҷой надорад
Вазифаи репозиторий як давра (loop) аст, на як ҷавоби ягона: модел рӯйхати директорияро меорад, файлро мехонад, дар дарахт (tree) ҷустуҷӯ мекунад, файли дигарро мехонад ва танҳо пас аз ин менависад. Ин давра сатҳи иҷозат додан дорад — шумораи даъватҳоеро, ки кредитҳои захирашудаи ҷавоб барои онҳо пешбинӣ шудаанд — зеро агенти бемаҳдуд ин ҳисоби бемаҳдуд аст.
Вақте ки супориш квотаи худро дар ҳоле ки кор ҳанӯз ба анҷом нарасидааст истифода мебарад, Nymbot корро қатъ мекунад, он чизеро, ки дорад, ба шумо медиҳад ва дар бораи ин хабар медиҳад. Ҳеҷ чиз иловагӣ напулида мешавад.
Шумо инчунин метавонед идома додани онро иҷозат диҳед. Дар Танзимот буҷаи идомадиҳандаро муайян кунед ва вақте ки супориш тамом мешавад, Nymbot аз ҳамон тавозун квотаи дигар мехарад ва маҳз аз ҳамон ҷое, ки қатъ шуда буд, идома медиҳад, на танҳо аз аввали репозиторийро дубора мехонад. Он марҳила ба марҳила пеш меравад, ҳар як марҳила хароҷоти худро менамояд ва дар лаҳзае, ки буҷа сарф мешавад, супориш анҷом меёбад ё шумо тугмаи "Stop"-ро пахш мекунед, қатъ мегардад. Интихоби «то вақте ки тавозунам тамом мешавад» то ҳол ҳам як маҳдудият мебошад — ин тавозуни шумост, на рақаме, ки шумо ворид кардаед.
Танҳо барои иҷрои ҷавобе, ки шумо талаб кардед, раванд идома меёбад ва ҳеҷ чиз зиёдтар аз он сарф намешавад, магар ин ки шумо буҷет муайян карда бошед. Дар ҳолати оддӣ, раванд қатъ мешавад ва ба шумо хабар дода мешавад.
Одатан дастгоҳи шумо ҳар як марҳиларо мефиристад, бинобар ин супориш танҳо вақте иҷро мешавад, ки замима кушода аст. Бо равандҳои заминавӣ вақте ки фаъол мешавад, сервер қадамҳои навбатиро мефиристад, онҳо худашонро дар ҳоле ки барнома бастааст иҷро мекунанд, дар доираи ҳамон буҷет, аз ҷумла то 40 қадам ва 6 соат, ва пас аз анҷоми вазифа як бор ба шумо хабар медиҳад. Барои ин, он то вақте ки вазифа иҷро мешавад, токени репозиторияро бо калиде, ки танҳо худаш дорад, маҳкам нигоҳ медорад ва пас аз анҷоми вазифа онро нест мекунад, ва ҳамеша дар доираи 6 соат. Вазифаи пасграундӣ мисли ҳар як вазифаи дигар ба шохаи (branch) худаш менависад.
Дар бораи он нишона
Токени дастрасӣ дар дастгоҳҳои шумо нигоҳ дошта мешавад ва дар дохили танзимоти шифршудаи аз ту то ту байни онҳо ҳамоҳанг карда мешавад, бинобар ин сервер танҳо нусхаи пӯшидаеро нигоҳ медорад, ки он наметавонад хонад. Он аз ҷониби... шабакаи дастгоҳро тоза кардан, ба корнамои Nymbot бо ҳар як дархост меравад ва ҳеҷ гоҳ дар сервер ба таври хонандааш захира намешавад ё ба релеҳо нашр намегардад. Танҳо дар вақте ки сервер онро нигоҳ медорад, он муҳрдор аст, дар ҳоле ки a иҷро дар замина он, ки шумо фаъол кардед, на бештар аз 6 соат кор мекунад. Онро танҳо ба ҳамон репозиторие, ки истифода мебаред, маҳдуд кунед ва пас аз анҷом додани кор, онро дар провайдери худ бекор кунед.
Азбаски он ҳамоҳанг мешавад, чати истифодабарандаи репозиторий дар ҳар як дастгоҳе, ки шумо ба он ворид мешавед, кор мекунад, бидуни пайваст кардани дубора. Канда кардани репозиторий дар як дастгоҳ токенро дар дигар дастгоҳҳо низ тоза мекунад. Токен ҳеҷ гоҳ ба сервер иҷроконтейнери