Sobre o GitHub Package Registry
GitHub Package Registry is a package hosting service, fully integrated with GitHub. O GitHub Package Registry combina seu código-fonte e pacotes em um só lugar para fornecer gerenciamento integrado de permissões e cobrança, para poder centralizar o desenvolvimento do seu software no GitHub.
Você pode integrar GitHub Package Registry com as APIs de GitHub, GitHub Actions e webhooks para criar um fluxo de trabalho de ponta a ponta que inclui as suas soluções de código, CI e implantação.
You can host multiple packages in one repository and see more information about each package by viewing the package's README, download statistics, version history, and more.
When you create a GitHub Actions workflow, you can use the GITHUB_TOKEN
to publish and install packages in GitHub Package Registry without needing to store and manage a personal access token. Para obter mais informações, consulte "Sobre Registro de contêiner do GitHub."
Nota: Registro de contêiner do GitHub está atualmente em versão beta público e sujeito a alterações. Durante o beta, o armazenamento e a banda larga são grátis. Para usar Registro de contêiner do GitHub, você precisa habilitar a pré-visualização de recursos. Para obter mais informações, consulte "Sobre Registro de contêiner do GitHub" e "Habilitar melhor suporte ao contêiner".
Visualizar pacotes
You can configure webhooks to subscribe to package-related events, such as when a package is published or updated. For more information, see "Viewing packages."
Sobre permissões e visibilidade de pacotes
Registros de pacotes | |
---|---|
Locais de hospedagem | Você pode hospedar vários pacotes em um só repositório. |
Permissões | Você pode publicar pacotes em um repositório público (pacotes públicos) para compartilhar com tudo de GitHub, ou em um repositório privado (pacotes privados) para compartilhar com os colaboradores ou uma organização. You can use GitHub roles and teams to limit who can install or publish each package, as packages inherit the permissions of the repository. Anyone with read permissions for a repository can install a package as a dependency in a project, and anyone with write permissions can publish a new package version. |
Visibilidade | Você pode publicar pacotes em um repositório público (pacotes públicos) para compartilhar com tudo de GitHub, ou em um repositório privado (pacotes privados) para compartilhar com os colaboradores ou uma organização. |
Sobre a cobrança do GitHub Package Registry
O uso de GitHub Package Registry é gratuito para pacotes públicos. Para pacotes privados, cada conta GitHub recebe uma certa quantidade de armazenamento gratuito e transferência de dados, dependendo do produto usado com a conta. Any usage beyond the included amounts is controlled by spending limits. If you are a monthly-billed customer, your account will have a default spending limit of $0, which prevents additional usage of storage or data transfer after you reach the included amounts. If you pay your account by invoice, your account will have an unlimited default spending limit. Para obter mais informações, consulte "Sobre a cobrança do GitHub Package Registry".
Atualização de cobrança para armazenamento de imagem contêiner: Durante a fase beta de Registro de contêiner do GitHub, o armazenamento de imagem do Docker e a largura de banda são grátis para os serviços de hospedagem antigo docker. kg.github.com
e novo ghcr.io
. Para obter mais informações, consulte "Sobre Registro de contêiner do GitHub."
Clientes e formatos compatíveis
O GitHub Package Registry 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
Os registros do pacote usam PACKAGE-TYPE.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME
como a URL do host do pacote, substituindo PACKAGE-TYPE
pelo espaço de nome do pacote. Por exemplo, o seu Gemfile será hospedado em rubygems.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME
.
Linguagem | Descrição | Formato do pacote | Cliente do pacote | Espaço de nome do pacote |
---|---|---|---|---|
JavaScript | Gerenciador de pacotes de nó | package.json | npm | npm.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME |
Ruby | Gerenciador de pacotes de RubyGems | Gemfile | gem | rubygems.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME |
Java | Ferramenta de gerenciamento de projetos e compreensão do Apache Maven | pom.xml | mvn | maven.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME |
Java | Ferramenta de automação do build Gradle para Java | build.gradle ou build.gradle.kts | gradle | maven.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME |
.NET | Gerenciamento de pacotes NuGet para .NET | nupkg | dotnet CLI | nuget.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME |
For more information about configuring your package client for use with GitHub Package Registry, see "Package client guides for GitHub Package Registry."
For more information about Docker and Registro de contêiner do GitHub, see "Container guides for GitHub Package Registry."
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
), você pode usar umGITHUB_TOKEN
. - Para o registro do contêiner (
ghcr.io/OWNER/IMAGE-NAME
), você deve usar um token de acesso pessoal.
Sobre escopos e permissões para registros de pacotes
To install or publish a package, you must use a token with the appropriate scope, and your user account must have appropriate permissions for that repository.
Por exemplo:
- Para fazer o download e instalar pacotes a partir de um repositório, seu token deve ter o escopo
read:packages
, e sua conta de usuário deve ter permissões de leitura para o repositório. - Para excluir uma versão especificada de um pacote privado no GitHub, seu token deve ter o escopo
delete:packages
erepo
. Não é possível excluir pacotes públicos. Para obter mais informações, consulte "Excluir um pacote".
Escopo | Descrição | Permissões do repositório |
---|---|---|
read:packages | Faça o download e instale pacotes do GitHub Package Registry | leitura |
write:packages | Faça o upload e publique os pacotes em GitHub Package Registry | gravação |
delete:packages | Excluir versões especificadas de pacotes privados de GitHub Package Registry | administrador |
repo | Faça o upload e exclua os pacotes (junto com write:packages ou delete:packages ) | gravação ou admin |
Ao criar um fluxo de trabalho de GitHub Actions, você pode usar o GITHUB_TOKEN
para publicar e instalar pacotes no GitHub Package Registry sem precisar armazenar e gerenciar um token de acesso pessoal.
Para obter mais informações, consulte:
- "Usando GitHub Package Registry com GitHub Actions"
- "Criar um token de acesso pessoal"
- "Escopos disponíveis"
Gerenciar pacotes
Você pode excluir uma versão de um pacote privado em GitHub ou usar a API do GraphQL. 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 Package Registry. Para obter mais informações, consulte "Excluir um pacote" e "Formando chamadas com GraphQL".
Você pode configurar webhooks para assinar eventos relacionados aos pacotes, como quando um pacote é publicado ou atualizado. Para obter mais informações, consulte o evento de webhook de "pacote
".
Entrar em contato com o suporte
Se você tiver feedback ou pedidos de recursos para GitHub Package Registry, use o formulário de feedback para GitHub Package Registry.
Entre em contato com Suporte do GitHub sobre GitHub Package Registry usando o 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