פתרון בעיות ב-Ruby gems

במסמך הזה מוסבר למה יכולות להתרחש שגיאות מסוימות כשעובדים עם Ruby gems במאגר Artifact Registry, ומוצעים פתרונות אפשריים למצבים האלה.

פרטי כניסה לשליחת התראות פוש שפג תוקפם

שלחת בקשת push אבל קיבלת את הודעת השגיאה הבאה:

Pushing gem to https://LOCATION-ruby.pkg.devPROJECT/REPOSITORY..
The request does not have valid authentication credentials.

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

export GEM_HOST_API_KEY="Bearer $(gcloud auth print-access-token)"
export HOST="https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY"
bundle config $HOST $GEM_HOST_API_KEY

כאשר:

  • LOCATION הוא המיקום האזורי או המיקום במספר אזורים של המאגר.
  • PROJECT הוא מזהה הפרויקט. אם לא מציינים את הדגל הזה, המערכת משתמשת בפרויקט הנוכחי או בפרויקט ברירת המחדל.
  • REPOSITORY הוא המזהה של המאגר. אם הגדרתם מאגר ברירת מחדל של Artifact Registry, המאגר הזה ישמש אתכם אם לא תציינו את הדגל הזה בפקודה.

בקשה להתחברות כשמבצעים push

שלחת בקשת Push אבל קיבלת הודעה שבה מתבקשים פרטי הכניסה שלך ל-ruby.pkg.dev:

Enter your https://us-ruby.pkg.dev/REPOSITORY/GEM_NAME credentials.
Don't have an account yet? Create one at https://us-ruby.pkg.dev/REPOSITORY/GEM_NAME/sign_up
   Email:

נסו להריץ את הפקודה הבאה:

GEM_HOST_API_KEY="Bearer $(gcloud auth print-access-token)"

פרטי כניסה למשיכה שפג תוקפם

יצרתם בקשת משיכה אבל קיבלתם את הודעת השגיאה הבאה:

 Unable to download data from https://oauth2accesstoken:REDACTED@LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY/ - bad response Unauthorized 401 (https://oauth2accesstoken:REDACTED@LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY/latest_specs.4.8.gz)

כדי לרענן את פרטי הכניסה, צריך להסיר את מקור פרטי הכניסה שתוקפם פג מ-gem sources. לאחר מכן, מריצים את הפקודה הבאה כדי ליצור אסימון חדש:

export GEM_HOST_API_KEY="Bearer $(gcloud auth print-access-token)"
export HOST="https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY"
bundle config $HOST $GEM_HOST_API_KEY

כאשר:

  • LOCATION הוא המיקום של המאגר.
  • PROJECT הוא מזהה הפרויקט. אם לא מציינים את הדגל הזה, המערכת משתמשת בפרויקט הנוכחי או בפרויקט ברירת המחדל.
  • REPOSITORY הוא שם המאגר ב-Artifact Registry.

שגיאה בבקשת משיכה: Could not fetch specs

יצרתם בקשת משיכה אבל קיבלתם את הודעת השגיאה הבאה:

Retrying fetcher due to error (2/4): Bundler::HTTPError Could not fetch specs from https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY/ due to underlying error <bad response Not Found 404 (https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY/specs.4.8.gz)>

יכול להיות שהשגיאה הזו תופיע גם אם בקשת המשיכה הצליחה. משתמשים בפקודה verbose כדי לוודא שבקשת המשיכה הצליחה, למשל bundle install --verbose.