
RepoPilot Inachofanya
RepoPilot ni kidhibiti kinachopangishwa na mtumiaji mwenyewe kwa uendelezaji wa programu unaoendeshwa na uthibitishaji. Hubadilisha GitHub Issues zilizochaguliwa na pull request za hazina hiyo hiyo kuwa mtiririko wa kazi wenye mipaka unaojumuisha ukaguzi wa kanuni, utengenezaji wa majaribio, uzalishaji upya wa hitilafu, urekebishaji wa msimbo, uthibitishaji huru, na uchapishaji wa hiari wa tawi la marekebisho pamoja na pull request ya rasimu.
Mradi huu hutumia OpenAI Codex SDK kuelewa kanuni za hazina, kubuni majaribio yanayoongozwa na mahitaji, na kupendekeza mabadiliko ya msimbo wa uzalishaji. Kiendeshaji tofauti cha Docker hutekeleza majaribio dhidi ya nakala za hazina zilizobandikwa. Kidhibiti huchapisha matokeo tu pale ushahidi uliosanidiwa na ukaguzi wa sera unapopita.
RepoPilot haiunganishi au kupeleka mabadiliko kiotomatiki. Wasimamizi huchagua kazi, hukagua ushahidi, na huhifadhi uamuzi wa mwisho wa kuunganisha.
Jinsi mtiririko wa kazi unavyowekewa mipaka
- RepoPilot hubandika commit za msingi na za kichwa zinazohusika.
- Hupakia sera zinazoaminika kutoka tawi la msingi, ikijumuisha mwongozo unaotumika wa
AGENTS.md. - Codex hukagua mabadiliko na kupendekeza majaribio au watahiniwa wa marekebisho.
- Majaribio yaliyotengenezwa hugandishwa kabla ya msimbo wa uzalishaji kurekebishwa.
- Kiendeshaji tofauti hutekeleza majaribio dhidi ya nakala huru.
- Kidhibiti hukagua vitambulisho thabiti vya majaribio, alama za vidole za hitilafu, njia zilizolindwa, matokeo ya sera, na mipaka iliyosanidiwa.
- Matokeo yanayostahiki yanaweza kuwekwa kwenye tawi tofauti na kuwasilishwa kama pull request ya rasimu kwa ukaguzi wa binadamu.
Kwa pull request, RepoPilot hulinganisha tabia ya msingi na ya kichwa. Kwa Issues, kwanza huhitaji msingi wa awali unaofaulu, kisha hujaribu kuzalisha tena kasoro iliyoripotiwa kwa kutumia jaribio jipya lililogandishwa kabla ya kupendekeza marekebisho.
Vipengele Muhimu na Upeo wa Sasa
- Ingizo zilizobandikwa: SHA za msingi na kichwa, muhtasari wa kichwa na mwili, ukaguzi wa uhalali wa taarifa, na kughairi husaidia kuzuia uthibitishaji dhidi ya ingizo zilizopitwa na wakati.
- Kanuni zinazoaminika za hazina: Sera tuli huunga mkono ukaguzi halisi pamoja na kanuni za miito ya JavaScript au TypeScript. Faili za
AGENTS.mdzilizowekwa ndani ya tawi la msingi zinaweza kuongoza ukaguzi wa kisemantiki. - Utekelezaji huru wa majaribio: Kidhibiti hukabidhi utekelezaji kwa kiendeshaji tofauti cha Docker badala ya kutegemea tathmini ya modeli.
- Mifumo mingi ya majaribio: Toleo la 1.3.0 linaunga mkono test runner ya Node, Vitest, pytest, majaribio ya Go, na ushahidi wa JUnit XML unaoendana.
- Usaidizi wa monorepo: Mipangilio inaweza kutumia saraka za kazi, amri nyingi za majaribio zenye majina, na huduma za utegemezi zinazoweza kutupwa.
- Marekebisho yenye mipaka: Majaribio, marudio, miito ya modeli, tokeni, utekelezaji wa kazi, na muda wa jumla wa kazi vinaweza kuwekwa mipaka.
- Ripoti zinazoweza kufuatiliwa: Ripoti za JSON za atomiki na muhtasari mfupi wa Markdown huhifadhi matokeo, hali za majaribio, viraka, majaribio, na hali ya uchapishaji.
- Urejeshaji wa uendeshaji: Amri za kazi zinaunga mkono ukaguzi, kughairi, kuendelea, na kuendesha tena. Mtiririko wa
recoverhushughulikia mabaki ya ajali yanayomilikiwa kupitia uhakiki wa awali na usafishaji uliothibitishwa.
Utekelezaji wa sasa unalenga hazina za umma zinazotegemea maandishi zenye hadi faili 10,000 au MiB 16. Hautoi utekelezaji wa pull request kutoka fork, majaribio ya mwisho hadi mwisho ya kivinjari, dashibodi iliyopangishwa, webhooks, foleni iliyosambazwa, usakinishaji wa utegemezi kiotomatiki, uunganishaji kiotomatiki, au upelekwaji.
Mahitaji ya Awali
Unaweza kupakua toleo la RepoPilot 1.3.0 linalobebeka kwa Linux, Windows, au macOS ikiwa hutaki kusakinisha Node.js. Kwa usakinishaji kutoka kwenye msimbo chanzi, andaa yafuatayo:
- Node.js 22, ambalo ndilo toleo linalopendekezwa
- npm na Git
- Docker iliyosanidiwa kuendesha kontena za Linux
- Ufunguo wa API wa OpenAI wakati ukaguzi, upangaji wa majaribio, au marekebisho yanayotumia Codex yamewezeshwa
- Tokeni ya GitHub wakati ufikiaji wa GitHub au uchapishaji unahitajika
Tumia matoleo yanayolingana ya kidhibiti cha 1.3.0 na picha ya Agent. Picha za Docker na utegemezi wa mradi lazima ziandaliwe mapema kwa sababu kontena za majaribio hazina ufikiaji wa mtandao kwa chaguo-msingi.
Sakinisha RepoPilot kutoka kwenye Msimbo Chanzi
1. Sakinisha, thibitisha, na jenga mradi
Kutoka kwenye hazina ya RepoPilot iliyoklonwa, sakinisha utegemezi uliofungwa, endesha ukaguzi na majaribio ya mradi, kisha jenga kidhibiti:
npm ci
npm run check
npm test
npm run build
Majaribio ya RepoPilot yenyewe ya uendelezaji hutumia API, mawakala, waendeshaji, na vifaa vya majaribio vilivyoundwa kwa uigaji. Hayatumii salio la modeli, hayazindui Docker, wala hayaandiki maudhui ya GitHub.
2. Unda usanidi wa ndani
Nakili usanidi wa mfano uliotolewa:
cp repopilot.example.json config.local.json
Watumiaji wa PowerShell wanaweza kutumia Copy-Item badala ya cp. Hariri config.local.json ili kubainisha hazina lengwa na amri ya majaribio inayoaminika. Weka usanidi huu wa ndani nje ya nakala za hazina zinazokaguliwa.
Usanidi wa mfano huzima ukaguzi wa wakala, marekebisho, na uchapishaji. Wezesha uwezo huu mmoja mmoja tu baada ya uthibitishaji wa ndani kufanya kazi.
3. Jenga picha ya Codex Agent
Jenga kontena la Agent unapotaka ukaguzi wa kisemantiki, upangaji wa majaribio, au marekebisho yanayotumia Codex:
docker build -f Dockerfile.agent -t repopilot-agent:local .
Weka OPENAI_API_KEY katika mazingira ya kidhibiti. Ni kontena la Agent pekee linalopokea ufunguo huo. Vitambulisho vya ChatGPT vya Desktop havitumiki tena. Kitambulisho cha GitHub kinachotolewa kupitia GITHUB_TOKEN au GH_TOKEN hubaki kwenye kidhibiti.
Endesha Ukaguzi Wako wa Kwanza wa Pull Request ya Ndani
Anza kwa ulinganisho wa ndani kati ya tawi la msingi na tawi la kipengele:
npm run dev -- check --config config.local.json --repo /path/to/project --base main --head feature
Badilisha /path/to/project, main, na feature kwa hazina yako ya ndani na marejeleo yake. check ya ndani haichapishi mabadiliko wala kuhariri nakala ya chanzo.
Jinsi RepoPilot inavyoweka kategoria za majaribio yaliyotengenezwa
Matukio yaliyotengenezwa huainishwa kuwa regression au new_behavior. regression ndiyo chaguo-msingi.
- Ushahidi wa regression: Kesi ileile ya jaribio iliyotekelezwa inafaulu kwenye marekebisho ya msingi na inashindwa kwenye marekebisho ya kichwa.
- Ushahidi wa tabia mpya: Kesi inashindwa kwenye msingi na inafaulu kwenye kichwa, na jaribio lililopendekezwa lina nukuu halisi ya hitaji kutoka kwenye kichwa au mwili wa pull request.
- Ukaguzi unahitajika: Marekebisho yote mawili yanashindwa, kesi imeachwa au haipo, utekelezaji unashindwa, ugunduzi wa majaribio unabadilika, au matokeo ya majaribio ya awali yanabadilika bila kutarajiwa.
Lebo iliyotolewa na modeli haiwezi kubatilisha ushahidi wa runner. Regression lazima zijirudie zikiwa na vitambulisho na alama za vidole zinazofanana za majaribio yaliyoshindwa kabla hazijastahiki kurekebishwa kiotomatiki.
Kagua Pull Requests Mfululizo
Watcher ya RepoPilot huchunguza pull requests za hazina hiyo hiyo ambazo si rasimu, na kuwatenga matawi yake ya autofix. Endesha mzunguko mmoja wa uchunguzi unapothibitisha usanidi:
npm run dev -- watch --config config.local.json --once
Baada ya kuthibitisha matokeo, endesha watcher mfululizo:
npm run dev -- watch --config config.local.json
Uchapishaji ni wa hiari na unahitaji publish=true. Tokeni ya GitHub lazima iwe na ruhusa za kuandika Contents na Pull requests za hazina. Uchapishaji huunda matawi tofauti ya autofix na pull requests za rasimu; kamwe hausukumi kwa nguvu wala kuunganisha kiotomatiki.
Kabla ya kuchapisha, RepoPilot hukagua tena SHA za commit na maelezo ya pull request. Tawi au pull request iliyopo ya urekebishaji inaweza kutumika tena tu wakati mzazi wake na mti wake vinafanana na matokeo yaliyothibitishwa.
Rudia na Rekebisha Issue ya GitHub
Urekebishaji wa Issue huchaguliwa wazi na msimamizi. Ili kuchakata Issue 123, endesha:
npm run dev -- fix --issue 123 --config config.local.json
Mtiririko wa Issue hupitia hatua kuu tatu:
- Weka msingi: Majaribio yaliyopo lazima yafaulu kwenye marekebisho lengwa yaliyobandikwa.
- Rudia hitilafu: RepoPilot hutengeneza na kugandisha jaribio linalohusishwa na maelezo ya Issue. Jaribio jipya lazima lirudie hitilafu iliyoripotiwa.
- Jaribu na thibitisha urekebishaji: Codex hupendekeza mibadala ya msimbo, na runner huru hukagua jaribio lililogandishwa lililotengenezwa, seti ya awali ya majaribio, na sera ya hazina.
Ushahidi usiotosha, usio thabiti, au usiokamilika husimamisha mtiririko kwa ajili ya ukaguzi wa binadamu. RepoPilot haichagui Issues kiotomatiki, haifafanui ramani ya bidhaa, wala haiunganishi urekebishaji unaotokana.
Ongeza Sera Inayoaminika ya Hazina
Wasilisha .repopilot/policy.json kwenye tawi lengwa la msingi. Kwa mfano, kanuni ifuatayo inakataa majaribio ya JavaScript na TypeScript yaliyolemazwa:
{
"rules": [
{
"id": "no-disabled-tests",
"kind": "forbid-call",
"extensions": [".ts", ".js"],
"callee": "test.skip",
"message": "Keep regression tests enabled.",
"severity": "error"
}
],
"exceptions": []
}
Aina za kanuni tuli zinazoungwa mkono ni pamoja na forbiddenText, forbid-call, na require-call. Kanuni za miito hukagua miito ya moja kwa moja, miito iliyohitimu, na ufikiaji wa sifa za mifuatano. Hazitatui majina mbadala wala kufanya uchanganuzi wa programu nzima. Kanuni halisi zinaweza pia kulinganisha maoni.
Vighairi vya sera vinaweza kubainisha ruleId, njia kamili, sababu, muhuri wa muda wa mwisho wa matumizi wa UTC, na ushahidi kamili wa hiari. Vighairi huaminika tu vinapotoka kwenye sera ya msingi, na vighairi vilivyoisha muda wake havizuii matokeo.
Kanuni zinazohitajika na zilizokatazwa zinapoingiliana, ukaguzi husimamishwa. Pull requests zinazorekebisha faili za kanuni zinazoaminika zinahitaji ukaguzi wa msimamizi na haziwezi kuidhinisha marekebisho yao wenyewe.
Sanidi Ushahidi wa Majaribio kwa Uangalifu
Reporter chaguomsingi ni node na hutumia node --test. Jenga RepoPilot kwanza ili reporter inayoaminika ipatikane. Kwa Vitest, sanidi reporter=vitest na utumie amri ya wazi ya vitest run katika image inayoaminika yenye vitegemezi vilivyobandikwa.
- Bendera za reporter ni za controller, si za amri ya majaribio isiyoaminika.
reporter=commandhukusanya matokeo pekee na haiwezi kusaidia uthibitishaji au uchapishaji.- Kukosa runner hutoa ukaguzi wa sera pekee, huku majaribio yakirekodiwa kama
not_run. - Majaribio sifuri, majaribio yote yaliyorukwa, ripoti zenye muundo usio sahihi, na vitambulisho vya majaribio vilivyokosekana kamwe hazihesabiwi kuwa zimefaulu.
- Huduma za vitegemezi zilizosanidiwa hutumia mtandao wa ndani wa Docker unaoweza kutupwa.
Kwa majaribio yaliyotengenezwa yanayohusisha exports ambazo hazipo kwenye marekebisho ya msingi, kagua exports hizo ndani ya kesi za majaribio zinazotekelezwa. Export iliyokosekana haipaswi kuvuruga import ya kiwango cha juu kabla ushahidi uliopangwa haujakusanywa.
Dhibiti Kazi Zinazoendelea na Zilizokamilika
RepoPilot huhifadhi ripoti na snapshots chini ya .repopilot-data. Kila kazi hupokea ushahidi wa JSON na muhtasari wa Markdown. Utekelezaji unaorudiwa huhifadhi ushahidi wa awali kwa kutumia majina kama TASK.execution-N.json.
Kagua na ghairi kazi
npm run dev -- tasks list --config config.local.json --status running --limit 20 --offset 0
npm run dev -- tasks show TASK_ID --config config.local.json --format markdown
npm run dev -- tasks cancel TASK_ID --config config.local.json
Kuorodhesha, kuonyesha na kughairi majukumu bado kunawezekana wakati kidhibiti kinashikilia kufuli la uandishi. Kughairi huunda ombi endelevu linalokaguliwa wakati wa uthibitishaji na uchapishaji. Hakuwezi kutendua uandishi wa GitHub ambao tayari umekamilika.
Endeleza au endesha kazi tena
npm run dev -- tasks resume TASK_ID --config config.local.json
npm run dev -- tasks rerun TASK_ID --config config.local.json
resume huhifadhi utambulisho wa jukumu, usanidi na vikomo. Kulingana na hali, huanzisha upya uthibitishaji au huendelea na uchapishaji wa jukumu ambalo tayari limethibitishwa. rerun huunda jukumu lililounganishwa kwa kutumia commit za awali zilizowekwa na usanidi wa sasa, huku ikihifadhi ripoti za awali na alama za kughairi.
Majukumu ya kudumu, ya mwisho au yaliyomaliza majaribio yote yanahitaji kuendeshwa tena. Uchezaji wa marudio pia unahitaji hazina ya ndani au akiba ya Git iliyorekodiwa, na ingizo za pull request hukaguliwa tena wakati wa uchezaji wa marudio.
Vidokezo vya Kina vya Uendeshaji
Tumia vikomo vya tahadhari
Sanidi thamani zenye mipaka kwa muda wa kuisha wa jukumu, maxCalls, maxAttempts, maxTaskExecutions na matumizi ya tokeni. Thamani ya maxTokens hukokotolewa kutokana na matumizi yaliyoripotiwa baada ya kila mwito wa modeli, hivyo mwito mmoja unaweza kuizidi. Haipaswi kuchukuliwa kuwa kikomo madhubuti cha matumizi ya fedha.
Shughulikia hitilafu za mazingira kando
RepoPilot huainisha hitilafu na kutumia majaribio ya marudio yenye mipaka katika viwango vya awamu kwa matatizo yanayofaa ya mazingira. Majaribio yasiyotulia, ugunduzi unaobadilika au ushahidi usiokamilika huzuia urekebishaji wa kiotomatiki badala ya kuchukuliwa kuwa kasoro za msimbo zilizothibitishwa.
Linda mnyororo wa ushahidi
Waombaji wa urekebishaji lazima wahifadhi utambulisho wa majaribio yaliyotengenezwa na wapitishe base ya awali, head ya awali na visa vilivyotengenezwa kama mtiririko wa kazi unavyohitaji. Majaribio, manifesti, usanidi, sera na njia zilizofichwa zilizopo zinalindwa. Ukaguzi wa sera tuli na wa kisemantiki huendeshwa tena baada ya urekebishaji unaopendekezwa.
Rejesha kwa tahadhari baada ya kuanguka
Toleo la 1.3.0 linajumuisha mtiririko wa kazi wa recover kwa ajili ya kuhakiki na kusafisha kwa uwazi rasilimali zinazomilikiwa na majukumu yaliyokatizwa. Thibitisha kuwa mchakato wa zamani umesimama kabla ya kuondoa kufuli zilizobaki. Kufuli na rasilimali za urithi zinaweza kuhitaji ukaguzi wa mwongozo.
Elewa mpaka wa uaminifu
Kidhibiti, ripoti na kiendeshaji hufanya kazi kwenye mashine au worker yako, lakini miito ya modeli ya Codex hutumia huduma za OpenAI na kutuma maandishi teule ya hazina pamoja na muktadha wa jukumu. Kujihudumia RepoPilot hakutoi uendeshaji wa modeli nje ya mtandao.
Uendeshaji wa majaribio hutoa ushahidi wa kihandisi, si uthibitisho usioweza kuchezewa dhidi ya msimbo hasidi. Symlink, submodule, jozi na njia zinazogongana kwa herufi kubwa na ndogo hushindwa kwa usalama. Kagua mwongozo wa usalama wa mradi kabla ya kuendesha hazina zisizoaminika.
Hitimisho
RepoPilot huunganisha ukaguzi na urekebishaji unaosaidiwa na Codex pamoja na ingizo zilizowekwa, majaribio yaliyogandishwa, uendeshaji huru wa Docker, sera ya hazina, majaribio ya marudio yenye mipaka na ushahidi unaodumu. Anza na check ya ndani isiyochapisha, thibitisha usanidi wa ripota na sera yako, kisha ongeza ufuatiliaji, urekebishaji wa Issue na uchapishaji wa pull request za rasimu pale tu ushahidi unapokidhi viwango vya timu yako.
