Публикация пакетов NuGet в артефактах Azure от PR - PullRequest
0 голосов
/ 26 июня 2019

Можно ли сделать пакеты Azure Artifacts общедоступными?Если это так, я бы хотел опубликовать пакеты NuGet из PR в моем проекте GitHub .В настоящее время я получаю следующую ошибку прав доступа из сборок PR:

[warning] Warning_SessionCreationFailed {"statusCode": 500, "result": {"$ id": "1", "innerException": null, "message": "Пользователь '89e4e6df-0ac0-471f-ba63-0270050c3b79' не имеет разрешения для выполнения этого действия. Вам необходимо иметь 'ReadPackages'.", "typeName": "Microsoft.VisualStudio.Services.Feed.WebApi.FeedNeedsPermissionsException, Microsoft.VisualStudio.Services.Feed.WebApi "," typeKey ":" FeedNeedsPermissionsException "," errorCode ": 0," eventId ": 3000}} [ошибка] Ошибка: сбой процесса / usr / bin / dotnetс кодом завершения 1 [ошибка] Не удалось опубликовать пакеты

Я использую файл azure-pipelines.yml .Вот ссылка на мою сборку конвейеров Azure.

Обновление 1

Это пользователи / группы, которые я уже добавил в свой фид:

enter image description here

Это пользователи / группы, которые я могу добавить в свой канал, которых я еще не сделал:

enter image description here

Обновление 2

Это yaml для задачи конвейеров Azure, которую я использую для публикации пакета NuGet:

- task: DotNetCoreCLI@2
  displayName: 'Dotnet NuGet Push'
  inputs:
    command: push
    nuGetFeedType: internal
    packagesToPush: '/home/vsts/work/1/Windows/*.nupkg'
    publishVstsFeed: schema-net

1 Ответ

1 голос
/ 26 июня 2019

Согласно сообщению об ошибке, ваша учетная запись не имеет разрешений на тот канал, которым вы хотите управлять.

Вам необходимо проверить, имеет ли ваша учетная запись права доступа Участник или выше на фид, который вы пытаетесь отправить.

В другой группе Служба сборки коллекций проектов является участником по умолчанию. Но также, как значение по умолчанию , оно не включает учетную запись Служба сборки коллекций проектов (xxxx) в качестве участника. Поэтому, если вы являетесь владельцем, вам может понадобиться добавить Сервис сборки коллекций проектов (xxxx) в Сервис сборки коллекций проектов группа.

enter image description here

Edit:

Когда я проверял информацию о вашей организации на нашем внутреннем сервере, я обнаружил пользователя (89e4e6df-0ac0-xxxxxx-0270050c3b79) , который отображается в вашем сообщении об ошибке, - Идентификатор службы учетная запись. И это домен является сборкой. Это специальный аккаунт, а не обычный пользователь, который может создавать или запускать PR. Поэтому, если вы не предоставите разрешение этой учетной записи службы, у нее не будет разрешения на доступ к каналу, на который вы хотите перейти.

Кроме того, группы прямых родителей этой учетной записи безопасности в вашей организации: [имя организации] \ Группа службы безопасности . Вы можете проверить это в настройках вашей организации. Вы также можете проверить его разрешение в своей ленте.

Итак, для решения, вам нужно добавить эту учетную запись службы идентификации в настройку вашего фида и предоставить ей статус участника или более высокую роль.

enter image description here

2-е обновление :

Для ясного понимания, позвольте мне прояснить некоторые детали.

Сначала, согласно сообщению об ошибке, которое отображалось в журнале, в котором говорилось об отсутствии разрешения ReadPackage, я сначала рассмотрел это с разрешением канала, который вы хотите отправить в задаче.

Кроме того, номер пользователя, который также отображается в журнале, 89e4e6df-0ac0-xxxxxx-0270050c3b79 . Как я выяснил из бэкэнда, это VSID , представляющий учетную запись службы сборки: Schema.NET Build Service (схема-сеть). Поэтому, во-первых, легко предположить, что эта учетная запись не имеет соответствующих разрешений, чтобы она не могла отправить пакет.

Но , после того, как вы обновите настройку канала, я снова проверяю VSID пользователя из бэкэнда и просматриваю журнал ошибок. Я понял это. Согласно журналам # 20190625.1, вы можете увидеть, что возникла ошибка при получении исходного пакета:

## [предупреждение] Не могу найти строку loc для ключа: Warning_SessionCreationFailed

Из-за этой ошибки не удалось создать правильный путь к исходному пакету пакета, поэтому учетная запись службы не имеет разрешения на доступ к нему, поскольку это неправильный путь:

enter image description here

На самом деле правильный URL-адрес пакета с исходным кодом должен выглядеть следующим образом (вы можете сослаться на это из # 2029062502)

https://pkgs.dev.azure.com/schema-net/_packaging/f43386ca-{package id}-d2f8da200fb3/nuget/v3/index.json

Теперь я думаю, что это проблема конфигурации вашего файла nuget.config.

...