Fehlerbehebung für Ruby-Gems

In diesem Dokument wird erläutert, warum bestimmte Fehler bei der Arbeit mit Ruby-Gems in einem Artifact Registry-Repository auftreten können, und es werden mögliche Lösungen für diese Situationen beschrieben.

Abgelaufene Push-Anmeldedaten

Sie haben eine Push-Anfrage gestellt, aber die folgende Fehlermeldung erhalten:

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

Wenn Sie Ihre Anmeldedaten aktualisieren möchten, generieren Sie ein neues Token mit dem folgenden Befehl:

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

Wobei:

Aufforderung zur Anmeldung beim Pushen

Sie haben eine Push-Anfrage gesendet, aber eine Nachricht erhalten, in der Sie aufgefordert werden, Ihre ruby.pkg.dev-Anmeldedaten anzugeben:

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:

Führen Sie Folgendes aus:

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

Abgelaufene Pull-Anmeldedaten

Sie haben einen Pull-Request erstellt, aber die folgende Fehlermeldung erhalten:

 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)

Wenn Sie Ihre Anmeldedaten aktualisieren möchten, entfernen Sie die abgelaufene Anmeldedatenquelle aus gem sources. Generieren Sie als Nächstes ein neues Token mit dem folgenden Befehl:

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

Wobei:

  • LOCATION ist der Speicherort Ihres Repositorys.
  • PROJECT ist die Projekt-ID. Wenn dieses Flag nicht angegeben ist, wird das aktuelle Projekt oder das Standardprojekt verwendet.
  • REPOSITORY ist der Name Ihres Repositorys in Artifact Registry.

Fehler bei Pull-Anfrage: Could not fetch specs

Sie haben einen Pull-Request erstellt, aber die folgende Fehlermeldung erhalten:

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)>

Dieser Fehler kann fälschlicherweise angezeigt werden, obwohl die Pull-Anfrage erfolgreich war. Prüfen Sie mit einem verbose-Befehl, z. B. bundle install --verbose, ob Ihr Pull-Request erfolgreich war.