Observação: talvez esse tipo de pacote não esteja disponível para sua instância, pois os administradores do site podem habilitar ou desabilitar cada tipo de pacote compatível. Para obter mais informações, confira "Configurar o suporte ao ecossistema de pacote para sua empresa".
Autenticar-se no GitHub Packages
Você precisa de um token de acesso para publicar, instalar e excluir pacotes privados, públicos e internos.
Você pode usar um personal access token para se autenticar no GitHub Packages ou na API do GitHub Enterprise Server. Ao criar um personal access token, você pode atribuir diferentes escopos de token, dependendo da sua necessidade. Para obter mais informações sobre escopos relacionados a pacotes para personal access token, confira "Sobre permissões para o GitHub Packages".
Para efetuar a autenticação em um registro do GitHub Packages dentro de um fluxo de trabalho de GitHub Actions, você pode utilizar:
- GITHUB_TOKENpara publicar pacotes associados ao repositório do fluxo de trabalho.
- um personal access token com pelo menos escopo read:packagespara instalar pacotes associados a outros repositórios privados (que não podem ser acessados porGITHUB_TOKEN).
Como se autenticar em um fluxo de trabalho de GitHub Actions
Use o seguinte comando para autenticar o GitHub Packages em um fluxo de trabalho do GitHub Actions usando o GITHUB_TOKEN em vez de codificar um personal access token em um arquivo nuget.config no repositório:
dotnet nuget add source --username USERNAME --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text --name github "https://nuget.HOSTNAME/NAMESPACE/index.json"
Substitua NAMESPACE pelo nome da conta pessoal ou organização , que é proprietário do repositório no qual seus pacotes estão hospedados.
Para obter mais informações sobre o GITHUB_TOKEN usado em fluxos de trabalho do GitHub Actions, confira "Autenticação automática de token".
Autenticar com um personal access token
Você precisa de um token de acesso para publicar, instalar e excluir pacotes privados, públicos e internos.
Você pode usar um personal access token para se autenticar no GitHub Packages ou na API do GitHub Enterprise Server. Ao criar um personal access token, você pode atribuir diferentes escopos de token, dependendo da sua necessidade. Para obter mais informações sobre escopos relacionados a pacotes para personal access token, confira "Sobre permissões para o GitHub Packages".
Para efetuar a autenticação em um registro do GitHub Packages dentro de um fluxo de trabalho de GitHub Actions, você pode utilizar:
- GITHUB_TOKENpara publicar pacotes associados ao repositório do fluxo de trabalho.
- um personal access token com pelo menos escopo read:packagespara instalar pacotes associados a outros repositórios privados (que não podem ser acessados porGITHUB_TOKEN).
Você precisa usar um personal access token com os escopos apropriados para publicar e instalar pacotes no GitHub Packages. Para obter mais informações, confira "Introdução ao GitHub Packages".
Para se autenticar no GitHub Packages com a CLI (interface de linha de comando) do dotnet, crie um arquivo nuget.config no diretório do projeto especificando o GitHub Packages como uma fonte em packageSources para o cliente da CLI do dotnet.
Você deve substituir:
- USERNAMEcom o nome de sua conta de usuário em GitHub.
- TOKENcom seu personal access token.
- NAMESPACEpelo nome da conta pessoal ou organização , que é proprietário do repositório no qual seus pacotes estão hospedados.
- HOSTNAMEcom o nome do host para sua instância do GitHub Enterprise Server.
Se a sua instância tiver o isolamento de subdomínio habilitado:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <clear />
        <add key="github" value="https://nuget.HOSTNAME/NAMESPACE/index.json" />
    </packageSources>
    <packageSourceCredentials>
        <github>
            <add key="Username" value="USERNAME" />
            <add key="ClearTextPassword" value="TOKEN" />
        </github>
    </packageSourceCredentials>
</configuration>
Se a sua instância tiver o isolamento de subdomínio desabilitado:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <clear />
        <add key="github" value="https://HOSTNAME/_registry/nuget/NAMESPACE/index.json" />
    </packageSources>
    <packageSourceCredentials>
        <github>
            <add key="Username" value="USERNAME" />
            <add key="ClearTextPassword" value="TOKEN" />
        </github>
    </packageSourceCredentials>
