Skip to main content

Introdução ao GitHub Packages

O GitHub Packages é um serviço de hospedagem de pacotes de software que permite que você hospede pacotes de software de modo privadoou publicamente e use os pacotes como dependências dos projetos.

O GitHub Packages está disponível com GitHub Free, GitHub Pro, GitHub Free for organizations, GitHub Team, GitHub Enterprise Cloud, GitHub Enterprise Server 3.0 ou superior e o GitHub AE.
O GitHub Packages não está disponível para repositórios privados de contas que utilizam planos antigos por-repositório. Além disso, as contas que usam os planos de legado por repositório não podem acessar o Container registry já que essas contas são cobradas por repositório. Para obter mais informações, confira "produtos de GitHub".

Sobre o GitHub Packages

GitHub Packages é uma plataforma para hospedar e gerenciar pacotes, incluindo contêineres e outras dependências. GitHub Packages combina seu código-fonte e pacotes em um só lugar para fornecer gerenciamento integrado de permissões e faturamento, para que você possa centralizar o desenvolvimento do seu software em GitHub.

Você pode integrar GitHub Packages às APIs de GitHub, GitHub Actions e webhooks para criar um fluxo de trabalho de ponta a ponta que inclui seu código, CI e soluções de implantação.

GitHub Packages oferece registros de pacotes diferentes para gerentes de pacotes comumente usados, como npm, RubyGems, Apache Maven, Gradle, Docker e NuGet. GitHub's Container registry é otimizado para contêineres e é compatível com imagens do Docker e OCI. Para obter mais informações sobre os diferentes registros de pacotes com os quais GitHub Packages tem suporte, confira "Trabalhar com um registro GitHub Packages".

Diagrama que mostra pacotes de compatibilidade para registro de contêiner, RubyGems, npm, Apache Maven, NuGet e Gradle

Você pode visualizar o LEIAME de um pacote, bem como os metadados como licenciamento, estatísticas de download, histórico de versão e muito mais em GitHub. Para obter mais informações, confira "Como ver pacotes".

Visão geral das permissões e visibilidade do pacote

PermissõesAs permissões para um pacote são herdadas do repositório em que o pacote está hospedado ou, para pacotes em Container registry and npm registry, eles podem ser definidos para contas específicas de usuário ou organização. Para obter mais informações, confira "Como configurar o controle de acesso e a visibilidade de um pacote".
VisibilidadeVocê pode publicar pacotes em um repositório público (pacotes públicos) para compartilhá-los com todo o GitHub ou em um repositório privado (pacotes privados) para compartilhá-los com os colaboradores ou uma organização.

Para obter mais informações, confira "Sobre as permissões para o GitHub Packages".

Sobre a cobrança do GitHub Packages

O uso de GitHub Packages é gratuito para pacotes públicos. Para pacotes privados, cada conta do GitHub.com recebe determinada quantidade de armazenamento gratuito e transferência de dados, dependendo do produto usado com a conta. Qualquer uso além dos valores incluídos é controlado pelos limites de gastos. Se você for um cliente que paga mensalmente, a sua conta terá um limite de gastos padrão de 0 USD (dólares dos EUA), que impede o uso adicional de armazenamento ou transferência de dados após alcançar o valor incluído. Se você pagar sua conta por fatura, sua conta terá um limite de gastos padrão ilimitado. Para obter mais informações, confira "Sobre cobrança para GitHub Packages."

Clientes e formatos compatíveis

O GitHub Packages usa os comandos nativos de ferramentas de pacotes com os quais você já está familiarizado para publicar e instalar versões de pacote.

Suporte para registros de pacotes

LinguagemDescriçãoFormato do pacoteCliente do pacote
JavaScriptGerenciador de pacotes de nópackage.jsonnpm
RubyGerenciador de pacotes de RubyGemsGemfilegem
JavaFerramenta de gerenciamento de projetos e compreensão do Apache Mavenpom.xmlmvn
JavaFerramenta de automação do build Gradle para Javabuild.gradle ou build.gradle.ktsgradle
.NETGerenciamento de pacotes NuGet para .NETnupkgdotnet CLI
N/DGerenciamento do contêiner do DockerDockerfileDocker

Para obter mais informações sobre como configurar seu cliente de pacote para uso com GitHub Packages, confira " Trabalhar com um registro GitHub Packages".

Para obter mais informações sobre o Docker e o Container registry, confira "Como trabalhar com o registro de contêiner".

Autenticar-se no GitHub Packages

Você precisa de um token de acesso para publicar, instalar e excluir pacotes.

Você pode usar um PAT (token de acesso pessoal) para se autenticar no GitHub Packages ou na API do 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 escopos relacionados a pacotes para um PAT, 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 PAT para instalar pacotes associados a outros repositórios privados (que não podem ser acessados pelo GITHUB_TOKEN).

Para obter mais informações sobre o GITHUB_TOKEN usado em fluxos de trabalho do GitHub Actions, confira "Autenticação em um fluxo de trabalho".

Como gerenciar pacotes

Você pode excluir um pacote na interface de usuário de GitHub.com ou usando a API REST. Para obter mais informações, confira "Como excluir e restaurar um pacote" e a "API GitHub Packages".

A API do GraphQL do GitHub Packages não dá suporte a contêineres ou a imagens do Docker que usam o namespace de pacote https://ghcr.io/OWNER/PACKAGE-NAME ou imagens npm que usam o namespace de pacote https://npm.pkg.github.com/OWNER/PACKAGE-NAME.

Ao usar a API do GraphQL para consultar e excluir pacotes privados, você deve usar o mesmo token que você usa para efetuar a autenticação no GitHub Packages.

Para obter mais informações, confira "Como criar chamadas com o GraphQL".

Você pode configurar webhooks para assinar eventos relacionados aos pacotes, como quando um pacote é publicado ou atualizado. Para obter mais informações, confira o " evento de webhook package".

Entrar em contato com o suporte

ISe você tiver comentários ou solicitações de recursos para o GitHub Packages, use um discussão da GitHub Community.

Entre em contato com Suporte do GitHub sobre GitHub Packages usando nosso formulário de contato se:

  • Você encontrar qualquer coisa que contradiga a documentação
  • Você encontra erros vagos ou pouco claros
  • Seu pacote publicado contém dados confidenciais, como violações do RGPD, chaves API ou informações de identificação pessoal