Ошибка при использовании действий GitHub для отправки nupkg в мои пакеты GitHub
Вопрос:
Я получаю ошибку "Указанный источник 'github' недействителен" при попытке создать и отправить пакет NuGet в пакеты NuGet GitHub.
Кто-нибудь знает почему? или, каким должен быть источник, я не вижу ничего в документации GitHub об этом значении или даже конечный URL-адрес, по которому будут размещены мои пакеты (я надеюсь, что он просто отобразится на вкладке пакетов, когда он будет создан)
Детали вопроса:
Я только что увидел, что у вас на GitHub есть Actions, поэтому вы можете получить свой код для сборки / тестирования при объединении изменений.
Я также видел, что теперь вы также можете опубликовать пакет NuGet и разместить его в GitHub.
Глядя на скриншот ниже, кажется, что это должно быть довольно легко сделать.
Мне потребовалось некоторое время, чтобы понять, что мне нужно создать действие, чтобы поместить этот код... так что вот мой код действия (yml)
теперь это действие запускается, когда я фиксирую, и все это проходит до последней строки для отправки в github. Я получаю сообщение об ошибке "Указанный источник" github "недействителен. Укажите действительный источник"
3 ответа
Вам нужно будет добавить GitHub в качестве ресурса в конфигурацию Nuget.
вы можете использовать следующую командную строку:
dotnet nuget add source --username USERNAME --password ${{secrets.GITHUB_TOKEN}} --store-password-in-text --name github"https://nuget.pkg.github.com/OWNER/index.json"
где GITHUB_TOKEN также может быть токеном PAT, дополнительную информацию можно найти в официальной документации .
Эта командная строка добавит исходный код в ваш файл конфигурации.
Причина в том, чтоgithub
не определяется в--source "github"
команда. Я признаю, что документация (https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry) не очень ясна. Чтобы опубликовать в том же репозитории github nuget, сделайте в своем yaml что-то вроде следующего:
- run: dotnet nuget add source --username shiraze --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text --name github "https://nuget.pkg.github.com/shiraze-company/index.json"
- run: dotnet nuget push "MyPackage.1.1.0.nupkg" --source "github"
Мое имя пользователяshiraze
, поэтому замените это своим. Я публикую в частном репозитории github nuget, поэтому заменитеshiraze-company
либо с организацией, в которой вы хотите опубликовать, либо с вашим именем пользователя (для публикации в вашем собственном профиле).
Этот маршрут не требует создания токена личного доступа. Однако вам понадобится PAT при восстановлении частных репозиториев nuget, как описано на странице выше.
Ну какой твой NuGet.Config
? Я бы предположил, учитывая сообщение об ошибке, что в нем нет источника с именемgithub
. Вам нужно опубликовать в источнике, который действительно существует в вашей конфигурации, иначе какnuget
знаете где публиковать?
Пример NuGet.Config
файл может выглядеть так:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="SomeOtherSource" value="https://some.source.maybe.jfrog.com/nuget/nuget-local" />
<add key="NuGet" value="https://api.nuget.org/v3/index.json" />
</packageSources>
</configuration>
Если у вас нет источника с key="github"
, ваша команда не удастся.
Вы можете найти дополнительную информацию о пакетах GitHub с NuGet здесь.