בדיקת החיבור

המסמך הזה עוזר לכם לוודא שחשבונות השירות וחשבונות AWS שלכם הופעלו בהצלחה כדי לגשת לשירות Assured Open Source Software.

כדי לוודא שחשבונות השירות שלכם או (במקרה של רמת השימוש ללא תשלום בלבד) מזהה חשבון AWS מופעלים לגישה למאגר Assured OSS ולתיק החבילות שנבחרו בקפידה, צריך להשתמש ב-API כדי להציג רשימה של חבילות Java או Python שזמינות. Google Cloud כדי לעשות את זה, אפשר לקרוא ישירות לממשקי ה-API או להשתמש ב-Cloud Shell כדי להריץ קריאה ל-API בשורת פקודה של curl.

אם אתם משתמשים בתוכנית החינמית, במקרים נדירים יכול להיות שתיתקלו בשגיאות מסוג 'ההרשאה נדחתה' למשך שעה או יותר אחרי שתשלחו את טופס הפעלת הלקוח.

המסמך הזה רלוונטי גם לתוכנית פרימיום וגם לתוכנית ללא תשלום.

לפני שמתחילים

  1. מתקינים את הגרסה האחרונה של Google Cloud CLI. אם כבר התקנתם את Google Cloud CLI, צריך לוודא שפועלת אצלכם הגרסה העדכנית ביותר של .

    gcloud components update
    
  2. כדי לגשת ל-Assured OSS באמצעות Google Cloud, צריך להפעיל את Artifact Registry API בפרויקט האב Google Cloud של חשבונות השירות שהפעלתם עבור Assured OSS. אם אתם משתמשים במסלול הפרימיום, ה-API מופעל במהלך ההגדרה.

  3. מוסיפים את כתובות ה-URL הבאות לרשימת ההיתרים של הרשת:

    • *.pkg.dev
    • artifactregistry.googleapis.com

מגדירים אימות

בשביל Google Cloud

  1. יוצרים ומורידים את המפתח של חשבון השירות. מומלץ לפעול לפי השיטות המומלצות לניהול מפתחות לחשבונות שירות.

  2. אם כבר התחברתם ל-Google Cloud CLI, צריך לבטל את האימות הקיים:

    gcloud auth revoke
    
  3. אימות אל Google Cloud:

    gcloud auth login --cred-file=FILEPATH.json
    

    כאשר FILEPATH הוא הנתיב למפתח של חשבון השירות.

  4. מעדכנים את Application Default Credentials:

    export GOOGLE_APPLICATION_CREDENTIALS=FILEPATH.json
    

    כאשר FILEPATH הוא הנתיב למפתח של חשבון השירות.

ל-AWS

