Skip to content
> 💻 🧠 קוד 1001 > 🛠️ DevOps > GitHub Personal Access Token (PAT) — אימות מאובטח ב-GitHub

GitHub Personal Access Token (PAT) — אימות מאובטח ב-GitHub

מאז אוגוסט 2021, GitHub אינו תומך יותר בשימוש בסיסמאות לפעולות Git דרך HTTPS. משמעות הדבר היא שכל פעולה שהייתה דורשת סיסמה בעבר, כעת דורשת אסימון. PAT מאפשר:

  • גישה מאובטחת לרפוזיטוריות;
  • עבודה עם GitHub API;
  • אוטומציה של תהליכים בסקריפטים, CI/CD וכלים אחרים ללא סיכון לפגיעה בחשבון.

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


למה להשתמש ב-PAT

המטרה העיקרית של PAT היא לאבטח את העבודה עם GitHub תוך שמירה על נוחות.

תפקודים מרכזיים:

  1. אבטחה
    סיסמה נותנת גישה מלאה לחשבון. במקרה של דליפה, כל הנתונים בסיכון. אסימון ניתן להגבלה לפי הרשאות ומשך זמן.
  2. אוטומציה
    סקריפטים, CI/CD, בוטים וכלים אחרים יכולים להשתמש ב-PAT במקום להקליד שם משתמש וסיסמה באופן ידני.
  3. בקרת גישה
    ניתן ליצור מספר אסימונים עם הרשאות שונות למשימות שונות. אם אסימון אחד נחשף, ניתן לבטלו מבלי להשפיע על האחרים.

סוגי אסימונים

GitHub מציע שני סוגי אסימונים:

  1. Classic (קלאסי)
    • הגישה מוגדרת דרך scopes (למשל repo, workflow).
    • מעניק הרשאות לכל הרפוזיטוריות של המשתמש.
    • פשוט לשימוש אך פחות גמיש.
  2. Fine-grained (מפורט)
    • מאפשר הגבלת גישה לרפוזיטוריות ספציפיות.
    • ניתן להקצות הרשאות מדויקות, למשל "קריאה בלבד של issues".
    • ארגונים עשויים לדרוש אישור עבור אסימונים אלו.

💡 טיפ: השתמשו באסימונים fine-grained כאשר חשובה האבטחה והמגבלות; אסימונים קלאסיים לשמירה על תאימות עם כלים ישנים.


כיצד ליצור PAT

שלב 1. גישה להגדרות

  1. פתחו GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic).

שלב 2. יצירת אסימון חדש

  1. לחצו על Generate new token (classic).
  2. העניקו שם לאסימון (Note), לדוגמה CI-token או Git-PC.
  3. הגדירו תאריך תפוגה — מומלץ 90 יום או שנה.
  4. בחרו בהרשאות הנדרשות (Scopes) — מינימום עבור Git: repo, עבור Actions: workflow.
  5. צרו את האסימון ושמרו אותו מיד — הוא יוצג רק פעם אחת.

שימוש ב-PAT

1. Git דרך HTTPS

git clone https://github.com/username/repo.git
# שם משתמש: שם המשתמש ב-GitHub
# סיסמה: האסימון שנוצר

כדי לא להזין את האסימון בכל פעולה, ניתן להשתמש במטמון:

git config --global credential.helper manager   # Windows/Mac
git config --global credential.helper 'cache --timeout=3600'  # Linux

2. עבודה עם GitHub API

$token = Get-Secret -Name GitHubToken  # אחזור מאובטח של האסימון
$headers = @{ Authorization = "token $token" }

$repos = Invoke-RestMethod -Uri "https://api.github.com/user/repos" -Headers $headers
$repos | ForEach-Object { $_.name }

יצירת issue:

$body = @{
    title = "משימה חדשה לבדיקה"
    body  = "תיאור המשימה"
} | ConvertTo-Json

Invoke-RestMethod -Uri "https://api.github.com/repos/username/repo/issues" `
                  -Method Post `
                  -Headers $headers `
                  -Body $body

3. CI/CD וסקריפטים

$token = Get-Secret -Name GitHubToken
git config --global user.name "CI Bot"
git config --global user.email "ci@example.com"

git add .
git commit -m "עדכון אוטומטי"
git push "https://$token@github.com/username/repo.git" main

💡 טיפ: השתמשו באסימון נפרד עם הרשאות מינימום ל-CI/CD.


4. IDE ופיתוח מקומי

  • ב-Visual Studio Code וב-IDE אחרים ניתן להשתמש ב-PAT במקום סיסמה כדי לעבוד עם רפוזיטוריות פרטיות ו-pull requests.
  • עבור מכונות או IDE שונים, צרו אסימונים נפרדים כדי להגביל את ההשפעה במקרה של דליפה.

5. ניהול ואבטחה

  • אחסנו את האסימונים במנהלי סיסמאות או SecretStore.
  • צרו אסימונים נפרדים עבור משימות שונות.
  • בדקו והסירו באופן קבוע אסימונים שלא בשימוש.
  • תמיד הגדירו תאריך תפוגה (אל תשתמשו ב-“No expiration”).
  • תכננו סיבוב אסימונים ל-CI/CD וסקריפטים אוטומטיים.

6. אלטרנטיבה: GitHub CLI

gh auth login

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

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *