Ruby gem 문제 해결

이 문서에서는 Artifact Registry 저장소에서 Ruby gem으로 작업할 때 특정 오류가 발생할 수 있는 이유와 이러한 상황에 대한 가능한 해결 방법을 설명합니다.

만료된 푸시 사용자 인증 정보

푸시 요청을 했지만 다음 오류 메시지가 표시되었습니다.

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는 프로젝트 ID입니다. 이 플래그를 생략하면 현재 프로젝트 또는 기본 프로젝트가 사용됩니다.
  • REPOSITORY는 저장소 ID입니다. 기본 Artifact Registry 저장소를 구성한 경우 이 플래그가 명령어에서 생략되었을 때 해당 기본 저장소가 사용됩니다.

푸시할 때 로그인 메시지 표시

푸시 요청을 했지만 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는 프로젝트 ID입니다. 이 플래그를 생략하면 현재 프로젝트 또는 기본 프로젝트가 사용됩니다.
  • 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).