השלבים האלה רלוונטיים רק לתוכנית ללא תשלום של Assured OSS.

  1. מגדירים את מכונת EC2 כדי לאפשר בקשה של פרטי כניסה זמניים.

    1. נכנסים למסוף הניהול של AWS.
    2. ב-AWS Management Console, עוברים למרכז הבקרה של EC2 ובוחרים את מופע EC2 של היעד.
    3. בוחרים באפשרות Actions > Security > Modify IAM Role (פעולות > אבטחה > שינוי תפקיד IAM).
    4. בוחרים באפשרות Create New IAM Role > Create role (יצירת תפקיד IAM חדש > יצירת תפקיד).
    5. בקטע trusted entity type (סוג ישות מהימנה), בוחרים באפשרות AWS Service (שירות AWS).
    6. בתרחיש השימוש, בוחרים באפשרות EC2.
    7. מוסיפים את ההרשאה AmazonEC2ReadOnlyAccess ולוחצים על הבא.
    8. נותנים שם משמעותי לתפקיד ה-IAM ולוחצים על הבא.
    9. חוזרים אל שינוי תפקיד IAM. בוחרים את התפקיד החדש ולוחצים על Update IAM Role (עדכון תפקיד IAM).
  2. יוצרים את קובץ התצורה של פרטי הכניסה:

    gcloud iam workload-identity-pools create-cred-config \
    projects/ASSIGNED_PROJECT_NUMBER/locations/global/workloadIdentityPools/aoss-wif-pool/providers/aws-AWS_ACCOUNT_ID-provider \
    --service-account=aoss-wif-aws-AWS_ACCOUNT_ID-sa@ASSIGNED_PROJECT_ID.iam.gserviceaccount.com \
    --aws \
    --output-file=FILEPATH.json
    

    מחליפים את מה שכתוב בשדות הבאים:

    • AWS_ACCOUNT_ID: מספר החשבון ב-AWS שמורכב מ-12 ספרות (לדוגמה, 123456789012).
    • FILEPATH: הקובץ שבו שומרים את התצורה. ‫+ ASSIGNED_PROJECT_ID: מזהה הפרויקט ב- Google Cloud שהוקצה לכם, כפי שצוין באימייל שקיבלתם על הפעלת התכונה. ‫+ ASSIGNED_PROJECT_NUMBER: מספר הפרויקט Google Cloud שהוקצה לכם, כמו שצוין באימייל שקיבלתם על הפעלת החשבון.

    אם משתמשים ב-AWS IMDSv2, מוסיפים את הדגל --enable-imdsv2 לפקודה הקודמת. מידע נוסף מופיע במאמר יצירת הגדרות של פרטי כניסה.

  3. אם כבר התחברתם ל-Google Cloud CLI, צריך לבטל את האימות הקיים:

    gcloud auth revoke
    
  4. אימות אל Google Cloud:

    gcloud auth login --cred-file=FILEPATH.json
    

    FILEPATH הוא הנתיב לקובץ התצורה של פרטי הכניסה.

  5. עדכון Application Default Credentials:

    export GOOGLE_APPLICATION_CREDENTIALS=FILEPATH.json
    

    FILEPATH הוא הנתיב למפתח של חשבון השירות או לקובץ התצורה של פרטי הכניסה.

לפתרון בעיות שקשורות לאימות, אפשר לעיין במאמר בנושא פתרון שגיאות באימות.

רשימה של כל חבילות Java שזמינות ב-Assured OSS

אפשר להשתמש ב-API בארכיטקטורת REST כדי לראות רשימה של כל חבילות Java והגרסאות שלהן.

כדי להשתמש ב-Assured OSS בחינם, מזינים את בקשת ה-HTTP הבאה:

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts"

כדי להשתמש ברמת הפרימיום של Assured OSS, מזינים את בקשת ה-HTTP הבאה:

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-java/packages

מחליפים את PROJECT_ID במזהה הפרויקט שנבחר כשמגדירים את Assured OSS.

הנה דוגמה לפקודת curl לחיבור למאגר Java ברמה החינמית:

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts"

בתגובה לבקשה מוחזרת תשובה שדומה לדוגמה הבאה:

  {
    "mavenArtifacts": [
      {
        "name":
  "projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts/com.alibaba:fastjson:1.2.83",
        "pomUri":
  "us-maven.pkg.dev/cloud-aoss/cloud-aoss-java/com/alibaba/fastjson/1.2.83/fastjson-1.2.83.pom",
        "groupId": "com.alibaba",
        "artifactId": "fastjson",
        "version": "1.2.83",
        "createTime": "2022-06-24T09:10:05.166879Z",
        "updateTime": "2022-06-24T09:10:05.166879Z"
      },
      {
        "name":
  "projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts/org.apache.logging.log4j:log4j-api:2.17.1",
        "pomUri":
  "us-maven.pkg.dev/cloud-aoss/cloud-aoss-java/org/apache/logging/log4j/log4j-api/2.17.1/log4j-api-2.17.1.pom",
        "groupId": "org.apache.logging.log4j",
        "artifactId": "log4j-api",
        "version": "2.17.1",
        "createTime": "2022-03-16T12:22:50.113695Z",
        "updateTime": "2022-03-16T12:22:50.113695Z"
      },
      {
        "name":
  "projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts/org.apache.logging.log4j:log4j-core:2.17.1",
      "pomUri":
  "us-maven.pkg.dev/cloud-aoss/cloud-aoss-java/org/apache/logging/log4j/log4j-core/2.17.1/log4j-core-2.17.1.pom",
        "groupId": "org.apache.logging.log4j",
        "artifactId": "log4j-core",
        "version": "2.17.1",
        "createTime": "2022-03-16T12:26:40.317215Z",
        "updateTime": "2022-03-16T12:26:40.317215Z"
      }
    ]
  }

