−25%

kwa Windows ya mwaka, hadi 31 Okt. Tazama mipango

EQVPS
Anza

Sandbox kwa ukaguzi wa msimbo na ukaguzi wa PR: thibitisha kiraka kinafanya kazi kabla ya kukiidhinisha

Kusoma diff kunakuambia kiraka kinadai nini. Kukiendesha kunakuambia kama ni kweli. Leta pull request ndani ya microVM ya kutumia mara moja, zalisha hitilafu upya kabla na baada, endesha majaribio, na kagua kwa ushahidi — kwa takriban nusu senti kwa kila mzunguko.

Diff inaonyesha kile kiraka kinadai kufanya. Haionyeshi kama hitilafu imeondoka kweli, kama tawi jipya la if huwahi kutekelezwa, au kama kupandisha toleo la kitegemezi kunavunja import kwenye usakinishaji safi. Wakaguzi wanajua hilo, ndiyo sababu ukaguzi mwingi huishia na "LGTM, ikiwa majaribio yatapita".

Kwa viraka vilivyoandikwa na AI pengo hili huongezeka. Modeli huzalisha msimbo unaoonekana kuaminika haraka, na unaoonekana kuaminika ndio hasa ule unaompita mkaguzi aliyechoka. Suluhisho la bei nafuu ni kuendesha mabadiliko kabla mtu yeyote hajayaidhinisha — mahali ambapo hayawezi kuharibu chochote.

Ukaguzi: base, head, majaribio

Ushahidi wenye nguvu zaidi ambao kiraka kinaweza kutoa ni uzalishaji upya unaoshindwa kwenye msimbo wa zamani na kupita kwenye mpya. Sandbox inageuza hilo kuwa hati ya mistari 20. Ni microVM ya Firecracker yenye Python 3.12, Node.js 22, git na curl, inayowaka ndani ya takriban sekunde moja:

import os
from eqvps import Sandbox

REPO, BASE, HEAD = os.environ["REPO_URL"], os.environ["BASE_SHA"], os.environ["HEAD_SHA"]

def repro(sb, ref):
    sb.exec(f"cd /root/app && git checkout -q {ref}", timeout=55)
    return sb.exec("cd /root/app && python3 /root/repro.py", timeout=55).exit_code

with Sandbox.create(tariff="standard", ttl=1800) as sb:
    sb.exec(f"git clone -q {REPO} /root/app", timeout=55)
    sb.exec("cd /root/app && pip install -q -r requirements.txt", timeout=55)
    sb.upload("/root/repro.py", open("repro.py").read())
    before, after = repro(sb, BASE), repro(sb, HEAD)
    tests = sb.exec("cd /root/app && python3 -m pytest -q", background=True).wait()
    print(f"repro on base: {before}, on head: {after}; tests: {tests.state}, exit {tests.exit_code}")

repro.py ni kipande cha msimbo kutoka ripoti ya hitilafu. Kikitoka na msimbo usio sifuri kwenye base na sifuri kwenye head, kiraka kinarekebisha kile kinachodai kurekebisha. Weka mstari huo pamoja na muhtasari wa majaribio kama maoni kwenye pull request, na mkaguzi ataanza na ukweli.

Seti ya majaribio inaendeshwa kama kazi ya chinichini kwa sababu amri moja ya sinkroni inasimama kwenye sekunde 55. TTL ya dakika 30 inaweka kikomo cha muda ambao mzunguko uliokwama unaweza kukutoza.

Mawakala wa ukaguzi wanaoendesha msimbo

Wazo hilohilo linafanya kazi kwa mkaguzi wa AI. Akiunganishwa kupitia seva ya MCP, wakala ana zana za sandbox: kuunda sandbox, kuendesha amri, kupakia na kupakua faili. Badala ya kuandika "hili linaweza kuvunja upatanifu na Python 3.8", analeta tawi, anaendesha msimbo na kunukuu traceback — au anaripoti kuwa kila kitu kiko sawa.

Mpe wakala wa aina hiyo kikomo cha matumizi na token ya kusoma tu, na uamue ni zana gani anaweza kuziita bila kuuliza. Kinga za MCP zinaorodhesha kila zana kwa kiwango chake cha hatari.

Ushuru upi

HazinaUshuruMzunguko wa kawaidaGharama ya takriban
Maktaba ndogo, Python au JS tupusmall (0.5 vCPU, 1 GB)dak 2$0.0011
Programu ya wavuti yenye seti ya majaribiostandard (1 vCPU, 2 GB)dak 5$0.0055
Viendelezi asilia, vitegemezi vinavyokusanywaplus (2 vCPU, 4 GB)dak 15$0.033

