המסמך הזה עוזר לכם לוודא שחשבונות השירות וחשבונות AWS שלכם הופעלו בהצלחה כדי לגשת לשירות Assured Open Source Software.
כדי לוודא שחשבונות השירות שלכם או (במקרה של רמת השימוש ללא תשלום בלבד) מזהה חשבון AWS מופעלים לגישה למאגר Assured OSS ולתיק החבילות שנבחרו בקפידה, צריך להשתמש ב-API כדי להציג רשימה של חבילות Java או Python שזמינות. Google Cloud כדי לעשות את זה, אפשר לקרוא ישירות לממשקי ה-API או להשתמש ב-Cloud Shell כדי להריץ קריאה ל-API בשורת פקודה של curl.
אם אתם משתמשים בתוכנית החינמית, במקרים נדירים יכול להיות שתיתקלו בשגיאות מסוג 'ההרשאה נדחתה' למשך שעה או יותר אחרי שתשלחו את טופס הפעלת הלקוח.
המסמך הזה רלוונטי גם לתוכנית פרימיום וגם לתוכנית ללא תשלום.
לפני שמתחילים
מתקינים את הגרסה האחרונה של Google Cloud CLI. אם כבר התקנתם את Google Cloud CLI, צריך לוודא שפועלת אצלכם הגרסה העדכנית ביותר של .
gcloud components updateכדי לגשת ל-Assured OSS באמצעות Google Cloud, צריך להפעיל את Artifact Registry API בפרויקט האב Google Cloud של חשבונות השירות שהפעלתם עבור Assured OSS. אם אתם משתמשים במסלול הפרימיום, ה-API מופעל במהלך ההגדרה.
מוסיפים את כתובות ה-URL הבאות לרשימת ההיתרים של הרשת:
*.pkg.devartifactregistry.googleapis.com
מגדירים אימות
בשביל Google Cloud
יוצרים ומורידים את המפתח של חשבון השירות. מומלץ לפעול לפי השיטות המומלצות לניהול מפתחות לחשבונות שירות.
אם כבר התחברתם ל-Google Cloud CLI, צריך לבטל את האימות הקיים:
gcloud auth revokeאימות אל Google Cloud:
gcloud auth login --cred-file=FILEPATH.jsonכאשר FILEPATH הוא הנתיב למפתח של חשבון השירות.
מעדכנים את Application Default Credentials:
export GOOGLE_APPLICATION_CREDENTIALS=FILEPATH.jsonכאשר FILEPATH הוא הנתיב למפתח של חשבון השירות.
ל-AWS
השלבים האלה רלוונטיים רק לתוכנית ללא תשלום של Assured OSS.
מגדירים את מכונת EC2 כדי לאפשר בקשה של פרטי כניסה זמניים.
- נכנסים למסוף הניהול של AWS.
- ב-AWS Management Console, עוברים למרכז הבקרה של EC2 ובוחרים את מופע EC2 של היעד.
- בוחרים באפשרות Actions > Security > Modify IAM Role (פעולות > אבטחה > שינוי תפקיד IAM).
- בוחרים באפשרות Create New IAM Role > Create role (יצירת תפקיד IAM חדש > יצירת תפקיד).
- בקטע trusted entity type (סוג ישות מהימנה), בוחרים באפשרות AWS Service (שירות AWS).
- בתרחיש השימוש, בוחרים באפשרות EC2.
- מוסיפים את ההרשאה AmazonEC2ReadOnlyAccess ולוחצים על הבא.
- נותנים שם משמעותי לתפקיד ה-IAM ולוחצים על הבא.
- חוזרים אל שינוי תפקיד IAM. בוחרים את התפקיד החדש ולוחצים על Update IAM Role (עדכון תפקיד IAM).
יוצרים את קובץ התצורה של פרטי הכניסה:
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לפקודה הקודמת. מידע נוסף מופיע במאמר יצירת הגדרות של פרטי כניסה.- AWS_ACCOUNT_ID: מספר החשבון ב-AWS שמורכב מ-12 ספרות (לדוגמה,
אם כבר התחברתם ל-Google Cloud CLI, צריך לבטל את האימות הקיים:
gcloud auth revokeאימות אל Google Cloud:
gcloud auth login --cred-file=FILEPATH.jsonFILEPATH הוא הנתיב לקובץ התצורה של פרטי הכניסה.
עדכון Application Default Credentials:
export GOOGLE_APPLICATION_CREDENTIALS=FILEPATH.jsonFILEPATH הוא הנתיב למפתח של חשבון השירות או לקובץ התצורה של פרטי הכניסה.
לפתרון בעיות שקשורות לאימות, אפשר לעיין במאמר בנושא פתרון שגיאות באימות.
רשימה של כל חבילות 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
המאמרים הבאים
- הגדרת גישה למאגר מרחוק
- הורדת חבילות Java באמצעות גישה ישירה למאגר
- הורדת חבילות Go באמצעות גישה ישירה למאגר
- הורדת חבילות Python באמצעות גישה ישירה למאגר
- הגדרת גישה למאגר וירטואלי
- חבילות נתמכות של Java ו-Python
- חבילות Go נתמכות