אם יש הרבה חבילות זמינות, יכול להיות שתשובת ה-API תחולק לדפים. אם הרשימה לא מוצגת בשלמותה, מקבלים בתשובה את אסימון ההמשך nextPageToken. הערך nextPageToken מייצג את התוצאה האחרונה שהתקבלה. כשמכניסים את הערך של nextPageToken לפרמטר pageToken של בקשת ההמשך, מקבלים את דף התוצאות הבא, החל מהתוצאה האחרונה.

כדי להציג את הדף הבא של התוצאות או להגדיל את מספר האובייקטים שמוחזרים בכל דף, משתמשים בכתובת ה-URL הבאה:

  "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts?pageSize=NUMBER&pageToken=NEXT_PAGE_TOKEN"

מחליפים את מה שכתוב בשדות הבאים:

  • NUMBER: מספר הפריטים שיוחזרו בכל דף. הערך המקסימלי שניתן להזין הוא 1,000.
  • NEXT_PAGE_TOKEN: ערך האסימון nextPageToken שמוחזר בתגובת ה-JSON.

לחלופין, אפשר להשתמש בסקריפט הבא כדי לאסוף את התוצאות עם מספור הדפים של בקשת ה-API שצוינה למעלה לקובץ:

tempFile=$(mktemp)
nextPageToken=""
while
    curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts?pageSize=1000&pageToken=$nextPageToken" > $tempFile
    nextPageToken=$(grep nextPageToken $tempFile | sed 's/  "nextPageToken": "//' | sed 's/.$//')
    grep -v nextPageToken $tempFile >> FILENAME1
    [ -n "$nextPageToken" ]
do
:
done

אופציונלי: כותבים רשימה ממוינת של שמות חבילות Java ראשיות אל FILENAME2

הפעולות הבאות בשורת הפקודה מסננות את הרשימה הגולמית של חבילות Java שמוחזרת, כדי לתת לכם רשימה של שמות החבילות הראשיות בלבד.

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts?pageSize=1000" \
      | grep artifactId | sort -f | uniq >  FILENAME2

אופציונלי: כותבים רשימה ממוינת של גרסאות חבילות Java אל FILENAME3

הפעולות הבאות בשורת הפקודה מסננות את הרשימה הגולמית של חבילות Java שהוחזרה, כדי להציג רק את רשימת גרסאות החבילות.

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-java/mavenArtifacts?pageSize=1000" \
      | grep name | sort -f | uniq >  FILENAME3

הצגת רשימה של כל חבילות Python שזמינות ב-Assured OSS

אפשר להשתמש בREST API כדי לראות את כל חבילות Python והגרסאות שלהן. החבילות האלה זמינות ל-Python 3.8.

כדי להשתמש ב-Assured OSS בחינם, מזינים את בקשת ה-HTTP הבאה:

  GET https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages

כדי להשתמש ברמת הפרימיום של Assured OSS, מזינים את בקשת ה-HTTP הבאה:

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-python/packages"

מחליפים את PROJECT_ID במזהה הפרויקט שנבחר כשמגדירים את Assured OSS.

כדי להציג רשימה של כל החבילות שספציפיות לסביבה שלכם, משתמשים בסקריפט generator.sh.

הפקודה הבאה היא דוגמה לפקודת curl להתחברות למאגר Python של Assured OSS ברמת השימוש ללא תשלום:

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages"

