public EvaluatedPackage Apply(LicensedPackage package) { if (this.packagePolicies.IgnorePackage(package.Id)) { Log.Warning($"Package {package.Id} is ignored but is still evaluated for license."); return(new EvaluatedPackage(package, Evaluation.Ignored)); } if (this.packagePolicies.AllowLicense(package.Id)) { return(new EvaluatedPackage(package, Evaluation.Ok, "Package license explicitly allowed")); } LicensePolicy policy = this.policies.FirstOrDefault(r => r.IsMatch(package.License)); if (policy == null) { return(new EvaluatedPackage(package, Evaluation.Violation, "No policy found")); } if (policy.License.Equals(License.UnknownLicenseStr) && !policy.Allow) { return(new EvaluatedPackage(package, Evaluation.Violation, "Could not find license")); } if (policy.AllowInternal && this.projects.Contains(package.OriginProject)) { return(new EvaluatedPackage(package, Evaluation.Ok)); } return(new EvaluatedPackage(package, policy.Allow ? Evaluation.Ok : Evaluation.Violation)); }
public PrefixLicensePolicy(LicensePolicy policy) { if (!policy.License.EndsWith("*")) { throw new ArgumentException("Expected the license id to end with an asterix '*'"); } License = policy.License.TrimEnd(new[] { '*' }); Allow = policy.Allow; }