NuGet API получает текст лицензии - PullRequest
0 голосов
/ 11 июля 2019

У меня есть имя и версия пакета nuget, и мне нужно извлечь текст лицензии для каждого пакета.

Мне удалось прочитать URL лицензии, прочитав несколько блогов, но в целом документация действительно скудная.Поскольку URL лицензии устарел, я должен зачитать информацию о самой лицензии.Но с таким подходом, который я выбрал, это кажется невозможным:

public static async Task<IPackageSearchMetadata> GetNugetPackageMetaData(string name, string version)
       {

           //workaround for beta/alpha
           if (version.Contains("-"))
           {
               int dashIndex = version.IndexOf("-");
               version = version.Substring(0, dashIndex);
           }

           int[] versions = Array.ConvertAll(version.Split("."), int.Parse);

           NuGetVersion nuGetVersion = new NuGetVersion(versions[0], versions[1], versions[2]);

           PackageIdentity packageIdentity = new PackageIdentity(name, nuGetVersion);

           List<Lazy<INuGetResourceProvider>> providers = new List<Lazy<INuGetResourceProvider>>();
           providers.AddRange(Repository.Provider.GetCoreV3());  // Add v3 API support
           PackageSource packageSource = new PackageSource("https://api.nuget.org/v3/index.json");
           SourceRepository sourceRepository = new SourceRepository(packageSource, providers);
           PackageMetadataResource packageMetadataResource = await sourceRepository.GetResourceAsync<PackageMetadataResource>();
           IPackageSearchMetadata searchMetadata = 
               await packageMetadataResource.GetMetadataAsync(packageIdentity, new SourceCacheContext(), NullLogger.Instance, CancellationToken.None);

           return searchMetadata;
       }

Есть ли другая возможность получить текст лицензии с помощью nugetv3 или даже лучше, всего файла nuspec?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...