תיקון נקודות חולשה בקוד וניהול של הבדלים

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

יצירת תיקונים לפגיעויות

משתמשים ב-cm fix כדי ליצור תיקון אבטחה מאומת לתוצאה מאומתת::

cm fix FINDING_ID

כשמריצים את cm fix, CodeMender מבצע את שלבי האימות הבאים:

  1. מייצר מועמד לתיקון באמצעות מנוע הנימוקים שמתארח בענן.
  2. החלת התיקון על עותק של קוד המקור בארגז החול המקומי.
  3. Compiles and tests (קומפילציה ובדיקה) של בסיס הקוד על ידי הרצת build.command שהגדרתם, כדי לוודא שהפרויקט נבנה ובדיקות היחידות עוברות.
  4. מריצים מחדש את ניצול הפרצה המאומת כדי לוודא שאי אפשר יותר לנצל את הפגיעות.

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

תיקון סימונים

  • לספק הקשר לתיקון (-c / --context): לספק אילוצים ארכיטקטוניים או הנחיות קידוד:
    cm fix FINDING_ID -c "Use the safe parameterized database helper in src/db/query.go"
  • אישור אוטומטי של פעולות כתיבה (-y / --yes): אישור אוטומטי של כל פעולות הכתיבה בקובץ וההנחיות במהלך תהליך התיקון:
    cm fix FINDING_ID -y
    הערה: אפשר גם להשבית את ההנחיות האינטראקטיביות לכתיבה באופן גלובלי על ידי הגדרת confirm_writes: false ב-config.yaml.
  • דילוג על מטמון (--no-cache): כדי לאלץ את CodeMender ליצור תיקון חדש:
    cm fix FINDING_ID --no-cache

בדיקה וניהול של הבדלים מקומיים במערכת בקרת גרסאות

‫CodeMender כולל פקודות VCS מובנות שעוזרות לבדוק, להכין ולנהל שינויים בקוד שהוכנסו על ידי תיקונים לפני שמבצעים אותם:

  • הצגת סטטוס המאגר: בדיקה אילו קבצים שונו או נוצרו על ידי CodeMender בסביבת העבודה המקומית.

    cm vcs status

  • בדיקת שינויים: בדיקה של שינויים מאוחדים בשורה אחר שורה בכל השינויים בקוד שלא נשמרו, שנוצרו על ידי הסוכן.

    cm vcs diff

  • הכנת שינויים: מוסיפים שינויים מאומתים בתיקון (patch) לסביבת ההכנה המקומית כדי שהם יהיו מוכנים לשמירה.

    cm vcs stage

  • ביטול השינויים בסשן: ביטול כל השינויים שבוצעו בקובץ המקומי במהלך הסשן הנוכחי ושחזור המאגר למצב הבסיסי שלו.

    cm vcs reset