Skip to main content

Conectar um repositório a um pacote

É possível conectar um repositório a um pacote no GitHub.

Quem pode usar esse recurso?

O GitHub Packages está disponível com GitHub Free, GitHub Pro, GitHub Free para organizações, GitHub Team, GitHub Enterprise Cloud e GitHub Enterprise Server 3.0 ou superior.
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 planos herdados por repositório não podem acessar registros que oferecem suporte a permissões granulares, pois essas contas são cobradas por repositório. Enterprise Managed Users não têm alocação de armazenamento individual para publicar pacotes no namespace da conta, mas podem publicar no namespace de uma organização. Para obter informações adicionais sobre Enterprise Managed Users, confira “Sobre os Enterprise Managed Users”. Para obter a lista de registros que oferecem suporte a permissões granulares, confira “Sobre permissões para o GitHub Packages”. Para mais informações, confira "Planos do GitHub".

Quando você publica um pacote com escopo para uma conta pessoal ou uma organização, o pacote não é vinculado a um repositório por padrão. Se você conectar um pacote a um repositório, a página de aterrissagem do pacote mostrará informações e links do repositório, como o LEIAME. Você também pode fazer com que o pacote herde as permissões de acesso do repositório vinculado. Para obter mais informações, confira "Configurando o controle de acesso e visibilidade de um pacote".

Conectar um repositório a um pacote com escopo do usuário em GitHub

  1. No GitHub, acesse a página principal da sua conta pessoal.

  2. No canto superior direito do GitHub, selecione sua foto de perfil e selecione Seu perfil.

    Captura de tela do menu suspenso na imagem de perfil de @octocat. "Seu perfil" está contornado em laranja escuro.

  3. Na página do perfil, no cabeçalho, clique na guia Pacotes .

  4. Procure e clique no nome do pacote que deseja gerenciar.

  5. Nas versões do pacote, clique em Conectar repositório.

  6. Selecione um repositório para vinculá-lo ao pacote e clique em Conectar repositório.

Conectar um repositório a um pacote com escopo da organização em GitHub

  1. Em GitHub, acesse a página principal da sua organização.

  2. No nome da sua organização, clique na guia Pacotes.

    Captura de tela da página de perfil de @octo-org. A guia "Pacotes " é realçada com um contorno laranja.

  3. Procure e clique no nome do pacote que deseja gerenciar.

  4. Nas versões do pacote, clique em Conectar repositório.

  5. Selecione um repositório para vinculá-lo ao pacote e clique em Conectar repositório.

Conectar um repositório a uma imagem de contêiner usando a linha de comando

Observação: se você publicar um pacote vinculado a um repositório, o pacote herdará automaticamente as permissões de acesso do repositório vinculado e os fluxos de trabalho do GitHub Actions no repositório vinculado obterão automaticamente acesso ao pacote, a menos que a sua organização tenha desabilitado a herança automática das permissões de acesso. Para obter mais informações, confira "Configurando o controle de acesso e visibilidade de um pacote".

  1. Em seu Dockerfile, adicione esta linha, substituindo OWNER and REPO pelos seus detalhes:

    LABEL org.opencontainers.image.source=https://github.com/OWNER/REPO
    

    Por exemplo, se você for o usuário octocat e o proprietário de my-repo você adicionará esta linha ao seu Dockerfile:

    LABEL org.opencontainers.image.source=https://github.com/octocat/my-repo
    

    Para obter mais informações, confira "LABEL" na documentação oficial do Docker e "Chaves de Anotação Predefinidas" no repositório opencontainers/image-spec.

  2. Construa a sua imagem do contêiner. Este exemplo cria uma imagem do Dockerfile no diretório atual e atribui o nome hello_docker à imagem.

    docker build -t hello_docker .
    
  3. Opcionalmente, examine os detalhes da imagem do Docker que você acabou de criar.

    $ docker images
    > REPOSITORY          TAG         IMAGE ID       CREATED         SIZE
    > hello_docker        latest      142e665b1faa   5 seconds ago   125MB
    > redis               latest      afb5e116cac0   3 months ago    111MB
    > alpine              latest      a6215f271958   5 months ago    5.29MB
    
  4. Atribua um nome e destino de hospedagem à imagem do Docker.

    docker tag IMAGE_NAME ghcr.io/NAMESPACE/NEW_IMAGE_NAME:TAG
    

    Substitua NAMESPACE pelo nome da conta pessoal ou organização para a qual você deseja que o pacote tenha o escopo definido.

    Por exemplo:

    docker tag 38f737a91f39 ghcr.io/octocat/hello_docker:latest
    
  5. Se você ainda não o fez, efetue a autenticação em Container registry. Para obter mais informações, confira "Trabalhando com o registro do Contêiner".

    $ echo $CR_PAT | docker login ghcr.io -u USERNAME --password-stdin
    > Login Succeeded
    
  6. Faça push da sua imagem de contêiner para o Container registry.

    docker push ghcr.io/NAMESPACE/IMAGE-NAME:TAG
    

    Por exemplo:

    docker push ghcr.io/octocat/hello_docker:latest
    

Desvinculando um repositório de um pacote no GitHub

Note

Desvincular um pacote de um repositório removerá as informações do repositório da página de chegada do pacote e poderá afetar o padrão de acesso, dependendo se o pacote herda suas permissões de acesso do repositório. Para obter mais informações, confira "Configurando o controle de acesso e visibilidade de um pacote". Esse comportamento não se aplica a pacotes do Apache Maven, conforme esboçado em "Sobre permissões para o GitHub Packages".

  1. No GitHub, navegue até a página de configurações do Pacote que você deseja desvincular.

  2. Na página Configurações do pacote, você verá uma seção Origem do repositório. Se esta seção não estiver presente, o Pacote não está vinculado a um repositório no momento.

  3. Clique no ícone de lixeira no canto superior direito da seção Origem do repositório.

É possível que exista uma seção Origem do repositório, mas nenhum ícone de lixeira. Isso ocorre porque uma origem do repositório foi definida como parte do código empacotado, ou seja, um arquivo package.json ou um arquivo .gemspec, mas ele não está realmente vinculado a um repositório no GitHub. Para vincular o pacote a um repositório, você precisará seguir as etapas na seção acima.

  1. Confirme que você gostaria de desvincular o repositório do pacote com a caixa de diálogo.

Migrando um pacote para outro repositório

Se atualmente você tiver um pacote vinculado a um repositório e quiser vinculá-lo a um repositório diferente, basta desvincular o pacote do repositório atual e vinculá-lo ao novo repositório.

  1. Siga as etapas para desvinculá-lo, consulte "Desvinculando um repositório de um pacote no GitHub."
  2. Siga as etapas para vincular o pacote ao novo repositório, consulte "Conectando um repositório a um pacote no escopo da organização no GitHub" ou "Conectando um repositório a um pacote no escopo do usuário no GitHub".