תיעוד 32
קריאה ובקשת ביקורות על בקשת משיכה
קראו ממצאי Code Review בבקשת המשיכה שלכם ב-GitHub, הגיבו עליהם או דחו אותם, ובקשו ביקורת עם
@claude review.
Code Review הוא שירות מנוהל ש-Owner בארגון Claude שלכם מפעיל עבור קבוצת מאגרי GitHub. אחרי שהוא פועל, Claude בודק בקשות משיכה במאגרים האלה ומפרסם את הממצאים כהערות בשורה, סיכום בגוף הביקורת, והרצת בדיקה בשם Claude Code Review. ביקורת אף פעם לא מאשרת ולא חוסמת את בקשת המשיכה, והרצת הבדיקה אף פעם לא מסתיימת ככישלון.
Owner שולט במועד הרצת הביקורות ובמידת היסודיות שלהן לכל מאגר.
[!NOTE]
אם התוכנית שלכם לא כוללת את Code Review, עדיין אפשר ש-Claude יבדוק את הענף מתוך סשן של Claude Code: ראו ביקורת מקומית עם
/code-review.
#רמות חומרה
Claude מפרסם כל ממצא כהערה בשורה על השורות הנוגעות, ומסמן אותו באחת משלוש רמות חומרה:
| סמן | חומרה | משמעות |
|---|---|---|
| 🔴 | Important | באג שצריך לתקן לפני המיזוג |
| 🟡 | Nit | בעיה קטנה, שווה תיקון אבל לא חוסמת |
| 🟣 | Pre-existing | באג שקיים בבסיס הקוד אבל לא הוכנס על ידי בקשת המשיכה הזו |
כשהביקורת תיעדה את הנימוק שלה, לממצא יש מקטע מכווץ Why this was flagged. פתחו אותו כדי לקרוא למה Claude סימן את הבעיה ואיך הוא אימת את הבעיה.
כדי לשנות את מה ש-Claude מסמן במאגר שלכם, או איך הוא מדרג חומרה, ראו התאמת Code Review.
#מענה לממצאים
אפשר למזג בלי להגיב לממצא, אלא אם הכללים של המאגר עצמו דורשים זאת. אם הגנת הענף דורשת יישוב שיחה, ישבו את השרשור של כל ממצא לפני המיזוג.
כדי לנקות ממצא, ישבו את השרשור שלו או דחפו תיקון.
- דחייה בלי שינוי קוד: ישבו את השרשור בעצמכם ב-GitHub. תשובה לבדה לא דוחה ממצא.
- תיקון הבעיה: שנו את הקוד ודחפו. הביקורת הבאה של בקשת המשיכה מיישבת את השרשור הקודם שלה כשהיא שופטת שהבעיה תוקנה, בין אם הביקורת הזו רצה אוטומטית על הדחיפה ובין אם ביקשתם אותה.
- הסבר או אי הסכמה: הגיבו להערה. Claude לא מגיב מיד, ותשובה לא מתחילה ביקורת. הביקורת הבאה של בקשת המשיכה קוראת את התשובות על הממצאים הקודמים שלה, ויכולה ליישב את השרשור או לפרסם תשובת המשך אחת. אם אותו סוג ממצא חוזר שוב ושוב, בקשו ממתחזק להוסיף כלל ל-
REVIEW.md.
כדי לקבל את הביקורת הבאה בלי דחיפה, הגיבו @claude review כהערת בקשת משיכה ברמה העליונה.
#פלט הרצת הבדיקה
הקישור Details בהרצת הבדיקה Claude Code Review פותח את הממצאים בטבלה אחת שממוינת לפי חומרה, כולל כל ממצא שהערת השורה שלו לא התקבלה ב-GitHub:
| חומרה | קובץ:שורה | בעיה |
|---|---|---|
| 🔴 Important | src/auth/session.ts:142 | רענון האסימון רץ במקביל להתנתקות, ומשאיר סשנים ישנים פעילים |
| 🟡 Nit | src/auth/session.ts:88 | parseExpiry מחזיר 0 בשקט על קלט לא תקין |
ממצא שיש לו שורה אבל לא פורסם כהערה בשורה מופיע כאנוטציה בלשונית Files changed, על השורות הנוגעות. ממצאי Important מוצגים באדום, nits בצהוב, ובאגים קיימים מראש באפור.
הרצת הבדיקה מסתיימת כ-neutral, או כ-skipped אחרי חלק מהדחיפות שלא משנות קבצים ושומרות את התוצאה הקודמת. היא אף פעם לא מסתיימת כ-failure, ולכן ביקורת שהסתיימה לא מכשילה בדיקה נדרשת. אם לא רואים ממצאים, או שביקורת לא רצה, ראו פתרון בעיות ב-Code Review.
#כשדחיפה שומרת את התוצאה הקודמת
אם להרצת הבדיקה יש אחת מהכותרות האלה אחרי שדחפתם, Code Review שמר את התוצאה של ביקורת קודמת במקום להתחיל ביקורת חדשה:
- Code review skipped , no new changes: אין ממצא Important מהביקורת הקודמת שעדיין פתוח, ולכן אין צורך בביקורת חדשה
- Code review not repeated , earlier findings still open: כדי להתחיל ביקורת חדשה, דחפו תיקון לממצא Important פתוח, או ישבו את השרשור שלו ודחפו שוב
ב-github.com, Code Review יכול לשמור תוצאה כששני אלה מתקיימים:
- בקשת המשיכה עדיין מוסיפה ומסירה את אותן שורות, כמו אחרי commit ריק, מיזוג נקי של ענף הבסיס, או rebase נקי
- אף אחד לא יישב שרשור של ממצא Important מאז אותה ביקורת
כדי לקבל ביקורת בלי שינוי קוד, הגיבו @claude review או לחצו Re-run על הרצת הבדיקה.
#קריאת התוצאה מסקריפט
כדי לחסום מיזוג או לפרסם סיכום מ-CI שלכם, נתחו את השורה האחרונה של טקסט Details עם gh ו-jq. השורה הזו היא הערת HTML שמחזיקה את ספירות החומרה כ-JSON:
<!-- bughunter-severity: {"nit":1,"normal":2,"pre_existing":0} -->השורות שמעליה יכולות לכלול שמות קבצים מבקשת המשיכה. אם מנתחים את הטקסט בדרך שלכם, קחו את הספירות מהשורה האחרונה בלבד, כמו שהפקודה בשלבים האלה עושה.
1. מציאת מזהה הרצת הבדיקה
מהמעטפת, הציגו את הרצות הבדיקה של ה-commit וקחו את id של הרצת Claude Code Review. החליפו את OWNER ואת REPO בבעלים ובשם של המאגר, ואת <commit-sha> ב-commit ה-head של בקשת המשיכה:
gh api repos/OWNER/REPO/commits/<commit-sha>/check-runs --jq '.check_runs[] | {id, name}'אם ל-commit היו יותר מהרצת Claude Code Review אחת, למשל אחרי Re-run, GitHub מציג רק את החדשה ביותר.
2. קריאת ספירות החומרה
קראו את הספירות משדה output.text של הרצת הבדיקה, שמחזיק את טקסט Details. החליפו את CHECK_RUN_ID במזהה:
gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID --jq '
(.output.text | split("\n") | last
| scan("^<!-- bughunter-severity: (.*) -->$")[0] | fromjson)?
// error("no severity line")'זה מדפיס אובייקט JSON עם ספירה לכל חומרה, והמפתחות שלו בסדר אלפביתי, למשל {"nit": 1, "normal": 2, "pre_existing": 0}. חוץ מאשר בהרצת בדיקה ששמרה תוצאה קודמת, הספירות כוללות ממצאים מביקורות קודמות של בקשת המשיכה שהשרשורים שלהם עדיין פתוחים.
תחת הכותרת Code review skipped , no new changes, הספירות משמיטות nits וממצאים קיימים מראש מביקורות קודמות שעדיין פתוחים. אין אז ממצא Important מהביקורת הקודמת שעדיין פתוח.
3. פעולה לפי התוצאה
הסקריפט צריך לטפל במקרים האלה לפי הסדר:
- הכותרת מתחילה ב-
Code review not repeated: Code Review שמר תוצאה קודמת שממצאי Important שלה עדיין פתוחים, ולהרצת הבדיקה אין שורת חומרה. קראו את הכותרת לפני הספירות, עםgh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID --jq .output.title. הכשילו את ה-job אם רוצים לחסום את המיזוג. - הכותרת מסתיימת ב-
no new changes: תנו ל-job לעבור בלי לקרוא את הספירות normalגדול מאפס: הכשילו את ה-job אם רוצים לחסום את המיזוג. המפתחnormalמחזיק את ספירת ממצאי Important, כך ש-Claude מצא לפחות באג אחד ששווה תיקון לפני מיזוג. כדי להדפיס רק את הספירה הזו, הוסיפו| .normalלפני הגרש הסוגר.- השורה חסרה: הפקודה מדפיסה שגיאה שמכילה
no severity lineבמקום ספירות, ויוצאת עם סטטוס שונה מאפס. התייחסו לזה כהיעדר הכרעה ולא כאפס ממצאים. להרצת בדיקה של ביקורת שנכשלה, חרגה מהזמן, בוטלה, או הוחלפה בחדשה יותר אין שורה כזו, וגם לחלק מהביקורות שהושלמו אין.
#בקשת ביקורת
אם בקשת המשיכה היא טיוטה או מגיעה מ-fork, ביקורות אוטומטיות מדלגות עליה, ולכן בקשו את הביקורת בפקודת הערה. כדי לקבל ביקורת על בקשת המשיכה, עשו אחד מאלה:
- פתיחה או סימון כמוכנה: במאגר שמוגדר ל-Once after PR creation או ל-After every push, ביקורת מתחילה כשפותחים או פותחים מחדש את בקשת המשיכה, או מסמנים טיוטה כמוכנה לביקורת.
- הערת פקודה: פרסמו
@claude reviewעל בקשת המשיכה. - דחיפת commit: דחיפה מתחילה ביקורת במאגר שמוגדר ל-After every push, או בבקשת משיכה שנרשמתם אליה עם
@claude review always. אם בקשת המשיכה עדיין מוסיפה ומסירה את אותן שורות אחרי הדחיפה, Code Review יכול לשמור את התוצאה הקודמת במקום. - לחיצה על Re-run: אחרי שביקורת נכשלת או חורגת מהזמן בבקשת משיכה שאינה מ-fork, הריצו אותה שוב מהרצת הבדיקה. בבקשת משיכה שאינה מ-fork, אפשר גם ללחוץ Re-run אחרי דחיפה ששמרה את התוצאה הקודמת.
- המתנה לניסיון החוזר האוטומטי: ביקורת שהסשן שלה נקטע מנוסה שוב פעם אחת באופן אוטומטי. הסיכום של הרצת הבדיקה אומר מתי זה קורה.
#פקודות הערה
פרסמו אחת מהפקודות האלה כהערה על בקשת המשיכה:
| פקודה | מה היא עושה | מתי להשתמש בה |
|---|---|---|
@claude review | מתחילה ביקורת יחידה בלי לרשום את בקשת המשיכה לדחיפות עתידיות | רוצים ביקורת אחת עכשיו, למשל על בקשת משיכה במאגר שמוגדר ל-Manual, או ביקורת נוספת מיד במצבים האחרים |
@claude review always | מתחילה ביקורת ורושמת את בקשת המשיכה לביקורות שמופעלות בדחיפה מעכשיו | רוצים שדחיפות הבאות יתחילו ביקורות, למשל על בקשת משיכה בעדיפות גבוהה במאגר שמוגדר ל-Manual |
@claude review once | כמו @claude review: מתחילה ביקורת יחידה בלי רישום | אותם מקרים כמו @claude review |
@claude review stop | מסיימת את הרישום של בקשת המשיכה לביקורות שמופעלות בדחיפה, בלי להתחיל ביקורת ובלי לבטל ביקורת שכבר רצה. Claude משיב בהערה במקום בהרצת בדיקה. | רשמתם בקשת משיכה עם @claude review always במאגר שמוגדר ל-Manual או ל-Once after PR creation, וכבר לא רוצים שכל דחיפה תתחיל ביקורת |
@claude review off או @claude review pause | כמו @claude review stop | אותם מקרים כמו @claude review stop |
במאגר שמוגדר ל-After every push, אי אפשר לעצור ביקורות בהערה, כי דחיפות שם מתחילות ביקורות עם רישום וגם בלי רישום. כדי לעצור דחיפות מלהתחיל ביקורות על בקשת משיכה אחת שם, המירו אותה לטיוטה. כשמסמנים אותה שוב כמוכנה לביקורת, ביקורת מתחילה.
כדי שפקודת הערה כלשהי תיכנס לתוקף, כל התנאים האלה צריכים להתקיים:
- פרסמו אותה כהערת בקשת משיכה חדשה ברמה העליונה, לא כהערה בשורה על שורת diff ולא כגוף של ביקורת. עריכת הערה קודמת לא נחשבת.
- שימו את כל הפקודה בשורה אחת בתחילת ההערה. טקסט אחר יכול לבוא אחריה. אם
alwaysאוstopשגויים באיות או נמצאים בשורה מאוחרת יותר, Claude קורא את ההערה כ-@claude reviewרגיל ומתחיל ביקורת יחידה. אין חשיבות לאותיות גדולות או קטנות. - צריך הרשאת write, maintain או admin על המאגר. Claude בודק זאת מול GitHub לכל אדם שמגיב, והערות מבוטים לא מתחילות ביקורות.
- בקשת המשיכה חייבת להיות פתוחה.
כשפקודה שמתחילה ביקורת מתקבלת, הרצת בדיקה Claude Code Review מופיעה על בקשת המשיכה עם הכותרת Code review queued.... הכותרת משתנה ל-Code review in progress... כשהביקורת מתחילה. Claude עשוי גם להגיב להערה שלכם ב-👀, אבל התגובה הזו יכולה להופיע כשלא מתחילה ביקורת, ולכן חפשו את הרצת הבדיקה.
אם ביקורת כבר רצה על ה-commit האחרון של בקשת המשיכה, בקשה חדשה לא מתחילה ביקורת שנייה.
[!NOTE]
לפני עדכון מיולי 2026,
@claude reviewרשם את בקשת המשיכה לביקורות שמופעלות בדחיפה. אם הסתמכתם על ההתנהגות הזו, הגיבו@claude review always.
#מה ביקורת מאוחרת יותר מכסה
ביקורת מאוחרת יותר שמתחילה מעצמה, למשל אחרי דחיפה, מתמקדת במה שהשתנה מאז הביקורת האחרונה ומפרסמת פחות nits וממצאים קיימים מראש. כדי לראות אם היא השמיטה ממצאים בגלל זה, חפשו בגוף הביקורת משפט שסופר אותם:
- Findings on code that hasn't changed since the last review: המשפט מסתיים ב-
outside the scope of this re-review and not posted - Nits and pre-existing findings: המשפט מסתיים ב-
found and not posted
כדי לקבל ביקורת שלא משמיטה אף אחד מאלה, הגיבו @claude review. היא מכסה שוב את כל בקשת המשיכה.
#ביקורת טיוטות ובקשות משיכה מ-forks
ביקורות אוטומטיות מדלגות על שתיהן, ולכן בקשו את הביקורת בפקודת הערה:
- בקשות משיכה בטיוטה: פקודת הערה רצה על טיוטה, כך שאפשר לבקש ביקורת לפני שמסמנים את בקשת המשיכה כמוכנה. דחיפות לטיוטה לא מתחילות ביקורות, גם אחרי
@claude review always. הרישום נכנס לתוקף אחרי שמסמנים את בקשת המשיכה כמוכנה. - בקשות משיכה מ-forks: Claude לא בודק בקשת משיכה מ-fork באופן אוטומטי, בלי קשר להגדרת Review runs של המאגר. כדי להתחיל אחת, הגיבו
@claude reviewעל בקשת המשיכה. התנאים לפקודות הערה עדיין חלים, והרשאת הכתיבה שצריך היא למאגר הבסיס, לא ל-fork.
בבקשת משיכה מ-fork, גם @claude review always עובד, אבל לא רושם את בקשת המשיכה לביקורות על דחיפות מאוחרות יותר. לחיצה על Re-run בהרצת הבדיקה לא מתחילה שם ביקורת.
#שימוש ב-Code Review לצד Claude Code GitHub Action
אם המאגר גם מריץ את Claude Code GitHub Action במצב אינטראקטיבי עם ביטוי ההפעלה ברירת המחדל @claude, הערת @claude review מפעילה גם את ה-Action. כדי להפריד ביניהם, הגדירו את הקלט trigger_phrase של ה-Action לביטוי אחר.
#משאבים קשורים
- פתרון בעיות ב-Code Review: ביקורת שלא התחילה, נכשלה, או דולגה בגלל תקציב
- Code Review: מה השירות ואיך ביקורת רצה
- הגדרת Code Review: ל-Owners, הפעלת Code Review ובחירה מתי ביקורות רצות ובאיזו רמה
- התאמת Code Review: שינוי מה ש-Claude מסמן באמצעות
REVIEW.mdו-CLAUDE.md - עלויות ושימוש ב-Code Review: איך ביקורות מחויבות ואיפה מגדירים את מגבלת ההוצאה
- ביקורת מקומית עם
/code-review: הרצת ביקורת על הענף מתוך סשן של Claude Code