Sandbox za muda hutozwa kwa sekunde na kiwango cha chini cha sekunde 60. Ikiwa mkaguzi anataka kurudi kwenye mazingira yaleyale kwa siku kadhaa, yaunde kama persistent: yanahifadhi diski yake hadi siku 30 na hutozwa kwa kila saa iliyoanza, kwa hiyo sandbox ya standard inayowekwa kwa ukaguzi wa siku mbili hugharimu takriban $3.17. Ifute pull request ikishaunganishwa.

Mipaka inayofaa kujua

  • Amri mbili kwa wakati mmoja kwa kila akaunti. Zinatosha kabisa kwa ukaguzi, unaofanyika mmoja baada ya mwingine. Ukikagua pull request kadhaa kwa wakati mmoja, zitapanga foleni.
  • Hakuna porti za kuingia. Huwezi kufungua programu kwenye kivinjari. Ianzishe ndani na uijaribu kwa curl localhost kutoka amri ya pili.
  • Hakuna Docker ndani. Majaribio yanayoanzisha kontena yanafaa kwenye runner iliyo kwenye VPS.
  • Intaneti ya kutoka iko wazi. Hiyo ndiyo inayofanya pip install ifanye kazi. Usiweke ndani ya sandbox kitu ambacho usingempa mwandishi wa kiraka.

Kuanza

Akaunti mpya hupata $1 ya muda wa sandbox, inayotosha zaidi ya mizunguko mia moja ya ukaguzi kwenye ushuru wa standard. Ukurasa wa sandbox una ushuru, marejeo ya SDK yana kila mbinu iliyotumika hapo juu, na SDK ya Python kwa dakika 5 inaeleza usanidi.

Zinazohusiana: majaribio ya CI yaliyotengwa kwa pipeline nzima, na sandbox kwa mawakala wa AI kwa mawakala wanaoandika msimbo tangu mwanzo.

Uko tayari kusambaza? Lipa kwa crypto, bila KYC — hai kwa takriban dakika moja.

Sambaza sasa →

Maswali

Hii ina tofauti gani na kuendesha CI kwenye pull request?

CI inajibu kama majaribio yaliyopo yanapita. Ukaguzi wa mapitio unajibu kama kiraka kinafanya kile kinachodai: unaendesha uzalishaji upya kutoka ripoti ya hitilafu kwenye msimbo wa zamani na mpya, unajaribu hali ya pembeni inayomtia wasiwasi mkaguzi, na unaweka sandbox ili mkaguzi aichunguze. Vinafanya kazi vizuri pamoja.

Je, wakala wa AI wa ukaguzi anaweza kuitumia?

Ndiyo, na hapo ndipo inalipa zaidi. Kupitia MCP wakala hupata zana za kuunda sandbox, kuendesha amri na kusoma faili. Badala ya kubahatisha kama mabadiliko yanavunja kitu, anaendesha msimbo na kunukuu matokeo kwenye ukaguzi wake.

Je, ni salama kuleta pull request kutoka kwa mgeni?

Hiyo ndiyo sababu ya sandbox. Msimbo unaendeshwa ndani ya microVM tofauti yenye kernel yake, na hakuna kitu chako ndani isipokuwa ulichoweka. Usipitishe token inayoweza kuandika kwenye hazina yako; kwa hazina za faragha token ya kusoma tu inatosha.

Je, ninaweza kufungua programu ya pull request kwenye kivinjari changu?

Hapana. Sandbox hazina porti za kuingia, kwa hiyo hakuna kitu cha nje kinachoweza kuunganishwa nazo. Unaweza kuanzisha programu ndani na kuijaribu kwa curl kutoka amri nyingine, au kuweka matoleo ya awali kwenye VPS ikiwa wakaguzi wanahitaji kubofya kiolesura.

Mzunguko mmoja wa ukaguzi unagharimu kiasi gani?

Mzunguko wa kawaida — clone, sakinisha, zalisha upya mara mbili, endesha majaribio — huchukua dakika chache kwenye ushuru wa standard na hugharimu takriban $0.005. Unalipa kwa sekunde na kiwango cha chini cha sekunde 60, kutoka salio la kulipia kabla.

Maoni

Bado hakuna maoni. Kuwa wa kwanza.

Acha maoni

Maoni yanakaguliwa kabla ya kuonekana.