sensslen / nuget-license

.NET Core tool to print or save all the licenses of a project
Apache License 2.0
27 stars 7 forks source link

Nuget License Utility Tests Quality Gate Status NuGet

A .net tool to print and validate the licenses of .net code. This tool supports .NET (Core), .NET Standard and .NET Framework projects. Native c++ projects are supported too but only in the .NET Framework variant of nuget-license. These projects will not work if the tool is installed via dotnet tool install.

nuget-license tool

Install tool

dotnet tool install --global nuget-license

Uninstall tool

dotnet tool uninstall --global nuget-license

Usage

Usage: nuget-license [options]

Options:

Option Description
-i, --input Project or Solution to be analyzed
-ji, --json-input Similar to -i, --input but providing a file containing a valid JSON Array that contains all projects to be analyzed
-t, --include-transitive When set, the analysis includes transitive packages (dependencies of packages that are directly installed to the project)
-a, --allowed-license-types File containing all allowed licenses in JSON format. If omitted, all licenses are considered to be allowed.
-ignore, --ignored-packages File containing a JSON formatted array containing package names, that should be ignored when validating licenses. Package names specified can contain simple Wildcard characters (*) which are used to match any number of characters. Note that even though a package is ignored, it's transitive dependencies are still validated. This Option is useful e.g. to exclude homegrown nuget packages from validation.
-exclude-projects, --exclude-projects-matching This option allows to specify project name(s) to exclude from the analysis. This can be useful to exclude test projects from the analysis when supplying a solution file as input. Wildcard characters (*) are supported to specify ranges of ignored projects. The input can either be a file name containing a list of project names in json format or a plain string that is then used as a single enty.
-include-ignored, --include-ignored-packages This flag allows to explicitly include ignored packages in the output.
-mapping, --licenseurl-to-license-mappings When used, this option allows to add to the url to license mapping built into the application (see here)
-override, --override-package-information When used, this option allows to override the package information used for the validation. This makes sure that no attempt is made to get the associated information about the package from the available web resources. This is useful for packages that e.g. provide a license file as part of the nuget package which (at the time of writing) cannot be used for validation and thus requires the package's information to be provided by this option.
-d, --license-information-download-location When used, this option downloads the html content of the license URL to the specified folder. This is done for all NuGet packages that specify a license URL instead of providing the license expression.
-o, --output This Parameter accepts the value table, json or jsonPretty. It allows to select the type of output that should be given. If omitted, the output is given in tabular form.
-err, --error-only This flag allows to print only packages that contain validation errors (if there are any). This allows the user to focus on errors instead of having to deal with many properly validated
-?, -h, --help Show help for the application and exit
--version Show version information of the application and exit

Example tool commands

Show help

nuget-license --help

Validate licenses for .csproj file

nuget-license -i project.csproj

Generate machine readable output

nuget-license -i project.csproj -o jsonPretty