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:
- LOCATION ist der regionale oder multiregionale Standort für das Repository.
- PROJECT ist die Projekt-ID. Wenn dieses Flag nicht angegeben ist, wird das aktuelle Projekt oder das Standardprojekt verwendet.
- REPOSITORY ist die ID des Repositorys. Wenn Sie ein Standard-Artifact Registry-Repository konfiguriert haben, wird es verwendet, wenn dieses Flag im Befehl ausgelassen wird.
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.