Observação: GitHub Package Registry está atualmente em beta para GitHub Enterprise Server 2.22. Para participar da versão beta da sua instância, use o formulário de inscrição.
Note: When installing or publishing a docker image, GitHub Package Registry does not currently support foreign layers, such as Windows images.
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 em
GitHub Package Registry usando um fluxo de trabalho de GitHub Actions, você deve usar GITHUB_TOKEN
.
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 no GitHub Package Registry com o Apache Maven editando seu arquivo ~/.m2/settings.xml para incluir seu token de acesso pessoal. Criar um novo arquivo ~/.m2/settings.xml, caso não exista um.
Na etiqueta servidores
, adicione uma etiqueta servidor
secundário com um Id
, substituindo USERNAME pelo o seu nome de usuário GitHub e Token pelo seu token de acesso pessoal.
Na etiqueta repositórios
, configure um repositório mapeando o id
do repositório com o id
que você adicionou na etiqueta servidor
que contém as suas credenciais. Substituir HOSTNAME pelo nome do host de sua instância GitHub Enterprise Server REPOSITÓRIO com o nome do repositório no qual você gostaria de publicar um pacote ou instalar um pacote, e OWNER com o nome do usuário ou conta de organização proprietária do repositório. Como não é permitido usar letras maiúsculas, é preciso usar letras minúsculas no nome do proprietário do repositório, mesmo que o nome do usuário ou da organização no GitHub contenha letras maiúsculas.
Se desejar interagir com vários repositórios, você poderá adicionar cada repositório para separar os repositório
secundários na etiqueta repositórios
, mapeando o ID
de cada um com as credenciais na etiqueta servidores
.
GitHub Package Registry suporta versões SNAPSHOT
do Apache Maven. Para utilizar um repositório para baixar esse tipo de artefato, você deve habilitar o SNAPSHOTS no seu arquivo ~/.m2/settings.xml.
Se sua instância tem o isolamento de subdomínio habilitado:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<activeProfiles>
<activeProfile>github</activeProfile>
</activeProfiles>
<profiles>
<profile>
<id>github</id>
<repositories>
<repository>
<id>central</id>
<url>https://repo1.maven.org/maven2</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
<repository>
<id>github</id>
<name>GitHub OWNER Apache Maven Packages</name>
<url>https://maven.HOSTNAME/OWNER/REPOSITORY</url>
</repository>
</repositories>
</profile>
</profiles>
<servers>
<server>
<id>github</id>
<username>USERNAME</username>
<password>TOKEN</password>
</server>
</servers>
</settings>
Se sua instância tem o isolamento de subdomínio desabilitado:
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<activeProfiles>
<activeProfile>github</activeProfile>
</activeProfiles>
<profiles>
<profile>
<id>github</id>
<repositories>
<repository>
<id>central</id>
<url>https://repo1.maven.org/maven2</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
<repository>
<id>github</id>
<name>GitHub OWNER Apache Maven Packages</name>
<url>https://HOSTNAME/_registry/maven/OWNER/REPOSITORY</url>
</repository>
</repositories>
</profile>
</profiles>
<servers>
<server>
<id>github</id>
<username>USERNAME</username>
<password>TOKEN</password>
</server>
</servers>
</settings>
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
O Por padrão, o GitHub publica o pacote em um repositório existente com o mesmo nome do pacote. por exemplo, o GitHub publicará um pacote denominado com.example:test
em um repositório denominadoOWNER/test
.
Caso queira publicar vários pacotes no mesmo repositório, você poderá incluir a URL do repositório no <distributionManagement>
elemento do arquivo pom.xml. O GitHub fará a correspondência do repositório com base nesse campo. Como o nome do repositório também faz parte do elemento distributionManagement
, não há etapas adicionais para publicar vários pacotes no mesmo repositório.
Para obter mais informações sobre como criar um pacote, consulte a documentação maven.apache.org.
- Edit the
distributionManagement
element of the pom.xml file located in your package directory, replacingOWNER
with the name of the user or organization account that owns the repository andREPOSITORY
with the name of the repository containing your project.
NOME DE HOST pelo nome de host da sua instância de GitHub Enterprise Server PROPRIETÁRIO
pelo nome do usuário ou conta da organização proprietária do repositório e REPOSITÓRIO
pelo nome do repositório que contém o seu projeto.
Se sua instância tem o isolamento de subdomínio habilitado:
<distributionManagement>
<repository>
<id>github</id>
<name>GitHub OWNER Apache Maven Packages</name>
<url>https://maven.HOSTNAME/OWNER/REPOSITORY</url>
</repository>
</distributionManagement>
Se sua instância tem o isolamento de subdomínio desabilitado:
<distributionManagement>
<repository>
<id>github</id>
<name>GitHub OWNER Apache Maven Packages</name>
<url>https://HOSTNAME/_registry/maven/OWNER/REPOSITORY</url>
</repository>
</distributionManagement>
-
Publique o pacote.
$ mvn deploy
Após publicar um pacote, você poderá visualizá-lo no GitHub. For more information, see "Viewing packages."
Instalar um pacote
Para instalar um pacote de Apache Maven a partir do GitHub Package Registry, edite o arquivo pom.xml para incluir o pacote como uma dependência. Se você desejar instalar pacotes de mais de um repositório, adicione uma etiqueta de repositório
para cada um. Para obter mais informações sobre como usar o arquivo pom.xml no seu projeto, consulte "Introdução a POM" na documentação do Apache Maven.
-
Autenticar para GitHub Package Registry. Para obter mais informações, consulte "Authenticating to GitHub Package Registry."
-
Adicione as dependências do pacote ao elemento
dependências
do arquivo pom.xml do seu projeto, substituindocom.exemplo:test
pelo seu pacote.<dependencies> <dependency> <groupId>com.example</groupId> <artifactId>test</artifactId> <version>1.0.0-SNAPSHOT</version> </dependency> </dependencies>
-
Instale o pacote.
$ mvn install