Использовать реестр пакетов GitHub в качестве хранилища пакетов PowerShell - PullRequest
1 голос
/ 31 января 2020

Насколько я знаю репозиторий PowerShell - это репозиторий NuGet ...

GitHub только что выпустил реестр пакетов , который моя компания в настоящее время использует для npm, но также имеет конечную точку для NuGet.

Я могу получить доступ к конечной точке NuGet (https://nuget.pkg.github.com/mycompany/index.json) с помощью моих учетных данных GitHub, который возвращает действительное значение json:

{
      "version": "3.0.0-beta.1",
      "resources": [
        {
          "@id": "https://nuget.pkg.github.com/mycompany/download",
          "@type": "PackageBaseAddress/3.0.0",
          "comment": "Get package content (.nupkg)."
        },
        {
          "@id": "https://nuget.pkg.github.com/mycompany/query",
          "@type": "SearchQueryService",
          "comment": "Filter and search for packages by keyword."
        },
        {
          "@id": "https://nuget.pkg.github.com/mycompany/query",
          "@type": "SearchQueryService/3.0.0-beta",
          "comment": "Filter and search for packages by keyword."
        },
        {
          "@id": "https://nuget.pkg.github.com/mycompany/query",
          "@type": "SearchQueryService/3.0.0-rc",
          "comment": "Filter and search for packages by keyword."
        },
        {
          "@id": "https://nuget.pkg.github.com/mycompany",
          "@type": "PackagePublish/2.0.0",
          "comment": "Push and delete (or unlist) packages."
        },
        {
          "@id": "https://nuget.pkg.github.com/mycompany",
          "@type": "RegistrationsBaseUrl",
          "comment": "Get package metadata."
        },
        {
          "@id": "https://nuget.pkg.github.com/mycompany",
          "@type": "RegistrationsBaseUrl/3.0.0-beta",
          "comment": "Get package metadata."
        },
        {
          "@id": "https://nuget.pkg.github.com/mycompany",
          "@type": "RegistrationsBaseUrl/3.0.0-rc",
          "comment": "Get package metadata."
        }
      ]
    }

Я пытался использовать это, чтобы настроить его в качестве репо на моей локальной машине (прежде чем я в идеале поместил бы sh модули на свой CI / CD и сделал их доступными для людей на Install-Module используя GitHub в качестве репо):

PS C:> $gitHubCredential = Get-Credential
PS C:> (iwr https://nuget.pkg.github.com/mycompany/index.json -Credential $gitHubCredential).StatusCode
200
PS C:> Register-PSRepository -Name GitHub -SourceLocation https://nuget.pkg.github.com/mycompany -PublishLocation https://nuget.pkg.github.com/mycompany -Credential $gitHubCredential
Register-PSRepository : The specified Uri 'https://nuget.pkg.github.com/mycompany' for parameter 'SourceLocation' is
an invalid Web Uri. Please ensure that it meets the Web Uri requirements.
At line:1 char:1
+ Register-PSRepository -Name GitHub -SourceLocation https://nuget.pkg. ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (https://nuget.pkg.github.com/mycompany:String) [Register-PSRepository
   ], ArgumentException
    + FullyQualifiedErrorId : InvalidWebUri,Register-PSRepository

Я пытаюсь сделать что-то невозможное?

1 Ответ

0 голосов
/ 27 марта 2020

Я сам изучал это уже пару дней. На шаге 3 в этих документов следует отметить, что PowerShell не поддерживает v3 фида / API NuGet. Насколько я могу судить, реестр GitHub Package only поддерживает v3 канала / API NuGet, и поэтому я боюсь, что в настоящее время это невозможно сделать.

...