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 Enterprise Managed Users pode publicar no namespace de uma organização. Esses usuários não podem publicar pacotes no namespace da conta porque não há alocação de armazenamento pessoal. Para saber mais sobre o Enterprise Managed Users, confira About Enterprise Managed Users.

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 saber mais, 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 à direita do GitHub, clique na sua imagem de perfil e em Your profile.

    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 Packages.

  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 Packages.

    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 saber mais, 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 saber mais, 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

Observação

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 saber mais, 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.