public List <VersionBomComponentView> GetBomEntries(ProjectVersionView projectVersionView) { string componentsUrl = MetadataResponseService.GetLink(projectVersionView, ApiLinks.COMPONENTS_LINK); List <VersionBomComponentView> allItems = GetAllItems <VersionBomComponentView>(componentsUrl); return(allItems); }
public PolicyStatus GetPolicyStatus(ProjectVersionView projectVersionView) { VersionBomPolicyStatusView policyView = GetVersionBomPolicyStatusView(projectVersionView); PolicyStatus policyStatus = new PolicyStatus(policyView); return(policyStatus); }
public VersionBomPolicyStatusView GetPolicies() { ProjectView project = ProjectDataService.GetProjectView(HubProjectName); ProjectVersionView projectVersion = ProjectDataService.GetMostRecentVersion(project); VersionBomPolicyStatusView policyStatus = PolicyDataService.GetVersionBomPolicyStatusView(projectVersion); return(policyStatus); }
public void ExecuteTask() { if (IsExcluded()) { Log.LogMessage("Project {0} excluded from task", HubProjectName); } else { // Creates output directory if it doesn't already exist Directory.CreateDirectory(OutputDirectory); // Define output files string bdioFilePath = $"{OutputDirectory}/{HubProjectName}.jsonld"; string flatListFilePath = $"{OutputDirectory}/{HubProjectName}_flat.txt"; // Execute task functionality if (CreateFlatDependencyList) { string[] externalIds = CreateFlatList().ToArray(); File.WriteAllLines(flatListFilePath, externalIds, Encoding.UTF8); } if (CreateHubBdio) { BdioContent bdioContent = BuildBOM(); File.WriteAllText(bdioFilePath, bdioContent.ToString()); } if (DeployHubBdio) { string bdio = File.ReadAllText(bdioFilePath); BdioContent bdioContent = BdioContent.Parse(bdio); DeployBdioDataService.Deploy(bdioContent); } // Only wait for scan if we have to if (DeployHubBdio && (CheckPolicies || CreateHubBdio || WaitForDeployment)) { WaitForHub(); } if (CreateHubReport) { ProjectView projectView = ProjectDataService.GetProjectView(HubProjectName); ProjectVersionView projectVersionView = ProjectDataService.GetMostRecentVersion(projectView); ReportData reportData = RiskReportDataService.GetReportData(projectView, projectVersionView); RiskReportDataService.WriteToRiskReport(reportData, OutputDirectory); } if (CheckPolicies) { PolicyStatus policyStatus = new PolicyStatus(GetPolicies()); LogPolicyViolations(policyStatus); } } }
public VersionBomPolicyStatusView GetVersionBomPolicyStatusView(ProjectVersionView projectVersionView) { string policyStatusUrl = MetadataResponseService.GetLink(projectVersionView, ApiLinks.POLICY_STATUS_LINK); HubRequest request = new HubRequest(RestConnection); request.SetUriFromString(policyStatusUrl); VersionBomPolicyStatusView response = request.ExecuteGetForResponse <VersionBomPolicyStatusView>(); return(response); }
public ProjectVersionView GetMostRecentVersion(ProjectView projectView) { List <ProjectVersionView> versions = GetPagedProjectVersionView(projectView).Items; ProjectVersionView recent = null; if (versions != null && versions.Count > 0) { recent = versions[0]; // Assuming sorted by updatedAt asc } return(recent); }
private List <ScanSummaryView> GetPendingScans(String projectName, String projectVersion) { List <ScanSummaryView> pendingScans = new List <ScanSummaryView>(); try { ProjectView projectItem = projectDataService.GetProjectView(projectName); ProjectVersionView projectVersionItem = projectVersionDataService.GetProjectVersion(projectItem, projectVersion); string projectVersionUrl = projectVersionItem.Metadata.Href; List <CodeLocationView> allCodeLocations = codeLocationDataService.GetAllCodeLocationsForCodeLocationType(CodeLocationTypeEnum.BOM_IMPORT); List <string> allScanSummariesLinks = new List <string>(); foreach (CodeLocationView codeLocationItem in allCodeLocations) { string mappedProjectVersionUrl = codeLocationItem.MappedProjectVersion; if (projectVersionUrl.Equals(mappedProjectVersionUrl)) { string scanSummariesLink = MetadataResponseService.GetLink(codeLocationItem, ApiLinks.SCANS_LINK); allScanSummariesLinks.Add(scanSummariesLink); } } List <ScanSummaryView> allScanSummaries = new List <ScanSummaryView>(); foreach (string scanSummaryLink in allScanSummariesLinks) { allScanSummaries.AddRange(scanSummaryDataService.GetAllItems <ScanSummaryView>(scanSummaryLink)); } pendingScans = new List <ScanSummaryView>(); foreach (ScanSummaryView scanSummaryItem in allScanSummaries) { if (IsPending(scanSummaryItem.Status)) { pendingScans.Add(scanSummaryItem); } } } catch (Exception ex) { pendingScans = new List <ScanSummaryView>(); // ignore, since we might not have found a project or version, etc // so just keep waiting until the timeout } return(pendingScans); }
public ReportData GetReportData(ProjectView projectView, ProjectVersionView projectVersionView) { ReportData reportData = new ReportData() { ProjectName = projectView.Name, ProjectURL = GetReportProjectUrl(projectView.Metadata.Href), ProjectVersion = projectVersionView.VersionName, ProjectVersionURL = GetReportVersionUrl(projectVersionView.Metadata.Href, false), Phase = projectVersionView.Phase.ToString(), Distribution = projectVersionView.Distribution.ToString(), }; List <BomComponent> components = new List <BomComponent>(); List <VersionBomComponentView> bomEntries = AggregateBomDataService.GetBomEntries(projectVersionView); foreach (VersionBomComponentView bomEntry in bomEntries) { BomComponent component; try { component = CreateBomComponentFromBomComponentView(bomEntry); components.Add(component); } catch (Exception ex) { throw new BlackDuckIntegrationException("Error getting BOM Component.", ex); } string componentPolicyStatusURL = null; if (!String.IsNullOrWhiteSpace(bomEntry.ComponentVersion)) { componentPolicyStatusURL = GetComponentPolicyUrl(projectVersionView.Metadata.Href, bomEntry.ComponentVersion); } else { componentPolicyStatusURL = GetComponentPolicyUrl(projectVersionView.Metadata.Href, bomEntry.Component); } CheckPolicyStatusForComponent(componentPolicyStatusURL, component); } reportData.SetComponents(components); return(reportData); }