בתגובה לבקשה מוחזרת תשובה שדומה לדוגמה הבאה:

  {
  "pythonPackages": [
    {
      "name":
  "projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages/Flask:2.1.2",
      "uri":
  "us-python.pkg.dev/cloud-aoss/cloud-aoss-python/flask/Flask-2.1.2-py3-none-any.whl",
        "packageName": "Flask",
        "version": "2.1.2",
        "createTime": "2022-07-13T11:06:54.163313Z",
        "updateTime": "2022-07-13T11:06:54.163313Z"
    },
    {
      "name":
  "projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages/ujson:5.3.0",
        "uri":
  "us-python.pkg.dev/cloud-aoss/cloud-aoss-python/ujson/ujson-5.3.0-cp38-cp38-linux_x86_64.whl",
        "packageName": "ujson",
        "version": "5.3.0",
        "createTime": "2022-07-13T11:06:17.263638Z",
        "updateTime": "2022-07-13T11:06:17.263638Z"
      },
      {
        "name":
  "projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages/ujson:5.4.0",
        "uri":
  "us-python.pkg.dev/cloud-aoss/cloud-aoss-python/ujson/ujson-5.4.0-cp38-cp38-linux_x86_64.whl",
        "packageName": "ujson",
        "version": "5.4.0",
        "createTime": "2022-07-13T11:09:00.865162Z",
        "updateTime": "2022-07-13T11:09:00.865162Z"
      },
      {
        "name":
  "projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages/urllib3:1.26.8",
        "uri":
  "us-python.pkg.dev/cloud-aoss/cloud-aoss-python/urllib3/urllib3-1.26.8-py2.py3-none-any.whl",
        "packageName": "urllib3",
        "version": "1.26.8",
        "createTime": "2022-07-13T11:05:56.529484Z",
        "updateTime": "2022-07-13T11:05:56.529484Z"
      }
    ]
  }

אם יש הרבה חבילות זמינות, יכול להיות שתשובת ה-API תחולק לדפים. אם הרשימה לא מוצגת בשלמותה, מקבלים בתשובה את אסימון ההמשך nextPageToken. הערך nextPageToken מייצג את התוצאה האחרונה שהתקבלה. כשמכניסים את הערך של nextPageToken לפרמטר pageToken של בקשת ההמשך, מקבלים את דף התוצאות הבא, החל מהתוצאה האחרונה.

כדי להציג את הדף הבא של התוצאות או להגדיל את מספר האובייקטים שמוחזרים בכל דף, משתמשים בכתובת ה-URL הבאה בחבילה ללא תשלום:

  "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages?pageSize=NUMBER&pageToken=NEXT_PAGE_TOKEN"

מחליפים את מה שכתוב בשדות הבאים:

  • NUMBER: מספר הפריטים שיוחזרו בכל דף. הערך המקסימלי שניתן להזין הוא 1,000.
  • NEXT_PAGE_TOKEN: ערך האסימון nextPageToken שמוחזר בתגובת ה-JSON.

לחלופין, אפשר להשתמש בסקריפט הבא כדי לאסוף את התוצאות עם העמודים של בקשת ה-API שצוינה לקובץ.

tempFile=$(mktemp)
nextPageToken=""
while
    curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages?pageSize=1000&pageToken=$nextPageToken" > $tempFile
    nextPageToken=$(grep nextPageToken $tempFile | sed 's/  "nextPageToken": "//' | sed 's/.$//')
    grep -v nextPageToken $tempFile >> FILENAME4
    [ -n "$nextPageToken" ]
do
:
done

אופציונלי: כותבים רשימה ממוינת של שמות חבילות Python ראשיות אל FILENAME5

הפעולות הבאות בשורת הפקודה מסננות את הרשימה הגולמית של חבילות Python שהוחזרה, כדי להציג רק את שמות החבילות הראשיות.

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages?pageSize=1000" \
      | grep packageName | sort -f | uniq > FILENAME5

אופציונלי: כותבים רשימה ממוינת של גרסאות Python Package אל FILENAME6

הפעולות הבאות בשורת הפקודה מסננות את הרשימה הגולמית של חבילות Python שהוחזרה, כדי להציג רק את רשימת גרסאות החבילות.

  curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
      "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/cloud-aoss-python/pythonPackages?pageSize=1000" \
      | grep name | sort -f | uniq >  FILENAME6

רשימה של כל חבילות Go שזמינות ב-Assured OSS

אפשר להשתמש ב-API בארכיטקטורת REST כדי להציג רשימה של כל חבילות ה-Go והגרסאות שלהן.

בתוכנית בחינם של Assured OSS, מזינים את בקשת ה-HTTP הבאה:

curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages"

כדי להשתמש ברמת הפרימיום של Assured OSS, מזינים את בקשת ה-HTTP הבאה:

curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-go/packages

מחליפים את PROJECT_ID במזהה הפרויקט שנבחר כשמגדירים את Assured OSS.

הדוגמה הבאה היא פקודת curl להתחברות למאגר Go ברמה החינמית:

curl -X GET -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages

בתגובה לבקשה מוחזרת תשובה שדומה לדוגמה הבאה:

