הגדרת טריגרים לפייפליין
טריגר הוא מה שמתחיל פייפליין. כל טריגר הוא צומת על הקנבס, שנגרר מהמקטע טריגרים בספריית הצמתים. בחירה בצומת הזה פותחת את הפאנל שלו מימין — אין רשימת טריגרים קבועה, אין לשונית טריגרים ואין מסך טריגרים.
פתיחת פאנל של טריגר
קטע בשם “פתיחת פאנל של טריגר”- עברו אל הגדרות ← סביבת עבודה ← תבניות פייפליין.
- לחצו על העיפרון בשורה של התבנית כדי לפתוח את העורך.
- בחרו צומת טריגר על הקנבס. הפאנל הימני מופיע עם ההגדרות של אותו טריגר. כשדבר אינו נבחר, הפאנל מוסתר.
הוספת טריגר
קטע בשם “הוספת טריגר”המקטע טריגרים בספריית הצמתים מציג כל סוג התחלה כצומת נפרד: ידני, לוח
זמנים, webhook, וכרטיס אחד לכל אירוע תחום. חפשו merged, ticket או את שם
הסוג (PrMerged) וגררו את הכרטיס אל הקנבס. בתבנית חדשה מוצג גם אריח רפאים של
הוספת טריגר בעוגן הכניסה — בחרו מתוך אותה רשימה ניתנת לחיפוש.
הטריגר נוצר מיד. טריגרים אוטומטיים חדשים נוצרים מושבתים, כך שגרירה אינה מפעילה הרצה לפני שהגדרתם אותם. השתמשו במתג מופעל שבפאנל כדי להפעיל את הטריגר, או בסמל פח האשפה כדי למחוק אותו.
מתן אפשרות להרצות ידניות
קטע בשם “מתן אפשרות להרצות ידניות”גררו את הרצה ידנית (או בחרו אותה מאריח הרפאים) והפעילו את מופעל בפאנל
שלה. זה מה שמציג את התבנית בבורר ההרצה. זה אינו מקרה מיוחד — המתג כותב רשומת
טריגר רגילה שסוג האירוע שלה הוא manual. השינוי נשמר מיד; אין מה לשמור.
אותו מתג עומד מאחורי הרצה ידנית בכותרת העורך, שם הוא יושב לצד הקלטים המוצהרים של התבנית.
לפי אירוע
קטע בשם “לפי אירוע”האירועים האלה מתחילים הרצה:
| תווית הבורר | אירוע |
|---|---|
| PR חיצוני נפתח | ExternalPrDetected |
| PR פורסם | PullRequestPublished |
| סטטוס PR השתנה | PullRequestStatusChanged |
| PR מוזג | PrMerged |
| הודעה התקבלה | MessageReceived |
| כרטיס נוצר | TicketCreated |
| סטטוס הכרטיס השתנה | TicketStatusChanged |
| כרטיס הוקצה | TicketAssigned |
| כרטיס הושלם | TicketCompleted |
| כרטיס נכשל | TicketFailed |
| כרטיס בוטל | TicketCancelled |
| סף תקציב נחצה | BudgetThresholdCrossed |
| מאגר נוסף | RepoAdded |
| הקלטת הפגישה הופסקה | MeetingRecordingStopped |
| המיומנות עודכנה | SkillUpdated |
| המרחב נמחק | SpaceDeleted |
SpaceDeleted הוא האירוע שהפייפליין המובנה לניקוי עצי עבודה מאזין לו: הוא נושא
את המזהה של המרחב שנמחק, כך שההרצה מחזירה בדיוק את עצי העבודה של אותו מרחב
במקום לטאטא את כל סביבת העבודה.
למפתחות המטען שכל אירוע נושא, ראו עזר אירועי תחום.
סינון טריגר אירוע
קטע בשם “סינון טריגר אירוע”בחרו בצומת סטטוס PR השתנה. צ’יפי הסטטוס שבפאנל הם המסנן היחיד שממשק המשתמש
יודע לכתוב. הקישו על כל אחד מ-merged, closed, approved, opened,
reopened; הטריגר יורה אז רק כשהשדה status של האירוע תואם לאחד מהם. השארת
כל הצ’יפים לא נבחרים משמעה אין מסנן.
אין שדה מסנן JSON חופשי. מפתח מסנן שהמטען של האירוע אינו נושא לעולם אינו תואם, ולכן אל תכתבו מפתח ביד כנגד מפתח שלא אימתמתם בעזר אירועי תחום.
לפי לוח זמנים
קטע בשם “לפי לוח זמנים”בחרו בצומת לוח זמנים כדי לערוך מתי הוא יורה. שדות הפאנל נשמרים כפי שהשארתם אותם:
| שדה | תיאור |
|---|---|
| לוח זמנים (cron או every:seconds) | ביטוי cron בן חמישה שדות כגון 0 9 * * 1, או מרווח כגון every:86400. מספר חשוף מומר ל-every:<n>. |
| אזור זמן (אופציונלי) | אזור IANA כגון Europe/Paris. ברירת המחדל היא UTC. |
| הרצות שהוחמצו | מה לעשות עם ירי שהוחמץ בזמן שהשרת היה מושבת: הרצה פעם אחת מקבץ כל מועד שהוחמץ לירי אחד בעלייה מחדש (ברירת המחדל), דילוג ממשיך מהמועד הבא בעתיד. |
שורת הסיכום של האריח על הקנבס מפרטת את המרווח רק בצורת every:<seconds>; ביטוי
cron מוצג בתור “לוח זמנים” בלבד.
באמצעות webhook
קטע בשם “באמצעות webhook”גרירת Webhook מפיקה אסימון אקראי. בחרו בצומת כדי להעתיק מהפאנל את הנתיב
POST /webhooks/<token>.
האסימון הוא גם סוד ה-HMAC: הבקשה חייבת לשאת
X-Hub-Signature-256: sha256=<hex>, כאשר ה-hex הוא HMAC-SHA256(body, token).
משלוח שנכשל באימות נדחה, נרשם ביומן ואינו ניתן לשליחה חוזרת. כפילויות נזרקות
לפי מפתח הכפילויות שלהן.
כל נקודת התחלה היא צומת נפרד בגרף. משיכת חוט מלוח זמנים מחברת רק את לוח הזמנים; הרצה ידנית יכולה לעבור נתיב אחר (למשל צומת תנאי) לפני שהיא מתחברת לאותה עבודה. הרצה נכנסת לנקודת ההתחלה שתואמת את סוג האירוע שלה ומדלגת על תתי-גרפים ששייכים לנקודות ההתחלה האחרות.
איך טריגר מגיע להרצה
קטע בשם “איך טריגר מגיע להרצה”טריגר מופעל שגם סוג האירוע וגם המסנן שלו תואמים מתחיל הרצה, כשהמטען של האירוע
משמש כמטען הטריגר של ההרצה — זה מה ש-{{key}} בהנחיה או בסקריפט של שלב נפתר
כנגדו. אירועים שנושאים מפתח טבעי מסוננים מכפילויות, כך שאותו אירוע שיורה פעמיים
אינו מתחיל שתי הרצות.
תבנית מושבתת נדחית גם כשהטריגר שלה תואם. שמונה מבין שלוש-עשרה התבניות המובנות מגיעות מושבתות, ולכן הטריגרים שנזרעו להן יורים אל תוך כלום עד שתפעילו את התבנית.
דפוסים שימושיים
קטע בשם “דפוסים שימושיים”- הציבו שער רק בנתיב הידני — חברו את הרצה ידנית דרך צומת תנאי, ואת לוח זמנים ישר אל העבודה. כל נקודת התחלה מחזיקה בחוטים שלה.
- סקרו כל PR חדש — אירוע PR פורסם בתבנית
pr_review. - נקו אחרי מיזוג — אירוע סטטוס PR השתנה, מסונן ל-
merged/closed/approved. התבנית המובניתpr_merged_cleanupכבר מאזינה כך, ובנוסף לאירועי כרטיס הושלם/בוטל,SpaceDeleted, ולוח זמנים יומי שמופעל בכוח בכל זריעה מחדש מפני שהוא איסוף אשפה. - סבב לילי — לוח זמנים
0 2 * * *עם אזור זמן, בתבנית שהצומת הראשון שלה הוא סקריפט bash. - הגיבו למערכת חיצונית — טריגר webhook, כשהמערכת הקוראת חותמת על גוף הבקשה שלה כמתואר לעיל.