התחברות למאגר Bitbucket Server

בדף הזה מוסבר איך להתחבר למאגר 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). איך מקצים תפקידים

    הפעלת ממשקי ה-API

התחברות למאגר Bitbucket Server

המסוף

כדי לקשר מאגר Bitbucket Server ל-Cloud Build באמצעות מסוף Google Cloud :

  1. פותחים את הדף Repositories במסוף Google Cloud .

    פתיחת הדף Repositories

  2. בחלק העליון של הדף, לוחצים על הכרטיסייה דור ראשון.

  3. לוחצים על Connect Repository (קישור מאגר).

  4. בוחרים באפשרות Bitbucket Server.

    יוצג לכם החלונית Connect Repository (חיבור מאגר). כדי לחבר את מאגר Bitbucket Server, צריך לבצע את השלבים הבאים:

    1. אזור: בוחרים את האזור שבו נמצא החיבור.

    2. בקטע Select source code management provider (בחירת ספק לניהול קוד מקור), בוחרים באפשרות Bitbucket Server (שרת Bitbucket).

    3. חיבור למארח: בוחרים את השם של החיבור למארח מהתפריט הנפתח.

    4. לוחצים על Continue.

    5. בקטע Select Repository, בוחרים את המאגרים ב-Bitbucket Server שרוצים לקשר ל-Cloud Build.

    6. אחרי שבוחרים את החשבון ואת המאגרים ב-Bitbucket Server, קוראים את כתב הוויתור לבקשת הסכמה ומסמנים את תיבת הסימון שלצדו כדי לציין שאתם מקבלים את התנאים שמוצגים.

    7. לוחצים על 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
  5. לוחצים על סיום. אפשר גם ללחוץ על Create a trigger (יצירת ביטוי להפעלה) כדי ליצור ביטוי להפעלה.

API

כדי לחבר את מאגר Bitbucket Server ל-Cloud Build באמצעות ה-API, צריך לבצע את השלבים הבאים:

  1. כדי לחבר את המאגר, משתמשים בתבנית ה-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.
  2. מזינים את הפקודה 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.

  3. מזינים את הפקודה 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 מופיע דוח שגיאות מפורט.

המאמרים הבאים