</configuration>
Publicando um pacote
Você pode publicar um pacote no GitHub Packages autenticando com um arquivo nuget.config ou usando a opção de linha de comando --api-key com seu GitHub personal access token.
Como publicar um pacote usando um GitHub personal access token como sua chave de API
Se você ainda não tem um personal access token para usar em sua conta no sua instância do GitHub Enterprise Server, confira "Gerenciar seus tokens de acesso pessoal".
- 
Criar um novo projeto. Substitua PROJECT_NAMEpelo nome que deseja dar ao projeto.dotnet new console --name PROJECT_NAME
- 
Empacotar o projeto. dotnet pack --configuration Release
- 
Publicar o pacote usando seu personal access token como a chave de API. Substitua PROJECT_NAMEpelo nome do projeto,1.0.0pelo número de versão do pacote eYOUR_GITHUB_PATpelo seu personal access token.dotnet nuget push "bin/Release/PROJECT_NAME.1.0.0.nupkg" --api-key YOUR_GITHUB_PAT --source "github"
Após publicar um pacote, você poderá visualizá-lo no GitHub. Para obter mais informações, confira "Visualizar pacotes".
Como publicar um pacote usando um arquivo nuget.config
Ao publicar, o OWNER do repositório especificado em seu arquivo .csproj deverá corresponder ao NAMESPACE que você usa em seu arquivo de autenticação nuget.config. Especifique ou incremente o número de versão no arquivo .csproj e use o comando dotnet pack para criar um arquivo .nuspec para essa versão. Para obter mais informações sobre como criar seu pacote, confira "Criar e publicar um pacote" na documentação da Microsoft.
- 
Autenticar para GitHub Packages. Para obter mais informações, confira "Autenticação no GitHub Packages". 
- 
Criar um novo projeto. Substitua PROJECT_NAMEpelo nome que deseja dar ao projeto.dotnet new console --name PROJECT_NAME
- 
Adicione informações específicas do seu projeto ao arquivo do projeto, que termina com .csproj. Substitua: - 1.0.0pelo número de versão do pacote.
- OWNERpelo nome da conta pessoal ou organização que é proprietário do repositório ao qual você deseja publicar seu pacote.
- REPOSITORYpelo nome do repositório ao qual você deseja conectar seu pacote.
- HOSTNAMEcom o nome do host para sua instância do GitHub Enterprise Server.
 <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.0</TargetFramework> <PackageId>PROJECT_NAME</PackageId> <Version>1.0.0</Version> <Authors>AUTHORS</Authors> <Company>COMPANY_NAME</Company> <PackageDescription>PACKAGE_DESCRIPTION</PackageDescription> <RepositoryUrl>https://HOSTNAME/OWNER/REPOSITORY</RepositoryUrl> </PropertyGroup> </Project>
- 
Empacotar o projeto. dotnet pack --configuration Release
- 
Publique o pacote usando a keyque você especificou no arquivo nuget.config. SubstituaPROJECT_NAMEpelo nome do projeto e1.0.0pelo número de versão do pacote.dotnet nuget push "bin/Release/PROJECT_NAME.1.0.0.nupkg" --source "github"
Após publicar um pacote, você poderá visualizá-lo no GitHub. Para obter mais informações, confira "Visualizar pacotes".
Publicar vários pacotes no mesmo repositório
Para conectar vários pacotes ao mesmo repositório, use a mesma URL de repositório do GitHub nos campos RepositoryURL em todos os arquivos de projeto .csproj. O GitHub corresponde ao repositório baseado nesse campo.
O seguinte exemplo publica os projetos MY_APP e MY_OTHER_APP no mesmo repositório:
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <PackageId>MY_APP</PackageId>
    <Version>1.0.0</Version>
    <Authors>Octocat</Authors>
    <Company>GitHub</Company>
    <PackageDescription>This package adds a singing Octocat!</PackageDescription>
    <RepositoryUrl>https://HOSTNAME/my-org/my-repo</RepositoryUrl>
  </PropertyGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <PackageId>MY_OTHER_APP</PackageId>
    <Version>1.0.0</Version>
    <Authors>Octocat</Authors>
    <Company>GitHub</Company>
    <PackageDescription>This package adds a dancing Octocat!</PackageDescription>
    <RepositoryUrl>https://HOSTNAME/my-org/my-repo</RepositoryUrl>
  </PropertyGroup>
</Project>
Instalando um pacote
O uso de pacotes do GitHub no projeto é semelhante ao uso de pacotes de nuget.org. Adicione as dependências do pacote ao arquivo .csproj especificando o nome e a versão do pacote. Para obter mais informações sobre como usar um arquivo .csproj no seu projeto, confira "Como trabalhar com pacotes NuGet" na documentação da Microsoft.
- 
Autenticar para GitHub Packages. Para obter mais informações, confira "Autenticação no GitHub Packages". 
- 
Para usar um pacote, adicione ItemGroupe configure o campoPackageReferenceno arquivo de projeto .csproj. Substitua o valorPACKAGE_NAMEemInclude="PACKAGE_NAME"por sua dependência de pacote, e o valorX.X.XemVersion="X.X.X"pela versão do pacote que deseja usar:<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.0</TargetFramework> <PackageId>My-app</PackageId> <Version>1.0.0</Version> <Authors>Octocat</Authors> <Company>GitHub</Company> <PackageDescription>This package adds an Octocat!</PackageDescription> <RepositoryUrl>https://HOSTNAME/OWNER/REPOSITORY</RepositoryUrl> </PropertyGroup> <ItemGroup> <PackageReference Include="PACKAGE_NAME" Version="X.X.X" /> </ItemGroup> </Project>
- 
Instale os pacotes com o comando restore.dotnet restore
Solução de problemas
Talvez o pacote NuGet não consiga efetuar push se a RepositoryUrl no .csproj não estiver definida como o repositório esperado.
Se você estiver usando um arquivo nuspec, verifique se ele tem um elemento repository com os atributos type e url obrigatórios.
Se você estiver usando um GITHUB_TOKEN para autenticação em um registro GitHub Packages em um fluxo de trabalho GitHub Actions, o token não poderá acessar pacotes baseados em repositório privado em um repositório diferente de onde o fluxo de trabalho está sendo executado. Para acessar pacotes associados a outros repositórios, em vez disso, gere um personal access token com o escopo read:packages e passe esse token como um segredo.