[gem편] GitHub Package Registry(beta) 사용
GitHub Package Registry
GitHub 패키지 레지스트리는 패키지 관리 서비스, npmjs입니다.org、rubygems.org、hub.docker.com과 유사합니다. 패키지와 코드를 한 곳에서 위탁 관리할 수 있습니다.소프트웨어 패키지는 개인적일 수도 있고 공적일 수도 있으며 프로젝트에서 의존 관계로 사용할 수 있다.
해당 패키지 클라이언트
*2019년 7월 5일
패키지 클라이언트
패키지 형식
npm (Node)
package.json
gem (Ruby)
Gemfile
mvn (Java)
pom.xml
docker
container
nuget (.NET)
nupkg
GitHub Package Registry에 gem 패키지 게시
GitHub 구성
인원accesstoken에 권한 추가
GitHub Package Registry를 사용하려면 personal access tokenread:packages
write:packages
에 새 scope를 추가해야 합니다.
https://github.com/settings/tokens에서 이 token을 선택하고 다음 내용을 선택하십시오.
* 패키지의 발표 위치가 private repo일 경우 다음 내용 외에 repo
의scope가 필요합니다.
gem&bundle 설정
여러 token을 관리하기 위해 설치keycutter
.$ gem install keycutter
방금 scope 설정을 변경한personal access token을 ~/.gem/credentials
로 설정합니다.---
:github: Bearer ${TOKEN}
bundler를 설정합니다.OWNER
는 GitHub 사용자 또는 조직 계정의 이름입니다. 이 사용자는 발표할 gm 패키지의 리포지토리를 실제로 보존합니다.GitHub의 username, personal access token을 계속 입력합니다.$ bundle config https://rubygems.pkg.github.com/OWNER(or ORG) USERNAME:TOKEN
패키지 게시
주의사항
게시된 패키지를 삭제할 수 없습니다.
현재 GitHub Package Registry에서는 게시된 packge를 삭제할 수 없습니다.
게시된 특정 버전을 삭제하는 것도 지원되지 않습니다.젬 포장만?이렇게 생각하고 다른 포장의 경우에도 확인했지만 문서에서는 대응하지 않는 같은 문장을 모두 삭제했다.
패키지에 의존할 수 있는 항목을 파괴하지 않기 위해 GitHub 패키지 레지스트리는 패키지 삭제 또는 삭제 버전을 지원하지 않습니다.법적 이유 또는 GDPR 기준과 같은 특수한 경우에는 GitHub 지원을 통해 패키지를 삭제할 수 있습니다.연락처 양식을 사용하여 GitHub 패키지 레지스트리의 제목 행으로 GitHub 지원에 연결합니다.
패키지 과정 목표 보고기
기본적으로 GitHub Package Registry는 패키지를gem의 packagename=GitHub repository name로 공개합니다.즉,gemspec 파일에 다음과 같은 설정이 있으면 패키지는push에서 https://github.com/USER(or ORG)/mygem
로 이동합니다.Gem::Specification.new do |s|
s.name = 'mygem'
...
음, 이름이 일치하지 않는 경우push 목적지의repository를 다음과 같이 지정할 수 있습니다.
또한 아래 설정을 사용하면 단일한 리포지토리에 이름이 다른 여러 개의gem 패키지를 공개할 수 있습니다.Gem::Specification.new do |s|
s.name = 'mygem'
...
s.metadata = { "github_repo" => "ssh://github.com/USER(or ORG)/reponame" }
push 동작
repository Releases
페이지에서push 패키지를 볼 수 있습니다.
이전Release
Tags
외에 여기Packages
도 있다.
버전 작업
아무것도 원하지 않는다면gem push
기본값은gemspec의version 정보를 바탕으로push 이전의repository에 이version의release/tag가 존재하지 않으면 자동으로 tag를 차단하고 이version으로release를 만듭니다.
이때release의 description은gemspec의 description에 직접 적용되는 것 같습니다.
push 이전의repository에 이 버전의release/tag가 존재하면 상기 이미지와 같이 패키지를 이 Release와 자동으로 연결합니다.
gem push
$ gem push --key github --host https://rubygems.pkg.github.com/USER(or ORG) mygem.gem
Pushing gem to https://rubygems.pkg.github.com/xxxx...
Successfully registered gem: mygem (x.x.x)
push가 발표된 버전을 다시 시도하는 중 오류가 발생했습니다.$ gem push --key github --host https://rubygems.pkg.github.com/USER(or ORG) mygem.gem
Pushing gem to https://rubygems.pkg.github.com/xxxx...
Error: Version x.x.x of "mygem" has already been pushed.
GitHub Package Registry에서 gem 설치
문서에서 Gemfile
에 새 source "https://rubygems.pkg.github.com/USER(or ORG)"
를 추가하는 예가 공개되었습니다.
https://help.github.com/en/articles/configuring-rubygems-for-use-with-github-package-registry#installing-a-package gem install
의--source
옵션도 가능합니까, 검증되지 않았습니다.
Reference
이 문제에 관하여([gem편] GitHub Package Registry(beta) 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/jrsyo/items/a23ab67f23e0693f56a1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
GitHub 구성
인원accesstoken에 권한 추가
GitHub Package Registry를 사용하려면 personal access token
read:packages
write:packages
에 새 scope를 추가해야 합니다.https://github.com/settings/tokens에서 이 token을 선택하고 다음 내용을 선택하십시오.
* 패키지의 발표 위치가 private repo일 경우 다음 내용 외에
repo
의scope가 필요합니다.gem&bundle 설정
여러 token을 관리하기 위해 설치
keycutter
.$ gem install keycutter
방금 scope 설정을 변경한personal access token을 ~/.gem/credentials
로 설정합니다.---
:github: Bearer ${TOKEN}
bundler를 설정합니다.OWNER
는 GitHub 사용자 또는 조직 계정의 이름입니다. 이 사용자는 발표할 gm 패키지의 리포지토리를 실제로 보존합니다.GitHub의 username, personal access token을 계속 입력합니다.$ bundle config https://rubygems.pkg.github.com/OWNER(or ORG) USERNAME:TOKEN
패키지 게시
주의사항
게시된 패키지를 삭제할 수 없습니다.
현재 GitHub Package Registry에서는 게시된 packge를 삭제할 수 없습니다.
게시된 특정 버전을 삭제하는 것도 지원되지 않습니다.젬 포장만?이렇게 생각하고 다른 포장의 경우에도 확인했지만 문서에서는 대응하지 않는 같은 문장을 모두 삭제했다.
패키지에 의존할 수 있는 항목을 파괴하지 않기 위해 GitHub 패키지 레지스트리는 패키지 삭제 또는 삭제 버전을 지원하지 않습니다.법적 이유 또는 GDPR 기준과 같은 특수한 경우에는 GitHub 지원을 통해 패키지를 삭제할 수 있습니다.연락처 양식을 사용하여 GitHub 패키지 레지스트리의 제목 행으로 GitHub 지원에 연결합니다.
패키지 과정 목표 보고기
기본적으로 GitHub Package Registry는 패키지를gem의 packagename=GitHub repository name로 공개합니다.즉,gemspec 파일에 다음과 같은 설정이 있으면 패키지는push에서
https://github.com/USER(or ORG)/mygem
로 이동합니다.Gem::Specification.new do |s|
s.name = 'mygem'
...
음, 이름이 일치하지 않는 경우push 목적지의repository를 다음과 같이 지정할 수 있습니다.또한 아래 설정을 사용하면 단일한 리포지토리에 이름이 다른 여러 개의gem 패키지를 공개할 수 있습니다.
Gem::Specification.new do |s|
s.name = 'mygem'
...
s.metadata = { "github_repo" => "ssh://github.com/USER(or ORG)/reponame" }
push 동작
repository
Releases
페이지에서push 패키지를 볼 수 있습니다.이전
Release
Tags
외에 여기Packages
도 있다.버전 작업
아무것도 원하지 않는다면
gem push
기본값은gemspec의version 정보를 바탕으로push 이전의repository에 이version의release/tag가 존재하지 않으면 자동으로 tag를 차단하고 이version으로release를 만듭니다.이때release의 description은gemspec의 description에 직접 적용되는 것 같습니다.
push 이전의repository에 이 버전의release/tag가 존재하면 상기 이미지와 같이 패키지를 이 Release와 자동으로 연결합니다.
gem push
$ gem push --key github --host https://rubygems.pkg.github.com/USER(or ORG) mygem.gem
Pushing gem to https://rubygems.pkg.github.com/xxxx...
Successfully registered gem: mygem (x.x.x)
push가 발표된 버전을 다시 시도하는 중 오류가 발생했습니다.$ gem push --key github --host https://rubygems.pkg.github.com/USER(or ORG) mygem.gem
Pushing gem to https://rubygems.pkg.github.com/xxxx...
Error: Version x.x.x of "mygem" has already been pushed.
GitHub Package Registry에서 gem 설치
문서에서 Gemfile
에 새 source "https://rubygems.pkg.github.com/USER(or ORG)"
를 추가하는 예가 공개되었습니다.
https://help.github.com/en/articles/configuring-rubygems-for-use-with-github-package-registry#installing-a-package gem install
의--source
옵션도 가능합니까, 검증되지 않았습니다.
Reference
이 문제에 관하여([gem편] GitHub Package Registry(beta) 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/jrsyo/items/a23ab67f23e0693f56a1
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여([gem편] GitHub Package Registry(beta) 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/jrsyo/items/a23ab67f23e0693f56a1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)