−25%

untuk Windows tahunan, hingga 31 Okt. Lihat paket

EQVPS
Mulai

Sandbox untuk code review dan pemeriksaan PR: buktikan patch berfungsi sebelum Anda menyetujuinya

Membaca diff memberi tahu apa yang diklaim sebuah patch. Menjalankannya memberi tahu apakah klaim itu benar. Ambil pull request ke microVM sekali pakai, reproduksi bug sebelum dan sesudah, jalankan tes, dan review dengan bukti — sekitar setengah sen per putaran.

Diff menunjukkan apa yang diklaim sebuah patch. Diff tidak menunjukkan apakah bug benar-benar hilang, apakah cabang baru sebuah if pernah dijalankan, atau apakah kenaikan versi dependensi merusak import pada instalasi bersih. Reviewer tahu hal ini, itulah sebabnya begitu banyak review berakhir dengan "LGTM, asalkan tesnya lolos".

Dengan patch tulisan AI, celahnya makin lebar. Model menghasilkan kode yang tampak masuk akal dengan cepat, dan yang tampak masuk akal justru jenis yang lolos dari reviewer yang lelah. Solusi murahnya adalah menjalankan perubahan sebelum ada yang menyetujuinya — di tempat yang tidak bisa merusak apa pun.

Pemeriksaannya: base, head, tes

Bukti paling meyakinkan yang bisa diberikan sebuah patch adalah reproduksi yang gagal di kode lama dan lolos di kode baru. Sandbox mengubahnya menjadi skrip 20 baris. Ini adalah microVM Firecracker dengan Python 3.12, Node.js 22, git, dan curl, yang menyala dalam sekitar satu detik:

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 adalah cuplikan dari laporan bug. Jika keluar dengan kode bukan nol di base dan nol di head, patch memperbaiki apa yang diklaimnya. Kirim baris itu beserta ringkasan tes sebagai komentar di pull request, dan reviewer mulai dari fakta.

Test suite berjalan sebagai tugas latar belakang karena satu perintah sinkron berhenti di 55 detik. TTL 30 menit membatasi seberapa lama eksekusi yang macet bisa menagih Anda.

Agen review yang menjalankan kode

Ide yang sama berlaku untuk reviewer AI. Terhubung lewat server MCP, agen memiliki alat sandbox: membuat sandbox, menjalankan perintah, mengunggah dan mengunduh file. Alih-alih menulis "ini mungkin merusak kompatibilitas dengan Python 3.8", ia mengambil branch, menjalankan kode, dan mengutip traceback — atau melaporkan bahwa semuanya baik-baik saja.

Beri agen seperti itu batas pengeluaran dan token hanya-baca, lalu tentukan alat mana yang boleh dipanggilnya tanpa bertanya. Pengaman MCP mencantumkan setiap alat berdasarkan tingkat risikonya.

Tarif mana

RepositoriTarifPutaran umumPerkiraan biaya
Library kecil, Python atau JS murnismall (0.5 vCPU, 1 GB)2 mnt$0.0011
Aplikasi web dengan test suitestandard (1 vCPU, 2 GB)5 mnt$0.0055
Ekstensi native, dependensi yang dikompilasiplus (2 vCPU, 4 GB)15 mnt$0.033

Sandbox sementara ditagih per detik dengan minimum 60 detik. Jika reviewer ingin kembali ke lingkungan yang sama selama beberapa hari, buatlah sebagai persistent: ia menyimpan disknya hingga 30 hari dan ditagih per jam yang dimulai, sehingga sandbox standard yang dipertahankan untuk review dua hari berbiaya sekitar $3.17. Hapus setelah pull request di-merge.

Batas yang perlu diketahui

  • Dua perintah sekaligus per akun. Lebih dari cukup untuk review, yang berjalan satu per satu. Jika Anda memeriksa puluhan pull request sekaligus, semuanya mengantre.
  • Tanpa port masuk. Anda tidak bisa membuka aplikasi di browser. Jalankan di dalam dan uji dengan curl localhost dari perintah kedua.
  • Tanpa Docker di dalam. Tes yang menjalankan kontainer tempatnya di runner pada VPS.
  • Internet keluar terbuka. Itulah yang membuat pip install berfungsi. Jangan masukkan apa pun ke sandbox yang tidak akan Anda berikan kepada penulis patch.

Memulai

Akun baru mendapat $1 waktu sandbox, cukup untuk lebih dari seratus putaran review pada tarif standard. Halaman sandbox memuat tarif, referensi SDK setiap metode yang dipakai di atas, dan SDK Python dalam 5 menit penyiapannya.

Terkait: eksekusi tes CI terisolasi untuk seluruh pipeline, dan sandbox untuk agen AI untuk agen yang menulis kodenya sejak awal.

Siap deploy? Bayar dengan kripto, tanpa KYC — online dalam sekitar satu menit.

Deploy →

Pertanyaan umum

Apa bedanya dengan menjalankan CI pada pull request?

CI menjawab apakah tes yang ada lolos. Pemeriksaan review menjawab apakah patch melakukan apa yang dikatakannya: menjalankan reproduksi dari laporan bug pada kode lama dan kode baru, mencoba kasus tepi yang dikhawatirkan reviewer, dan menyediakan sandbox untuk diselidiki reviewer. Keduanya saling melengkapi.

Bisakah agen review AI menggunakannya?

Bisa, dan di situlah manfaatnya paling besar. Lewat MCP, agen mendapat alat untuk membuat sandbox, menjalankan perintah, dan membaca file. Alih-alih menebak apakah perubahan merusak sesuatu, ia menjalankan kode dan mengutip output-nya dalam review.

Amankah mengambil pull request dari orang asing?

Itulah gunanya sandbox. Kode berjalan di microVM terpisah dengan kernel sendiri, dan tidak ada milik Anda di dalamnya selain yang Anda masukkan. Jangan berikan token yang bisa menulis ke repositori Anda; untuk repositori privat, token hanya-baca sudah cukup.

Bisakah saya membuka aplikasi dari pull request di browser?

Tidak. Sandbox tidak punya port masuk, jadi tidak ada yang dari luar bisa terhubung. Anda bisa menjalankan aplikasi di dalam dan mengujinya dengan curl dari perintah lain, atau men-deploy preview ke VPS jika reviewer perlu mengklik-klik antarmuka.

Berapa biaya satu putaran review?

Putaran yang umum — clone, instal, reproduksi dua kali, jalankan tes — memakan beberapa menit pada tarif standard dan berbiaya sekitar $0.005. Anda membayar per detik dengan minimum 60 detik, dari saldo prabayar.

Komentar

Belum ada komentar. Jadilah yang pertama.

Tinggalkan komentar

Komentar dimoderasi sebelum muncul.