Canvas 1 Layer 1

깃허브 패키지 레지스트리 베타 발표
언어 별 패키지 매니저 지원 및 깃헙 권한으로 접근 제어 등

5월 10일 깃허브GitHub에서는 새로운 서비스인 깃허브 패키지 레지스트리GitHub Package Registry 베타를 발표했습니다. 깃허브에서 제공하는 레지스트리 서비스는 빌드된 패키지를 저장 및 배포할 수 있도록 도와주는 서비스입니다. 노드jsNode.js의 NPM, 자바Java의 메이븐Maven, 닷넷.NET의 누겟NuGet, 루비Ruby의 루비젬RubyGems와 같은 프로그래밍 언어별 패키지 관리자와 더불이 도커Docker 이미지 저장소도 제공할 예정입니다.

패키지 매니저는 오픈소스는 물론 비공개 프로젝트에서도 사용하는 것이 가능합니다. 기존에도 언어 별로 패키지 매니저를 직접 운영하거나 비공개 저장소를 서비스로 제공하는 경우가 있었습니다. 하지만 여러 언어를 사용하는 경우 패키지 매니저 별로 인증 관리를 별도로 관리하는 등의 어려움이 있었습니다. 깃허브 레지스트에서는 패키지가 저장소와 통합되며 패키지를 배포한 저장소들은 (깃허브에서 지원하는 경우) 패키지 매니저나 언어에 무관하게 깃헙의 인증 권한을 통해서 권한 제어를 하는 것이 가능합니다. 또한 깃허브에서 제공하는 깃허브 액션GitHub Action이나 웹훅과 함께 사용해 패키지 빌드나 배포를 자동화하는 것도 가능합니다.

깃허브(GitHub)의 패키지 페이지 - 패키지 기능은 저장소와 통합되어 제공될 것으로 보입니다
깃허브(GitHub)의 패키지 페이지 - 패키지 기능은 저장소와 통합되어 제공될 것으로 보입니다

깃허브 레지스트는 기존 패키지 매니저 인터페이스를 그대로 사용하는 것이 가능합니다. 예를 들어 루비젬을 빌드하고 레지스트리에 배포할 때 gem 명령어를 그대로 사용하며, 인증 권한 이외에 추가적인 프로그램은 필요하지 않습니다.

$ echo ":github: Bearer ${GH_TOKEN}" >> ~/.gem/credentials
$ gem build github_api.gemspec
$ gem push --key github --host https://rubygems.pkg.github.com/phanatic/github_api github_api-1.0.0.gem
Successfully registered gem: github_api (1.0.0)

현재 깃허브 레지스트리는 베타 테스트를 진행하고 있으며, 베타 등록 페이지에서 신청할 수 있습니다. 깃허브 저장소와 마찬가지로 공개된 프로젝트(오픈소스)에 대해서는 무료로 사용할 수 있습니다. 유료 정책에 대해서는 추후 공개 예정입니다.

깃허브 패키지 레지스트리는 베타 신청을 받고 있습니다
깃허브 패키지 레지스트리는 베타 신청을 받고 있습니다

자세한 내용은 다음 공식 문서들을 참고해주세요.