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.

Configuring NuGet for use with GitHub Packages

Você pode configurar o NuGet para publicar pacotes no GitHub Package Registry e usar pacotes armazenados no GitHub Package Registry como dependências em um projeto .Net.

GitHub Package Registry is available with GitHub Free, GitHub Pro, GitHub Team, and GitHub Enterprise Cloud. GitHub Package Registry is unavailable for per-repository plans, which are legacy billing plans. For more information, see "GitHub's products."

Neste artigo

Autenticar-se no GitHub Package Registry

You need an access token to publish, install, and delete packages in GitHub Package Registry. You can use a personal access token to authenticate with your username directly to GitHub Package Registry or the GitHub API. You can use a GITHUB_TOKEN to authenticate using a GitHub Actions workflow.

Authenticating with a personal access token

You must use a personal access token with the appropriate scopes to publish and install packages in GitHub Package Registry. For more information, see "About GitHub Package Registry."

To authenticate to GitHub Package Registry with NuGet, add GitHub Package Registry as a Source to the nuget client. Replace USERNAME with the name of your user account on GitHub, TOKEN with your personal access token, and OWNER with the name of the user or organization account that owns the repository containing your project. 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.

nuget sources Add -Name "GPR" \
     -Source "https://nuget.pkg.github.com/OWNER/index.json" \
     -UserName USERNAME -Password TOKEN

Authenticating with the GITHUB_TOKEN

If you are using a GitHub Actions workflow, you can use a GITHUB_TOKEN to publish and consume packages in GitHub Package Registry without needing to store and manage a personal access token. For more information, see "Authenticating with the GITHUB_TOKEN."

Publicar um pacote

You can publish a package to GitHub Package Registry when you specify the Source as GPR. GitHub Package Registry will use the same value for OWNER that you authenticate with. Para obter mais informações sobre como criar seu pacote, consulte "Criar e publicar um pacote" na documentação da Microsoft.

After you publish a package, you can view the package on GitHub. For more information, see "Viewing packages."

  1. Authenticate to GitHub Package Registry. Para obter mais informações, consulte "Autenticar-se no GitHub Package Registry."

  • Use the nuget command, replacing PACKAGE with the name of your package.

    $ nuget push PACKAGE.nupkg -Source "GPR"
  • Publishing multiple packages to the same repository

    When you publish a package, by default GitHub Package Registry uses the package name to determine the GitHub repository containing the package. For example, a package named odata-client would be published to the OWNER/odata-client repository.

    If you would like to change the repository containing the package, or publish multiple packages to the same repository, you can include the URL to the GitHub repository in the repository field of the package's .nuspec file. O GitHub fará a correspondência do repositório com base nesse campo, e não no nome do pacote. If you have a .csproj file created by Visual Studio, the version you use in your .nuspec file must match the version in your .csproj file.

    1. Add the URL of the GitHub repository in the repository field of the package's .nuspec file.

      <?xml version="1.0" encoding="utf-8"?>
      <package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
          <metadata>
          <id>sample</id>
          <version>1.2.3</version>
          <authors>Kim Abercrombie, Franck Halmaert</authors>
          <description>Sample exists only to show a sample .nuspec file.</description>
          <language>en-US</language>
          <repository type="git" url="https://github.com/my-org/my-custom-repo"/>
          </metadata>
      </package>
    2. Crie o pacote usando a configuração do arquivo .nuspec do pacote.

      $ dotnet pack --configuration Release
    3. Publish the new package to GitHub, replacing PACKAGE with the name of your package.

      $ nuget push PACKAGE.nupkg -Source "GPR"

    Instalar um pacote

    Using packages from GitHub in your project is similar to using packages from nuget.org. Add your package dependencies to your package.config, specifying the package name and version. Para obter mais informações sobre como usar um packages.config em seu projeto, consulte "Trabalhar com pacotes NuGet" na documentação da Microsoft.

    1. Authenticate to GitHub Package Registry. Para obter mais informações, consulte "Autenticar-se no GitHub Package Registry."

  • Configure packages.config to use the package, replacing the octo-app package with your package dependency.

     <?xml version="1.0" encoding="utf-8"?>
       <packages>
         <package id="octo-app" version="3.1.1" />
       </packages>
     </xml>
  • Restaure todos os pacotes.

    $ nuget restore
  • Leia mais

    Pergunte a uma pessoa

    Não consegue encontrar o que procura?

    Entrar em contato