summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCan Eldem <celdem@gitlab.com>2020-07-15 09:24:27 +0000
committerCan Eldem <celdem@gitlab.com>2020-07-15 09:24:27 +0000
commitf04805cf7b490b9ef9492e4ddc115ab7c2845ab6 (patch)
tree290e40b1b3f3c24579ed780e83ce55293e4b1de7
parentd8b18764499ed0378d5f5caf0d68460c39510cfe (diff)
parent4b9540b7724f89b2c3d2850193721abd415421f6 (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
-rw-r--r--.gitignore1
-rw-r--r--CHANGELOG.md9
-rw-r--r--Gemfile.lock2
-rw-r--r--lib/license/finder/ext/dotnet.rb57
-rw-r--r--lib/license/finder/ext/nuget.rb47
-rw-r--r--lib/license/management.rb1
-rw-r--r--lib/license/management/nuspec.rb20
-rw-r--r--lib/license/management/shell.rb2
-rw-r--r--lib/license/management/version.rb2
-rwxr-xr-xrun.sh5
-rw-r--r--spec/fixtures/dotnet/nuget-custom-tls/Program.cs12
-rw-r--r--spec/fixtures/dotnet/nuget-custom-tls/nuget-custom-tls.csproj10
-rw-r--r--spec/fixtures/dotnet/nuget-custom-tls/nuget.config7
-rw-r--r--spec/fixtures/dotnet/nuget-fsproj/Program.fs8
-rw-r--r--spec/fixtures/dotnet/nuget-fsproj/nuget-fsproj.fsproj13
-rw-r--r--spec/fixtures/dotnet/nuget-sln/app.sln84
-rw-r--r--spec/fixtures/dotnet/nuget-sln/src/domain/Library.fs5
-rw-r--r--spec/fixtures/dotnet/nuget-sln/src/domain/domain.fsproj8
-rw-r--r--spec/fixtures/dotnet/nuget-sln/src/service/Class1.cs8
-rw-r--r--spec/fixtures/dotnet/nuget-sln/src/service/service.csproj5
-rw-r--r--spec/fixtures/dotnet/nuget-sln/src/test/UnitTest1.cs14
-rw-r--r--spec/fixtures/dotnet/nuget-sln/src/test/test.csproj12
-rw-r--r--spec/fixtures/dotnet/nuget-sln/src/web/Program.cs26
-rw-r--r--spec/fixtures/dotnet/nuget-sln/src/web/Startup.cs48
-rw-r--r--spec/fixtures/dotnet/nuget-sln/src/web/web.csproj5
-rw-r--r--spec/fixtures/dotnet/nuget-transient-dependencies/Program.cs12
-rw-r--r--spec/fixtures/dotnet/nuget-transient-dependencies/nuget-transient-dependencies.csproj10
-rw-r--r--spec/fixtures/dotnet/nuget-vbproj/Program.vb7
-rw-r--r--spec/fixtures/dotnet/nuget-vbproj/nuget-vbproj.vbproj10
-rw-r--r--spec/fixtures/expected/csharp/nuget-dotnetcore/v1.0.json187
-rw-r--r--spec/fixtures/expected/csharp/nuget-dotnetcore/v1.1.json191
-rw-r--r--spec/fixtures/expected/csharp/nuget-dotnetcore/v2.0.json176
-rw-r--r--spec/fixtures/expected/csharp/nuget-dotnetcore/v2.1.json176
-rw-r--r--spec/fixtures/haproxy.cfg12
-rw-r--r--spec/integration/dotnet/nuget_spec.rb165
-rw-r--r--spec/support/proxy_helper.rb5
36 files changed, 957 insertions, 405 deletions
diff --git a/.gitignore b/.gitignore
index ee6686f..552f7fc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
diff --git a/run.sh b/run.sh
index 36231ea..f318908 100755
--- a/run.sh
+++ b/run.sh
@@ -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