בדף הזה מוסבר איך מגדירים ווּבְּהוּקים ב-Secure Source Manager.
Webhooks הן בקשות HTTP שמופעלות על ידי אירוע ב-Secure Source Manager ונשלחות לכתובת URL שהמשתמש מציין.
לפני שמתחילים
התפקידים הנדרשים
כדי לקבל את ההרשאות שדרושות ליצירת וווב-הוקים, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
- Secure Source Manager Repository Admin (
roles/securesourcemanager.repoAdmin) במאגר Secure Source Manager - Secure Source Manager Instance Accessor (
roles/securesourcemanager.instanceAccessor) במופע Secure Source Manager
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
במאמרים בקרת גישה באמצעות IAM והענקת גישה של משתמשים למופע מוסבר איך נותנים תפקידים ב-Secure Source Manager.
הגדרת webhook
- בממשק האינטרנט של Secure Source Manager, עוברים אל המאגר שרוצים ליצור בשבילו webhook.
- לוחצים על הגדרות.
- לוחצים על Webhooks (הודעות webhook) ואז על Add webhook (הוספת הודעת webhook).
בשדה Hook ID (מזהה ה-webhook), מזינים מזהה ל-webhook.
בשדה כתובת URL ליעד, מזינים את כתובת ה-Webhook. לדוגמה, אם רוצים להפעיל build ב-Jenkins, אפשר להגדיר טריגר webhook ואז להזין כאן את כתובת ה-URL של הטריגר ב-Jenkins כדי להפעיל את ה-build ב-Jenkins.
אם כתובת ה-Webhook מכילה את ערכי המפתח והסוד שהזנתם כשנוצר טריגר ה-Webhook, צריך להסיר אותם מסוף כתובת היעד ולהעתיק אותם לשדה מחרוזת שאילתה רגישה.
כדי למצוא את המפתח והסוד בכתובת ה-URL של ה-webhook, מחפשים את הטקסט שמתחיל ב-
key=לדוגמה, אם כתובת ה-URL היא:
https://cloudbuild.googleapis.com/v1/projects/my-project/triggers/test-trigger:webhook?key=eitIfKhYnv0LrkdsyHqIros8fbsheKRIslfsdngf&secret=Hello%20Secret%20Managerמעתיקים את החלק שמתחיל בסימן השאלה
?key=...מהשדה כתובת יעד ומסירים אותו. אחר כך מסירים את סימן השאלה הראשוני, ומעבירים את החלק שנותרkey=...לשדה מחרוזת שאילתה רגישה.בקטע הפעלה ב, בוחרים באחת מהאפשרויות הבאות:
- Push: כדי להפעיל את הטריגר כשמתבצעת פעולת push למאגר.
- Pull request state changed: כדי להפעיל את הטריגר כשמצב בקשת המיזוג משתנה.
אם בחרתם באפשרות Push, תוכלו להזין רשימת היתרים לאירועי Push בשדה Branch filter.
בשדה Branch filter נעשה שימוש בתבנית glob, ורק פעולות בענפים שתואמים לתבנית יפעילו טריגר לפיתוח גרסת Build. לדוגמה,
{main,dev}triggers on push events to themainanddevbranches. אם השדה ריק או*, מדווחים על אירועי push לכל הענפים. מידע על התחביר מופיע במאמר בנושא glob.לוחצים על Add webhook (הוספת webhook).
התגובה לפעולה מאתר אחר (webhook) מוצגת בדף Webhooks.
בדיקת ה-webhook
- בדף Webhooks (ווּבְּהוּקים) ב-Secure Source Manager, לוחצים על הווב-הוק שרוצים לבדוק.
גוללים לתחתית הדף ולוחצים על בדיקת מסירה.
אירוע placeholder נוסף לתור המסירה. יכול להיות שיחלפו כמה שניות עד שההודעה תופיע בהיסטוריית המסירה.
אפשר גם להשתמש בפקודה
gitכדי לשלוח או למזג בקשת משיכה כדי לבדוק את ה-webhook.בודקים את הסטטוס של הבנייה או האירוע שהופעלו בהיסטוריית הבנייה של השירות שבו הגדרתם את טריגר ה-Webhook.
אחרי ששולחים את משלוח הבדיקה הראשון, אפשר גם לראות את הבקשה והתגובה למשלוח הבדיקה בקטע משלוחים אחרונים בדף ה-webhook של Secure Source Manager.
החלפת משתני YAML של Cloud Build בנתוני מטען ייעודי (payload)
אם אתם משתמשים בתגובות לפעולה מאתר אחר כדי להתחבר ל-Cloud Build, אתם יכולים להחליף את משתני ה-YAML של Cloud Build בנתוני מטען הייעודי (payload) של התגובה לפעולה מאתר אחר של Secure Source Manager.
בדף Webhooks (ווּבְהוּקים) של Secure Source Manager, בקטע Recent deliveries (מסירות אחרונות), לוחצים על השורה העליונה.
מוצגים הכותרת Request והתוכן שנשלחו על ידי מטען ה-webhook.
עוברים ללוח הבקרה של Cloud Build ולוחצים על Triggers (מפעילים).
לוחצים על הטריגר שרוצים להגדיר.
בקטע 'מתקדם', בקטע משתני החלפה, לוחצים על + הוספת משתנה.
מזינים את השם והערך של המשתנה. קידומת הערך היא
body.לדוגמה, כדי להחליף את
_REPO_URLבשדה נתוני מטען הייעודיrepository.clone_urlואת_COMMIT_SHAב-SHA של הקומיט האחרון ב-Cloud Build YAML, מזינים את השמות והערכים הבאים:- משתנה 1:
_REPO_URLערך 1:$(body.repository.clone_url) - משתנה 2:
_COMMIT_SHAערך 2:$(body.after)
קובץ ה-YAML של Cloud Build נראה כך:
steps: - name: gcr.io/cloud-builders/git env: - '_REPO_URL=$_REPO_URL' - '_COMMIT_SHA=$_COMMIT_SHA' script: | #!/bin/sh git clone ${_REPO_URL} /workspace cd /workspace git reset --hard ${_COMMIT_SHA}- משתנה 1: