Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.

Configurar a CLI dotnet para uso com o GitHub Packages

Você pode configurar a interface de linha de comando dotnet (CLI) para publicar pacotes NuGet no GitHub Package Registry e usar pacotes armazenados no GitHub Package Registry como dependências em um projeto .NET.

GitHub Package Registry está disponível com GitHub Free, GitHub Pro, GitHub Free para organizações, GitHub Team, GitHub Enterprise Cloud, GitHub Enterprise Server 2.22, e GitHub One.


O GitHub Package Registry não está disponível para repositórios privados de contas que utilizam planos antigos por-repositório. GitHub Package Registry está disponível com GitHub Free, GitHub Pro, GitHub Free para organizações, GitHub Team, GitHub Enterprise Cloud e GitHub One. Para obter mais informações, consulte "[produtos de GitHub](/articles/github-s-products)

Neste artigo

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 usando um fluxo de trabalho do GitHub Actions:

  • Para registros de pacotes (PACKAGE-REGISTRY.pkg.github.com/OWNER/REPOSITORY/IMAGE-NAME), você pode usar um GITHUB_TOKEN.
  • Para o registro do contêiner (ghcr.io/OWNER/IMAGE-NAME), você deve usar um token de acesso pessoal.

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

Para efetuar a autenticação em GitHub Package Registry com a interface da linha de comando (CLI) dotnet, crie um arquivo nuget.config no diretório do seu projeto, especificando GitHub Package Registry como uma fonte em packageSources para o cliente da CLI Dotnet.

Você deve substituir:

  • USUÁRIO pelo o nome da sua conta de usuário em GitHub.
  • TOKEN pelo seu token de acesso pessoal.
  • OWNER with the name of the user or organization account that owns the repository containing your project.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <clear />
        <add key="github" value="https://nuget.pkg.github.com/OWNER/index.json" />
    </packageSources>
    <packageSourceCredentials>
        <github>
            <add key="Username" value="USERNAME" />
            <add key="ClearTextPassword" value="TOKEN" />
        </github>
    </packageSourceCredentials>
</configuration>

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

Você pode publicar um pacote no GitHub Package Registry, efetuando a autenticação com um arquivo nuget.config. Ao fazer a publicação, você precisa usar o mesmo valor para PROPRIETÁRIO no seu arquivo csproj que você usa no seu arquivo de autenticação nuget.config. Especifique ou incremente o número da versão no seu .csproj e, em seguida, utilize o comando dotnet pack para criar um arquivo .nuspec para essa versão. For more information on creating your package, see "Create and publish a package" in the Microsoft documentation.

Após publicar um pacote, você poderá visualizá-lo no GitHub. For more information, see the "package webhook event."

  1. Autenticar para GitHub Package Registry. Para obter mais informações, consulte "Authenticating to GitHub Package Registry."

  2. Criar um novo projeto

    dotnet new console --name OctocatApp
  3. Adicione informações específicas do seu projeto ao arquivo do seu projeto, que termina em .csproj. Você deve substituir:

    • PROPRIETÁRIO com o nome do usuário ou conta da organização proprietária do repositório que contém o seu projeto.
    • REPOSITÓRIO pelo nome do repositório que contém o pacote que você deseja publicar.
    • 1.0.0 with the version number of the package.
    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>netcoreapp3.0</TargetFramework>
        <PackageId>OctocatApp</PackageId>
        <Version>1.0.0</Version>
        <Authors>Octocat</Authors>
        <Company>GitHub</Company>
        <PackageDescription>This package adds an Octocat!</PackageDescription>
        <RepositoryUrl>https://github.com/OWNER/REPOSITORY</RepositoryUrl>
      </PropertyGroup>
    
    </Project>
    
  4. Empacotar o projeto.

    dotnet pack --configuration Release
  5. Publique o pacote usando a chave que você especificou no arquivo nuget.config.

    dotnet nuget push "bin/Release/OctocatApp.1.0.0.nupkg" --source "github"

Publicar vários pacotes no mesmo repositório

Para publicar vários pacotes no mesmo repositório, você pode incluir a mesma URL do repositório do GitHub nos campos de ReposityURL em todos os arquivos de projeto .csproj. O GitHub corresponde ao repositório baseado nesse campo.

Por exemplo, os projetos OctodogApp e OctocatApp irão publicar no mesmo repositório:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <PackageId>OctodogApp</PackageId>
    <Version>1.0.0</Version>
    <Authors>Octodog</Authors>
    <Company>GitHub</Company>
    <PackageDescription>This package adds an Octodog!</PackageDescription>
    <RepositoryUrl>https://github.com/octo-org/octo-cats-and-dogs</RepositoryUrl>
  </PropertyGroup>

</Project>
<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <PackageId>OctocatApp</PackageId>
    <Version>1.0.0</Version>
    <Authors>Octocat</Authors>
    <Company>GitHub</Company>
    <PackageDescription>This package adds an Octocat!</PackageDescription>
    <RepositoryUrl>https://github.com/octo-org/octo-cats-and-dogs</RepositoryUrl>
  </PropertyGroup>

</Project>

Instalar um pacote

Usar pacotes do GitHub no seu projeto é semelhante a usar pacotes do nuget.org. Adicione suas dependências de pacote ao seu arquivo .csproj especificando o nome e a versão do pacote. For more information on using a .csproj file in your project, see "Working with NuGet packages" in the Microsoft documentation.

  1. Autenticar para GitHub Package Registry. Para obter mais informações, consulte "Authenticating to GitHub Package Registry."

  2. Para usar um pacote, adicione ItemGroup e configure o campo PackageReference no arquivo de projeto .csproj, substituindo o pacote OctokittenApp pelo seu pacote de dependência e 1.0.0 pela versão que você deseja usar:

    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>netcoreapp3.0</TargetFramework>
        <PackageId>OctocatApp</PackageId>
        <Version>1.0.0</Version>
        <Authors>Octocat</Authors>
        <Company>GitHub</Company>
        <PackageDescription>This package adds an Octocat!</PackageDescription>
        <RepositoryUrl>https://github.com/OWNER/REPOSITORY</RepositoryUrl>
      </PropertyGroup>
    
      <ItemGroup>
        <PackageReference Include="OctokittenApp" Version="12.0.2" />
      </ItemGroup>
    
    </Project>
    
  3. Instale os pacotes com o comando restaurar.

    restaurar dotnet

Leia mais

Esse documento ajudou você?

Privacy policy

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.