CodeMender יכול ליצור, לאמת ולהחיל באופן אוטומטי תיקונים של קוד מקור לנקודות חולשה מאומתות, ולבדוק אותם בארגז החול המקומי שלכם כדי למנוע רגרסיות.
יצירת תיקונים לנקודות חולשה
משתמשים ב-cm fix כדי ליצור תיקון אבטחה מאומת לממצא מאומת:
cm fix FINDING_ID
כשמריצים את cm fix, CodeMender מבצע את שלבי האימות הבאים:
- יוצר תיקון פוטנציאלי באמצעות מנוע החשיבה הרציונלית שמתארח בענן.
- מחיל את התיקון על עותק של קוד המקור בתוך ארגז החול המקומי.
- מבצע קומפילציה ובדיקה של בסיס הקוד על ידי הפעלת
build.commandשהגדרתם, כדי לוודא שהפרויקט נוצר ושבדיקות היחידה עוברות. - מריץ מחדש את הניצול המאומת של ה-PoC כדי לוודא שאי אפשר יותר לנצל את נקודת החולשה.
כברירת מחדל, CodeMender מבקש מכם לאשר כל שינוי בקובץ לפני שהוא כותב אותו בדיסק בסביבת העבודה שלכם. אחרי שכל הבדיקות עוברות, CodeMender מחיל את התיקון המאומת על סביבת העבודה. אחרי זה אפשר להעביר את השינויים לשלב הבא.
תיקון סימונים
- Provide fix context (
-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
config.yamlעל ידי הגדרתtools.confirm_writes: falseו-tools.confirm_commands: false. - שליטה בארגז החול (
--sandbox): הפעלה או השבתה של ארגז החול ברמת מערכת ההפעלה באופן מפורש להרצה הזו (לדוגמה,--sandbox=falseלהשבתה):cm fix FINDING_ID --sandbox=false
- מעקף של גבולות הנתיב (
--allow-all-paths): השבתת הבדיקה של גבולות הנתיב של סביבת העבודה בהרצה הזו, כדי שכלי הסוכן יוכלו לגשת לנתיבים מחוץ לשורש הפרויקט ול-project_pathsשהוגדר (בשילוב עם--sandbox=falseכדי לגשת לנתיבי מארח שלא נטענו בתוך ארגז החול):cm fix FINDING_ID --allow-all-paths
- Bypass command policy (
--allow-all-commands): השבתת האכיפה של רשימת החסימה שלcommand_policy.yamlבהפעלה הזו:cm fix FINDING_ID --allow-all-commands
- Bypass cache (
--no-cache): מאלצים את CodeMender ליצור תיקון חדש:cm fix FINDING_ID --no-cache
בדיקה וניהול של השוואות VCS מקומיות
CodeMender כולל פקודות VCS מובנות שעוזרות לבדוק, להעביר לשלב הביניים ולנהל את השינויים בקוד שהתיקונים מציגים לפני שמאשרים אותם:
הצגת סטטוס המאגר: בודקים אילו קבצים CodeMender שינה או יצר בסביבת העבודה המקומית.
cm vcs status
בדיקת ההבדלים: בודקים את ההבדלים המאוחדים שורה אחר שורה בכל השינויים בקוד שהסוכן יצר ולא בוצע להם commit.
cm vcs diff
העברת השינויים לסביבת Staging: מוסיפים את השינויים המאומתים של התיקון לסביבת ה-Staging המקומית כדי לבדוק ולשמור אותם.
cm vcs stage
ביטול השינויים בסשן: ביטול כל השינויים בקבצים המקומיים ש-CodeMender יצר במהלך הסשן הנוכחי, ושחזור המאגר למצב הבסיסי שלו.
cm vcs reset