ה-CLI של גיטהאב

כלי נהדר לעבודה עם גיטהאב בלי לצאת מהטרמינל שכדאי להכיר. מדובר בכלי רשמי של גיטהאב.
האייקון של גיטהאב

הנה משהו שאיכשהו חמק ממני אבל הוא מאוד שימושי – ה-CLI של גיטהאב. כלי עזר נפלא למי שאוהב להפעיל את הגיט שלו דרך ממשק הפקודה ועובד עם גיטהאב או למי שצריך אינטגרציות מתוחכמות עם גיטהאב. אני באופן אישי מאוד אוהב לעבוד עם הטרמינל (קונסולה, או איך שהצעירים קוראים לזה היום). אבל כשאני עובד מול גיטהאב, הייתי תמיד צריך ללכת לממשק הגרפי. ואם יש משהו שאני, בגילי המתקדם, שונא, זה GUI. עכשיו להתחיל לחפש איפה פותחים issue או pull request? ואיפה יוצרים גיסט? הפכתי להיות מתכנת כדי לא להיות תלוי בשגיונות הגרפיקאים.

לפני כחצי שנה GitHub יצאו עם CLI שמאפשר לי לעשות את כל הפעולות האלו דרך הטרמינל. וזה נהדר כי זה גם מאפשר לי להשאר בתוך הטרמינל ולחלופין ליצור אינטגרציות מאוד מעניינות בכל מיני תהליכי CI. ואם זה נשמע קצת כמו סינית – אולי אני אדגים ואז יהיה אפשר להבין למה אני מקפץ בעליצות כקוף בעץ.

אם אני רוצה ליצור issue, כל מה שאני צריך זה להקליד בטרמינל, כאשר אני בתיקית הפרויקט, משהו כזה:

gh issue create --title "Security issue" --body "Should update dependencies" --label "bug"

ואם צריך לתקן? הכי קל בעולם ליצור פול ריקווסט:

gh pr create --title "security fix" --body "Update security npm issues"

רוצה למרג'ג'? אין סיבה ללכת לשום אתר. אפשר לקבל את רשימת הפול ריקווסטים ולמרג'ג' אותם עם:

gh pr list
gh pr merge 6

עכשיו בוודאי עניינתי חלק מכם. אפילו אם אתם שונאים טרמינל ואוהבים לעבוד עם האתר – תחשבו למשל על Nightly שנופל – אפשר ליצור issue מיידית מתוך תהליך ה-CI ואפילו לשייך אותו למתכנת ספציפי.

שכנעתי אתכם? רוצים לבדוק עוד? ראשית יש את האתר של הכלי בגיטהאב. שמסביר על התקנה ראשונית. במק או בלינוקס זה קל עם brew:

brew install gh

(אפשר גם להתקין שלא דרך brew ובחלונות בשלל דרכים).

התקנתם? אם תקלידו gh –help תוכלו לראות את ההסברים כאשר הכל עובד באופן מודולרי, אבל לפני שנתחיל לעבוד, צריך לבצע אותנטיקציה פשוטה באמצעות

gh auth login

על המסך יופיעו מספר שאלות פשוטות, אם אתם עובדים עם גיט באמצעות מפתח RSA (ואני מאמין שאתם כן) אז זה יקח כמה שניות. אפשר להתחבר גם עם גיטהאב אנטרפרייז. כל מה שצריך לעשות זה להקליד gh auth login.

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

אחרי זה? אפשר להתחיל לעבוד. איך עובדים? מתחילים עם gh –help. הוא יתן לכם את כל הדברים הראשוניים. למשל pr. או gist, או issue. נניח אתם רוצים לדעת איך עובדים עם issues. אז מקלידים gh issue ורואים את האפשרויות. נראה שיש gh issue list, gh issue create, gh issue view. אנחנו מעוניינים ב-create? אז נקליד gh issue create –help ונקבל את שלל האפשרויות.

זו עזרה מאוד נוחה. תראו למשל תוך כמה שניות אני מצליח ליצור באג:

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

לסיכום: כלי שבהחלט שווה להכיר. גם למתכנתים שאוהבים לעבוד בטרמינל ולא לצאת ממנו וגם לאלו שעוסקים ב-CI. הכלי עצמו נכתב ב-Go אגב.

פוסטים נוספים שכדאי לקרוא

פתרונות ומאמרים על פיתוח אינטרנט

יישום של nonce על מנת להגן מפני התקפות injection

בפוסט הקודם הסברתי על hash עם CSP על משאבי inline – שזה נחמד ומעולה אבל פחות ישים בעולם האמיתי שבו בדרך כלל התוכן ה-inline (בין

גלילה לראש העמוד