Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.

Configurar o RubyGems para uso com o GitHub Packages

Você pode configurar RubyGems para publicar um pacote em GitHub Package Registry e usar pacotes armazenados em GitHub Package Registry como dependências em um projeto Ruby com o Bundler.

GitHub Package Registry está disponível com GitHub Free, GitHub Pro, GitHub Free para organizações, GitHub Team, GitHub Enterprise Cloud, GitHub Enterprise Server 2.22, e GitHub One.


O GitHub Package Registry não está disponível para repositórios privados de contas que utilizam planos antigos por-repositório. GitHub Package Registry está disponível com GitHub Free, GitHub Pro, GitHub Free para organizações, GitHub Team, GitHub Enterprise Cloud e GitHub One. Para obter mais informações, consulte "[produtos de GitHub](/articles/github-s-products)

Neste artigo

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 para autenticar com seu nome de usuário diretamente no GitHub Package Registry ou na API GitHub. Ao criar um token de acesso pessoal, você pode atribuir diferentes escopos de token, dependendo da sua necessidade.

Para efetuar a autenticação usando um fluxo de trabalho do GitHub Actions:

  • Para registros de pacotes (PACKAGE-REGISTRY.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME), você pode usar um GITHUB_TOKEN.
  • Para o registro do contêiner (ghcr.io/OWNER/IMAGE-NAME), você deve usar um token de acesso pessoal.

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@rubygems.pkg.github.com/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.

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@rubygems.pkg.github.com/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.

$ bundle config https://rubygems.pkg.github.com/OWNER USERNAME:TOKEN

Efetuando a autenticação com o GITHUB_TOKEN

Se você estiver utilizando um fluxo de trabalho do GitHub Actions, você pode usar um GITHUB_TOKEN para publicar e consumir pacotes em GitHub Package Registry sem precisar armazenar e gerenciar um token de acesso pessoal. Para obter mais informações, consulte "Authenticating with the GITHUB_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. For more information, see the "package webhook event."

  1. Autenticar para GitHub Package Registry. Para obter mais informações, consulte "Authenticating to GitHub Package Registry."

  2. Crie o pacote da gemspec para criar o pacote .gem.

    gem build OCTO-GEM.gemspec
  3. 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 e OCTO-GEM pelo nome do seu pacote de gemas.

    $ gem push --key github \
    --host https://rubygems.pkg.github.com/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 irá corresponde ao repositório baseado neste valor, em vez de usar o nome do gem.

gem.metadata = { "github_repo" => "ssh://github.com/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 do GitHub como fonte ao arquivo ~/.gemrc ou usando o Bundler e editando-o Gemfile.

  1. Autenticar para GitHub Package Registry. Para obter mais informações, consulte "Authenticating to GitHub Package Registry."

  2. 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 blocode fonteao seu Gemfile que usa GitHub Package Registry apenas para os pacotes que você especificar, substituindo GEM NOME pelo pacote que deseja instalar de GitHub Package Registry e OWNER pelo usuário ou organização que possui o repositório que contém a gema que deseja instalar.

    source "https://rubygems.org"
    
    gem "rails"
    
    source "https://rubygems.pkg.github.com/OWNER" do
      gem "GEM NAME"
    end
    
  3. 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://rubygems.pkg.github.com/OWNER"
    source "https://rubygems.org"
    
    gem "rails"
    gem "GEM NAME"
    
  4. Instale o pacote:

    $ gem install octo-gem --version "0.1.1"

Leia mais

Esse documento ajudou você?

Privacy policy

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.