בדף הזה מוסבר איך להתחבר למאגר Bitbucket Server ל-Cloud Build.
לפני שמתחילים
מפעילים את Cloud Build API, Secret Manager API ו-Compute Engine API, אם הם עדיין לא מופעלים.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים
- לפני שמקשרים מאגרי קוד, צריך לפעול לפי ההוראות לקישור של מארח Bitbucket Server.
התחברות למאגר Bitbucket Server
המסוף
כדי לקשר מאגר Bitbucket Server ל-Cloud Build באמצעות מסוף Google Cloud :
פותחים את הדף Repositories במסוף Google Cloud .
בחלק העליון של הדף, לוחצים על הכרטיסייה דור ראשון.
לוחצים על Connect Repository (קישור מאגר).
בוחרים באפשרות Bitbucket Server.
יוצג לכם החלונית Connect Repository (חיבור מאגר). כדי לחבר את מאגר Bitbucket Server, צריך לבצע את השלבים הבאים:
אזור: בוחרים את האזור שבו נמצא החיבור.
בקטע Select source code management provider (בחירת ספק לניהול קוד מקור), בוחרים באפשרות Bitbucket Server (שרת Bitbucket).
חיבור למארח: בוחרים את השם של החיבור למארח מהתפריט הנפתח.
לוחצים על Continue.
בקטע Select Repository, בוחרים את המאגרים ב-Bitbucket Server שרוצים לקשר ל-Cloud Build.
אחרי שבוחרים את החשבון ואת המאגרים ב-Bitbucket Server, קוראים את כתב הוויתור לבקשת הסכמה ומסמנים את תיבת הסימון שלצדו כדי לציין שאתם מקבלים את התנאים שמוצגים.
לוחצים על Connect (קישור) כדי לקשר את המאגרים.
כשמאגר מחובר, Cloud Build מגדיר webhook במאגר במופע Bitbucket Server. מאגר המידע שולח webhook כדי להפעיל את הטריגרים המתאימים של Bitbucket Server כשמבצעים שינויים במאגר. אפשר גם לקשר מאגר כמה פעמים עם כמה חיבורים למארח. מידע נוסף על ניהול וווב-הוקים זמין במאמר ניהול וווב-הוקים.
כדי לאתר את ה-webhook, צריך את מזהה ה-webhook. אפשר למצוא את מזהה ה-webhook של כל מאגר שמקושר ב-
BitbucketServerConfig.מזינים את הפקודה הבאה כדי לאחזר את מזהה ה-webhook:
gcloud alpha builds enterprise-config bitbucketserver describe CONFIG_NAME --region=REGIONכאשר:
- CONFIG_NAME הוא השם של ההגדרה של Bitbucket Server
- REGION הוא האזור של חיבור המארח של Bitbucket Server
לוחצים על סיום. אפשר גם ללחוץ על Create a trigger (יצירת ביטוי להפעלה) כדי ליצור ביטוי להפעלה.
API
כדי לחבר את מאגר Bitbucket Server ל-Cloud Build באמצעות ה-API, צריך לבצע את השלבים הבאים:
כדי לחבר את המאגר, משתמשים בתבנית ה-JSON הבאה:
{ "parent": "projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/BITBUCKET_SERVER_CONFIG_NAME", "requests": { "parent": "projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/BITBUCKET_SERVER_CONFIG_NAME", "bitbucketServerConnectedRepository": { "parent": "projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/BITBUCKET_SERVER_CONFIG_NAME", "repo": { "projectKey": "PROJECT_KEY", "repoSlug": "REPO_SLUG" } } } }כאשר:
- PROJECT_NUMBER הוא מספר הפרויקט בענן שלך.
- REGION הוא האזור שמשויך להגדרה של Bitbucket Server.
- BITBUCKET_SERVER_CONFIG_NAME הוא השם של הגדרת Bitbucket Server.
- PROJECT_KEY הוא המפתח של הפרויקט ב-Bitbucket Server.
אם רוצים לחבר מאגר אישי, מפתח הפרויקט צריך להכיל את הסימן טילדה (
~) לפני שם המשתמש. לדוגמה:~${USERNAME}. כתובת ה-URL המלאה של מאגר מארח יכולה להיראות כך:https://${HOST_URI}/projects/~${USER_NAME}/repos/${REPO_SLUG}. - REPO_SLUG הוא השם הקצר של מאגר Bitbucket Server.
מזינים את הפקודה
curlהבאה במסוף:curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" -H "x-goog-user-project: PROJECT_NUMBER" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/bitbucketServerConfigs/BITBUCKET_SERVER_CONFIG_NAME/connectedRepositories:batchCreate -d @requests.jsonכאשר:
- PROJECT_NUMBER הוא מספר הפרויקט ב-Cloud.
- PROJECT_ID הוא מזהה הפרויקט בענן.
- REGION הוא האזור שמשויך להגדרה של Bitbucket Server.
- BITBUCKET_SERVER_CONFIG_NAME הוא השם של הגדרת Bitbucket Server.
אם הפעולה בוצעה ללא שגיאות, גוף התגובה יכיל מופע חדש של Operation.
מזינים את הפקודה
curlהבאה במסוף:curl -X GET -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" -H "x-goog-user-project: PROJECT_NUMBER" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_IDכאשר:
- PROJECT_NUMBER הוא מספר הפרויקט ב-Cloud.
- PROJECT_ID הוא מזהה הפרויקט בענן.
- REGION הוא האזור שמשויך להגדרה של Bitbucket Server.
- OPERATION_ID הוא המזהה של פעולת יצירת ההגדרה של Bitbucket Server.
מזהה הפעולה מופיע בשדה
nameשל התשובה. הפורמט של השדהnameבתגובה אמור להיראות כך:projects/project-id/locations/region/operations/operation-id.
יכול להיות שתצטרכו להמשיך להריץ את פקודת ה-API
GetOperationעד שהתגובה תכיל את הערךdone: true, שמציין שהפעולה הושלמה. אם החיבור למאגר Bitbucket Server יצליח, תוכלו לראות את המאגר המחובר בשדהresponse.bitbucketServerConnectedRepositories. אחרת, בשדהerrorמופיע דוח שגיאות מפורט.
המאמרים הבאים
- איך יוצרים מאגרי מידע מ-Bitbucket Server
- איך יוצרים מאגרי מידע מ-Bitbucket Server ברשת פרטית
- איך מבצעים פריסות כחולות/ירוקות ב-Compute Engine