אם עדיין לא יצרתם מכונה של Secure Source Manager, קראו את המאמר יצירת מכונה של Secure Source Manager כדי להתחיל.
לפני שמתחילים
- ליצור או לבקש גישה למכונה של Secure Source Manager. מידע נוסף זמין במאמר יצירת מכונה של Secure Source Manager.
-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init - מתקינים את הרכיב
betaGoogle Cloud CLI:gcloud components install alpha
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות ליצירת מאגר, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
- התפקיד "יצירת מאגרים במכונה של Secure Source Manager" (
roles/securesourcemanager.instanceRepositoryCreator) במכונה של Secure Source Manager - התפקיד "יצירת מאגרים ב-Secure Source Manager" (
roles/securesourcemanager.repoCreator) בפרויקט של המכונה
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
במאמרים בקרת גישה באמצעות IAM ומתן גישה למשתמשים במכונה מוסבר איך נותנים תפקידים ב-Secure Source Manager.
יצירת מאגר
ממשק אינטרנט
-
כדי לגשת למופע של Secure Source Manager דרך ממשק האינטרנט שלו, מעתיקים את כתובת ה-URL הבאה לסרגל הכתובות בדפדפן.
INSTANCE_ID-PROJECT_NUMBER.LOCATION.sourcemanager.devמחליפים את מה שכתוב בשדות הבאים:
- INSTANCE_ID בשם המכונה.
- PROJECT_NUMBER עם מספר הפרויקט של המופע. Google Cloud מידע על זיהוי פרויקטים זמין במאמר זיהוי פרויקטים.
- LOCATION עם האזור של המכונה.
אם צריך, מבצעים אימות באמצעות פרטי הכניסה של Secure Source Manager.
בתפריט הניווט, לוחצים על הסמל + Create new repository.
ממלאים את פרטי המאגר:
מזהה המאגר: נותנים שם למאגר.
תיאור: אופציונלי: מזינים תיאור של המאגר.
Default branch: השם של הסניף שמוגדר כברירת מחדל.
Service account: אופציונלי: מזינים את חשבון השירות שרוצים לשייך למאגר. חשבון השירות הזה שמשתמש מנהל משמש לשילובים כמו Cloud Build. מידע נוסף זמין במאמר התחברות ל-Cloud Build.
Initialize repository: אופציונלי: בוחרים באפשרות הזו אם רוצים להפעיל את המאגר ולהוסיף קובצי .gitignore, רישיון ו-קובץ README.
.gitignore: אופציונלי: בוחרים אילו קבצים לא לעקוב אחריהם באמצעות התבניות בתפריט הנפתח.
license: אופציונלי: בוחרים רישיון נפוץ מהתפריט הנפתח.
לוחצים על יצירת מאגר.
gcloud
כדי ליצור מאגר באמצעות ה-CLI של gcloud, מריצים את הפקודה הבאה:
gcloud source-manager repos create REPOSITORY_ID \ --region=LOCATION \ --project=PROJECT_ID \ --instance=INSTANCE_ID \ --description=DESCRIPTION \ --default-branch=BRANCH \ --gitignores=GITIGNORES \ --license=LICENSE \ --readme=README \ --service-account=SERVICE_ACCOUNTמחליפים את מה שכתוב בשדות הבאים:
REPOSITORY_IDבשם של המאגר.
LOCATIONבאזור שבו רוצים ליצור את המאגר. מידע נוסף על מיקומים נתמכים זמין במאמר מיקומים.
PROJECT_IDבמזהה הפרויקט של המכונה של Secure Source Manager שבה רוצים ליצור את המאגר.
INSTANCE_IDעם מזהה המכונה של המכונה שבה אתם יוצרים את המאגר. כדי להציג את רשימת המכונות של Secure Source Manager בפרויקט, קראו את המאמר הצגה של רשימת המכונות.
DESCRIPTIONעם תיאור של המאגר. השלב הזה הוא אופציונלי ואפשר לדלג עליו.BRANCHבשם ברירת המחדל של הענף. השדה הזה אופציונלי ואפשר להשמיט אותו. שם ברירת המחדל של הענף, אם לא הוגדר, הואmain.
GITIGNORESברשימה מופרדת בפסיקים של שמות תבניות gitignore. השלב הזה הוא אופציונלי ואפשר לדלג עליו. הרשימה המלאה של התבניות הזמינות מופיעה בחומר העזר בנושא הגדרת האיניציאליזציה של המאגר.LICENSEבשם של תבנית הרישיון שרוצים להחיל על המאגר. השלב הזה הוא אופציונלי ואפשר לדלג עליו. במאמר העזר בנושא הגדרת האיניציאליזציה של המאגר מופיעה רשימה מלאה של תבניות הרישיונות הזמינות.
READMEעםdefaultכדי ליצור קובץ README מהתבנית שמוגדרת כברירת מחדל. השלב הזה הוא אופציונלי ואפשר לדלג עליו. אם לא מציינים קובץ README, הוא לא נוצר.
SERVICE_ACCOUNTמחליפים בכתובת האימייל של חשבון השירות שרוצים לשייך למאגר. השלב הזה הוא אופציונלי ואפשר לדלג עליו.
API
כדי ליצור מאגר באמצעות קריאת REST, מריצים את הפקודה הבאה:
curl \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/repositories?repository_id=REPOSITORY_ID \ -d '{ "instance": "projects/PROJECT_ID/locations/REGION/instances/INSTANCE_ID", "serviceAccount": "SERVICE_ACCOUNT" }'מחליפים את מה שכתוב בשדות הבאים:
REGIONבאזור של המכונה של Secure Source Manager. מידע נוסף על מיקומים נתמכים זמין במאמר מיקומים.-
INSTANCE_IDבמזהה המכונה של Secure Source Manager. PROJECT_IDבמזהה הפרויקט של מופע Secure Source Manager. איפה נמצא מזהה הפרויקט?REPOSITORY_IDבשם של המאגר.-
SERVICE_ACCOUNTבכתובת האימייל של חשבון השירות שרוצים לשייך למאגר.
אפשר לציין ערכים נוספים באמצעות דגל הנתונים של HTTP POST,
-d'{}'כולל אתחול המאגר, הוספת קובץ.gitignoreספציפי או רישיונות. מידע נוסף מופיע במאמרי העזרה.אם רוצים שהפלט יהיה קריא לאנשים, אפשר להעביר אותו ל-JSON באמצעות
json_pp.לדוגמה:
curl \ -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/projects/my-project-id/locations/us-central1/repositories?repository_id=my-repo \ -d '{ "instance": "projects/my-project-id/locations/us-central1/instances/prod-test-instance", "serviceAccount": "my-service-account@my-project-id.iam.gserviceaccount.com", "initialConfig": { "defaultBranch": "main" } }' | json_ppהתגובה תיראה כך:
{ "name": "operations/266bf4c7-13fe-11ed-be24-da823b7355d0", "metadata": { "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata", "createTime": "2022-08-04T14:02:59.810496928Z", "endTime": "2022-08-04T14:03:00.558354528Z", "target": "projects/654987321654/locations/us-central1/repositories/my-repo", "verb": "create", "apiVersion": "v1" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.Repository", "name": "projects/my-project-id/locations/us-central1/repositories/my-repo", "instance": "projects/654987321654/locations/us-central1/instances/prod-test-instance", "serviceAccount": "my-service-account@my-project-id.iam.gserviceaccount.com", "createTime": "2022-08-04T14:03:00Z", "uris": { "html": "https://prod-test-instance-654987321654.us-central1.sourcemanager.dev/my-project-id/my-repo", "gitHttps": "https://prod-test-instance-654987321654-git.us-central1.sourcemanager.dev/my-project-id/my-repo.git" } }כאשר:
-
654987321654הוא מספר הפרויקט של המאגר. -
my-project-idהוא מזהה הפרויקט של המאגר. -
my-repoהואREPOSITORY_IDשהגדרתם בפקודת היצירה. השדהurisמכיל את כתובות ה-URL לגישה למאגר באמצעות דפדפן אינטרנט או באמצעות גישת HTTPS לפרוטוקול Git.
ניגשים למאגר החדש באמצעות ה-URI של ה-HTML בתגובה. בממשק האינטרנט של Secure Source Manager יש תמיכה בבדיקת קוד, במעקב אחר בעיות ובבקשות משיכה.
המאגר נוצר במכונה של Secure Source Manager.
כשיוצרים מאגר חדש, מקבלים את התפקיד 'אדמין במאגר' (roles/securesourcemanager.repoAdmin). יכול להיות שיחלפו עד 2 דקות עד שההרשאה החדשה ב-IAM תתעדכן, לכן אם מופיעה שגיאת הרשאות כשמנסים לגשת למאגר אחרי שהוא נוצר, צריך להמתין כמה דקות ולנסות שוב.
המאגרים שיצרתם מופיעים בדף My repositories בממשק האינטרנט של Secure Source Manager.
עדכון מאגר
ממשק אינטרנט
- נכנסים לדף המאגר בממשק האינטרנט של Secure Source Manager.
- בתפריט הניווט, לוחצים על הגדרות המאגר.
- בקטע Basic settings (הגדרות בסיסיות), מזינים את כתובת האימייל של חשבון השירות בשדה Service account (חשבון שירות).
- לוחצים על שמירת השינויים.
gcloud
כדי לעדכן את חשבון השירות של המאגר, מריצים את הפקודה הבאה:
gcloud source-manager repos update REPOSITORY_ID \ --region=LOCATION \ --project=PROJECT_ID \ --service-account=SERVICE_ACCOUNTמחליפים את מה שכתוב בשדות הבאים:
-
REPOSITORY_IDבשם המאגר שרוצים לעדכן. -
LOCATIONבאזור שבו נמצא המאגר. PROJECT_IDבמזהה הפרויקט.-
SERVICE_ACCOUNTבכתובת האימייל של חשבון השירות שרוצים לשייך למאגר.
-
API
כדי לעדכן את חשבון השירות של המאגר באמצעות קריאה ל-REST, מריצים את הפקודה הבאה:
curl --request PATCH \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/repositories/REPOSITORY_ID?updateMask=serviceAccount \ -d '{"serviceAccount": "SERVICE_ACCOUNT"}'מחליפים את מה שכתוב בשדות הבאים:
PROJECT_IDבמזהה הפרויקט.REGIONעם האזור.REPOSITORY_IDבמזהה המאגר.-
SERVICE_ACCOUNTבכתובת האימייל של חשבון השירות.
המאמרים הבאים
- מתן גישה למאגר למשתמשים
- שימוש בניהול קוד מקור של Git עם Secure Source Manager.
- הצגת רשימה של מאגרים בממשק האינטרנט של Secure Source Manager.