Примечание. Этот тип пакета может быть недоступен для вашего экземпляра, так как администраторы сайта могут включать или отключать каждый поддерживаемый тип пакета. Дополнительные сведения см. в разделе Настройка поддержки пакетов для предприятия.
Проверка подлинности в GitHub Packages
Для публикации, установки и удаления частных, внутренних и общедоступных пакетов требуется маркер доступа.
Вы можете использовать personal access token для проверки подлинности в GitHub Packages или GitHub Enterprise Server. При создании personal access token маркер можно назначить различным областям в зависимости от ваших потребностей. Дополнительные сведения о связанных с пакетами областях для personal access token см. в разделе Сведения о разрешениях для пакетов GitHub.
Для проверки подлинности в реестре GitHub Packages в рабочем процессе GitHub Actions можно использовать следующее:
GITHUB_TOKEN
для публикации пакетов, связанных с репозиторием рабочих процессов.- personal access token с по крайней мере
read:packages
областью установки пакетов, связанных с другими частными репозиториями (которыеGITHUB_TOKEN
не могут получить доступ).
Проверка подлинности в рабочем процессе GitHub Actions
Используйте следующую команду для проверки подлинности в GitHub Packages в рабочем процессе GitHub Actions, используя GITHUB_TOKEN
вместо жесткого кода personal access token в файле nuget.config в репозитории:
dotnet nuget add source --username USERNAME --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text --name github "https://nuget.HOSTNAME/OWNER/index.json"
Дополнительные сведения об GITHUB_TOKEN
, используемом в рабочих процессах GitHub Actions, см. в разделе Проверка подлинности в рабочем процессе.
Проверка подлинности с помощью personal access token
Для публикации, установки и удаления частных, внутренних и общедоступных пакетов требуется маркер доступа.
Вы можете использовать personal access token для проверки подлинности в GitHub Packages или GitHub Enterprise Server. При создании personal access token маркер можно назначить различным областям в зависимости от ваших потребностей. Дополнительные сведения о связанных с пакетами областях для personal access token см. в разделе Сведения о разрешениях для пакетов GitHub.
Для проверки подлинности в реестре GitHub Packages в рабочем процессе GitHub Actions можно использовать следующее:
GITHUB_TOKEN
для публикации пакетов, связанных с репозиторием рабочих процессов.- personal access token с по крайней мере
read:packages
областью установки пакетов, связанных с другими частными репозиториями (которыеGITHUB_TOKEN
не могут получить доступ).
Для публикации и установки пакетов в GitHub Packages необходимо использовать personal access token с соответствующими областями. Дополнительные сведения см. в статье "Сведения о GitHub Packages".
Для проверки подлинности в GitHub Packages с помощью интерфейса командной строки (CLI) dotnet
создайте файл nuget.config в каталоге проекта, указав GitHub Packages в качестве источника в разделе packageSources
для клиента CLI dotnet
.
Необходимо заменить:
USERNAME
на имя вашей личной учетной записи в GitHubTOKEN
с personal access token.OWNER
на имя учетной записи пользователя или организации, которой принадлежит репозиторий, содержащий проект.HOSTNAME
с именем узла для your GitHub Enterprise Server instance.
Если в вашем экземпляре включена изоляция поддоменов:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="github" value="https://nuget.HOSTNAME/OWNER/index.json" />
</packageSources>
<packageSourceCredentials>
<github>
<add key="Username" value="USERNAME" />
<add key="ClearTextPassword" value="TOKEN" />
</github>
</packageSourceCredentials>
</configuration>
Если в вашем экземпляре выключена изоляция поддоменов:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="github" value="https://HOSTNAME/_registry/nuget/OWNER/index.json" />
</packageSources>
<packageSourceCredentials>
<github>
<add key="Username" value="USERNAME" />
<add key="ClearTextPassword" value="TOKEN" />
</github>
</packageSourceCredentials>
</configuration>
Публикация пакета
Вы можете опубликовать пакет в GitHub Packages, выполнив проверку подлинности с помощью файлаnuget.config или используя --api-key
параметр командной строки с GitHub personal access token.
Публикация пакета с помощью personal access token GitHub в качестве ключа API
Если у вас еще нет маркера доступа к учетной записи в your GitHub Enterprise Server instance, см. раздел Создание personal access token.
-
Создайте новый проект.
dotnet new console --name OctocatApp
-
Упакуйте проект.
dotnet pack --configuration Release
-
Опубликуйте пакет, используя personal access token в качестве ключа API.
dotnet nuget push "bin/Release/OctocatApp.1.0.0.nupkg" --api-key YOUR_GITHUB_PAT --source "github"
После публикации пакет можно просмотреть здесь: GitHub. Дополнительные сведения см. в статье "Просмотр пакетов".
Публикация пакета с помощью файла nuget.config
При публикации необходимо использовать в CSPROJ-файле то же значение OWNER
, что и в файле проверки подлинности nuget.config. Укажите или увеличьте номер версии в CSPROJ-файле, а затем используйте команду dotnet pack
, чтобы создать NUSPEC-файл для этой версии. Дополнительные сведения о создании пакета см. в разделе Создание и публикация пакета в документации Майкрософт.
-
Пройдите проверку подлинности в GitHub Packages. Дополнительные сведения см. в разделе Проверка подлинности в GitHub Packages.
-
Создайте новый проект.
dotnet new console --name OctocatApp
-
Добавьте сведения о вашем проекте в файл проекта, который имеет расширение CSPROJ. Необходимо заменить:
OWNER
с именем учетной записи пользователя или организации, которой принадлежит репозиторий, к которому вы хотите подключить пакет.REPOSITORY
имя репозитория, к которому требуется подключить пакет.1.0.0
на номер версии пакетаHOSTNAME
с именем узла для your GitHub Enterprise Server instance.
<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://HOSTNAME/OWNER/REPOSITORY</RepositoryUrl> </PropertyGroup> </Project>
-
Упакуйте проект.
dotnet pack --configuration Release
-
Опубликуйте пакет, используя
key
, указанный в файле nuget.config.dotnet nuget push "bin/Release/OctocatApp.1.0.0.nupkg" --source "github"
После публикации пакет можно просмотреть здесь: GitHub. Дополнительные сведения см. в статье "Просмотр пакетов".
Публикация нескольких пакетов в одном репозитории
Чтобы подключить несколько пакетов к одному репозиторию, можно включить один и тот же URL-адрес репозитория GitHub в RepositoryURL
поля во всех csproj-файлах проекта. GitHub сопоставляет репозиторий на основе этого поля.
Например, проекты OctodogApp и OctocatApp будут опубликованы в одном репозитории:
<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://HOSTNAME/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://HOSTNAME/octo-org/octo-cats-and-dogs</RepositoryUrl>
</PropertyGroup>
</Project>
Установка пакета
Использование в вашем проекте пакетов из GitHub аналогично использованию пакетов из nuget.org. Добавьте зависимости пакета в CSPROJ-файл, указав имя пакета и версию. Дополнительные сведения об использовании CSPROJ-файла в проекте см. в разделе Работа с пакетами NuGet в документации Майкрософт.
-
Пройдите проверку подлинности в GitHub Packages. Дополнительные сведения см. в разделе Проверка подлинности в GitHub Packages.
-
Чтобы использовать пакет, добавьте
ItemGroup
и настройте полеPackageReference
в файле проекта .csproj. Замените значениеOctokittenApp
вInclude="OctokittenApp"
на свою зависимость пакета, а также замените значение12.0.2
вVersion="12.0.2"
на необходимую версию:<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://HOSTNAME/OWNER/REPOSITORY</RepositoryUrl> </PropertyGroup> <ItemGroup> <PackageReference Include="OctokittenApp" Version="12.0.2" /> </ItemGroup> </Project>
-
Установите пакеты с помощью команды
restore
.dotnet restore
Устранение неполадок
Отправка пакета NuGet может завершиться неудачно, если в RepositoryUrl
в CSPROJ-файле не задан ожидаемый репозиторий.
Если вы используете NUSPEC-файл, убедитесь, что в нем присутствует элемент repository
с обязательными атрибутами type
и url
.
Если вы используете GITHUB_TOKEN
для аутентификации в реестре GitHub Packages в рабочем процессе GitHub Actions, токен не сможет получить доступ к пакетам на основе частного репозитория в другом репозитории, отличном от того, где выполняется рабочий процесс. Чтобы получить доступ к пакетам, связанным с другими репозиториями, создайте personal access token с областью read:packages
и передайте этот маркер в виде секрета.