מהן אפליקציות GitHub?
כאן, אנו דנים מהן אפליקציות GitHub, כיצד הן פועלות וכיצד תוכל להשתמש בהן כדי לשפר את זרימות העבודה שלך. בין אם אתה מאמץ פתרון שנבנה על-ידי מישהו אחר או מפתח פתרון כזה כדי לעמוד בצרכים המדויקים שלך, תמיד יש מקום לשיפור התהליכים שלך.
הרחב את הפלטפורמה באמצעות ה- API של GitHub
GitHub מספק API חסים שמאפשר למפתחים לעשות בערך כל דבר בפלטפורמה. ה-API חשוף דרך נקודות קצה של REST, כך שקל לשלב איתו מכל פלטפורמה או שפת תכנות. עם זאת, הגישה ל- API אינה עצמאית. מפתחים שברצונך לשתף את התכונות שלהם עם אנשים אחרים עדיין צריכים לארוז אותם כיישום ולפרסם אותם לפני שכל אחד יוכל להשתמש בהם.
יש כמה גורמים שיש לשקול בעת בחירה בין שילוב אפליקציית OAuth או אפליקציית GitHub בזרימת העבודה שלך. בסעיף זה, נציג בפניך את יישומי GitHub ואפליקציות OAuth, הבדלי השימוש וההרשאות שלהם ומנויים לאירועים.
בעת התאמה אישית של זרימת עבודה של GitHub, יש לך מספר תכונות זמינות. כגון, כתיבת סקריפטים מותאמים אישית, יצירה והרשאה של אפליקציות OAuth משלך, או התקנת אפליקציות GitHub הזמינות בשוק GitHub. באופן כללי, באפשרותך להשתמש באופן הטוב ביותר בקבצי Script עבור משימות אישיות אלה. עבור פעולות המופעלות לעתים קרובות יותר, האוטומציה של אפליקציות OAuth ו- GitHub יכולה לעזור לך ולצוות שלך לחסוך זמן, תוך שמירה על רמת האבטחה האופטימלית בזרימות העבודה שלך. קיימים הבדלים רבים המשפיעים על האופן שבו אתה מחליט בין שימוש באפליקציית GitHub או באפליקציית OAuth. הבנת ההבדלים הללו מראש עשויה להפחית כאבי ראש מסוימים ולבצע פעולות חוזרות בהמשך הדרך, ולעזור לך למצוא את היישום המתאים ביותר למקרה השימוש הספציפי שלך בזרימת העבודה.
בסוף סעיף זה, אתה אמור להבין היטב את ההבדלים בין אפליקציית GitHub לאפליקציית OAuth, ולדעת כיצד לבחור אפליקציה בצורה הטובה ביותר למצב הנכון.
הענקת גישה והרשאות
אחד השיקולים החשובים ביותר עבור מתן אפשרות לאפליקציה לגשת למאגר GitHub הוא ההרשאות הדרושות להפעלתו. קל לסמוך על אפליקציות מסוימות, אך אחרות עשויות להיות חשודות. ודא תמיד שאתה חש בנוח עם ההרשאות שאתה מעניק לאפליקציה.
הערה
כל אפליקציה משתמשת במפתח API ייחודי כדי לבקש בקשות עבור הנתונים במאגר שלך. כאשר אתה מאשר גישה, זהו המפתח שאתה מאשר. אתה יכול לבטל את הגישה למפתח של אפליקציה בכל עת מהגדרות המאגר שלך.
יישומי OAuth
יישומי OAuth מספקים דרך לגשת לנתונים של GitHub בשם משתמש. מכיוון שהוא פועל בשם המשתמש, חשוב לציין שהוא צורך רישיון GitHub. באפשרותך ליצור ולרשום יישום OAuth בחשבון האישי שלך, או ברמת הארגון אם יש לך גישת ניהול. אפליקציית OAuth שמשתלבת עם GitHub חושפת את סוג הגישה לארגון או למאגר שהיא דורשת. המשתמשים לאשר OAuth, אשר מעניקים לאפליקציה את היכולת לפעול כמשתמש מאומת, כגון קריאה או שינוי של נתונים. גישה זו היא למעשה דרך אוטומטית לקרוא, לכתוב או לערוך נתוני GitHub כמשתמש. חשוב גם לציין שההרשאה מוגבלת למשאבים הנגישים למשתמש. עם זאת, אפליקציית OAuth מקבלת גם גישה לכל המשאבים הזמינים למשתמש.
הערה
רמת הגישה מוגבלת על-ידי טווח האסימון (משתמש, ארגון, מאגר).
עבור ארגונים בעלי הגבלות גישה ליישום OAuth, מנהל המערכת יכול להעניק אישור לשימוש ביישום. עם מנויי אירוע, יישומי OAuth מגיבים לפעילות בזמן אמת.
אפליקציות GitHub
לעומת זאת, אפליקציות GitHub אפליקציות בחשבון האישי שלך, בארגונים בבעלותך או מאגרים ספציפיים שבהם יש לך גישת מנהל מערכת. יישומי GitHub מותקנים ולקיים אינטראקציה עם GitHub כשירות, לא כמשתמש בודד כמו עם יישומי OAuth. יתרון אחד של יישומי GitHub הוא שבניגוד לאפליקציות OAuth, אפליקציות GitHub אינן צורכות רישיון GitHub.
יישומי GitHub ניגשים לנתונים בשם האפליקציה עצמה באמצעות מפתח פרטי המשמש לחתימה על אסימון אינטרנט של JSON. מכיוון שהם מותקנים במאגרים ספציפיים, משתמשים יכולים לבחור לאילו מאגרים האפליקציה יכולה לגשת, מה שמגביל את כמות הנתונים שהאפליקציה יכולה לגשת אליהם. הרשאות מגדירות לאילו משאבים האפליקציה GitHub יכולה לגשת דרך ה- API. בניגוד לאפליקציות OAuth, לאפליקציות GitHub יש הרשאות ניתנות להתאמה אישית עבור נתוני מאגר, בעיות ובקשות משיכה. התאמה אישית מאפשרת לך להעניק הרשאות מפורטות יותר, ולהגביל את האפליקציה לקריאה וכתיבה רק במאגרים שאתה מאפשר לה לגשת אליהם. רק בעלי ארגון יכולים לנהל את ההגדרה של יישומי GitHub בארגון.
ניתן למצוא ולהתקין אפליקציות GitHub מ- GitHub Marketplace. כאשר אתה מחפש אפליקציות GitHub, זכור שלחלק מהאפליקציות יש תג אימות. תג מאומת מציין את הפרטים הבאים אודות האפליקציה והארגון שבבעלותה:
- הבעלות של הארגון על הדומיין שלו מאומתת.
- התמיכה של GitHub מאשרת את כתובות הדוא"ל של הארגון.
- הארגון דורש אימות דו-שלבי.
- מנהל מערכת יכול להעניק הרשאות לגבי ניהול מאגר, בדיקה, תוכן מאגר, פריסות ובעיות (שינויי מנהל המערכת דורשים קבלת)
- מנהל מערכת יכול להעניק למשתמשי האפליקציה הרשאות לחסום משתמש אחר, הודעות דואר אלקטרוני, עוקבים, מפתחות GPG, מפתחות Git SSH, צפייה (שינויי מנהל המערכת דורשים קבלת)
- מנויי אירוע: אבטחה מינורית, בדיקת חבילה, יצירה, פריסה, מזלג, תווית, חבר, הכנסת הערה, מחיקה, מצב פריסה, אבן דרך, חברות, ארגון ( מנהל מערכת שלמגדיר בממשק המשתמש של יישומי GH ובאפשרותך לשנות)
בחר בין אפליקציות GitHub ואפליקציות OAuth
בעוד שאפליקציות GitHub הן דרך אידיאלית להשתלב בזרימת העבודה שלך במצבים מסוימים, ארגונים גדולים יותר יכולים להתקשות לבצע את המעבר מהשימוש המסורתי באפליקציות OAuth לאוטומציה. לדוגמה, הגבלת מדיניות אבטחה עשויה גם להגביל את האפשרויות של מנהל מערכת בבחירה להשתמש בכלים אלה.
הערה
כמנהל המערכת, עליך לעבוד עם המפתחים שלך כדי למצוא את האפשרויות המתאימות ביותר לאוטומציה באמצעות יישומים אלה תוך שמירה על מדיניות האבטחה שלך.
כדי לקבוע איזו אפליקציה היא הפתרון המתאים למצבך, הנה כמה שאלות חשובות לשקול:
- האם ברצוני שהיישום יתנהג כמשתמש?
- מה צריכה להיות מגבלת התעריף?
- איזו גישה ברצוני לאפליקציה להיות בארגון ובמאגרים?
- האם אפליקציה זו תואמת למדיניות האבטחה שלנו?
להלן כמה מאפיינים עיקריים והבדלים שברצונך לשקול בעת בחירה בין אפליקציית GitHub או אפליקציית OAuth.
| אפליקציות GitHub | יישומי OAuth |
|---|---|
| התקנת אפליקציית GitHub מעניקה לאפליקציה גישה למאגרים שנבחרו על-ידי משתמש או חשבון ארגוני. | הרשאת יישום OAuth מעניקה לאפליקציה גישה למשאבים הנגישים של המשתמש; לדוגמה, מאגרים שהם יכולים לגשת אליהם. |
| אסימוני גישה להתקנה מוגבלים למאגרים שצוינו עם ההרשאות שנבחרו על-ידי יוצר היישום. | אסימון גישה של OAuth מוגבל דרך טווחים. |
| אסימון התקנה מזהה את האפליקציה כבוט יישומי GitHub. | אסימון גישה מזהה את היישום כמשתמש שהעניק את האסימון לאפליקציה. |
| יישומי GitHub משתמשים בהרשאות ממוקדות המאפשרות להם לבקש גישה רק למה שהם צריכים. | יישומי OAuth אינם יכולים להשתמש בהרשאות פרטניות. |
| יישומי GitHub אינם כפופים לפריטי מדיניות של אפליקציות ארגוניות. לאפליקציית GitHub יש גישה רק למאגרים שבעל ארגון מעניק. | אם מדיניות יישום ארגונית פעילה, רק בעלים של ארגון יכול לאשר את ההתקנה של יישום OAuth. אם הוא מותקן, יישום OAuth מקבל גישה לכל דבר הגלוי לאסימון שיש לבעלים של הארגון בארגון המאושר. |
| ניתן להעניק הגדלות של מגבלת קצבים הן ברמת יישומי GitHub (המשפיעות על כל ההתקנות) והן ברמת ההתקנה הבודדת. | הגדלות של מגבלת קצבים ניתנות לכל יישום OAuth. כל אסימון שהוענק לאפליקציה זו של OAuth מקבל את המגבלה המוגדלת. |
| יישומי GitHub יכולים לבצע אימות בשם המשתמש, שנקרא בקשות משתמש לשרת. הזרימה לאישור זהה לזרימת ההרשאה של יישום OAuth. אסימוני משתמש לשרת יכולים לפוג ולחדש אותם באמצעות אסימון רענון. | זרימת OAuth המשמשת יישומי OAuth מאשרת יישום OAuth בשם המשתמש. זרימה זו היא אותה זרימה המשמשת בהרשאת משתמש לשרת של אפליקציית GitHub. |
| יישומי GitHub מבקשים הרשאת תוכן מאגר ומשתמשים אסימון ההתקנה שלך כדי לבצע אימות באמצעות Git מבוסס-HTTP. | יישומי OAuth מבקשים write:public_key הטווח והיקף צור מפתח פריסה באמצעות ה- API. לאחר מכן תוכל להשתמש במקש זה כדי לבצע פקודות Git. |
גישה ליישומים והרשאות
אחד השיקולים החשובים ביותר עבור מתן אפשרות לאפליקציה לגשת למאגר GitHub הוא ההרשאות הדרושות להפעלתו. קל לסמוך על אפליקציות מסוימות, אך אחרות עשויות להיות חשודות. ודא תמיד שאתה חש בנוח עם ההרשאות שאתה מעניק לאפליקציה.
קבלת ההחלטה להשתמש באפליקציית GitHub או באפליקציית OAuth עשויה להיות תלויה ברמת הגישה שאליה ברצונך שהיישום יגש. באופן כללי, עליך לעודד את הצוות להשתמש בכלי עם הטווח הקטן ביותר כדי להשלים את המשימה. ליישום OAuth יש גישה לכל משאבי המשתמש או הבעלים של הארגון.
- יישומי OAuth יכולים לקרוא או לכתוב גישה לנתונים שלך ב- GitHub
- באפשרותך להעניק לאפליקציה GitHub גישה לחשבון אחד מבלי לקבל גישה לחשבון אחר
אבטחת יישומים
כאשר אתה מוצא פגיעות ביישום שלך, עליה להיות עדיפות ובמדיניות האבטחה שלך כדי לומר למשתמשים של הפרוייקט שלך. הודעה מהירה על בעיית אבטחה עשויה להיות ההבדל בין המשתמשים שלך היכולת לבטל אסימון שנחשף לסכנה או לחשוף נתונים רגישים. בעוד שאסימונים מאובטחים הרבה יותר מסיסמאות, האבטחה עדיין יכולה להיחשף לסכנה, וחשוב שהארגון שלך יהיה מוכן.
בנוסף לקובץ README.md, מומלץ להוסיף קובץ SECURITY.md למאגרים שלך. קובץ SECURITY.md מסמן מידע הקשור לאבטחה עבור המאגר. הקובץ צריך לכלול את אנשי הקשר של האבטחה, את מדיניות הארגון שלך ולפרט את התגובה שאתה מתכנן לנקוט כאשר מתגלה פגיעות.
מגיב לאירועים
אפליקציות GitHub מיועדות להיות סבילות. הם מחכים שמשהו יקרה ולאחר מכן מגיבים, בדרך כלל באמצעות ה- API של GitHub. בעת המתנה לאירועים להתרחש ב- GitHub, קיימות שתי גישות: webhooks ותשאול.
הערה
יישומי GitHub אינם מוגבלים לעבודה עם נתוני GitHub. באפשרותך להמתין בקלות לאירועים המתרחשים ממקורות אחרים או לבצע פעולות המעדכנות שירותים אחרים.
שימוש ב- GitHub webhooks
Webhooks הם הגישה המועדפת לטיפול באירועים. כאשר משהו קורה ב-GitHub במסגרת של webhook, אירוע מועלה מיד. Webhooks דחיפת הודעות האפליקציה שלך יכולה להאזין ולעבד בזמן אמת. באפשרותך לקבוע את התצורה של רכיבי webhook בהגדרות המאגר שלך, כולל סוגי האירועים, האימות והאופן שבו הודעות HTTP נמסרות.
תשאול
לעתים, לא ניתן להשתמש ב- webhooks. ייתכן שהאפליקציות שלך יצטרכו לחיות מאחורי חומת אש ארגונית שבה GitHub אינו יכול להגיע אליה ישירות. במקרה זה, חלופה היא לחפש את הנתונים שאתה עוקב בהם באמצעות ה- API של GitHub.
ממסר Webhook
חלופה לתשאול עבור יישומים מאחורי חומת אש היא להשתמש בשירות העברת webhook, כגון smee.io. בגישה זו, השירות הציבורי נרשם ל-webhook של המאגר, ולאחר מכן מעביר נתונים נכנסים לשירות לקוח הפועל מאחורי חומת האש. לאחר מכן, שירות לקוח זה דוחף את ההודעות לאפליקציה הפועלת כאילו הגיעו מהמקור המקורי.