public static void Main(string[] args) { DateTime startTime = DateTime.UtcNow; CommandLineUtils.PrintInfoMessage("Plugin is running... "); projectPath = args[0]; DirectoryInfo projectDir = new DirectoryInfo(projectPath); CommandLineUtils.PrintInfoMessage($"Project Name: {projectDir.Name}"); string nugetFile = Path.Combine(projectPath, packagesFile); if (TryGetPolicy(out ProjectPolicy policy)) { if (File.Exists(nugetFile)) { CommandLineUtils.PrintInfoMessage("Finding project dependencies... "); List <NuGetPackage> packagesFound = PackageLoader.LoadPackages(nugetFile) .Where(package => package.Id != pluginId) .ToList(); CommandLineUtils.PrintSuccessMessage("Finding project dependencies DONE"); CommandLineUtils.PrintInfoMessage("Searching for dependencies licenses and vulnerabilities... "); List <Dependency> dependenciesEvaluated = ValidateProjectDependencies(packagesFound, policy).Result; CommandLineUtils.PrintSuccessMessage("Searching for dependencies licenses and vulnerabilities DONE"); string report = GenerateReport(dependenciesEvaluated, policy); CommandLineUtils.PrintSuccessMessage("Produced report locally."); StoreReport(report); double seconds = (DateTime.UtcNow - startTime).TotalSeconds; CommandLineUtils.PrintInfoMessage("Plugin execution time: " + seconds); } else { CommandLineUtils.PrintErrorMessage($"Packages.config file not found in project {projectDir.Name}"); } } }
/// <summary> /// Stores a report on Central Server. /// </summary> /// <param name="report">Report to be stored.</param> private static void StoreReport(string report) { HttpRequestMessage req = new HttpRequestMessage(HttpMethod.Post, reportAPIUrl) { Content = new StringContent(report, Encoding.UTF8, "application/json") }; req.Headers.Authorization = new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("CENTRAL_SERVER_TOKEN")); try { var resp = Client.SendAsync(req).Result; if (resp.IsSuccessStatusCode) { CommandLineUtils.PrintSuccessMessage("Report stored with success"); } else { if (resp.StatusCode == System.Net.HttpStatusCode.Unauthorized) { CommandLineUtils.PrintErrorMessage("Invalid Token (CENTRAL_SERVER_TOKEN)"); } else { CommandLineUtils.PrintErrorMessage("An error occurred during Report storage."); } } } catch (HttpRequestException) { CommandLineUtils.PrintErrorMessage("An error occurred during Report storage."); } }