Observação: talvez esse tipo de pacote não esteja disponível para sua instância, pois os administradores do site podem habilitar ou desabilitar cada tipo de pacote compatível. Para obter mais informações, confira "Como configurar o suporte a pacotes para sua empresa".
Pré-requisitos
-
Você deve ter o RubyGems 2.4.1 ou superior. Para encontrar a versão do seu RubyGems:
$ gem --version
-
Você precisa ter o Bundler 1.6.4 ou superior. Para encontrar sua versão do Bundler:
$ bundle --version Bundler version 1.13.7
Autenticar-se no GitHub Packages
Você precisa de um token de acesso para publicar, instalar e excluir pacotes privados, públicos e internos.
Você pode usar um personal access token para se autenticar no GitHub Packages ou na API do GitHub Enterprise Server. Ao criar um personal access token, você pode atribuir diferentes escopos de token, dependendo da sua necessidade. Para obter mais informações sobre escopos relacionados a pacotes para um personal access token, confira "Sobre as permissões para pacotes do GitHub".
Para efetuar a autenticação em um registro do GitHub Packages 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 personal access token com pelo menos escopo
packages:read
para instalar pacotes associados a outros repositórios privados (que não podem ser acessados porGITHUB_TOKEN
).
Autenticar com um personal access token
Você precisa usar um personal access token com os escopos apropriados para publicar e instalar pacotes no GitHub Packages. Para obter mais informações, confira "Sobre o GitHub Packages".
Para publicar e instalar gems, você pode configurar o RubyGems ou o Bundler para se autenticar no GitHub Packages usando seu personal access token.
Para publicar novos gems, você precisa se autenticar no GitHub Packages com o RubyGems editando o arquivo ~/.gem/credentials para incluir seu personal access token. Crie um arquivo ~/.gem/credentials se ele não existir.
Por exemplo, crie ou edite um arquivo ~/.gem/credentials para incluir o conteúdo indicado a seguir, substituindo TOKEN pelo seu personal access token.
---
:github: Bearer TOKEN
Para instalar gems, você precisa se autenticar em GitHub Packages atualizando suas fontes de gem para incluir https://USERNAME:TOKEN@REGISTRY-URL/OWNER/
. Você deve substituir:
USERNAME
pelo seu nome de usuário do GitHub.TOKEN
com seu personal access token.OWNER
pelo nome da conta de usuário ou da organização que é proprietário do repositório que contém o projeto.REGISTRY-URL
pela URL do registro do RubyGems da instância. Se a sua instância tem o isolamento de subdomínio habilitado, userubygems.HOSTNAME
. Se a sua instância tem o isolamento de subdomínio desabilitado, useHOSTNAME/_registry/rubygems
. Em ambos os casos, substitua HOSTNAME pelo nome do host da sua instância do GitHub Enterprise Server.
Se você quiser que seu pacote esteja disponível globalmente, execute o comando a seguir para adicionar seu registro como uma fonte.
gem sources --add https://USERNAME:TOKEN@REGISTRY-URL/OWNER/
Para se autenticar no Bundler, configure-o para usar seu personal access token, substituindo USERNAME pelo seu nome de usuário do GitHub, TOKEN pelo seu personal access token e OWNER pelo nome da conta de usuário ou da organização que é o proprietário do repositório que contém o projeto. Substitua REGISTRY-URL
pela URL do registro do RubyGems da instância. Se a sua instância tem o isolamento de subdomínio habilitado, use rubygems.HOSTNAME
. Se a sua instância tem o isolamento de subdomínio desabilitado, use HOSTNAME/_registry/rubygems
. Em ambos os casos, substitua HOSTNAME pelo nome do host da instância do GitHub Enterprise Server.
$ bundle config https://REGISTRY-URL/OWNER USERNAME:TOKEN
Publicando um pacote
Por padrão, o GitHub publica o pacote em um repositório existente com o mesmo nome do pacote. Por exemplo, quando você publica <GEM NAME>
na organização octo-org
, os Pacotes do GitHub publicam o gem no repositório octo-org/<GEM NAME>
. Para obter mais informações sobre como criar seu gem, confira "Como criar um gem própria" na documentação do RubyGems.
-
Autenticar para GitHub Packages. Para obter mais informações, confira "Autenticação no GitHub Packages".
-
Compile o pacote do gemspec para criar o pacote .gem.
gem build <GEM NAME>.gemspec
-
Publique um pacote no GitHub Packages, substituindo
OWNER
pelo nome da conta do usuário ou da organização que detém o repositório que contém seu projeto e<GEM NAME>
pelo nome do pacote do gem. SubstituaREGISTRY-URL
pela URL do registro do RubyGems da sua instância. Se a sua instância tem o isolamento de subdomínio habilitado, userubygems.HOSTNAME
. Se a sua instância tem o isolamento de subdomínio desabilitado, useHOSTNAME/_registry/rubygems
. Em ambos os casos, substitua HOSTNAME pelo nome do host da instância do GitHub Enterprise Server.$ gem push --key github \ --host https://REGISTRY-URL/OWNER \ <GEM NAME>-0.0.1.gem
Publicar vários pacotes no mesmo repositório
Para publicar vários gems no mesmo repositório, inclua a URL do repositório do GitHub no campo github_repo
em gem.metadata
. Se você incluir esse campo, o GitHub corresponderá ao repositório com base nesse valor, em vez de usar o nome do gem. Substitua HOSTNAME pelo nome do host da your GitHub Enterprise Server instance.
gem.metadata = { "github_repo" => "ssh://HOSTNAME/OWNER/REPOSITORY" }
Instalando um pacote
Você pode usar gems no GitHub Packages da mesma forma que você usa gems em rubygems.org. Você precisa se autenticar no GitHub Packages adicionando o usuário ou a organização do GitHub como uma fonte no arquivo ~/.gemrc ou usando o Bundler e editando o Gemfile.
-
Autenticar para GitHub Packages. Para obter mais informações, confira "Autenticação no GitHub Packages".
-
Para o Bundler, adicione o usuário ou a organização do GitHub como uma fonte no Gemfile para buscar gems dessa nova fonte. Por exemplo, você pode adicionar um novo bloco
source
ao Gemfile que só usa o GitHub Packages para os pacotes especificados, substituindo GEM NAME pelo pacote que deseja instalar por meio do GitHub Packages e OWNER pelo usuário ou pela organização que detém o repositório que contém o gem que você deseja instalar. SubstituaREGISTRY-URL
pela URL do registro do RubyGems da sua instância. Se a sua instância tem o isolamento de subdomínio habilitado, userubygems.HOSTNAME
. Se a sua instância tem o isolamento de subdomínio desabilitado, useHOSTNAME/_registry/rubygems
. Em ambos os casos, substitua HOSTNAME pelo nome do host da instância do 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, adicione uma nova
source
global. Para obter mais informações sobre como usar o Bundler, confira a documentação em bundler.io.source "https://REGISTRY-URL/OWNER" source "https://rubygems.org" gem "rails" gem "GEM NAME"
-
Instale o pacote:
$ gem install <GEM NAME> --version "0.1.1"