−25%

על Windows בתשלום שנתי, עד 31.10. לחבילות

EQVPS
התחלה

ארגז חול לסקירת קוד ולבדיקות PR: הוכיחו שהתיקון עובד לפני שאתם מאשרים אותו

קריאת diff אומרת לכם מה התיקון טוען. הרצה שלו אומרת אם זה נכון. משכו pull request ל-microVM חד־פעמית, שחזרו את הבאג לפני ואחרי, הריצו את הבדיקות וסקרו עם ראיות — בכחצי סנט לסבב.

‏diff מראה מה התיקון טוען שהוא עושה. הוא לא מראה אם הבאג באמת נעלם, אם הענף החדש של if רץ אי פעם, או אם עדכון תלות שובר את ה-import בהתקנה נקייה. סוקרים יודעים את זה, ולכן כל כך הרבה סקירות מסתיימות ב"LGTM, בתנאי שהבדיקות עוברות".

עם תיקונים שכתב AI הפער גדל. מודל מייצר מהר קוד שנראה סביר, וקוד שנראה סביר הוא בדיוק זה שחומק מעיניו של סוקר עייף. הפתרון הזול הוא להריץ את השינוי לפני שמישהו מאשר אותו — במקום שבו הוא לא יכול לפגוע בכלום.

הבדיקה: base,‏ head, בדיקות

הראיה המשכנעת ביותר שתיקון יכול להציג היא שחזור שנכשל על הקוד הישן ועובר על החדש. ארגז חול הופך את זה לסקריפט של 20 שורות. זו Firecracker microVM עם Python 3.12,‏ Node.js 22,‏ git ו-curl, שעולה בתוך כשנייה:

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 הוא קטע הקוד מדוח הבאג. אם הוא מסתיים בקוד שונה מאפס על base ובאפס על head, התיקון מתקן את מה שהוא טוען. פרסמו את השורה הזו יחד עם סיכום הבדיקות כתגובה ל-pull request, והסוקר יתחיל מעובדות.

חבילת הבדיקות רצה כמשימת רקע, כי פקודה סינכרונית אחת נעצרת אחרי 55 שניות. ה-TTL של 30 דקות מגביל כמה זמן הרצה תקועה יכולה לחייב אתכם.

סוכני סקירה שמריצים קוד

אותו רעיון עובד לסוקר AI. סוכן שמחובר דרך שרת ה-MCP מקבל כלי ארגז חול: יצירת ארגז חול, הרצת פקודה, העלאה והורדה של קבצים. במקום לכתוב "זה עלול לשבור תאימות ל-Python 3.8", הוא מושך את הענף, מריץ את הקוד ומצטט את ה-traceback — או מדווח שהכול תקין.

תנו לסוכן כזה תקרת הוצאות וטוקן לקריאה בלבד, והחליטו אילו כלים הוא רשאי להפעיל בלי לשאול. אמצעי ההגנה של MCP מפרטים כל כלי לפי רמת הסיכון.

איזה תעריף

מאגרתעריףסבב טיפוסיעלות משוערת
ספרייה קטנה, Python או JS טהורsmall (0.5 vCPU, 1 GB)2 דקות$0.0011
אפליקציית ווב עם חבילת בדיקותstandard (1 vCPU, 2 GB)5 דקות$0.0055
הרחבות נייטיב, תלויות שעוברות הידורplus (2 vCPU, 4 GB)15 דקות$0.033

ארגזי חול זמניים מחויבים לפי שנייה עם מינימום של 60 שניות. אם סוקר רוצה לחזור לאותה סביבה לאורך כמה ימים, צרו אותה כ-persistent: היא שומרת את הדיסק שלה עד 30 יום ומחויבת על כל שעה שהתחילה, כך שארגז standard שנשמר לסקירה של יומיים עולה כ-3.17 דולר. מחקו אותו כשה-pull request מוזג.

מגבלות שכדאי להכיר

  • שתי פקודות בו־זמנית לחשבון. מספיק בהחלט לסקירות, שמתבצעות אחת אחרי השנייה. אם תבדקו עשרות pull requests בבת אחת, הם ייכנסו לתור.
  • אין פורטים נכנסים. אי אפשר לפתוח את האפליקציה בדפדפן. הפעילו אותה בפנים ובדקו אותה עם curl localhost מפקודה שנייה.
  • אין Docker בפנים. בדיקות שמרימות קונטיינרים שייכות ל-runner על VPS.
  • אינטרנט יוצא פתוח. זה מה שגורם ל-pip install לעבוד. אל תכניסו לארגז החול שום דבר שלא הייתם מוסרים לכותב התיקון.

איך מתחילים

חשבונות חדשים מקבלים 1 דולר של זמן ארגז חול, שמספיק ליותר ממאה סבבי סקירה בתעריף standard. בדף ארגזי החול נמצאים התעריפים, במדריך ה-SDK כל שיטה שהשתמשנו בה למעלה, ובSDK של Python ב-5 דקות ההגדרה.

קשור: הרצות CI מבודדות ל-pipeline כולו, וארגז חול לסוכני AI לסוכנים שכותבים את הקוד מלכתחילה.

מוכנים להקים? שלמו בקריפטו, ללא KYC — חי בערך תוך דקה.

הקימו עכשיו →

שאלות נפוצות

במה זה שונה מהרצת CI על ה-pull request?

מערכת ה-CI עונה על השאלה אם הבדיקות הקיימות עוברות. בדיקת סקירה עונה על השאלה אם התיקון עושה את מה שהוא אומר: היא מריצה את השחזור מדוח הבאג על הקוד הישן ועל החדש, מנסה את מקרה הקצה שמדאיג את הסוקר, ומשאירה ארגז חול זמין כדי שהסוקר יחקור בעצמו. השניים משלימים זה את זה היטב.

האם סוכן סקירה מבוסס AI יכול להשתמש בזה?

כן, ושם התועלת הגדולה ביותר. דרך MCP הסוכן מקבל כלים ליצירת ארגז חול, להרצת פקודות ולקריאת קבצים. במקום לנחש אם שינוי שובר משהו, הוא מריץ את הקוד ומצטט את הפלט בסקירה שלו.

האם בטוח למשוך pull request מאדם זר?

זו בדיוק המטרה של ארגז החול. הקוד רץ ב-microVM נפרדת עם ליבה משלה, ואין בפנים שום דבר שלכם מלבד מה ששמתם. אל תעבירו טוקן שיכול לכתוב למאגר שלכם; למאגרים פרטיים מספיק טוקן לקריאה בלבד.

האם אפשר לפתוח את האפליקציה מה-pull request בדפדפן?

לא. לארגזי חול אין פורטים נכנסים, כך ששום דבר מבחוץ לא יכול להתחבר אליהם. אפשר להפעיל את האפליקציה בפנים ולבדוק אותה עם curl מפקודה אחרת, או לפרוס תצוגות מקדימות ל-VPS אם הסוקרים צריכים ללחוץ על ממשק.

כמה עולה סבב סקירה?

סבב טיפוסי — שכפול, התקנה, שני שחזורים, הרצת בדיקות — לוקח כמה דקות בתעריף standard ועולה כ-0.005 דולר. משלמים לפי שנייה עם מינימום של 60 שניות, מיתרה בתשלום מראש.

תגובות

אין עדיין תגובות. היו הראשונים.

השאירו תגובה

התגובות עוברות מודרציה לפני שהן מופיעות.