{
  "packages": [
    {
      "name": "projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/cloud.google.com%2Fgo%2Fauth",
      "createTime": "2025-08-05T06:04:54.442071Z",
      "updateTime": "2025-08-05T06:04:54.442071Z"
    },
    {
      "name": "projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/cloud.google.com%2Fgo%2Fauth%2Foauth2adapt",
      "createTime": "2025-08-05T06:04:41.242052Z",
      "updateTime": "2025-08-05T06:04:41.242052Z"
    },
    {
      "name": "projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/cloud.google.com%2Fgo%2Fcompute%2Fmetadata",
      "createTime": "2025-08-05T06:05:31.140186Z",
      "updateTime": "2025-08-05T06:05:31.140186Z"
    },
    {
      "name": "projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/cloud.google.com%2Fgo%2Fiam",
      "createTime": "2025-08-05T06:04:54.455300Z",
      "updateTime": "2025-08-05T06:04:54.455300Z"
    },
    {
      "name": "projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/cloud.google.com%2Fgo%2Flogging",
      "createTime": "2025-08-05T06:05:36.186851Z",
      "updateTime": "2025-08-05T06:05:36.186851Z"
    }
  ]
}

אם יש הרבה חבילות, יכול להיות שתגובת ה-API תהיה מחולקת לדפים. אם הרשימה לא מוצגת בשלמותה, מקבלים בתשובה את אסימון ההמשך nextPageToken. הערך nextPageToken מייצג את התוצאה האחרונה שהתקבלה. כשמכניסים את הערך של nextPageToken לפרמטר pageToken של בקשת ההמשך, מקבלים את דף התוצאות הבא, החל מהתוצאה האחרונה.

כדי לראות את הדף הבא של התוצאות או להגדיל את מספר האובייקטים שמוחזרים בכל דף, משתמשים בכתובת ה-URL הבאה:

"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages?pageSize=NUMBER&pageToken=NEXT_PAGE_TOKEN"

מחליפים את מה שכתוב בשדות הבאים:

  • NUMBER: מספר הפריטים שיוחזרו בכל דף. הערך המקסימלי שניתן להזין הוא 1,000.
  • NEXT_PAGE_TOKEN: ערך האסימון nextPageToken שמוחזר בתגובת ה-JSON.

לחלופין, אפשר להשתמש בסקריפט הבא כדי לאסוף את התוצאות של בקשת ה-API שמוצגות בדפים בקובץ:

tempFile=$(mktemp)
nextPageToken=""
while
    curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
    "https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages?pageSize=1000&pageToken=$nextPageToken" > $tempFile
    nextPageToken=$(grep nextPageToken $tempFile | sed 's/  "nextPageToken": "//' | sed 's/.$//')
    grep -v nextPageToken $tempFile >> FILENAME7
    [ -n "$nextPageToken" ]
do
:
done

אופציונלי: כותבים רשימה ממוינת של שמות חבילות Go ראשיות אל FILENAME8

הפעולות הבאות מסננות את הרשימה הגולמית של מודולי Go כדי לספק לכם רשימה של שמות החבילות הראשיות:

curl -X GET -H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
"https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages?pageSize=1000" \
      | grep name | sort -f | uniq >  FILENAME8

אופציונלי: כותבים רשימה ממוינת של גרסאות חבילות Go אל FILENAME9

למרות שאי אפשר לשלוח בקשת HTTP ישירה כדי להציג רשימה של כל הגרסאות של חבילת Go, אפשר להציג רשימה של כל הגרסאות של חבילת Go ספציפית. אפשר ליצור רשימה מלאה של כל הגרסאות של חבילות Go על ידי רישום חוזר של הגרסאות של כל חבילת Go שמזוהה ברשימה ב-FILENAME8.

הפעולות הבאות מסננות את הרשימה הגולמית של גרסאות חבילות Go שמוחזרת, כדי לספק לכם רשימה של גרסאות החבילות:

grep -o "packages/.*" FILENAME8 | tr -d '",' | cut -d '/' -f 2 | while read package_name; do curl -X GET -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" https://artifactregistry.googleapis.com/v1/projects/cloud-aoss/locations/us/repositories/assuredoss-go-free/packages/$package_name/versions | grep name | sort -f | uniq >> FILENAME9; done

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