diff options
| author | Can Eldem <celdem@gitlab.com> | 2020-07-15 09:24:27 +0000 |
|---|---|---|
| committer | Can Eldem <celdem@gitlab.com> | 2020-07-15 09:24:27 +0000 |
| commit | f04805cf7b490b9ef9492e4ddc115ab7c2845ab6 (patch) | |
| tree | 290e40b1b3f3c24579ed780e83ce55293e4b1de7 | |
| parent | d8b18764499ed0378d5f5caf0d68460c39510cfe (diff) | |
| parent | 4b9540b7724f89b2c3d2850193721abd415421f6 (diff) | |
Merge branch '217905-net-integration-test' into 'master'v3.18.0
Resolve nuget dependencies from a custom registry.
See merge request gitlab-org/security-products/license-management!189
36 files changed, 957 insertions, 405 deletions
@@ -6,3 +6,4 @@ pkg tmp coverage vendor +obj/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 8892241..b337f17 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # GitLab License management changelog +## v3.18.0 + +- Improve license detection for NuGet packages (!189) +- Detect `.vbproj` files (!189) +- Detect `.fsproj` files (!189) +- Detect `.sln` files (!189) +- Parse SPDX license expressions from `.nuspec` files (!189) +- Install custom `ADDITIONAL_CA_CERT_BUNDLE` for `dotnet` CLI projects (!189) + ## v3.17.2 - Return empty list of packages if bundler scanner fails. (!181) diff --git a/Gemfile.lock b/Gemfile.lock index 3435ee7..03656d9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -8,7 +8,7 @@ GIT PATH remote: . specs: - license-management (3.17.2) + license-management (3.18.0) license_finder (~> 6.6.0) GEM diff --git a/lib/license/finder/ext/dotnet.rb b/lib/license/finder/ext/dotnet.rb index 1b98881..c5ff485 100644 --- a/lib/license/finder/ext/dotnet.rb +++ b/lib/license/finder/ext/dotnet.rb @@ -2,10 +2,65 @@ module LicenseFinder class Dotnet + def possible_package_paths + project_path.glob('*.sln') + + project_path.glob('*.csproj') + + project_path.glob('*.vbproj') + + project_path.glob('*.fsproj') + end + def prepare shell.execute(['apt-get', :update, '-q']) shell.execute(['apt-get', :install, '-y', '--no-install-recommends', 'dotnet-sdk-3.1']) - shell.execute([:dotnet, :restore]) + shell.execute([:mkdir, '-p', vendor_path.to_s]) unless vendor_path.exist? + shell.execute([ + :dotnet, + :restore, detected_package_path.to_s, + '--no-cache', + '--packages', vendor_path.to_s, + '--locked-mode', + '--verbosity', :detailed + ]) + end + + def current_packages + asset_files.flat_map do |file| + json = JSON.parse(IO.read(file)) + json.fetch('libraries', []).map do |slug, data| + name, version = slug.split('/') + map_from(name, version, data) + end + end + end + + private + + def vendor_path + @vendor_path ||= Pathname.pwd.join('.gitlab', 'cache', 'vendor') + end + + def map_from(name, version, data) + Dependency.new( + 'NuGet', + name, + version, + spec_licenses: licenses_from(data['path'], data.fetch('files', [])), + detection_path: detected_package_path, + install_path: vendor_path.join(data['path']) + ) + end + + def nuspec_path_from(path, files) + install_path = vendor_path.join(path) + nuspec_filename = files.find { |x| x.end_with?('.nuspec') } + return install_path.join(nuspec_filename) if nuspec_filename + end + + def licenses_from(path, files) + nuspec = nuspec_path_from(path, files) + return [] if nuspec.nil? || !nuspec.exist? + + ::License::Management::Nuspec.new(nuspec.read).licenses end end end diff --git a/lib/license/finder/ext/nuget.rb b/lib/license/finder/ext/nuget.rb index 1aa3b1b..6fb2553 100644 --- a/lib/license/finder/ext/nuget.rb +++ b/lib/license/finder/ext/nuget.rb @@ -2,22 +2,51 @@ module LicenseFinder class Nuget - def prepare_command + def prepare shell.execute(['apt-get', :update, '-q']) shell.execute(['apt-get', :install, '-y', '--no-install-recommends', 'mono-complete']) - "mono /usr/local/bin/nuget.exe restore -Verbosity detailed" + shell.execute([:mkdir, '-p', vendor_path.to_s]) unless vendor_path.exist? + + Dir.chdir(project_path) do + shell.execute([ + :mono, '/usr/local/bin/nuget.exe', + :restore, detected_package_path, + '-Verbosity detailed', + '-PackagesDirectory', vendor_path, + '-NoCache', + '-LockedMode' + ]) + end end - def license_urls(dependency) - filename = "#{dependency.name}.#{dependency.version}.nupkg" - files = Dir["**/#{filename}"] + - Dir.glob(File.join(Dir.home, '.nuget', 'packages', '**', '**', filename.downcase)) + def current_packages + dependencies.map do |dependency| + nupkg = vendor_path.glob("**/#{dependency.name}*.nupkg")[0] + ::LicenseFinder::Dependency.new( + 'NuGet', + dependency.name, + dependency.version, + spec_licenses: license_urls(dependency, nupkg), + detection_path: detected_package_path, + install_path: nupkg&.parent + ) + end + end - return if files.empty? + def license_urls(dependency, nupkg) + return if nupkg.nil? || !nupkg.exist? - Zip::File.open(files.first) do |zipfile| - Nuget.nuspec_license_urls(zipfile.read(dependency.name + '.nuspec')) + Zip::File.open(nupkg.to_s) do |zipfile| + content = zipfile.read("#{dependency.name}.nuspec") + ::License::Management::Nuspec.new(content).licenses end + rescue StandardError => e + ::License::Management.logger.error(e) + [] + end + + def vendor_path + @vendor_path ||= Pathname.pwd.join('.gitlab', 'cache', 'vendor') end end end diff --git a/lib/license/management.rb b/lib/license/management.rb index 8ba2992..58310f7 100644 --- a/lib/license/management.rb +++ b/lib/license/management.rb @@ -8,6 +8,7 @@ require 'yaml' require 'license_finder' require 'license/management/loggable' require 'license/management/verifiable' +require 'license/management/nuspec' require 'license/management/python' require 'license/management/repository' require 'license/management/report' diff --git a/lib/license/management/nuspec.rb b/lib/license/management/nuspec.rb new file mode 100644 index 0000000..cd785b4 --- /dev/null +++ b/lib/license/management/nuspec.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module License + module Management + class Nuspec + attr_reader :xml + + def initialize(xml) + @xml = REXML::Document.new(xml) + end + + def licenses + licenses = REXML::XPath.match(xml, "//package/metadata/license[@type='expression']").map(&:get_text).map(&:to_s) + return licenses if licenses.any? + + REXML::XPath.match(xml, '//package/metadata/licenseUrl').map(&:get_text).map(&:to_s) + end + end + end +end diff --git a/lib/license/management/shell.rb b/lib/license/management/shell.rb index 2bdd95a..408c760 100644 --- a/lib/license/management/shell.rb +++ b/lib/license/management/shell.rb @@ -49,6 +49,8 @@ module License execute(keytool_list_command) end end + execute([:cp, custom_certificate_path.to_s, "/usr/lib/ssl/certs/"]) + execute([:c_rehash, '-v']) end def keytool_import_command(file_path) diff --git a/lib/license/management/version.rb b/lib/license/management/version.rb index 76b9238..cd8bbd5 100644 --- a/lib/license/management/version.rb +++ b/lib/license/management/version.rb @@ -2,6 +2,6 @@ module License module Management - VERSION = '3.17.2' + VERSION = '3.18.0' end end @@ -54,10 +54,6 @@ function scan_project() { license_management report $@ } -function prepare_dotnet() { - [[ $(ls ./*.sln 2> /dev/null) ]] && RECURSIVE="--recursive" -} - function prepare_java() { if [ -n "$LM_JAVA_VERSION" ]; then switch_to java "adoptopenjdk-${LM_JAVA_VERSION}" @@ -91,7 +87,6 @@ function prepare_project() { if [[ -z ${SETUP_CMD:-} ]]; then prepare_tools || true - prepare_dotnet || true else echo "Running '${SETUP_CMD}' to install project dependencies…" # shellcheck disable=SC2068 diff --git a/spec/fixtures/dotnet/nuget-custom-tls/Program.cs b/spec/fixtures/dotnet/nuget-custom-tls/Program.cs new file mode 100644 index 0000000..b3376c4 --- /dev/null +++ b/spec/fixtures/dotnet/nuget-custom-tls/Program.cs @@ -0,0 +1,12 @@ +using System; + +namespace nuget_custom_tls +{ + class Program + { + static void Main(string[] args) + { + Console.WriteLine("Hello World!"); + } + } +} diff --git a/spec/fixtures/dotnet/nuget-custom-tls/nuget-custom-tls.csproj b/spec/fixtures/dotnet/nuget-custom-tls/nuget-custom-tls.csproj new file mode 100644 index 0000000..d330382 --- /dev/null +++ b/spec/fixtures/dotnet/nuget-custom-tls/nuget-custom-tls.csproj @@ -0,0 +1,10 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>netcoreapp3.1</TargetFramework> + <RootNamespace>nuget_custom_tls</RootNamespace> + </PropertyGroup> + <ItemGroup> + <PackageReference Include="jive" Version="0.1.0" /> + </ItemGroup> +</Project> diff --git a/spec/fixtures/dotnet/nuget-custom-tls/nuget.config b/spec/fixtures/dotnet/nuget-custom-tls/nuget.config new file mode 100644 index 0000000..1dc087a --- /dev/null +++ b/spec/fixtures/dotnet/nuget-custom-tls/nuget.config @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<configuration> + <packageSources> + <clear /> + <add key="custom" value="https://nuget.test/v3/index.json" /> + </packageSources> +</configuration> diff --git a/spec/fixtures/dotnet/nuget-fsproj/Program.fs b/spec/fixtures/dotnet/nuget-fsproj/Program.fs new file mode 100644 index 0000000..a7458f5 --- /dev/null +++ b/spec/fixtures/dotnet/nuget-fsproj/Program.fs @@ -0,0 +1,8 @@ +// Learn more about F# at http://fsharp.org + +open System + +[<EntryPoint>] +let main argv = + printfn "Hello World from F#!" + 0 // return an integer exit code diff --git a/spec/fixtures/dotnet/nuget-fsproj/nuget-fsproj.fsproj b/spec/fixtures/dotnet/nuget-fsproj/nuget-fsproj.fsproj new file mode 100644 index 0000000..69f282e --- /dev/null +++ b/spec/fixtures/dotnet/nuget-fsproj/nuget-fsproj.fsproj @@ -0,0 +1,13 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>netcoreapp3.1</TargetFramework> + <RootNamespace>nuget_fsproj</RootNamespace> + </PropertyGroup> + <ItemGroup> + <Compile Include="Program.fs" /> + </ItemGroup> + <ItemGroup> + <PackageReference Include="jive" Version="0.1.0" /> + </ItemGroup> +</Project> diff --git a/spec/fixtures/dotnet/nuget-sln/app.sln b/spec/fixtures/dotnet/nuget-sln/app.sln new file mode 100644 index 0000000..bb3f0ec --- /dev/null +++ b/spec/fixtures/dotnet/nuget-sln/app.sln @@ -0,0 +1,84 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26124.0 +MinimumVisualStudioVersion = 15.0.26124.0 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{0F21C71D-559F-410A-B313-DFD09EE9DC48}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "web", "src\web\web.csproj", "{6AF97FC0-3641-4D3C-8C35-BCE1099FB2FE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "service", "src\service\service.csproj", "{26BE4B97-604F-432F-8A85-54BF99156E17}" +EndProject +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "domain", "src\domain\domain.fsproj", "{23E663A9-FB14-4DB1-BA73-5F4E59C38CA1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "test", "src\test\test.csproj", "{6253FFE1-745E-42E2-B3AB-023B9E78E033}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {6AF97FC0-3641-4D3C-8C35-BCE1099FB2FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6AF97FC0-3641-4D3C-8C35-BCE1099FB2FE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6AF97FC0-3641-4D3C-8C35-BCE1099FB2FE}.Debug|x64.ActiveCfg = Debug|Any CPU + {6AF97FC0-3641-4D3C-8C35-BCE1099FB2FE}.Debug|x64.Build.0 = Debug|Any CPU + {6AF97FC0-3641-4D3C-8C35-BCE1099FB2FE}.Debug|x86.ActiveCfg = Debug|Any CPU + {6AF97FC0-3641-4D3C-8C35-BCE1099FB2FE}.Debug|x86.Build.0 = Debug|Any CPU + {6AF97FC0-3641-4D3C-8C35-BCE1099FB2FE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6AF97FC0-3641-4D3C-8C35-BCE1099FB2FE}.Release|Any CPU.Build.0 = Release|Any CPU + {6AF97FC0-3641-4D3C-8C35-BCE1099FB2FE}.Release|x64.ActiveCfg = Release|Any CPU + {6AF97FC0-3641-4D3C-8C35-BCE1099FB2FE}.Release|x64.Build.0 = Release|Any CPU + {6AF97FC0-3641-4D3C-8C35-BCE1099FB2FE}.Release|x86.ActiveCfg = Release|Any CPU + {6AF97FC0-3641-4D3C-8C35-BCE1099FB2FE}.Release|x86.Build.0 = Release|Any CPU + {26BE4B97-604F-432F-8A85-54BF99156E17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {26BE4B97-604F-432F-8A85-54BF99156E17}.Debug|Any CPU.Build.0 = Debug|Any CPU + {26BE4B97-604F-432F-8A85-54BF99156E17}.Debug|x64.ActiveCfg = Debug|Any CPU + {26BE4B97-604F-432F-8A85-54BF99156E17}.Debug|x64.Build.0 = Debug|Any CPU + {26BE4B97-604F-432F-8A85-54BF99156E17}.Debug|x86.ActiveCfg = Debug|Any CPU + {26BE4B97-604F-432F-8A85-54BF99156E17}.Debug|x86.Build.0 = Debug|Any CPU + {26BE4B97-604F-432F-8A85-54BF99156E17}.Release|Any CPU.ActiveCfg = Release|Any CPU + {26BE4B97-604F-432F-8A85-54BF99156E17}.Release|Any CPU.Build.0 = Release|Any CPU + {26BE4B97-604F-432F-8A85-54BF99156E17}.Release|x64.ActiveCfg = Release|Any CPU + {26BE4B97-604F-432F-8A85-54BF99156E17}.Release|x64.Build.0 = Release|Any CPU + {26BE4B97-604F-432F-8A85-54BF99156E17}.Release|x86.ActiveCfg = Release|Any CPU + {26BE4B97-604F-432F-8A85-54BF99156E17}.Release|x86.Build.0 = Release|Any CPU + {23E663A9-FB14-4DB1-BA73-5F4E59C38CA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {23E663A9-FB14-4DB1-BA73-5F4E59C38CA1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {23E663A9-FB14-4DB1-BA73-5F4E59C38CA1}.Debug|x64.ActiveCfg = Debug|Any CPU + {23E663A9-FB14-4DB1-BA73-5F4E59C38CA1}.Debug|x64.Build.0 = Debug|Any CPU + {23E663A9-FB14-4DB1-BA73-5F4E59C38CA1}.Debug|x86.ActiveCfg = Debug|Any CPU + {23E663A9-FB14-4DB1-BA73-5F4E59C38CA1}.Debug|x86.Build.0 = Debug|Any CPU + {23E663A9-FB14-4DB1-BA73-5F4E59C38CA1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {23E663A9-FB14-4DB1-BA73-5F4E59C38CA1}.Release|Any CPU.Build.0 = Release|Any CPU + {23E663A9-FB14-4DB1-BA73-5F4E59C38CA1}.Release|x64.ActiveCfg = Release|Any CPU + {23E663A9-FB14-4DB1-BA73-5F4E59C38CA1}.Release|x64.Build.0 = Release|Any CPU + {23E663A9-FB14-4DB1-BA73-5F4E59C38CA1}.Release|x86.ActiveCfg = Release|Any CPU + {23E663A9-FB14-4DB1-BA73-5F4E59C38CA1}.Release|x86.Build.0 = Release|Any CPU + {6253FFE1-745E-42E2-B3AB-023B9E78E033}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6253FFE1-745E-42E2-B3AB-023B9E78E033}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6253FFE1-745E-42E2-B3AB-023B9E78E033}.Debug|x64.ActiveCfg = Debug|Any CPU + {6253FFE1-745E-42E2-B3AB-023B9E78E033}.Debug|x64.Build.0 = Debug|Any CPU + {6253FFE1-745E-42E2-B3AB-023B9E78E033}.Debug|x86.ActiveCfg = Debug|Any CPU + {6253FFE1-745E-42E2-B3AB-023B9E78E033}.Debug|x86.Build.0 = Debug|Any CPU + {6253FFE1-745E-42E2-B3AB-023B9E78E033}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6253FFE1-745E-42E2-B3AB-023B9E78E033}.Release|Any CPU.Build.0 = Release|Any CPU + {6253FFE1-745E-42E2-B3AB-023B9E78E033}.Release|x64.ActiveCfg = Release|Any CPU + {6253FFE1-745E-42E2-B3AB-023B9E78E033}.Release|x64.Build.0 = Release|Any CPU + {6253FFE1-745E-42E2-B3AB-023B9E78E033}.Release|x86.ActiveCfg = Release|Any CPU + {6253FFE1-745E-42E2-B3AB-023B9E78E033}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {6AF97FC0-3641-4D3C-8C35-BCE1099FB2FE} = {0F21C71D-559F-410A-B313-DFD09EE9DC48} + {26BE4B97-604F-432F-8A85-54BF99156E17} = {0F21C71D-559F-410A-B313-DFD09EE9DC48} + {23E663A9-FB14-4DB1-BA73-5F4E59C38CA1} = {0F21C71D-559F-410A-B313-DFD09EE9DC48} + {6253FFE1-745E-42E2-B3AB-023B9E78E033} = {0F21C71D-559F-410A-B313-DFD09EE9DC48} + EndGlobalSection +EndGlobal diff --git a/spec/fixtures/dotnet/nuget-sln/src/domain/Library.fs b/spec/fixtures/dotnet/nuget-sln/src/domain/Library.fs new file mode 100644 index 0000000..decb580 --- /dev/null +++ b/spec/fixtures/dotnet/nuget-sln/src/domain/Library.fs @@ -0,0 +1,5 @@ +namespace domain + +module Say = + let hello name = + printfn "Hello %s" name diff --git a/spec/fixtures/dotnet/nuget-sln/src/domain/domain.fsproj b/spec/fixtures/dotnet/nuget-sln/src/domain/domain.fsproj new file mode 100644 index 0000000..951dc19 --- /dev/null +++ b/spec/fixtures/dotnet/nuget-sln/src/domain/domain.fsproj @@ -0,0 +1,8 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <TargetFramework>netstandard2.0</TargetFramework> + </PropertyGroup> + <ItemGroup> + <Compile Include="Library.fs" /> + </ItemGroup> +</Project> diff --git a/spec/fixtures/dotnet/nuget-sln/src/service/Class1.cs b/spec/fixtures/dotnet/nuget-sln/src/service/Class1.cs new file mode 100644 index 0000000..79cc794 --- /dev/null +++ b/spec/fixtures/dotnet/nuget-sln/src/service/Class1.cs @@ -0,0 +1,8 @@ +using System; + +namespace service +{ + public class Class1 + { + } +} diff --git a/spec/fixtures/dotnet/nuget-sln/src/service/service.csproj b/spec/fixtures/dotnet/nuget-sln/src/service/service.csproj new file mode 100644 index 0000000..4641dbd --- /dev/null +++ b/spec/fixtures/dotnet/nuget-sln/src/service/service.csproj @@ -0,0 +1,5 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <TargetFramework>netstandard2.0</TargetFramework> + </PropertyGroup> +</Project> diff --git a/spec/fixtures/dotnet/nuget-sln/src/test/UnitTest1.cs b/spec/fixtures/dotnet/nuget-sln/src/test/UnitTest1.cs new file mode 100644 index 0000000..57a51a3 --- /dev/null +++ b/spec/fixtures/dotnet/nuget-sln/src/test/UnitTest1.cs @@ -0,0 +1,14 @@ +using System; +using Xunit; + +namespace test +{ + public class UnitTest1 + { + [Fact] + public void Test1() + { + + } + } +} diff --git a/spec/fixtures/dotnet/nuget-sln/src/test/test.csproj b/spec/fixtures/dotnet/nuget-sln/src/test/test.csproj new file mode 100644 index 0000000..b8a2cbb --- /dev/null +++ b/spec/fixtures/dotnet/nuget-sln/src/test/test.csproj @@ -0,0 +1,12 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <TargetFramework>netcoreapp3.1</TargetFramework> + <IsPackable>false</IsPackable> + </PropertyGroup> + <ItemGroup> + <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" /> + <PackageReference Include="xunit" Version="2.4.0" /> + <PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" /> + <PackageReference Include="coverlet.collector" Version="1.2.0" /> + </ItemGroup> +</Project> diff --git a/spec/fixtures/dotnet/nuget-sln/src/web/Program.cs b/spec/fixtures/dotnet/nuget-sln/src/web/Program.cs new file mode 100644 index 0000000..b59641b --- /dev/null +++ b/spec/fixtures/dotnet/nuget-sln/src/web/Program.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Hosting; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; + +namespace web +{ + public class Program + { + public static void Main(string[] args) + { + CreateHostBuilder(args).Build().Run(); + } + + public static IHostBuilder CreateHostBuilder(string[] args) => + Host + .CreateDefaultBuilder(args) + .ConfigureWebHostDefaults(webBuilder => { + webBuilder.UseStartup<Startup>(); + }); + } +} diff --git a/spec/fixtures/dotnet/nuget-sln/src/web/Startup.cs b/spec/fixtures/dotnet/nuget-sln/src/web/Startup.cs new file mode 100644 index 0000000..26facf4 --- /dev/null +++ b/spec/fixtures/dotnet/nuget-sln/src/web/Startup.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.HttpsPolicy; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; + +namespace web +{ + public class Startup + { + public Startup(IConfiguration configuration) + { + Configuration = configuration; + } + + public IConfiguration Configuration { get; } + + public void ConfigureServices(IServiceCollection services) + { + services.AddControllersWithViews(); + } + + public void Configure(IApplicationBuilder app, IWebHostEnvironment env) + { + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + } + else + { + app.UseExceptionHandler("/Home/Error"); + app.UseHsts(); + } + app.UseHttpsRedirection(); + app.UseStaticFiles(); + app.UseRouting(); + app.UseAuthorization(); + app.UseEndpoints(endpoints => { + endpoints.MapControllerRoute(name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); + }); + } + } +} diff --git a/spec/fixtures/dotnet/nuget-sln/src/web/web.csproj b/spec/fixtures/dotnet/nuget-sln/src/web/web.csproj new file mode 100644 index 0000000..a5af522 --- /dev/null +++ b/spec/fixtures/dotnet/nuget-sln/src/web/web.csproj @@ -0,0 +1,5 @@ +<Project Sdk="Microsoft.NET.Sdk.Web"> + <PropertyGroup> + <TargetFramework>netcoreapp3.1</TargetFramework> + </PropertyGroup> +</Project> diff --git a/spec/fixtures/dotnet/nuget-transient-dependencies/Program.cs b/spec/fixtures/dotnet/nuget-transient-dependencies/Program.cs new file mode 100644 index 0000000..6deea23 --- /dev/null +++ b/spec/fixtures/dotnet/nuget-transient-dependencies/Program.cs @@ -0,0 +1,12 @@ +using System; + +namespace nuget_transient_dependencies +{ + class Program + { + static void Main(string[] args) + { + Console.WriteLine("Hello World!"); + } + } +} diff --git a/spec/fixtures/dotnet/nuget-transient-dependencies/nuget-transient-dependencies.csproj b/spec/fixtures/dotnet/nuget-transient-dependencies/nuget-transient-dependencies.csproj new file mode 100644 index 0000000..2a99a3f --- /dev/null +++ b/spec/fixtures/dotnet/nuget-transient-dependencies/nuget-transient-dependencies.csproj @@ -0,0 +1,10 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <OutputType>Exe</OutputType> + <TargetFramework>netcoreapp3.1</TargetFramework> + <RootNamespace>nuget_transient_dependencies</RootNamespace> + </PropertyGroup> + <ItemGroup> + <PackageReference Include="NHibernate" Version="5.2.7" /> + </ItemGroup> +</Project> diff --git a/spec/fixtures/dotnet/nuget-vbproj/Program.vb b/spec/fixtures/dotnet/nuget-vbproj/Program.vb new file mode 100644 index 0000000..46283ca --- /dev/null +++ b/spec/fixtures/dotnet/nuget-vbproj/Program.vb @@ -0,0 +1,7 @@ +Imports System + +Module Program + Sub Main(args As String()) + Console.WriteLine("Hello World!") + End Sub +End Module diff --git a/spec/fixtures/dotnet/nuget-vbproj/nuget-vbproj.vbproj b/spec/fixtures/dotnet/nuget-vbproj/nuget-vbproj.vbproj new file mode 100644 index 0000000..6ef85bb --- /dev/null +++ b/spec/fixtures/dotnet/nuget-vbproj/nuget-vbproj.vbproj @@ -0,0 +1,10 @@ +<Project Sdk="Microsoft.NET.Sdk"> + <PropertyGroup> + <OutputType>Exe</OutputType> + <RootNamespace>nuget_vbproj</RootNamespace> + <TargetFramework>netcoreapp3.1</TargetFramework> + </PropertyGroup> + <ItemGroup> + <PackageReference Include="jive" Version="0.1.0" /> + </ItemGroup> +</Project> diff --git a/spec/fixtures/expected/csharp/nuget-dotnetcore/v1.0.json b/spec/fixtures/expected/csharp/nuget-dotnetcore/v1.0.json index 94ac683..b589989 100644 --- a/spec/fixtures/expected/csharp/nuget-dotnetcore/v1.0.json +++ b/spec/fixtures/expected/csharp/nuget-dotnetcore/v1.0.json @@ -14,6 +14,10 @@ }, { "count": 1, + "name": "MIT" + }, + { + "count": 1, "name": "http://opensource.org/licenses/Apache-2.0" }, { @@ -30,10 +34,6 @@ }, { "count": 1, - "name": "https://licenses.nuget.org/MIT" - }, - { - "count": 1, "name": "https://raw.githubusercontent.com/antlr/antlrcs/master/LICENSE.txt" }, { @@ -50,7 +50,7 @@ "name": "Antlr3.Runtime", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -62,7 +62,7 @@ "name": "Iesi.Collections", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -74,7 +74,7 @@ "name": "Microsoft.NETCore.Platforms", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -86,7 +86,7 @@ "name": "Microsoft.NETCore.Targets", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -98,7 +98,7 @@ "name": "Microsoft.Win32.Primitives", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -110,7 +110,7 @@ "name": "MvcMailer", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -122,7 +122,7 @@ "name": "NETStandard.Library", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -134,7 +134,7 @@ "name": "NHibernate", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -146,7 +146,7 @@ "name": "NodaTime", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -158,7 +158,7 @@ "name": "Remotion.Linq", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -170,7 +170,7 @@ "name": "Remotion.Linq.EagerFetching", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -182,7 +182,7 @@ "name": "System.AppContext", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -194,7 +194,7 @@ "name": "System.Buffers", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -206,7 +206,7 @@ "name": "System.Collections", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -218,7 +218,7 @@ "name": "System.Collections.Concurrent", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -230,7 +230,7 @@ "name": "System.Configuration.ConfigurationManager", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -242,7 +242,7 @@ "name": "System.Console", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -254,7 +254,7 @@ "name": "System.Diagnostics.Debug", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -266,7 +266,7 @@ "name": "System.Diagnostics.DiagnosticSource", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -278,7 +278,7 @@ "name": "System.Diagnostics.Tools", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -290,7 +290,7 @@ "name": "System.Diagnostics.Tracing", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -302,7 +302,7 @@ "name": "System.Globalization", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -314,7 +314,7 @@ "name": "System.Globalization.Calendars", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -326,7 +326,7 @@ "name": "System.Globalization.Extensions", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -338,7 +338,7 @@ "name": "System.IO", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -350,7 +350,7 @@ "name": "System.IO.Compression", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -362,7 +362,7 @@ "name": "System.IO.Compression.ZipFile", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -374,7 +374,7 @@ "name": "System.IO.FileSystem", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -386,7 +386,7 @@ "name": "System.IO.FileSystem.Primitives", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -398,7 +398,7 @@ "name": "System.Linq", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -410,7 +410,7 @@ "name": "System.Linq.Expressions", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -422,7 +422,7 @@ "name": "System.Linq.Queryable", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -434,7 +434,7 @@ "name": "System.Net.Http", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -446,7 +446,7 @@ "name": "System.Net.Primitives", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -458,7 +458,7 @@ "name": "System.Net.Sockets", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -470,7 +470,7 @@ "name": "System.ObjectModel", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -482,7 +482,7 @@ "name": "System.Reflection", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -494,7 +494,7 @@ "name": "System.Reflection.Emit", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -506,7 +506,7 @@ "name": "System.Reflection.Emit.ILGeneration", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -518,7 +518,7 @@ "name": "System.Reflection.Emit.Lightweight", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -530,7 +530,7 @@ "name": "System.Reflection.Extensions", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -542,7 +542,7 @@ "name": "System.Reflection.Primitives", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -554,7 +554,7 @@ "name": "System.Reflection.TypeExtensions", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -566,7 +566,7 @@ "name": "System.Resources.ResourceManager", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -578,7 +578,7 @@ "name": "System.Runtime", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -590,7 +590,7 @@ "name": "System.Runtime.Extensions", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -602,7 +602,7 @@ "name": "System.Runtime.Handles", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -614,7 +614,7 @@ "name": "System.Runtime.InteropServices", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -626,7 +626,7 @@ "name": "System.Runtime.InteropServices.RuntimeInformation", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -638,7 +638,7 @@ "name": "System.Runtime.Numerics", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -650,7 +650,7 @@ "name": "System.Runtime.Serialization.Formatters", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -662,7 +662,7 @@ "name": "System.Runtime.Serialization.Primitives", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -674,7 +674,7 @@ "name": "System.Security.Cryptography.Algorithms", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -686,7 +686,7 @@ "name": "System.Security.Cryptography.Cng", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -698,7 +698,7 @@ "name": "System.Security.Cryptography.Csp", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -710,7 +710,7 @@ "name": "System.Security.Cryptography.Encoding", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -722,7 +722,7 @@ "name": "System.Security.Cryptography.OpenSsl", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -734,7 +734,7 @@ "name": "System.Security.Cryptography.Primitives", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -746,7 +746,7 @@ "name": "System.Security.Cryptography.ProtectedData", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -758,7 +758,7 @@ "name": "System.Security.Cryptography.X509Certificates", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -770,7 +770,7 @@ "name": "System.Text.Encoding", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -782,7 +782,7 @@ "name": "System.Text.Encoding.Extensions", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -794,7 +794,7 @@ "name": "System.Text.RegularExpressions", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -806,7 +806,7 @@ "name": "System.Threading", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -818,7 +818,7 @@ "name": "System.Threading.Tasks", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -830,7 +830,7 @@ "name": "System.Threading.Tasks.Extensions", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -842,7 +842,7 @@ "name": "System.Threading.Timer", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -854,7 +854,7 @@ "name": "System.Xml.ReaderWriter", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -866,7 +866,7 @@ "name": "System.Xml.XDocument", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -878,19 +878,20 @@ "name": "T4Scaffolding.Core", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, { "license": { - "name": "https://licenses.nuget.org/MIT" + "name": "MIT", + "url": "http://opensource.org/licenses/mit-license" }, "dependency": { "name": "jive", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -902,7 +903,7 @@ "name": "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -914,7 +915,7 @@ "name": "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -926,7 +927,7 @@ "name": "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -938,7 +939,7 @@ "name": "runtime.native.System", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -950,7 +951,7 @@ "name": "runtime.native.System.IO.Compression", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -962,7 +963,7 @@ "name": "runtime.native.System.Net.Http", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -974,7 +975,7 @@ "name": "runtime.native.System.Security.Cryptography.Apple", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -986,7 +987,7 @@ "name": "runtime.native.System.Security.Cryptography.OpenSsl", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -998,7 +999,7 @@ "name": "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1010,7 +1011,7 @@ "name": "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1022,7 +1023,7 @@ "name": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1034,7 +1035,7 @@ "name": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1046,7 +1047,7 @@ "name": "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1058,7 +1059,7 @@ "name": "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1070,7 +1071,7 @@ "name": "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1082,9 +1083,9 @@ "name": "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", "description": "", "pathes": [ - "./src/web.api" + "." ] } } ] -} +}
\ No newline at end of file diff --git a/spec/fixtures/expected/csharp/nuget-dotnetcore/v1.1.json b/spec/fixtures/expected/csharp/nuget-dotnetcore/v1.1.json index 826c02c..61df691 100644 --- a/spec/fixtures/expected/csharp/nuget-dotnetcore/v1.1.json +++ b/spec/fixtures/expected/csharp/nuget-dotnetcore/v1.1.json @@ -15,6 +15,10 @@ }, { "count": 1, + "name": "MIT" + }, + { + "count": 1, "name": "http://opensource.org/licenses/Apache-2.0" }, { @@ -31,10 +35,6 @@ }, { "count": 1, - "name": "https://licenses.nuget.org/MIT" - }, - { - "count": 1, "name": "https://raw.githubusercontent.com/antlr/antlrcs/master/LICENSE.txt" }, { @@ -57,7 +57,7 @@ "name": "Antlr3.Runtime", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -75,7 +75,7 @@ "name": "Iesi.Collections", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -93,7 +93,7 @@ "name": "Microsoft.NETCore.Platforms", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -111,7 +111,7 @@ "name": "Microsoft.NETCore.Targets", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -129,7 +129,7 @@ "name": "Microsoft.Win32.Primitives", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -147,7 +147,7 @@ "name": "MvcMailer", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -165,7 +165,7 @@ "name": "NETStandard.Library", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -183,7 +183,7 @@ "name": "NHibernate", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -201,7 +201,7 @@ "name": "NodaTime", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -219,7 +219,7 @@ "name": "Remotion.Linq", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -237,7 +237,7 @@ "name": "Remotion.Linq.EagerFetching", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -255,7 +255,7 @@ "name": "System.AppContext", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -273,7 +273,7 @@ "name": "System.Buffers", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -291,7 +291,7 @@ "name": "System.Collections", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -309,7 +309,7 @@ "name": "System.Collections.Concurrent", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -327,7 +327,7 @@ "name": "System.Configuration.ConfigurationManager", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -345,7 +345,7 @@ "name": "System.Console", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -363,7 +363,7 @@ "name": "System.Diagnostics.Debug", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -381,7 +381,7 @@ "name": "System.Diagnostics.DiagnosticSource", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -399,7 +399,7 @@ "name": "System.Diagnostics.Tools", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -417,7 +417,7 @@ "name": "System.Diagnostics.Tracing", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -435,7 +435,7 @@ "name": "System.Globalization", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -453,7 +453,7 @@ "name": "System.Globalization.Calendars", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -471,7 +471,7 @@ "name": "System.Globalization.Extensions", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -489,7 +489,7 @@ "name": "System.IO", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -507,7 +507,7 @@ "name": "System.IO.Compression", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -525,7 +525,7 @@ "name": "System.IO.Compression.ZipFile", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -543,7 +543,7 @@ "name": "System.IO.FileSystem", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -561,7 +561,7 @@ "name": "System.IO.FileSystem.Primitives", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -579,7 +579,7 @@ "name": "System.Linq", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -597,7 +597,7 @@ "name": "System.Linq.Expressions", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -615,7 +615,7 @@ "name": "System.Linq.Queryable", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -633,7 +633,7 @@ "name": "System.Net.Http", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -651,7 +651,7 @@ "name": "System.Net.Primitives", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -669,7 +669,7 @@ "name": "System.Net.Sockets", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -687,7 +687,7 @@ "name": "System.ObjectModel", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -705,7 +705,7 @@ "name": "System.Reflection", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -723,7 +723,7 @@ "name": "System.Reflection.Emit", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -741,7 +741,7 @@ "name": "System.Reflection.Emit.ILGeneration", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -759,7 +759,7 @@ "name": "System.Reflection.Emit.Lightweight", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -777,7 +777,7 @@ "name": "System.Reflection.Extensions", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -795,7 +795,7 @@ "name": "System.Reflection.Primitives", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -813,7 +813,7 @@ "name": "System.Reflection.TypeExtensions", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -831,7 +831,7 @@ "name": "System.Resources.ResourceManager", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -849,7 +849,7 @@ "name": "System.Runtime", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -867,7 +867,7 @@ "name": "System.Runtime.Extensions", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -885,7 +885,7 @@ "name": "System.Runtime.Handles", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -903,7 +903,7 @@ "name": "System.Runtime.InteropServices", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -921,7 +921,7 @@ "name": "System.Runtime.InteropServices.RuntimeInformation", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -939,7 +939,7 @@ "name": "System.Runtime.Numerics", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -957,7 +957,7 @@ "name": "System.Runtime.Serialization.Formatters", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -975,7 +975,7 @@ "name": "System.Runtime.Serialization.Primitives", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -993,7 +993,7 @@ "name": "System.Security.Cryptography.Algorithms", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1011,7 +1011,7 @@ "name": "System.Security.Cryptography.Cng", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1029,7 +1029,7 @@ "name": "System.Security.Cryptography.Csp", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1047,7 +1047,7 @@ "name": "System.Security.Cryptography.Encoding", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1065,7 +1065,7 @@ "name": "System.Security.Cryptography.OpenSsl", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1083,7 +1083,7 @@ "name": "System.Security.Cryptography.Primitives", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1101,7 +1101,7 @@ "name": "System.Security.Cryptography.ProtectedData", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1119,7 +1119,7 @@ "name": "System.Security.Cryptography.X509Certificates", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1137,7 +1137,7 @@ "name": "System.Text.Encoding", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1155,7 +1155,7 @@ "name": "System.Text.Encoding.Extensions", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1173,7 +1173,7 @@ "name": "System.Text.RegularExpressions", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1191,7 +1191,7 @@ "name": "System.Threading", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1209,7 +1209,7 @@ "name": "System.Threading.Tasks", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1227,7 +1227,7 @@ "name": "System.Threading.Tasks.Extensions", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1245,7 +1245,7 @@ "name": "System.Threading.Timer", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1263,7 +1263,7 @@ "name": "System.Xml.ReaderWriter", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1281,7 +1281,7 @@ "name": "System.Xml.XDocument", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1299,25 +1299,26 @@ "name": "T4Scaffolding.Core", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, { "licenses": [ { - "name": "https://licenses.nuget.org/MIT", - "url": "" + "name": "MIT", + "url": "http://opensource.org/licenses/mit-license" } ], "license": { - "name": "https://licenses.nuget.org/MIT" + "name": "MIT", + "url": "http://opensource.org/licenses/mit-license" }, "dependency": { "name": "jive", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1335,7 +1336,7 @@ "name": "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1353,7 +1354,7 @@ "name": "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1371,7 +1372,7 @@ "name": "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1389,7 +1390,7 @@ "name": "runtime.native.System", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1407,7 +1408,7 @@ "name": "runtime.native.System.IO.Compression", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1425,7 +1426,7 @@ "name": "runtime.native.System.Net.Http", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1443,7 +1444,7 @@ "name": "runtime.native.System.Security.Cryptography.Apple", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1461,7 +1462,7 @@ "name": "runtime.native.System.Security.Cryptography.OpenSsl", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1479,7 +1480,7 @@ "name": "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1497,7 +1498,7 @@ "name": "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1515,7 +1516,7 @@ "name": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1533,7 +1534,7 @@ "name": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1551,7 +1552,7 @@ "name": "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1569,7 +1570,7 @@ "name": "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1587,7 +1588,7 @@ "name": "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", "description": "", "pathes": [ - "./src/web.api" + "." ] } }, @@ -1605,9 +1606,9 @@ "name": "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", "description": "", "pathes": [ - "./src/web.api" + "." ] } } ] -} +}
\ No newline at end of file diff --git a/spec/fixtures/expected/csharp/nuget-dotnetcore/v2.0.json b/spec/fixtures/expected/csharp/nuget-dotnetcore/v2.0.json index 070401e..c71d478 100644 --- a/spec/fixtures/expected/csharp/nuget-dotnetcore/v2.0.json +++ b/spec/fixtures/expected/csharp/nuget-dotnetcore/v2.0.json @@ -56,7 +56,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "https://raw.githubusercontent.com/antlr/antlrcs/master/license.txt" @@ -67,7 +67,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "unknown" @@ -78,7 +78,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -89,7 +89,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -100,7 +100,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -111,7 +111,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "MIT" @@ -122,7 +122,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -133,7 +133,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "https://raw.githubusercontent.com/nhibernate/nhibernate-core/master/license.txt" @@ -144,7 +144,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "Apache-2.0" @@ -155,7 +155,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "Apache-2.0" @@ -166,7 +166,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "LGPL-2.1" @@ -177,7 +177,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -188,7 +188,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -199,7 +199,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -210,7 +210,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -221,7 +221,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "https://github.com/dotnet/corefx/blob/master/license.txt" @@ -232,7 +232,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -243,7 +243,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -254,7 +254,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -265,7 +265,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -276,7 +276,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -287,7 +287,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -298,7 +298,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -309,7 +309,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -320,7 +320,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -331,7 +331,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -342,7 +342,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -353,7 +353,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -364,7 +364,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -375,7 +375,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -386,7 +386,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -397,7 +397,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -408,7 +408,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -419,7 +419,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -430,7 +430,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -441,7 +441,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -452,7 +452,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -463,7 +463,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -474,7 +474,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -485,7 +485,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -496,7 +496,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -507,7 +507,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -518,7 +518,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -529,7 +529,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -540,7 +540,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -551,7 +551,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -562,7 +562,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -573,7 +573,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -584,7 +584,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -595,7 +595,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -606,7 +606,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -617,7 +617,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -628,7 +628,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -639,7 +639,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -650,7 +650,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -661,7 +661,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -672,7 +672,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -683,7 +683,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -694,7 +694,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "https://github.com/dotnet/corefx/blob/master/license.txt" @@ -705,7 +705,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -716,7 +716,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -727,7 +727,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -738,7 +738,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -749,7 +749,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -760,7 +760,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -771,7 +771,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -782,7 +782,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -793,7 +793,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -804,7 +804,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -815,7 +815,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "unknown" @@ -826,7 +826,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "MIT" @@ -837,7 +837,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -848,7 +848,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -859,7 +859,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -870,7 +870,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -881,7 +881,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -892,7 +892,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -903,7 +903,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -914,7 +914,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -925,7 +925,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -936,7 +936,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -947,7 +947,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -958,7 +958,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -969,7 +969,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -980,7 +980,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -991,7 +991,7 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" @@ -1002,11 +1002,11 @@ "url": "", "description": "", "paths": [ - "./src/web.api" + "." ], "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] } ] -} +}
\ No newline at end of file diff --git a/spec/fixtures/expected/csharp/nuget-dotnetcore/v2.1.json b/spec/fixtures/expected/csharp/nuget-dotnetcore/v2.1.json index c198381..ce2faac 100644 --- a/spec/fixtures/expected/csharp/nuget-dotnetcore/v2.1.json +++ b/spec/fixtures/expected/csharp/nuget-dotnetcore/v2.1.json @@ -47,7 +47,7 @@ "name": "Antlr3.Runtime", "version": "3.5.1", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "https://raw.githubusercontent.com/antlr/antlrcs/master/license.txt" ] @@ -56,7 +56,7 @@ "name": "Iesi.Collections", "version": "4.0.4", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "unknown" ] @@ -65,7 +65,7 @@ "name": "Microsoft.NETCore.Platforms", "version": "1.1.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -74,7 +74,7 @@ "name": "Microsoft.NETCore.Targets", "version": "1.1.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -83,7 +83,7 @@ "name": "Microsoft.Win32.Primitives", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -92,7 +92,7 @@ "name": "MvcMailer", "version": "4.5.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "MIT" ] @@ -101,7 +101,7 @@ "name": "NETStandard.Library", "version": "1.6.1", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -110,7 +110,7 @@ "name": "NHibernate", "version": "5.2.6", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "https://raw.githubusercontent.com/nhibernate/nhibernate-core/master/license.txt" ] @@ -119,7 +119,7 @@ "name": "NodaTime", "version": "2.4.7", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "Apache-2.0" ] @@ -128,7 +128,7 @@ "name": "Remotion.Linq", "version": "2.2.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "Apache-2.0" ] @@ -137,7 +137,7 @@ "name": "Remotion.Linq.EagerFetching", "version": "2.2.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "LGPL-2.1" ] @@ -146,7 +146,7 @@ "name": "System.AppContext", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -155,7 +155,7 @@ "name": "System.Buffers", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -164,7 +164,7 @@ "name": "System.Collections", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -173,7 +173,7 @@ "name": "System.Collections.Concurrent", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -182,7 +182,7 @@ "name": "System.Configuration.ConfigurationManager", "version": "4.4.1", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "https://github.com/dotnet/corefx/blob/master/license.txt" ] @@ -191,7 +191,7 @@ "name": "System.Console", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -200,7 +200,7 @@ "name": "System.Diagnostics.Debug", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -209,7 +209,7 @@ "name": "System.Diagnostics.DiagnosticSource", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -218,7 +218,7 @@ "name": "System.Diagnostics.Tools", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -227,7 +227,7 @@ "name": "System.Diagnostics.Tracing", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -236,7 +236,7 @@ "name": "System.Globalization", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -245,7 +245,7 @@ "name": "System.Globalization.Calendars", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -254,7 +254,7 @@ "name": "System.Globalization.Extensions", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -263,7 +263,7 @@ "name": "System.IO", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -272,7 +272,7 @@ "name": "System.IO.Compression", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -281,7 +281,7 @@ "name": "System.IO.Compression.ZipFile", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -290,7 +290,7 @@ "name": "System.IO.FileSystem", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -299,7 +299,7 @@ "name": "System.IO.FileSystem.Primitives", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -308,7 +308,7 @@ "name": "System.Linq", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -317,7 +317,7 @@ "name": "System.Linq.Expressions", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -326,7 +326,7 @@ "name": "System.Linq.Queryable", "version": "4.0.1", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -335,7 +335,7 @@ "name": "System.Net.Http", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -344,7 +344,7 @@ "name": "System.Net.Primitives", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -353,7 +353,7 @@ "name": "System.Net.Sockets", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -362,7 +362,7 @@ "name": "System.ObjectModel", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -371,7 +371,7 @@ "name": "System.Reflection", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -380,7 +380,7 @@ "name": "System.Reflection.Emit", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -389,7 +389,7 @@ "name": "System.Reflection.Emit.ILGeneration", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -398,7 +398,7 @@ "name": "System.Reflection.Emit.Lightweight", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -407,7 +407,7 @@ "name": "System.Reflection.Extensions", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -416,7 +416,7 @@ "name": "System.Reflection.Primitives", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -425,7 +425,7 @@ "name": "System.Reflection.TypeExtensions", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -434,7 +434,7 @@ "name": "System.Resources.ResourceManager", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -443,7 +443,7 @@ "name": "System.Runtime", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -452,7 +452,7 @@ "name": "System.Runtime.Extensions", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -461,7 +461,7 @@ "name": "System.Runtime.Handles", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -470,7 +470,7 @@ "name": "System.Runtime.InteropServices", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -479,7 +479,7 @@ "name": "System.Runtime.InteropServices.RuntimeInformation", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -488,7 +488,7 @@ "name": "System.Runtime.Numerics", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -497,7 +497,7 @@ "name": "System.Runtime.Serialization.Formatters", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -506,7 +506,7 @@ "name": "System.Runtime.Serialization.Primitives", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -515,7 +515,7 @@ "name": "System.Security.Cryptography.Algorithms", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -524,7 +524,7 @@ "name": "System.Security.Cryptography.Cng", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -533,7 +533,7 @@ "name": "System.Security.Cryptography.Csp", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -542,7 +542,7 @@ "name": "System.Security.Cryptography.Encoding", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -551,7 +551,7 @@ "name": "System.Security.Cryptography.OpenSsl", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -560,7 +560,7 @@ "name": "System.Security.Cryptography.Primitives", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -569,7 +569,7 @@ "name": "System.Security.Cryptography.ProtectedData", "version": "4.4.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "https://github.com/dotnet/corefx/blob/master/license.txt" ] @@ -578,7 +578,7 @@ "name": "System.Security.Cryptography.X509Certificates", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -587,7 +587,7 @@ "name": "System.Text.Encoding", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -596,7 +596,7 @@ "name": "System.Text.Encoding.Extensions", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -605,7 +605,7 @@ "name": "System.Text.RegularExpressions", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -614,7 +614,7 @@ "name": "System.Threading", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -623,7 +623,7 @@ "name": "System.Threading.Tasks", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -632,7 +632,7 @@ "name": "System.Threading.Tasks.Extensions", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -641,7 +641,7 @@ "name": "System.Threading.Timer", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -650,7 +650,7 @@ "name": "System.Xml.ReaderWriter", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -659,7 +659,7 @@ "name": "System.Xml.XDocument", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -668,7 +668,7 @@ "name": "T4Scaffolding.Core", "version": "1.0.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "unknown" ] @@ -677,7 +677,7 @@ "name": "jive", "version": "0.1.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "MIT" ] @@ -686,7 +686,7 @@ "name": "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -695,7 +695,7 @@ "name": "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -704,7 +704,7 @@ "name": "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -713,7 +713,7 @@ "name": "runtime.native.System", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -722,7 +722,7 @@ "name": "runtime.native.System.IO.Compression", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -731,7 +731,7 @@ "name": "runtime.native.System.Net.Http", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -740,7 +740,7 @@ "name": "runtime.native.System.Security.Cryptography.Apple", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -749,7 +749,7 @@ "name": "runtime.native.System.Security.Cryptography.OpenSsl", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -758,7 +758,7 @@ "name": "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -767,7 +767,7 @@ "name": "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -776,7 +776,7 @@ "name": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -785,7 +785,7 @@ "name": "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -794,7 +794,7 @@ "name": "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -803,7 +803,7 @@ "name": "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -812,7 +812,7 @@ "name": "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] @@ -821,10 +821,10 @@ "name": "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl", "version": "4.3.0", "package_manager": "nuget", - "path": ".", + "path": "api.net.sln", "licenses": [ "http://go.microsoft.com/fwlink/?linkid=329770" ] } ] -} +}
\ No newline at end of file diff --git a/spec/fixtures/haproxy.cfg b/spec/fixtures/haproxy.cfg index 1f98421..e15da8a 100644 --- a/spec/fixtures/haproxy.cfg +++ b/spec/fixtures/haproxy.cfg @@ -20,17 +20,23 @@ defaults frontend www-https bind *:443 ssl crt wildcard.test.pem - acl rubygems-backend ssl_fc_sni rubygems.test acl goproxy-backend ssl_fc_sni goproxy.test + acl nuget-backend ssl_fc_sni nuget.test + acl rubygems-backend ssl_fc_sni rubygems.test - http-request replace-header Host .* rubygems.org if rubygems-backend + http-request replace-header Host .* api.nuget.org if nuget-backend http-request replace-header Host .* proxy.golang.org if goproxy-backend + http-request replace-header Host .* rubygems.org if rubygems-backend - use_backend rubygems-backend if rubygems-backend use_backend goproxy-backend if goproxy-backend + use_backend nuget-backend if nuget-backend + use_backend rubygems-backend if rubygems-backend backend goproxy-backend server www1 proxy.golang.org:443 ssl verify none +backend nuget-backend + server www1 api.nuget.org:443 ssl verify none + backend rubygems-backend server www1 rubygems.org:443 ssl verify none diff --git a/spec/integration/dotnet/nuget_spec.rb b/spec/integration/dotnet/nuget_spec.rb index c97c352..1d9a62c 100644 --- a/spec/integration/dotnet/nuget_spec.rb +++ b/spec/integration/dotnet/nuget_spec.rb @@ -73,30 +73,155 @@ RSpec.describe "nuget" do end end - context "when a project has a dependency that has it's own dependencies" do - let(:packages) do - <<-XML -<?xml version="1.0" encoding="utf-8"?> -<packages> - <package id="NHibernate" version="5.2.6" /> -</packages> - XML + context "when a project has a dependency that has indirect dependencies" do + subject { runner.scan } + + before do + runner.mount(dir: fixture_file('dotnet/nuget-transient-dependencies')) end - pending 'produces a report that includes the dependencies of each dependency' do - runner.add_file('packages.config', packages) - report = runner.scan + specify 'produces a report that includes the dependencies of each dependency' do + expect(subject).to match_schema + expect(subject.dependency_names).to include('Iesi.Collections') + expect(subject.dependency_names).to include('Remotion.Linq') + expect(subject.dependency_names).to include('Remotion.Linq.EagerFetching') + expect(subject.dependency_names).to include("Antlr3.Runtime") + expect(subject.dependency_names).to include("NHibernate") - expect(report).to match_schema - expect(report[:licenses].count).not_to be_zero - expect(report[:licenses].map { |x| x[:id] }.uniq).to match_array(['LGPL-2.1', 'Apache-2.0', 'BSD-3-Clause']) - expect(report.dependency_names).to match_array([ - 'Iesi.Collections', - 'Remotion.Linq', - 'Remotion.Linq.EagerFetching', - "Antlr3.Runtime", - "NHibernate" + expect(subject.licenses_for('Antlr3.Runtime')).to match_array(["https://raw.githubusercontent.com/antlr/antlrcs/master/license.txt"]) + expect(subject.licenses_for('Iesi.Collections')).to match_array(['unknown']) + expect(subject.licenses_for('NHibernate')).to match_array(["https://raw.githubusercontent.com/nhibernate/nhibernate-core/master/license.txt"]) + expect(subject.licenses_for('Remotion.Linq')).to match_array(['Apache-2.0']) + expect(subject.licenses_for('Remotion.Linq.EagerFetching')).to match_array(['LGPL-2.1']) + end + end + + context "when scanning a VB.NET project" do + subject { runner.scan } + + before do + runner.mount(dir: fixture_file('dotnet/nuget-vbproj')) + end + + specify do + expect(subject).to match_schema + expect(subject.dependency_names).to match_array(["jive"]) + expect(subject.licenses_for('jive')).to match_array('MIT') + end + end + + context "when scanning a F# project" do + subject { runner.scan } + + before do + runner.mount(dir: fixture_file('dotnet/nuget-fsproj')) + end + + specify do + expect(subject).to match_schema + expect(subject.dependency_names).to match_array(["FSharp.Core", "jive"]) + expect(subject.licenses_for('jive')).to match_array('MIT') + end + end + + context "when scanning a solution file with multiple projects" do + subject { runner.scan } + + before do + runner.mount(dir: fixture_file('dotnet/nuget-sln')) + end + + specify do + expect(subject).to match_schema + expect(subject.dependency_names).to match_array([ + "FSharp.Core", + "Microsoft.CSharp", + "Microsoft.CodeCoverage", + "Microsoft.NET.Test.Sdk", + "Microsoft.NETCore.Platforms", + "Microsoft.NETCore.Platforms", + "Microsoft.NETCore.Targets", + "Microsoft.TestPlatform.ObjectModel", + "Microsoft.TestPlatform.TestHost", + "NETStandard.Library", + "Newtonsoft.Json", + "NuGet.Frameworks", + "System.Collections", + "System.Diagnostics.Debug", + "System.Diagnostics.Tools", + "System.Dynamic.Runtime", + "System.Globalization", + "System.IO", + "System.IO.FileSystem", + "System.IO.FileSystem.Primitives", + "System.Linq", + "System.Linq.Expressions", + "System.ObjectModel", + "System.Reflection", + "System.Reflection.Emit", + "System.Reflection.Emit.ILGeneration", + "System.Reflection.Emit.Lightweight", + "System.Reflection.Extensions", + "System.Reflection.Primitives", + "System.Reflection.TypeExtensions", + "System.Resources.ResourceManager", + "System.Runtime", + "System.Runtime.Extensions", + "System.Runtime.Handles", + "System.Runtime.InteropServices", + "System.Runtime.Serialization.Primitives", + "System.Text.Encoding", + "System.Text.Encoding.Extensions", + "System.Text.RegularExpressions", + "System.Threading", + "System.Threading.Tasks", + "System.Threading.Tasks.Extensions", + "System.Xml.ReaderWriter", + "System.Xml.XDocument", + "coverlet.collector", + "xunit", + "xunit.abstractions", + "xunit.analyzers", + "xunit.assert", + "xunit.core", + "xunit.extensibility.core", + "xunit.extensibility.execution", + "xunit.runner.visualstudio" ]) + + expect(subject.licenses_for('NuGet.Frameworks')).to match_array('Apache-2.0') + expect(subject.licenses_for('FSharp.Core')).to match_array('MIT') + end + end + + context "when fetching dependencies from a custom registry" do + subject { runner.scan(env: env) } + + let(:env) { {} } + + before do + add_host('nuget.test', '127.0.0.1') + start_proxy_server + runner.mount(dir: fixture_file('dotnet/nuget-custom-tls')) + end + + context "when the CA certificate is provided" do + let(:env) { { 'ADDITIONAL_CA_CERT_BUNDLE' => x509_certificate('wildcard.test').read } } + + specify do + expect(subject).to match_schema + expect(subject.dependency_names).to match_array(["jive"]) + expect(subject.licenses_for('jive')).to match_array('MIT') + end + end + + context "when the CA certificate is NOT provided" do + let(:env) { {} } + + specify do + expect(subject).to match_schema + expect(subject.dependency_names).to match_array(["jive"]) + end end end end diff --git a/spec/support/proxy_helper.rb b/spec/support/proxy_helper.rb index cf9e306..700fe38 100644 --- a/spec/support/proxy_helper.rb +++ b/spec/support/proxy_helper.rb @@ -7,7 +7,7 @@ module ProxyHelper Dir.chdir License::Management.root.join('tmp') do system([ "rm -f #{host}.*", - "openssl req -x509 -newkey rsa:4096 -keyout #{host}.key -out #{host}.crt -days 999 -nodes -subj \"/C=/ST=/L=/O=/OU=/CN=*.test\"", + "/usr/bin/openssl req -x509 -newkey rsa:4096 -keyout #{host}.key -out #{host}.crt -days 999 -nodes -subj '/C=/ST=/L=/O=/OU=/CN=*.test' -addext 'subjectAltName=DNS:nuget.test,DNS:rubygems.test,DNS:goproxy.test'", "cat #{host}.* > #{host}.pem" ].join("&&")) end @@ -36,5 +36,8 @@ RSpec.configure do |config| config.after(:example, type: :integration) do stop_proxy_server system("rm -f /usr/local/share/ca-certificates/custom.*") + system("rm -f /usr/lib/ssl/certs/custom.*") + system("update-ca-certificates -v") + system("c_rehash -v") end end |
