Observação: GitHub Package Registry está atualmente em beta para GitHub Enterprise Server 2.22. Para participar da versão beta de sua instância do GitHub Enterprise Server, use o formulário de inscrição.
Note: When installing or publishing a docker image, GitHub Package Registry does not currently support foreign layers, such as Windows images.
Pré-requisitos
-
Você deve ter o rubygems 2.4.1 ou superior. Para encontrar sua versão do rubygems:
$ gem --version
-
Você deve ter o bundler 1.6.4 ou superior. Para encontrar sua versão do Bundler:
$ bundle --version Bundler version 1.13.7
-
Instale o keycutter para gerenciar várias credenciais. Para instalar o keycutter:
$ gem install keycutter
Autenticar-se no GitHub Package Registry
Você precisa de um token de acesso para publicar, instalar e excluir pacotes no GitHub Package Registry.
Você pode usar um token de acesso pessoal (PAT) para efetuar a autenticação em GitHub Package Registry ou na API de GitHub Ao criar um token de acesso pessoal, você pode atribuir diferentes escopos de token, dependendo da sua necessidade. Para obter mais informações sobre os escopos dos pacotes para um PAT, consulte "Sobre permissões para o GitHub Packages."
Para efetuar a autenticação em um registro do GitHub Package Registry dentro de um fluxo de trabalho de GitHub Actions, você pode utilizar:
GITHUB_TOKEN
para publicar pacotes associados ao repositório do fluxo de trabalho.- um PAT para instalar pacotes associados a outros repositórios privados (que o
GITHUB_TOKEN
não consegue acessar).
Para obter mais informações sobre GITHUB_TOKEN
usado nos fluxos de trabalho de GitHub Actions, consulteAutenticação em um fluxo de trabalho".
Efetuando a autenticação com um token de acesso pessoal
Você deve usar um token de acesso pessoal com os escopos apropriados para publicar e instalar pacotes no GitHub Package Registry. Para obter mais informações, consulte "Sobre GitHub Package Registry."
Você pode efetuar a autenticação em GitHub Package Registry com o RubyGems editando o arquivo ~/.gem/credentials para publicação de gems, editando o arquivo ~/.gemrc para instalar um único gem, ou usando o Bundler para rastrear e instalar um ou mais gems.
Para publicar novos gems, você precisa efetuar a autenticação no GitHub Package Registry com RubyGems, editando seu arquivo ~/.gem/credentials para incluir seu token de acesso pessoal. Crie um novo arquivo ~/.gem/credentials se este arquivo não existir.
Por exemplo, você criaria ou editaria um arquivo ~/.gem/credentials para incluir o indicado a seguir, substituindo TOKEN pelo seu token de acesso pessoal.
gem.metadata = { "github_repo" => "ssh://github.com/OWNER/REPOSITORY" }
Para instalar gems, você deve efetuar a autenticação no GitHub Package Registry, editando o arquivo ~/.gemrc para o seu projeto incluir https://USERNAME:TOKEN@REGISTRY-URL/OWNER/
. Você deve substituir:
NOME DE USUÁRIO
pelo seu nome de usuário no GitHub.TOKEN
pelo seu token de acesso pessoal.PROPRIETÁRIO
com o nome da conta do usuário ou da organização que é proprietário do repositório que contém o seu projeto.URL
com a URL para o registro do Rubygems da sua instância. Se sua instância tiver o isolamento de subdomínio habilitado, userubygems.HOSTNAME
. Se a sua instância estiver com o isolamento de subdomínio desabilitado, useHOSTNAME/registry/rubygems
. Em ambos os casos, substitua HOSTNAME pelo nome de host da sua instância do GitHub Enterprise Server.
Se você não tiver um arquivo ~/.gemrc, crie um arquivo ~/.gemrc usando este exemplo.
---
:backtrace: false
:bulk_threshold: 1000
:sources:
- https://rubygems.org/
- https://USERNAME:TOKEN@REGISTRY-URL/OWNER/
:update_sources: true
:verbose: true
Para autenticar com o bundler, configure o Bundler para usar o seu token de acesso pessoal, substituindo USERNAME com seu GitHub nome de usuário, TOKEN com seu token de acesso pessoal, e OWNER com o nome do usuário ou conta da organização proprietária do repositório que contém o seu projeto. Substitua URL REGISTRO
pelo URL do registro Rubygems da sua instância. Se sua instância tiver o isolamento de subdomínio habilitado, use rubygems.HOSTNAME
. Se a sua instância estiver com o isolamento de subdomínio desabilitado, use HOSTNAME/registry/rubygems
. Em ambos os casos, substitua HOSTNAME pelo nome de host da sua instância de GitHub Enterprise Server.
$ bundle config https://REGISTRY-URL/OWNER USERNAME:TOKEN
Publicar um pacote
Por padrão, o GitHub publica o pacote em um repositório existente com o mesmo nome do pacote. Por exemplo, ao publicar octo-gem
na organização octo-org
, GitHub Package Registry publicará o gem no repositório octo-org/octo-gem
. Para obter mais informações sobre como criar seu gem, consulte "Criar seu próprio gem" na documentação do RubyGems.
Após publicar um pacote, você poderá visualizá-lo no GitHub. Para obter mais informações, consulte "Visualizar pacotes".
-
Autenticar para GitHub Package Registry. Para obter mais informações, consulte "Authenticating to GitHub Package Registry."
-
Crie o pacote da gemspec para criar o pacote .gem.
gem build OCTO-GEM.gemspec
-
Publicar um pacote em GitHub Package Registry, substituindo o
OWNER
pelo nome do usuário ou conta da organização proprietária do repositório que contém o seu projeto eOCTO-GEM
pelo nome do seu pacote de gemas. substituiREGISTRY-URL
pelo URL do registro Rubygems da sua instância. Se sua instância tiver o isolamento de subdomínio habilitado, userubygems.HOSTNAME
. Se a sua instância estiver com o isolamento de subdomínio desabilitado, useHOSTNAME/registry/rubygems
. Em ambos os casos, substitua HOSTNAME pelo nome de host da sua instância de GitHub Enterprise Server.$ gem push --key github \ --host https://REGISTRY-URL/OWNER \ OCTO-GEM-0.0.1.gem
Publicar vários pacotes no mesmo repositório
Para publicar vários gems no mesmo repositório, você pode incluir a URL no repositório de GitHub no campo github_repo
em gem.metadata
. Se você incluir este campo, GitHub corresponderá ao repositório baseado neste valor, ao invés de usar o nome do gem. Substitua HOSTNAME pelo nome de host de sua instância do GitHub Enterprise Server.
gem.metadata = { "github_repo" => "ssh://HOSTNAME/OWNER/REPOSITORY" }
Instalar um pacote
É possível usar gems do GitHub Package Registry assim como você usa gems de rubygems.org. Você precisa efetuar a autenticação no GitHub Package Registry adicionando o seu usuário ou organização GitHub como uma fonte no arquivo ~/.gemrc ou utilizando Bundler e editando seu Gemfile.
-
Autenticar para GitHub Package Registry. Para obter mais informações, consulte "Authenticating to GitHub Package Registry."
-
Para o Bundler, adicione seu usuário ou organização GitHub como uma fonte no seu Gemfile para buscar gems a partir desta nova fonte. Por exemplo, você pode adicionar um novo bloco de fonte
ao seu <em x-id="3">Gemfile</em> que usa GitHub Package Registry apenas para os pacotes que você especificar, substituindo <em x-id="3">GEM NAME</em> pelo pacote que você deseja instalar GitHub Package Registry e <em x-id="3">OWNER</em> pelo usuário ou organização que possui o repositório que contém o gem que você deseja instalar. substitua <code>REGISTRY-URL-
pelo URL do registro Rubygems da sua instância. Se sua instância tiver o isolamento de subdomínio habilitado, userubygems.HOSTNAME
. Se a sua instância estiver com o isolamento de subdomínio desabilitado, useHOSTNAME/registry/rubygems
. Em ambos os casos, substitua HOSTNAME pelo nome de host da sua instância de GitHub Enterprise Server.source "https://rubygems.org" gem "rails" source "https://REGISTRY-URL/OWNER" do gem "GEM NAME" end
-
Para versões do Bundler anteriores à 1.7.0, você deve adicionar uma nova
fonte
global. Para obter mais informações sobre como usar o Bundler, consulte a documentação bundler.io.source "https://REGISTRY-URL/OWNER" source "https://rubygems.org" gem "rails" gem "GEM NAME"
-
Instale o pacote:
$ gem install octo-gem --version "0.1.1"