אינטגרציות

GitHub ו-SLAtech Vantage: קומיטים וריצות שנכשלו

קוד שהשתנה, בנייה שנפלה ואסימון שעומד לפוג.

SLAtech Vantage מושך מ-GitHub שני דברים: את הקומיטים של המאגר, שמשויכים לפרויקט, ואת הריצות של GitHub Actions שנכשלו, שנכנסות לזרם התקלות. החיבור הוא לקריאה בלבד ונעשה באמצעות אסימון גישה אישי. כשהאסימון הוא מסוג fine-grained, SLAtech Vantage יודע מתי הוא פג ומזהיר שבועיים מראש.

מה נמשך מכל קומיט

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

  • המזהה (sha), ההודעה, המחבר והתאריך;
  • רשימת הקבצים ששונו, עם מספר השורות שנוספו ונמחקו;
  • השינוי עצמו בכל קובץ, כש-GitHub מחזיר אותו. בשינוי גדול מאוד GitHub לא מחזיר אותו, ואז הוא חסר.

קומיט משויך לפרויקט ולמאגר, לא למשימה מסוימת. אפשר לחבר לפרויקט יותר ממאגר אחד, למשל צד לקוח וצד שרת.

מה קומיטים עושים בתוך SLAtech Vantage

שני שימושים, ושניהם חוסכים חיפוש:

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

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

ריצות GitHub Actions שנכשלו

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

  • כל ריצה כזו נכנסת לזרם התקלות של הפרויקט, לצד השגיאות מהשרת.
  • הקיבוץ הוא לפי מאגר, שם התהליך, התוצאה והענף. "Deploy נכשל בפעם הארבע עשרה השבוע" נראה כקבוצה אחת עם מונה, ולא כארבע עשרה שורות.
  • ריצה שבוטלה ידנית נרשמת כרעש ולא כשגיאה: מישהו עצר אותה בכוונה.

מה הלקוח רואה

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

שאלה שהלקוח שואל בצ'אט של הפורטל יכולה לקבל תשובה שנשענת על הודעת קומיט מהפרויקט שלו, אבל בלי קישור למאגר.

גם ריצת CI שנכשלה לא מוצגת לו כשורה. אם נפתחה ממנה משימה, המשימה מגיעה אליו כמו כל משימה אחרת.

איך מחברים, ומתי האסימון פג

טופס החיבור מבקש מאגר בפורמט owner/repo ואסימון גישה אישי (PAT). האסימון נשמר מוצפן ולא מוצג שוב. הבדיקה מושכת באותו רגע את הקומיטים האחרונים, ולכן היא מוכיחה גישת קריאה למאגר עצמו. מסך מקורות הפרויקט פתוח היום למפעיל המערכת בלבד, ולכן החיבור נעשה דרכנו.

  • באסימון fine-grained, GitHub מצרף לתשובה את תאריך התפוגה. שבועיים לפני כן מסך החיבורים מסמן את זה ונשלח דואר אלקטרוני למפעיל המערכת.
  • כשנגמרת מכסת הבקשות של GitHub, המשיכה נעצרת וממשיכה בפעם הבאה מאותה נקודה, בלי לאבד קומיטים.
  • SLAtech Vantage לא פותח issues, לא מגיב ולא דוחף קוד.

גם GitLab נתמך, כולל שרת עצמאי: קומיטים, ובחיבור נפרד גם צינורות GitLab CI שנכשלו. Bitbucket נתמך לקומיטים בלבד, עם שם משתמש וסיסמת אפליקציה.

שאלות נפוצות

איזה אסימון GitHub צריך?
אסימון גישה אישי עם הרשאת קריאה למאגר. כדי למשוך ריצות GitHub Actions צריך גם הרשאת קריאה ל-Actions, וזהו חיבור נפרד מהקומיטים. אסימון fine-grained עדיף: רק איתו GitHub מדווח על תאריך התפוגה, ו-SLAtech Vantage מזהיר שבועיים לפני שהוא פג. האסימון נשמר מוצפן ולא מוצג שוב לאף אחד.
האם הקומיטים משויכים למשימות?
לא. קומיט משויך לפרויקט ולמאגר, לא למשימה מסוימת. הקשר שנבנה הוא לתקלות: כשממחסנית השגיאה מזוהה המחלקה שבה היא נפלה, מסך התקלה מציג את הקומיטים האחרונים שנגעו בקובץ שלה. בנוסף, הודעות הקומיטים נכנסות למאגר הידע, כך שאפשר למצוא שינוי לפי התיאור שלו, גם בעברית.
מה קורה לריצה של GitHub Actions שנכשלה?
היא נכנסת לזרם התקלות של הפרויקט, כמו שגיאה מהשרת. ריצות מקובצות לפי מאגר, שם התהליך, התוצאה והענף, כך שכישלון חוזר מופיע כקבוצה אחת עם מונה ולא כעשרות שורות. ריצה מוצלחת לא נשמרת, וריצה שבוטלה ידנית נרשמת כרעש. מקבוצה כזו אפשר לפתוח משימה, כמו מכל קבוצת תקלות.
האם GitLab ו-Bitbucket נתמכים?
כן, בהיקף שונה. GitLab נתמך גם ב-gitlab.com וגם בשרת עצמאי: קומיטים, ובחיבור נפרד גם צינורות GitLab CI שנכשלו, שנכנסים לזרם התקלות. Bitbucket נתמך לקומיטים בלבד, עם שם משתמש וסיסמת אפליקציה. בכל המקרים החיבור הוא לקריאה בלבד, והאסימון נשמר מוצפן ולא מוצג שוב.

רוצים לראות קומיטים וריצות שנכשלו ליד התקלות של הפרויקט? אפשר להתחיל בתקופת ניסיון.

התחילו ניסיון חינם