├── .circleci └── config.yml ├── .dockerignore ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── PULL_REQUEST_TEMPLATE.md ├── release-drafter.yml └── workflows │ ├── release-drafter.yml │ └── wiki-publisher.yml ├── .gitignore ├── CONTRIBUTING.md ├── Dockerfile ├── LICENSE ├── README.md ├── Release.txt ├── build-11.gradle ├── build-cxgo.gradle ├── build.gradle ├── docs ├── AWS-Fargate-Deployment.md ├── Architecture.md ├── Bug-Trackers-and-Feedback-Channels.md ├── Building-CxFlow-from-the-Source.md ├── Config-As-Code.md ├── Configuration.md ├── CxConfigProvider.md ├── CxGO.md ├── CxIAST-Integration.md ├── CxSAST-Version-9.X.md ├── CxSCA-Integration.md ├── Delete-Branch.md ├── Development.md ├── Execution.md ├── External-Scripts.md ├── Frequently-Asked-Questions.md ├── Home.md ├── Images │ ├── 1.PNG │ ├── 2.PNG │ ├── ADO1.png │ ├── ADO2.png │ ├── ADO3.png │ ├── ADO4.png │ ├── ADO5.png │ ├── ADO6.png │ ├── ADO__merge_and_delete.png │ ├── ADO_delete_branch.png │ ├── CxSAST_Licensed_Projects.png │ ├── CxSAST_Result_Summary.PNG │ ├── CxSAST_branch_project.png │ ├── CxSAST_default_project.png │ ├── CxSAST_project_count.png │ ├── IAST1.png │ ├── IAST4.png │ ├── SCA-policy-creation.png │ ├── SCA1.png │ ├── SCA2.png │ ├── SCA2A.png │ ├── SCA3.png │ ├── SCA4.png │ ├── SCA5.png │ ├── SCA6.png │ ├── SCA7.png │ ├── SCA8.png │ ├── Training_link.png │ ├── adolab1.png │ ├── arch1.png │ ├── arch2.png │ ├── automatedWorkflow1.png │ ├── automatedWorkflow2.png │ ├── azure_branch_policies.png │ ├── azure_enable_checkmarx_scan.png │ ├── batch1.png │ ├── batch2.png │ ├── batch3.png │ ├── bb_multi_scm.png │ ├── bp_db1.png │ ├── branchedProjectOnPull.png │ ├── branchedProjectScan.png │ ├── bug1.png │ ├── bug10.PNG │ ├── bug11.PNG │ ├── bug2.png │ ├── bug3.png │ ├── bug4.png │ ├── bug5.PNG │ ├── bug6.PNG │ ├── bug7.PNG │ ├── bug8.PNG │ ├── bug9.PNG │ ├── cxLogo.PNG │ ├── cxflow_thresholds.png │ ├── dev1.png │ ├── dev2.png │ ├── fargate1.png │ ├── fargate2.png │ ├── fbranch.png │ ├── gh1.png │ ├── gh2.png │ ├── gh3.png │ ├── gh4.png │ ├── gh5.png │ ├── gh6.png │ ├── gh7.png │ ├── gh8.png │ ├── github-branch-delete.png │ ├── github_multi_instance.png │ ├── github_status_check.png │ ├── gitlab_icon.png │ ├── gitlab_issues.png │ ├── gitlab_merge_request.png │ ├── gitlab_security_dashboard.png │ ├── gitlab_settings.png │ ├── guide1.png │ ├── iast_github_issue.png │ ├── iast_gitlab_issue.png │ ├── multi_instance_example.png │ ├── multi_instance_url_payload.png │ ├── no_project_present.PNG │ ├── postwebhooks_password.png │ ├── prereq1.png │ ├── prereq2azure.PNG │ ├── sarif-report-1.png │ ├── sarif-report-2.png │ ├── sarif-report-3.png │ ├── webhookGitLab.png │ ├── webhookGithub.png │ ├── workflow1.png │ ├── workflow2.png │ ├── workflow3.png │ ├── workflow4.png │ ├── workflow5.png │ ├── workflow6.png │ ├── workflow7.png │ └── workflow8.png ├── Prerequisites-and-Requirements.md ├── Proxy-and-HTTPS-Configuration.md ├── REST-API-Capabilities.md ├── Running-CxFlow-as-a-Windows-Service.md ├── SCM-Multi-instance.md ├── Thresholds-and-policies.md ├── Troubleshooting.md ├── Tutorials.md ├── WebHook-Registration.md ├── Workflows.md ├── YML-Example-Files.md └── cxflow_gitlab_scan_issue.md ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── helm └── cxflow │ ├── .helmignore │ ├── Chart.yaml │ ├── README.md │ ├── templates │ ├── NOTES.txt │ ├── _helpers.tpl │ ├── deployment.yaml │ ├── external-secret.yaml │ ├── ingress.yaml │ ├── service.yaml │ └── tests │ │ └── test-connection.yaml │ └── values.yaml ├── settings.gradle ├── sonar-project.properties ├── src ├── main │ ├── java │ │ └── com │ │ │ ├── atlassian │ │ │ └── jira │ │ │ │ └── rest │ │ │ │ └── client │ │ │ │ └── internal │ │ │ │ └── async │ │ │ │ ├── CustomAsynchronousHttpClientFactory.java │ │ │ │ └── CustomAsynchronousJiraRestClientFactory.java │ │ │ └── checkmarx │ │ │ └── flow │ │ │ ├── CxFlowApplication.java │ │ │ ├── CxFlowRunner.java │ │ │ ├── aop │ │ │ └── LoggingAop.java │ │ │ ├── config │ │ │ ├── ADOProperties.java │ │ │ ├── BitBucketProperties.java │ │ │ ├── CliMode.java │ │ │ ├── CodebashingProperties.java │ │ │ ├── CxIntegrationsProperties.java │ │ │ ├── FindingSeverity.java │ │ │ ├── FlowAsyncConfig.java │ │ │ ├── FlowConfig.java │ │ │ ├── FlowProperties.java │ │ │ ├── GitHubProperties.java │ │ │ ├── GitLabProperties.java │ │ │ ├── IastProperties.java │ │ │ ├── JiraProperties.java │ │ │ ├── OptionalScmInstanceProperties.java │ │ │ ├── RallyProperties.java │ │ │ ├── RepoProperties.java │ │ │ ├── SarifProperties.java │ │ │ ├── SbomProperties.java │ │ │ ├── ScmConfigOverrider.java │ │ │ ├── ScmConfigParams.java │ │ │ ├── ServiceNowProperties.java │ │ │ ├── SonarQubeProperties.java │ │ │ └── external │ │ │ │ ├── ASTConfig.java │ │ │ │ └── CxGoConfigFromWebService.java │ │ │ ├── constants │ │ │ ├── FlowConstants.java │ │ │ ├── JiraConstants.java │ │ │ └── SCATicketingConstants.java │ │ │ ├── controller │ │ │ ├── ADOController.java │ │ │ ├── AdoControllerBase.java │ │ │ ├── FlowController.java │ │ │ ├── GitHubController.java │ │ │ ├── GitLabController.java │ │ │ ├── IastController.java │ │ │ ├── RestErrorResponseHandler.java │ │ │ ├── TfsController.java │ │ │ ├── WebhookController.java │ │ │ └── bitbucket │ │ │ │ ├── cloud │ │ │ │ └── BitbucketCloudController.java │ │ │ │ └── server │ │ │ │ ├── BitbucketServerController.java │ │ │ │ └── postwebhook │ │ │ │ └── PostWebhookController.java │ │ │ ├── custom │ │ │ ├── ADOIssueTracker.java │ │ │ ├── CsvIssueTracker.java │ │ │ ├── CsvProperties.java │ │ │ ├── CxXMLIssueTracker.java │ │ │ ├── CxXMLProperties.java │ │ │ ├── GitHubIssueTracker.java │ │ │ ├── GitLabIssueTracker.java │ │ │ ├── GitLabSecurityDashboard.java │ │ │ ├── ImmutableIssueTracker.java │ │ │ ├── IssueTracker.java │ │ │ ├── JsonIssueTracker.java │ │ │ ├── JsonProperties.java │ │ │ ├── PDFIssueTracker.java │ │ │ ├── PDFProperties.java │ │ │ ├── RallyIssueTracker.java │ │ │ ├── SarifIssueTracker.java │ │ │ ├── ScaCsvParameters.java │ │ │ ├── ServiceNowTracker.java │ │ │ ├── SonarQubeIssueTracker.java │ │ │ ├── WebPostIssueTracker.java │ │ │ └── WebPostProperties.java │ │ │ ├── dto │ │ │ ├── BugTracker.java │ │ │ ├── BugTrackersDto.java │ │ │ ├── ControllerRequest.java │ │ │ ├── CxProfile.java │ │ │ ├── Event.java │ │ │ ├── EventResponse.java │ │ │ ├── ExitCode.java │ │ │ ├── Field.java │ │ │ ├── FlowOverride.java │ │ │ ├── Issue.java │ │ │ ├── LabelField.java │ │ │ ├── OperationResult.java │ │ │ ├── OperationStatus.java │ │ │ ├── RepoComment.java │ │ │ ├── RepoIssue.java │ │ │ ├── Results.java │ │ │ ├── ScanDetails.java │ │ │ ├── ScanRequest.java │ │ │ ├── Sources.java │ │ │ ├── XXIssue.java │ │ │ ├── azure │ │ │ │ ├── Account.java │ │ │ │ ├── AdoDetailsRequest.java │ │ │ │ ├── Author.java │ │ │ │ ├── Avatar.java │ │ │ │ ├── Collection.java │ │ │ │ ├── Comment.java │ │ │ │ ├── CommentAuthor.java │ │ │ │ ├── CommentLinks.java │ │ │ │ ├── CommentSelf.java │ │ │ │ ├── Commit.java │ │ │ │ ├── Commits.java │ │ │ │ ├── Committer.java │ │ │ │ ├── ConsumerInputs.java │ │ │ │ ├── Content.java │ │ │ │ ├── CreateWorkItemAttr.java │ │ │ │ ├── CreatedBy.java │ │ │ │ ├── DetailedMessage.java │ │ │ │ ├── LastMergeCommit.java │ │ │ │ ├── LastMergeSourceCommit.java │ │ │ │ ├── LastMergeTargetCommit.java │ │ │ │ ├── Links.java │ │ │ │ ├── Links_.java │ │ │ │ ├── Message.java │ │ │ │ ├── PRCommentEvent.java │ │ │ │ ├── PRCreatedEvent.java │ │ │ │ ├── Project.java │ │ │ │ ├── Project_.java │ │ │ │ ├── PublisherInputs.java │ │ │ │ ├── PullEvent.java │ │ │ │ ├── PullRequest.java │ │ │ │ ├── PushEvent.java │ │ │ │ ├── PushedBy.java │ │ │ │ ├── Pusher.java │ │ │ │ ├── RefUpdate.java │ │ │ │ ├── Refs.java │ │ │ │ ├── Repository.java │ │ │ │ ├── Repository_.java │ │ │ │ ├── Resource.java │ │ │ │ ├── ResourceComment.java │ │ │ │ ├── ResourceContainers.java │ │ │ │ ├── Reviewer.java │ │ │ │ ├── Self.java │ │ │ │ ├── Statuses.java │ │ │ │ ├── Subscription.java │ │ │ │ ├── Thread.java │ │ │ │ ├── Value.java │ │ │ │ └── Web.java │ │ │ ├── bitbucket │ │ │ │ ├── Activity.java │ │ │ │ ├── Actor.java │ │ │ │ ├── Approve.java │ │ │ │ ├── Author.java │ │ │ │ ├── Avatar.java │ │ │ │ ├── Branch.java │ │ │ │ ├── Change.java │ │ │ │ ├── ClosedBy.java │ │ │ │ ├── Comments.java │ │ │ │ ├── Commit.java │ │ │ │ ├── Commits.java │ │ │ │ ├── Content.java │ │ │ │ ├── Decline.java │ │ │ │ ├── Destination.java │ │ │ │ ├── Diff.java │ │ │ │ ├── History.java │ │ │ │ ├── Html.java │ │ │ │ ├── Links.java │ │ │ │ ├── Merge.java │ │ │ │ ├── MergeCommit.java │ │ │ │ ├── MergeEvent.java │ │ │ │ ├── Meta.java │ │ │ │ ├── New.java │ │ │ │ ├── Old.java │ │ │ │ ├── Owner.java │ │ │ │ ├── Parent.java │ │ │ │ ├── Patch.java │ │ │ │ ├── Project.java │ │ │ │ ├── Pullrequest.java │ │ │ │ ├── Push.java │ │ │ │ ├── PushEvent.java │ │ │ │ ├── Repository.java │ │ │ │ ├── Self.java │ │ │ │ ├── Source.java │ │ │ │ ├── Statuses.java │ │ │ │ ├── Summary.java │ │ │ │ ├── Target.java │ │ │ │ ├── User.java │ │ │ │ ├── Value.java │ │ │ │ └── mainBranch │ │ │ │ │ ├── Avatar.java │ │ │ │ │ ├── Avatar__1.java │ │ │ │ │ ├── Avatar__2.java │ │ │ │ │ ├── Avatar__3.java │ │ │ │ │ ├── BranchName.java │ │ │ │ │ ├── Branches.java │ │ │ │ │ ├── Clone.java │ │ │ │ │ ├── Commits.java │ │ │ │ │ ├── Downloads.java │ │ │ │ │ ├── Forks.java │ │ │ │ │ ├── Hooks.java │ │ │ │ │ ├── Html.java │ │ │ │ │ ├── Html__1.java │ │ │ │ │ ├── Html__2.java │ │ │ │ │ ├── Html__3.java │ │ │ │ │ ├── Links.java │ │ │ │ │ ├── Links__1.java │ │ │ │ │ ├── Links__2.java │ │ │ │ │ ├── Links__3.java │ │ │ │ │ ├── Mainbranch.java │ │ │ │ │ ├── OverrideSettings.java │ │ │ │ │ ├── Owner.java │ │ │ │ │ ├── Project.java │ │ │ │ │ ├── Pullrequests.java │ │ │ │ │ ├── Self.java │ │ │ │ │ ├── Self__1.java │ │ │ │ │ ├── Self__2.java │ │ │ │ │ ├── Self__3.java │ │ │ │ │ ├── Source.java │ │ │ │ │ ├── Tags.java │ │ │ │ │ ├── Watchers.java │ │ │ │ │ └── Workspace.java │ │ │ ├── bitbucketserver │ │ │ │ ├── Actor.java │ │ │ │ ├── Author.java │ │ │ │ ├── Author__1.java │ │ │ │ ├── Author__2.java │ │ │ │ ├── Change.java │ │ │ │ ├── Children.java │ │ │ │ ├── Clone.java │ │ │ │ ├── Commit.java │ │ │ │ ├── Committer.java │ │ │ │ ├── Committer__1.java │ │ │ │ ├── Committer__2.java │ │ │ │ ├── Content.java │ │ │ │ ├── FromRef.java │ │ │ │ ├── Links.java │ │ │ │ ├── Links_.java │ │ │ │ ├── Links__.java │ │ │ │ ├── Links__4.java │ │ │ │ ├── Links__5.java │ │ │ │ ├── Links__6.java │ │ │ │ ├── Parent.java │ │ │ │ ├── Parent__1.java │ │ │ │ ├── Parent__2.java │ │ │ │ ├── Path.java │ │ │ │ ├── Project.java │ │ │ │ ├── Project_.java │ │ │ │ ├── PullEvent.java │ │ │ │ ├── PullRequest.java │ │ │ │ ├── PushEvent.java │ │ │ │ ├── Ref.java │ │ │ │ ├── Repository.java │ │ │ │ ├── Repository_.java │ │ │ │ ├── Self.java │ │ │ │ ├── Self_.java │ │ │ │ ├── Self__.java │ │ │ │ ├── Self__4.java │ │ │ │ ├── Self__5.java │ │ │ │ ├── Self__6.java │ │ │ │ ├── ToCommit.java │ │ │ │ ├── ToRef.java │ │ │ │ ├── User.java │ │ │ │ ├── Value.java │ │ │ │ └── plugin │ │ │ │ │ └── postwebhook │ │ │ │ │ ├── BitbucketPushChange.java │ │ │ │ │ ├── BitbucketPushDetail.java │ │ │ │ │ ├── BitbucketPushEvent.java │ │ │ │ │ ├── BitbucketServerBranch.java │ │ │ │ │ ├── BitbucketServerCommit.java │ │ │ │ │ ├── BitbucketServerProject.java │ │ │ │ │ ├── BitbucketServerPullRequest.java │ │ │ │ │ ├── BitbucketServerPullRequestEvent.java │ │ │ │ │ ├── BitbucketServerPullRequestSource.java │ │ │ │ │ ├── BitbucketServerRepository.java │ │ │ │ │ ├── BitbucketServerRepositoryOwner.java │ │ │ │ │ ├── Link.java │ │ │ │ │ ├── State.java │ │ │ │ │ └── Target.java │ │ │ ├── github │ │ │ │ ├── Assignee.java │ │ │ │ ├── AssigneesItem.java │ │ │ │ ├── Author.java │ │ │ │ ├── Author_.java │ │ │ │ ├── Base.java │ │ │ │ ├── ClosedBy.java │ │ │ │ ├── Comment.java │ │ │ │ ├── CommentEvent.java │ │ │ │ ├── Comments.java │ │ │ │ ├── Commit.java │ │ │ │ ├── Commits.java │ │ │ │ ├── Committer.java │ │ │ │ ├── Committer_.java │ │ │ │ ├── Config.java │ │ │ │ ├── Content.java │ │ │ │ ├── Creator.java │ │ │ │ ├── CxFlowCommandHandler.java │ │ │ │ ├── DeleteEvent.java │ │ │ │ ├── EventCommon.java │ │ │ │ ├── Head.java │ │ │ │ ├── HeadCommit.java │ │ │ │ ├── Hook.java │ │ │ │ ├── Html.java │ │ │ │ ├── Installation.java │ │ │ │ ├── Issue.java │ │ │ │ ├── IssueRequest.java │ │ │ │ ├── IssueStatus.java │ │ │ │ ├── LabelsItem.java │ │ │ │ ├── LastResponse.java │ │ │ │ ├── Links.java │ │ │ │ ├── Milestone.java │ │ │ │ ├── Organization.java │ │ │ │ ├── Owner.java │ │ │ │ ├── Owner_.java │ │ │ │ ├── Owner__.java │ │ │ │ ├── PingEvent.java │ │ │ │ ├── PullEvent.java │ │ │ │ ├── PullRequest.java │ │ │ │ ├── PushEvent.java │ │ │ │ ├── Pusher.java │ │ │ │ ├── Reactions.java │ │ │ │ ├── Repo.java │ │ │ │ ├── Repo_.java │ │ │ │ ├── Repository.java │ │ │ │ ├── ReviewComment.java │ │ │ │ ├── ReviewComments.java │ │ │ │ ├── Self.java │ │ │ │ ├── Sender.java │ │ │ │ ├── Statuses.java │ │ │ │ ├── User.java │ │ │ │ ├── User_.java │ │ │ │ ├── User__.java │ │ │ │ └── issue │ │ │ │ │ ├── Issue.java │ │ │ │ │ └── SubIssuesSummary.java │ │ │ ├── gitlab │ │ │ │ ├── Assignee.java │ │ │ │ ├── Author.java │ │ │ │ ├── Changes.java │ │ │ │ ├── Comment.java │ │ │ │ ├── Commit.java │ │ │ │ ├── Current.java │ │ │ │ ├── GroupAccess.java │ │ │ │ ├── Issue.java │ │ │ │ ├── Label.java │ │ │ │ ├── Labels.java │ │ │ │ ├── LastCommit.java │ │ │ │ ├── Links.java │ │ │ │ ├── MergeEvent.java │ │ │ │ ├── Namespace.java │ │ │ │ ├── Note.java │ │ │ │ ├── ObjectAttributes.java │ │ │ │ ├── Permissions.java │ │ │ │ ├── Previou.java │ │ │ │ ├── Project.java │ │ │ │ ├── PushEvent.java │ │ │ │ ├── Repository.java │ │ │ │ ├── Source.java │ │ │ │ ├── Target.java │ │ │ │ ├── Title.java │ │ │ │ └── User.java │ │ │ ├── iast │ │ │ │ ├── CreateIssue.java │ │ │ │ ├── common │ │ │ │ │ └── model │ │ │ │ │ │ ├── agent │ │ │ │ │ │ └── ProgrammingLanguage.java │ │ │ │ │ │ └── enums │ │ │ │ │ │ ├── ManagementResultState.java │ │ │ │ │ │ └── QueryDisplayType.java │ │ │ │ ├── manager │ │ │ │ │ ├── dal │ │ │ │ │ │ └── entity │ │ │ │ │ │ │ └── InstantAttributeConverter.java │ │ │ │ │ └── dto │ │ │ │ │ │ ├── ConnectionResultsDetails.java │ │ │ │ │ │ ├── Page.java │ │ │ │ │ │ ├── ProjectSummary.java │ │ │ │ │ │ ├── ResolutionStatus.java │ │ │ │ │ │ ├── ResultInfo.java │ │ │ │ │ │ ├── RunningScanAggregation.java │ │ │ │ │ │ ├── Scan.java │ │ │ │ │ │ ├── ScanState.java │ │ │ │ │ │ ├── ScanVulnerabilities.java │ │ │ │ │ │ ├── VulnerabilityInfo.java │ │ │ │ │ │ ├── description │ │ │ │ │ │ ├── CodeSample.java │ │ │ │ │ │ └── VulnerabilityDescription.java │ │ │ │ │ │ └── projects │ │ │ │ │ │ └── groups │ │ │ │ │ │ ├── ProjectGroupBase.java │ │ │ │ │ │ └── ProjectGroupData.java │ │ │ │ └── ql │ │ │ │ │ └── utils │ │ │ │ │ └── Severity.java │ │ │ ├── rally │ │ │ │ ├── Attachments.java │ │ │ │ ├── Changesets.java │ │ │ │ ├── Connections.java │ │ │ │ ├── CreateResult.java │ │ │ │ ├── CreateResultAction.java │ │ │ │ ├── CreatedBy.java │ │ │ │ ├── Defect.java │ │ │ │ ├── DefectQuery.java │ │ │ │ ├── DefectSuites.java │ │ │ │ ├── Discussion.java │ │ │ │ ├── Duplicates.java │ │ │ │ ├── FlowState.java │ │ │ │ ├── Issue.java │ │ │ │ ├── Milestones.java │ │ │ │ ├── Object.java │ │ │ │ ├── Project.java │ │ │ │ ├── QueryResult.java │ │ │ │ ├── QueryResult_.java │ │ │ │ ├── RallyQuery.java │ │ │ │ ├── Result.java │ │ │ │ ├── RevisionHistory.java │ │ │ │ ├── SubmittedBy.java │ │ │ │ ├── Subscription.java │ │ │ │ ├── Tags.java │ │ │ │ ├── Tasks.java │ │ │ │ ├── TestCases.java │ │ │ │ └── Workspace.java │ │ │ ├── report │ │ │ │ ├── AnalyticsReport.java │ │ │ │ ├── GetResultsReport.java │ │ │ │ ├── JiraTicketsReport.java │ │ │ │ ├── PullRequestReport.java │ │ │ │ ├── ScanReport.java │ │ │ │ └── ScanResultsReport.java │ │ │ └── servicenow │ │ │ │ ├── Incident.java │ │ │ │ └── Result.java │ │ │ ├── exception │ │ │ ├── ADOClientException.java │ │ │ ├── BitBucketClientException.java │ │ │ ├── CheckmarxLegacyException.java │ │ │ ├── ExitThrowable.java │ │ │ ├── GitHubClientException.java │ │ │ ├── GitHubClientRunTimeException.java │ │ │ ├── GitHubRepoUnavailableException.java │ │ │ ├── GitLabClientException.java │ │ │ ├── GitLabClientRuntimeException.java │ │ │ ├── IastBugTrackerClientException.java │ │ │ ├── IastIssueNotCreatedException.java │ │ │ ├── IastPropertiesNotSetupException.java │ │ │ ├── IastScanRequestMustProvideException.java │ │ │ ├── IastThatPropertiesIsRequiredException.java │ │ │ ├── IastThresholdsSeverityException.java │ │ │ ├── IastValidationScanTagFailedException.java │ │ │ ├── InvalidCredentialsException.java │ │ │ ├── InvalidTokenException.java │ │ │ ├── JiraClientException.java │ │ │ ├── JiraClientRunTimeException.java │ │ │ ├── MachinaException.java │ │ │ ├── MachinaRuntimeException.java │ │ │ ├── PullRequestCommentUnknownException.java │ │ │ ├── ReposManagerException.java │ │ │ └── RequestValidationException.java │ │ │ ├── filter │ │ │ ├── CaseTransformingFilter.java │ │ │ ├── ParameterOverridingWrapper.java │ │ │ └── SecurityFilter.java │ │ │ ├── gitdashboardnewver │ │ │ ├── Analyzer.java │ │ │ ├── Dependency.java │ │ │ ├── DependencyFile.java │ │ │ ├── DependencyPath.java │ │ │ ├── DependencyPath__1.java │ │ │ ├── Dependency__1.java │ │ │ ├── Fix.java │ │ │ ├── Flag.java │ │ │ ├── Identifier.java │ │ │ ├── Items.java │ │ │ ├── Link.java │ │ │ ├── Location.java │ │ │ ├── Message.java │ │ │ ├── Remediation.java │ │ │ ├── SCA │ │ │ │ ├── Analyzer.java │ │ │ │ ├── Dependency.java │ │ │ │ ├── DependencyFile.java │ │ │ │ ├── DependencyPath.java │ │ │ │ ├── DependencyPath__1.java │ │ │ │ ├── Dependency__1.java │ │ │ │ ├── Fix.java │ │ │ │ ├── Flag.java │ │ │ │ ├── Identifier.java │ │ │ │ ├── Items.java │ │ │ │ ├── Link.java │ │ │ │ ├── LocationSCA.java │ │ │ │ ├── Message.java │ │ │ │ ├── Package.java │ │ │ │ ├── Package__1.java │ │ │ │ ├── Remediation.java │ │ │ │ ├── Scan.java │ │ │ │ ├── Scanner.java │ │ │ │ ├── Scanner__1.java │ │ │ │ ├── SecurityDashboardNewVerSCA.java │ │ │ │ ├── Signature.java │ │ │ │ ├── Tracking.java │ │ │ │ ├── Vendor.java │ │ │ │ ├── Vendor__1.java │ │ │ │ └── Vulnerability.java │ │ │ ├── Scan.java │ │ │ ├── Scanner.java │ │ │ ├── Scanner__1.java │ │ │ ├── SecurityDashboardNewVer.java │ │ │ ├── Signature.java │ │ │ ├── Tracking.java │ │ │ ├── Vendor.java │ │ │ ├── Vendor__1.java │ │ │ └── Vulnerability.java │ │ │ ├── gitdashboardnewverfifteen │ │ │ ├── SAST │ │ │ │ ├── Analyzer.java │ │ │ │ ├── Fix.java │ │ │ │ ├── Flag.java │ │ │ │ ├── Gitlabdashboard.java │ │ │ │ ├── Identifier.java │ │ │ │ ├── Items.java │ │ │ │ ├── Link.java │ │ │ │ ├── Location.java │ │ │ │ ├── Message.java │ │ │ │ ├── Option.java │ │ │ │ ├── PrimaryIdentifier.java │ │ │ │ ├── Remediation.java │ │ │ │ ├── Scan.java │ │ │ │ ├── Scanner.java │ │ │ │ ├── Signature.java │ │ │ │ ├── Tracking.java │ │ │ │ ├── Vendor.java │ │ │ │ ├── Vendor__1.java │ │ │ │ └── Vulnerability.java │ │ │ └── SCA │ │ │ │ ├── Analyzer.java │ │ │ │ ├── Dependency.java │ │ │ │ ├── DependencyFile.java │ │ │ │ ├── DependencyPath.java │ │ │ │ ├── DependencyPath__1.java │ │ │ │ ├── Dependency__1.java │ │ │ │ ├── Fix.java │ │ │ │ ├── Flag.java │ │ │ │ ├── Identifier.java │ │ │ │ ├── Items.java │ │ │ │ ├── Link.java │ │ │ │ ├── Location.java │ │ │ │ ├── Message.java │ │ │ │ ├── Option.java │ │ │ │ ├── Package.java │ │ │ │ ├── Package__1.java │ │ │ │ ├── PrimaryIdentifier.java │ │ │ │ ├── Remediation.java │ │ │ │ ├── SCASecurityDashboard.java │ │ │ │ ├── Scan.java │ │ │ │ ├── Scanner.java │ │ │ │ ├── Signature.java │ │ │ │ ├── Tracking.java │ │ │ │ ├── Vendor.java │ │ │ │ ├── Vendor__1.java │ │ │ │ └── Vulnerability.java │ │ │ ├── gitlabdashboardfifteen │ │ │ ├── sast │ │ │ │ ├── Analyzer.java │ │ │ │ ├── Fix.java │ │ │ │ ├── Flag.java │ │ │ │ ├── GitllabScgemaFifteen.java │ │ │ │ ├── Identifier.java │ │ │ │ ├── Items.java │ │ │ │ ├── Link.java │ │ │ │ ├── Location.java │ │ │ │ ├── Message.java │ │ │ │ ├── PrimaryIdentifier.java │ │ │ │ ├── Remediation.java │ │ │ │ ├── Scan.java │ │ │ │ ├── Scanner.java │ │ │ │ ├── Signature.java │ │ │ │ ├── Tracking.java │ │ │ │ ├── Vendor.java │ │ │ │ ├── Vendor__1.java │ │ │ │ └── Vulnerability.java │ │ │ └── sca │ │ │ │ ├── Analyzer.java │ │ │ │ ├── Dependency.java │ │ │ │ ├── DependencyFile.java │ │ │ │ ├── DependencyPath.java │ │ │ │ ├── DependencyPath__1.java │ │ │ │ ├── Dependency__1.java │ │ │ │ ├── Fix.java │ │ │ │ ├── Flag.java │ │ │ │ ├── Identifier.java │ │ │ │ ├── Items.java │ │ │ │ ├── Link.java │ │ │ │ ├── Location.java │ │ │ │ ├── Message.java │ │ │ │ ├── Package.java │ │ │ │ ├── Package__1.java │ │ │ │ ├── PrimaryIdentifier.java │ │ │ │ ├── Remediation.java │ │ │ │ ├── SCADashboard.java │ │ │ │ ├── Scan.java │ │ │ │ ├── Scanner.java │ │ │ │ ├── Signature.java │ │ │ │ ├── Tracking.java │ │ │ │ ├── Vendor.java │ │ │ │ ├── Vendor__1.java │ │ │ │ └── Vulnerability.java │ │ │ ├── handlers │ │ │ ├── bitbucket │ │ │ │ └── server │ │ │ │ │ ├── BitbucketServerDeleteHandler.java │ │ │ │ │ ├── BitbucketServerEventHandler.java │ │ │ │ │ ├── BitbucketServerMergeHandler.java │ │ │ │ │ ├── BitbucketServerPushHandler.java │ │ │ │ │ └── BitbucketServerScanEventHandler.java │ │ │ └── config │ │ │ │ ├── BitBucketConfigContextProvider.java │ │ │ │ └── ConfigContextProvider.java │ │ │ ├── jira9X │ │ │ ├── Component.java │ │ │ ├── FieldSchema.java │ │ │ ├── Fields.java │ │ │ ├── IssueFields.java │ │ │ ├── IssueType.java │ │ │ ├── Item.java │ │ │ ├── Operation.java │ │ │ ├── Project.java │ │ │ ├── ProjectCategory.java │ │ │ ├── SimpleListWrapper.java │ │ │ ├── StandardOperation.java │ │ │ ├── User.java │ │ │ └── Version.java │ │ │ ├── sastscanning │ │ │ └── ScanRequestConverter.java │ │ │ ├── service │ │ │ ├── ADOCommentService.java │ │ │ ├── ADOConfigService.java │ │ │ ├── ADOService.java │ │ │ ├── ASTScanner.java │ │ │ ├── AbstractASTScanner.java │ │ │ ├── AbstractVulnerabilityScanner.java │ │ │ ├── BitBucketService.java │ │ │ ├── BugTrackerEventTrigger.java │ │ │ ├── CodeBashingService.java │ │ │ ├── ConfigurationOverrider.java │ │ │ ├── CxGoScanner.java │ │ │ ├── CxScannerService.java │ │ │ ├── EmailService.java │ │ │ ├── ExternalScriptService.java │ │ │ ├── FilenameFormatter.java │ │ │ ├── FilterFactory.java │ │ │ ├── FlowService.java │ │ │ ├── GitAuthUrlGenerator.java │ │ │ ├── GitHubAppAuthService.java │ │ │ ├── GitHubService.java │ │ │ ├── GitLabService.java │ │ │ ├── HelperService.java │ │ │ ├── IastService.java │ │ │ ├── IastServiceRequests.java │ │ │ ├── IssueService.java │ │ │ ├── JiraService.java │ │ │ ├── OsaScannerService.java │ │ │ ├── ProjectNameGenerator.java │ │ │ ├── PullRequestCommentsHelper.java │ │ │ ├── RepoService.java │ │ │ ├── ReposManagerService.java │ │ │ ├── ResultsService.java │ │ │ ├── SCAScanner.java │ │ │ ├── SanitizingFilenameFormatter.java │ │ │ ├── SastScanner.java │ │ │ ├── SbomService.java │ │ │ ├── ScaConfigurationOverrider.java │ │ │ ├── ScaFilterFactory.java │ │ │ ├── SendGridService.java │ │ │ ├── ThresholdValidator.java │ │ │ ├── ThresholdValidatorImpl.java │ │ │ └── VulnerabilityScanner.java │ │ │ └── utils │ │ │ ├── ADOUtils.java │ │ │ ├── AesEncryptionUtils.java │ │ │ ├── CommonUtils.java │ │ │ ├── HTMLHelper.java │ │ │ ├── JasyptConfig.java │ │ │ ├── MarkDownHelper.java │ │ │ ├── MaskingPatternLayout.java │ │ │ ├── ScanUtils.java │ │ │ ├── TokenUtils.java │ │ │ └── ZipUtils.java │ └── resources │ │ ├── application-9.0.yml │ │ ├── application-ast.yml │ │ ├── application-azure.yml │ │ ├── application-cmd.yml │ │ ├── application-csv.yml │ │ ├── application-cxgo.yml │ │ ├── application-full.yml │ │ ├── application-github.yml │ │ ├── application-iast.yml │ │ ├── application-jira.yml │ │ ├── application-sast.yml │ │ ├── application-sca.yml │ │ ├── application-web.yml │ │ ├── application.yml │ │ ├── banner.txt │ │ ├── logback-spring.xml │ │ ├── samples │ │ ├── CheckBranch.groovy │ │ ├── CxConfig.json │ │ ├── CxProfile.json │ │ ├── CxProject.groovy │ │ ├── CxTeam.groovy │ │ ├── JiraProjectKey.groovy │ │ ├── ScanComment.groovy │ │ ├── cx-flow-full.json │ │ ├── cx-flow.json │ │ ├── cx.xml │ │ ├── cx.xsd │ │ ├── gitlab │ │ │ ├── gitlab-ast-sample.yml │ │ │ ├── gitlab-astcloud-sample.yml │ │ │ ├── gitlab-sast-sca-sample.yml │ │ │ └── gitlab-sca-sample.yml │ │ ├── osa-libs.json │ │ ├── osa-summary.json │ │ └── osa-vulns.json │ │ ├── static │ │ ├── favicon.ico │ │ └── favicon.png │ │ └── templates │ │ ├── generic-event-message.html │ │ ├── index.html │ │ ├── message-details.html │ │ ├── message-error.html │ │ └── scan-completed-successfully.html └── test │ ├── java │ └── com │ │ └── checkmarx │ │ ├── flow │ │ ├── CxFlowApplicationTest.java │ │ ├── controller │ │ │ ├── FlowControllerTest.java │ │ │ └── GitHubControllerTest.java │ │ ├── cucumber │ │ │ ├── common │ │ │ │ ├── Constants.java │ │ │ │ ├── JsonLoggerTestUtils.java │ │ │ │ ├── repoServiceMockers │ │ │ │ │ ├── GithubServiceMocker.java │ │ │ │ │ ├── GitlabServiceMocker.java │ │ │ │ │ └── RepoServiceMocker.java │ │ │ │ └── utils │ │ │ │ │ ├── JsonUtils.java │ │ │ │ │ └── TestUtils.java │ │ │ ├── component │ │ │ │ ├── analytics │ │ │ │ │ ├── get │ │ │ │ │ │ ├── GetResultsAnalyticsTestSteps.java │ │ │ │ │ │ └── RunGetResultsAnalyticsTest.java │ │ │ │ │ └── pullrequest │ │ │ │ │ │ ├── AnalyticsRunner.java │ │ │ │ │ │ └── AnalyticsSteps.java │ │ │ │ ├── ast │ │ │ │ │ └── parse │ │ │ │ │ │ ├── GitHubCommentsASTSteps.java │ │ │ │ │ │ └── GitHubCommentsASTStepsRunner.java │ │ │ │ ├── batch │ │ │ │ │ ├── BatchComponentSteps.java │ │ │ │ │ └── RunBatchComponentTest.java │ │ │ │ ├── commentscript │ │ │ │ │ ├── CommentScriptRunner.java │ │ │ │ │ └── CommentScriptSteps.java │ │ │ │ ├── csvissuetracker │ │ │ │ │ ├── CsvIssueTrackerRunner.java │ │ │ │ │ └── CsvIssueTrackerSteps.java │ │ │ │ ├── cxintegrations │ │ │ │ │ ├── CxIntegrationSteps.java │ │ │ │ │ └── CxIntegrationsRunner.java │ │ │ │ ├── deletebranch │ │ │ │ │ ├── DeleteBranchRunner.java │ │ │ │ │ └── DeleteBranchSteps.java │ │ │ │ ├── filterscript │ │ │ │ │ ├── FilterScriptRunner.java │ │ │ │ │ └── FilterScriptSteps.java │ │ │ │ ├── parse │ │ │ │ │ ├── CxFlowReport.java │ │ │ │ │ ├── Hooks.java │ │ │ │ │ ├── LoadingSastResultsSteps.java │ │ │ │ │ ├── RunParseComponentTest.java │ │ │ │ │ ├── RunningCxFlowSteps.java │ │ │ │ │ ├── SastResultParser.java │ │ │ │ │ ├── TestContext.java │ │ │ │ │ ├── VerifyingCxFlowReportSteps.java │ │ │ │ │ └── matchscenario │ │ │ │ │ │ ├── ComparisonResult.java │ │ │ │ │ │ ├── CxFlowReportComparer.java │ │ │ │ │ │ └── Mismatch.java │ │ │ │ ├── projectkeyscript │ │ │ │ │ ├── JiraProjectKeyScriptRunner.java │ │ │ │ │ └── JiraProjectKeyScriptSteps.java │ │ │ │ ├── projectname │ │ │ │ │ ├── ProjectNameRunner.java │ │ │ │ │ └── ProjectNameSteps.java │ │ │ │ ├── scan │ │ │ │ │ ├── RunScanComponentTest.java │ │ │ │ │ ├── ScanFixture.java │ │ │ │ │ └── ScansComponentSteps.java │ │ │ │ ├── thresholds │ │ │ │ │ ├── sastPR │ │ │ │ │ │ ├── ThresholdsSteps.java │ │ │ │ │ │ └── ThresholdsTestRunner.java │ │ │ │ │ └── scaPR │ │ │ │ │ │ ├── ScaThresholdsSteps.java │ │ │ │ │ │ └── ScaThresholdsTestRunner.java │ │ │ │ └── webhook │ │ │ │ │ ├── WebHookSteps.java │ │ │ │ │ └── WebHookTestRunner.java │ │ │ └── integration │ │ │ │ ├── ast │ │ │ │ ├── bugtrackers │ │ │ │ │ └── jira │ │ │ │ │ │ ├── AstTicketsCreationViaJiraSteps.java │ │ │ │ │ │ └── RunAstTicketsCreationViaJiraSteps.java │ │ │ │ └── scans │ │ │ │ │ ├── AstRemoteRepoScanSteps.java │ │ │ │ │ └── RunAstRemoteRepoSteps.java │ │ │ │ ├── azure │ │ │ │ └── publishing │ │ │ │ │ ├── AzureDevopsClient.java │ │ │ │ │ ├── IssueRequestBuilder.java │ │ │ │ │ ├── PublishingStepsBase.java │ │ │ │ │ ├── github2ado │ │ │ │ │ ├── Github2AdoRunner.java │ │ │ │ │ └── Github2AdoSteps.java │ │ │ │ │ ├── githubflow │ │ │ │ │ ├── PublishingRunner.java │ │ │ │ │ ├── PublishingSteps.java │ │ │ │ │ └── ScanResultsBuilder.java │ │ │ │ │ └── issueprocessing │ │ │ │ │ ├── PublishingRunner.java │ │ │ │ │ └── PublishingSteps.java │ │ │ │ ├── cli │ │ │ │ ├── IntegrationTestContext.java │ │ │ │ ├── ast │ │ │ │ │ ├── AstCliSteps.java │ │ │ │ │ └── AstCliStepsRunner.java │ │ │ │ ├── iast │ │ │ │ │ ├── IastCliSteps.java │ │ │ │ │ └── IastCliStepsRunner.java │ │ │ │ ├── sast │ │ │ │ │ ├── SastCliSteps.java │ │ │ │ │ └── SastCliStepsRunner.java │ │ │ │ └── sca │ │ │ │ │ ├── ScaCliSteps.java │ │ │ │ │ └── ScaCliStepsRunner.java │ │ │ │ ├── codebashing │ │ │ │ ├── CodeBashingLessonsSteps.java │ │ │ │ └── RunCodeBashingRunner.java │ │ │ │ ├── config_provider │ │ │ │ └── remote_repo │ │ │ │ │ ├── ConfigProviderRemoteRepoSteps.java │ │ │ │ │ └── ConfigProviderRemoteRepoTestRunner.java │ │ │ │ ├── cxconfig │ │ │ │ ├── ConfigAsCodeBranchSteps.java │ │ │ │ ├── CxConfigSteps.java │ │ │ │ └── CxConfigTestRunner.java │ │ │ │ ├── cxconfigbugtracker │ │ │ │ ├── CxConfigBugTrackerConfiguration.java │ │ │ │ ├── CxConfigBugTrackerRunner.java │ │ │ │ └── CxConfigBugTrackerSteps.java │ │ │ │ ├── cxgo │ │ │ │ ├── CxGoRemoteRepoScanSteps.java │ │ │ │ └── RunCxGoScanRunner.java │ │ │ │ ├── end2end │ │ │ │ └── genericendtoend │ │ │ │ │ ├── BugTracker.java │ │ │ │ │ ├── GenericEndToEndSteps.java │ │ │ │ │ ├── GitHubApiHandler.java │ │ │ │ │ ├── HookType.java │ │ │ │ │ ├── Repository.java │ │ │ │ │ └── RunGenericEndToEndTest.java │ │ │ │ ├── github │ │ │ │ ├── GitHubCloseIssueSteps.java │ │ │ │ ├── GitHubCommonSteps.java │ │ │ │ ├── GitHubOpenIssuesBySeverityFiltersSteps.java │ │ │ │ ├── GitHubOpenIssuesFromDifferentFilesSteps.java │ │ │ │ ├── GitHubResolveIssueVulnerabilitiesSteps.java │ │ │ │ └── RunGitHubOpenIssuesSteps.java │ │ │ │ ├── jira │ │ │ │ ├── analytics │ │ │ │ │ ├── JiraAnalyticsCommandLineCommonSteps.java │ │ │ │ │ ├── JiraAnalyticsOpenIssueViaCommandLineSteps.java │ │ │ │ │ ├── JiraAnalyticsUpdateIssueViaCommandLineSteps.java │ │ │ │ │ └── RunJiraAnalyticsSteps.java │ │ │ │ ├── autoconfig │ │ │ │ │ ├── AutoConfigRunner.java │ │ │ │ │ └── JiraAutoConfigTestSteps.java │ │ │ │ ├── load │ │ │ │ │ ├── JiraLoadTestRunner.java │ │ │ │ │ └── JiraLoadTestSteps.java │ │ │ │ └── manualconfig │ │ │ │ │ ├── JiraManualConfigTestSteps.java │ │ │ │ │ └── ManualConfigRunner.java │ │ │ │ ├── multiScmInstances │ │ │ │ ├── PublishTicketsWithOptionalScmConfSteps.java │ │ │ │ └── RunPublishTicketsWithOptionalScmConfSteps.java │ │ │ │ ├── negative_tests │ │ │ │ ├── JiraPublishInvalidResultsSteps.java │ │ │ │ ├── JiraUnreachableSteps.java │ │ │ │ └── RunJiraNegativeSteps.java │ │ │ │ ├── publishprocess │ │ │ │ ├── PublishProcessRunner.java │ │ │ │ └── RunPublishProcessSteps.java │ │ │ │ ├── pullrequest │ │ │ │ └── updatecomments │ │ │ │ │ ├── UpdatePullRequestCommentsSteps.java │ │ │ │ │ ├── UpdatePullRequestCommentsTestRunner.java │ │ │ │ │ └── UpdatePullRequestConfiguration.java │ │ │ │ ├── sast │ │ │ │ ├── config │ │ │ │ │ ├── OverwritingProjectConfigRunner.java │ │ │ │ │ └── OverwritingProjectConfigSteps.java │ │ │ │ └── scan │ │ │ │ │ ├── AbstractScanSteps.java │ │ │ │ │ ├── RunScanSteps.java │ │ │ │ │ ├── ScanDTO.java │ │ │ │ │ └── ScanSteps.java │ │ │ │ ├── sca_scanner │ │ │ │ ├── ScaCommonSteps.java │ │ │ │ ├── bugtrackers │ │ │ │ │ ├── ado │ │ │ │ │ │ ├── ScaIssuesCreationRunner.java │ │ │ │ │ │ └── ScaIssuesCreationSteps.java │ │ │ │ │ └── github │ │ │ │ │ │ ├── ScaResolveIssueRunner.java │ │ │ │ │ │ └── ScaResolveIssueSteps.java │ │ │ │ ├── config_as_code │ │ │ │ │ ├── ScaConfigAsCodeRunner.java │ │ │ │ │ └── ScaConfigAsCodeSteps.java │ │ │ │ ├── filters │ │ │ │ │ ├── ScaFiltersSteps.java │ │ │ │ │ └── ScaFiltersStepsRunner.java │ │ │ │ ├── policy_management │ │ │ │ │ ├── ScaPolicyManagementRunner.java │ │ │ │ │ └── ScaPolicyManagementSteps.java │ │ │ │ ├── scans │ │ │ │ │ ├── RunSCARemoteRepoSteps.java │ │ │ │ │ └── SCARemoteRepoScanSteps.java │ │ │ │ ├── teams │ │ │ │ │ ├── RunSCATeamsSteps.java │ │ │ │ │ └── SCATeamsSteps.java │ │ │ │ └── zip_scan │ │ │ │ │ ├── ScaZipScanRunner.java │ │ │ │ │ └── ScaZipScanSteps.java │ │ │ │ └── ziputils │ │ │ │ ├── RunZipUtilsTest.java │ │ │ │ └── zipUtilsSteps.java │ │ ├── custom │ │ │ ├── JsonIssueTrackerTest.java │ │ │ ├── JsonPropertiesTest.java │ │ │ ├── SarifIssueTrackerTest.java │ │ │ ├── SarifSCAIssueTrackerTest.java │ │ │ └── ServiceNowTrackerTest.java │ │ ├── exception │ │ │ ├── BitBucketClientExceptionTest.java │ │ │ ├── CheckmarxLegacyExceptionTest.java │ │ │ ├── GitHubClientExceptionTest.java │ │ │ ├── GitLabClientExceptionTest.java │ │ │ ├── GitLabClientRuntimeExceptionTest.java │ │ │ ├── InvalidCredentialsExceptionTest.java │ │ │ ├── InvalidTokenExceptionTest.java │ │ │ ├── JiraClientExceptionTest.java │ │ │ ├── MachinaExceptionTest.java │ │ │ ├── MachinaRuntimeExceptionTest.java │ │ │ └── RequestValidationExceptionTest.java │ │ ├── filter │ │ │ └── SecurityFilterTest.java │ │ ├── service │ │ │ ├── BitBucketServiceTest.java │ │ │ ├── CxLegacyServiceTest.java │ │ │ ├── CxServiceTest.java │ │ │ ├── GitHubServiceTest.java │ │ │ ├── GitLabServiceTest.java │ │ │ ├── HelperServiceTest.java │ │ │ ├── JiraServiceTest.java │ │ │ ├── ResultsServiceTest.java │ │ │ └── SanitizingFilenameFormatterTest.java │ │ └── utils │ │ │ ├── AesEncryptionUtilsTest.java │ │ │ ├── ApiFlowControllerComponentTestProperties.java │ │ │ ├── ScanUtilsTest.java │ │ │ ├── github │ │ │ └── GitHubTestUtils.java │ │ │ └── gitlab │ │ │ └── GitLabTestUtils.java │ │ ├── jira │ │ ├── IJiraTestUtils.java │ │ ├── IPublishUtils.java │ │ ├── JiraTestUtils.java │ │ ├── JiraUtilsException.java │ │ └── PublishUtils.java │ │ ├── test │ │ └── flow │ │ │ └── config │ │ │ ├── CxFlowMocksConfig.java │ │ │ ├── JiraMocksConfig.java │ │ │ └── SastMocksConfig.java │ │ └── utils │ │ └── TestsParseUtils.java │ └── resources │ ├── CxConfig-bug.json │ ├── CxConfig-flow.json │ ├── CxConfig.json │ ├── CxProfile.json │ ├── application-iast.yml │ ├── application-jiramanualconfig.yml │ ├── application-sast.yml │ ├── application-sca.yml │ ├── application-scan.yml │ ├── application.yml │ ├── checkmarx.crt │ └── cucumber │ ├── data │ ├── cxflow-reference-reports │ │ ├── 1-finding.json │ │ ├── 11-findings.json │ │ ├── 2-findings-different-severity.json │ │ ├── 2-findings-different-vuln-type-different-files.json │ │ ├── 2-findings-different-vuln-type-same-file.json │ │ ├── 2-findings-same-severity.json │ │ ├── 2-findings-same-vuln-type-different-files.json │ │ ├── 2-findings-same-vuln-type-same-file.json │ │ ├── 3-findings-different-severity-medium-high-critical.json │ │ └── empty-results.json │ ├── input-code-for-sca │ │ ├── BookDetail_jsp.java │ │ ├── BookMaint_jsp.java │ │ ├── CardTypesGrid_jsp.java │ │ └── commons-fileupload-1.0.jar │ ├── input-code-samples │ │ ├── DOS_Login.java │ │ └── EmptyClass.java │ ├── input-files-toscan │ │ ├── VB_3845 │ │ │ └── encode.zip │ │ ├── cx.config.src │ │ ├── cx.gitlab.configuration │ │ └── e2e.src │ ├── input-scripts-sample │ │ ├── invalid-return-type-comment-script.groovy │ │ ├── invalid-syntax-script-comment.groovy.invalid │ │ ├── jira-project-key │ │ │ ├── invalid-return-type-project-key-script.groovy │ │ │ ├── invalid-syntax-project-key-script.groovy │ │ │ ├── jira-standard-project-key.groovy │ │ │ └── parse-jira-project-key.groovy │ │ ├── parse-branch-name-comment.groovy │ │ ├── sast-standard-comment.groovy │ │ └── special-characters-comment-script.groovy │ ├── sample-ast-results │ │ └── 5-findings-2-high-3-medium.json │ ├── sample-sast-results │ │ ├── 1-finding-5-nodes-different-files.xml │ │ ├── 1-finding-closed.xml │ │ ├── 1-finding-create-for-update.xml │ │ ├── 1-finding-custom-severity.xml │ │ ├── 1-finding-for-update-close.xml │ │ ├── 1-finding-updated.xml │ │ ├── 1-finding.xml │ │ ├── 100-findings.xml │ │ ├── 11-findings.xml │ │ ├── 2-findings-different-severity.xml │ │ ├── 2-findings-different-vuln-type-different-files.xml │ │ ├── 2-findings-different-vuln-type-same-file.xml │ │ ├── 2-findings-same-severity.xml │ │ ├── 2-findings-same-vuln-type-different-files.xml │ │ ├── 2-findings-same-vuln-type-same-file-false-positive.xml │ │ ├── 2-findings-same-vuln-type-same-file.xml │ │ ├── 200-findings.xml │ │ ├── 3-findings-5-nodes-different-files.xml │ │ ├── 3-findings-all-false-positive.xml │ │ ├── 3-findings-different-severity-medium-high-critical.xml │ │ ├── 3-findings-different-vuln-type-same-file.xml │ │ ├── 3-findings-filter-script-test.xml │ │ ├── 300-findings.xml │ │ ├── 385-findings.xml │ │ ├── 4-low-3-medium-2-high-unique.xml │ │ ├── different-severities-10-10.xml │ │ ├── different-severities-10-5.xml │ │ ├── empty-results.xml │ │ ├── findings-sanity.xml │ │ ├── github-results-samples │ │ │ ├── 1-finding-same-file.xml │ │ │ ├── 2-high-findings-same-vuln-same-file-resolved.xml │ │ │ ├── 2-high-findings-same-vuln-same-file-with-not-ex-status.xml │ │ │ ├── 5-findings-different-vuln-same-file.xml │ │ │ └── many-findings-different-vuln-different-files.xml │ │ └── very-large.xml │ ├── sample-sca-results │ │ ├── 16-findings-6-high-10-medium-resolver.json │ │ ├── 16-findings-6-high-10-medium.json │ │ └── 8-findings-2-high-6-medium.json │ └── sample-webhook-requests │ │ ├── github-pull-request.json │ │ └── github-push.json │ └── features │ ├── componentTests │ ├── analytics-get-results.feature │ ├── astComments.feature │ ├── batch.feature │ ├── configure-jira-project-key-script.feature │ ├── configure-sast-comment-script.feature │ ├── csv-issue-tracker.feature │ ├── cxIntegrations.feature │ ├── delete-branch.feature │ ├── filter-script.feature │ ├── parse.feature │ ├── project-name-generator.feature │ ├── publish.feature │ ├── pull-request-analytics.feature │ ├── sca-thresholds.feature │ ├── scans.feature │ ├── thresholds.feature │ ├── webhook.feature │ ├── webhook.properties │ └── winservice.feature │ ├── e2eTests │ ├── HookProperties_ADO.properties │ ├── HookProperties_GITHUB.properties │ ├── HookProperties_GITLAB.properties │ ├── PullRequestProperties_GITHUB.properties │ └── genericEndToEnd.feature │ ├── integrationTests │ ├── ast │ │ └── astScanProcessing.feature │ ├── azure │ │ ├── github2ado │ │ │ └── github2ado.feature │ │ ├── publishing-github-flow.feature │ │ ├── publishing-issue-processing.feature │ │ └── publishing.properties │ ├── cli │ │ ├── astCliScan.feature │ │ ├── iastCli.feature │ │ ├── sastCliScan.feature │ │ └── scaCliScan.feature │ ├── codebashing │ │ └── codebashingLessons.feature │ ├── configProvider │ │ └── remoteRepo │ │ │ └── configProviderRemoteRepo.feature │ ├── cxConfigBugTracker.feature │ ├── cxconfig.feature │ ├── cxgo │ │ └── cxgoScanProcessing.feature │ ├── github │ │ └── publish-processing.feature │ ├── jira │ │ ├── jira-auto-config.feature │ │ ├── jira-load.feature │ │ ├── jira-manual-config.feature │ │ └── publish-processing.feature │ ├── pull-request-comments-update.feature │ ├── sast │ │ ├── batch.feature │ │ ├── overwriting-project-config.feature │ │ ├── parse.feature │ │ └── scans.feature │ └── sca │ │ ├── scanResultsProcessing.feature │ │ └── teams.feature │ └── ziputils │ └── ziputils.feature ├── templates └── gitlab │ ├── v1 │ └── Checkmarx.gitlab-ci.yml │ ├── v2 │ └── Checkmarx.gitlab-ci.yml │ ├── v3 │ └── Checkmarx.gitlab-ci.yml │ └── v4 │ └── Checkmarx.gitlab-ci.yml └── version.txt /.dockerignore: -------------------------------------------------------------------------------- 1 | * 2 | !build*.gradle 3 | !build/libs/* -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Report an issue 3 | about: Create a bug report to fix an existing issue. 4 | title: '' 5 | labels: 'bug' 6 | assignees: '' 7 | 8 | --- 9 | 10 | ### Description 11 | 12 | > Provide a description of the issue 13 | 14 | ### Expected Behavior 15 | 16 | ### Actual Behavior 17 | 18 | ### Reproduction 19 | 20 | > Detail the steps taken to reproduce the issue 21 | > 22 | > Where applicable, please include (exclude sensitive information): 23 | > 24 | > - Code of Files to reproduce the issue 25 | > - Log files 26 | > - Application settings 27 | > - Screenshots 28 | 29 | ### Environment Details 30 | 31 | > Provide any information relating to the environment the issue was identified in - include applicable version and additional runtime information (include OS or other underlying infrastructure) 32 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest new functionality for this project. 4 | title: '' 5 | labels: 'enhancement' 6 | assignees: '' 7 | 8 | --- 9 | 10 | ### Describe the problem 11 | 12 | > A clear description of what the problem is. 13 | 14 | ### Proposed solution 15 | 16 | > A clear description of what you want to happen. 17 | 18 | ### Additional details 19 | 20 | > Add any other details / contexts / screenshots about the feature request. 21 | -------------------------------------------------------------------------------- /.github/release-drafter.yml: -------------------------------------------------------------------------------- 1 | name-template: '$RESOLVED_VERSION' 2 | tag-template: '$RESOLVED_VERSION' 3 | prerelease: 'true' 4 | categories: 5 | - title: '🚀 Features' 6 | labels: 7 | - 'feature' 8 | - 'enhancement' 9 | - title: '🐛 Bug Fixes' 10 | labels: 11 | - 'fix' 12 | - 'bugfix' 13 | - 'bug' 14 | - title: '🧰 Maintenance' 15 | label: 'chore' 16 | exclude-labels: 17 | - 'skip-release-notes' 18 | change-template: '- $TITLE @$AUTHOR (#$NUMBER)' 19 | version-resolver: 20 | major: 21 | labels: 22 | - 'major' 23 | minor: 24 | labels: 25 | - 'minor' 26 | patch: 27 | labels: 28 | - 'patch' 29 | default: patch 30 | template: | 31 | ## Changes 32 | 33 | $CHANGES 34 | -------------------------------------------------------------------------------- /.github/workflows/release-drafter.yml: -------------------------------------------------------------------------------- 1 | name: Natalies Release Drafter 2 | 3 | on: 4 | push: 5 | # branches to consider in the event; optional, defaults to all 6 | branches: 7 | - develop 8 | 9 | jobs: 10 | update_release_draft: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: natalieb07/release-drafter@v5.12.1.6 14 | with: 15 | # (Optional) specify config name to use, relative to .github/. Default: release-drafter.yml 16 | config-name: release-drafter.yml 17 | prerelease: false 18 | publish: false 19 | env: 20 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 21 | -------------------------------------------------------------------------------- /.github/workflows/wiki-publisher.yml: -------------------------------------------------------------------------------- 1 | name: Documentation 2 | 3 | on: 4 | push: 5 | branches: 6 | - develop 7 | 8 | jobs: 9 | build: 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - uses: actions/checkout@v1 14 | # Additional steps to generate documentation in "docs" directory 15 | - name: Upload docs to Wiki 16 | uses: checkmarx-ltd/github-wiki-publish-action@master 17 | with: 18 | path: "docs" 19 | env: 20 | GH_PERSONAL_ACCESS_TOKEN: ${{ secrets.GH_REPO_TOKEN }} 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | /build/ 3 | /bin/ 4 | !gradle/wrapper/gradle-wrapper.jar 5 | application-secrets.yml 6 | 7 | ### STS ### 8 | .apt_generated 9 | .classpath 10 | .factorypath 11 | .project 12 | .settings 13 | .springBeans 14 | .sts4-cache 15 | 16 | ### IntelliJ IDEA ### 17 | .idea 18 | *.iws 19 | *.iml 20 | *.ipr 21 | 22 | ### NetBeans ### 23 | /nbproject/private/ 24 | /build/ 25 | /out/ 26 | /nbbuild/ 27 | /dist/ 28 | /nbdist/ 29 | /.nb-gradle/ 30 | cx-flow.log* 31 | 32 | ### VSCode ### 33 | .vscode 34 | .DS_Store 35 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![CircleCI](https://img.shields.io/circleci/build/github/checkmarx-ltd/cx-flow) 2 | ![GitHub release (latest by date)](https://img.shields.io/github/v/release/checkmarx-ltd/cx-flow) 3 | ![Docker Pulls](https://img.shields.io/docker/pulls/checkmarx/cx-flow) 4 | ## Documentation 5 | https://github.com/checkmarx-ltd/cx-flow/wiki 6 | 7 | ## Quick Start 8 | For a Quick Start Tutorial, please refer to [Quick Start](https://github.com/checkmarx-ltd/cx-flow/wiki/Tutorials#quickstart) 9 | -------------------------------------------------------------------------------- /docs/Images/1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/1.PNG -------------------------------------------------------------------------------- /docs/Images/2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/2.PNG -------------------------------------------------------------------------------- /docs/Images/ADO1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/ADO1.png -------------------------------------------------------------------------------- /docs/Images/ADO2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/ADO2.png -------------------------------------------------------------------------------- /docs/Images/ADO3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/ADO3.png -------------------------------------------------------------------------------- /docs/Images/ADO4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/ADO4.png -------------------------------------------------------------------------------- /docs/Images/ADO5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/ADO5.png -------------------------------------------------------------------------------- /docs/Images/ADO6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/ADO6.png -------------------------------------------------------------------------------- /docs/Images/ADO__merge_and_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/ADO__merge_and_delete.png -------------------------------------------------------------------------------- /docs/Images/ADO_delete_branch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/ADO_delete_branch.png -------------------------------------------------------------------------------- /docs/Images/CxSAST_Licensed_Projects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/CxSAST_Licensed_Projects.png -------------------------------------------------------------------------------- /docs/Images/CxSAST_Result_Summary.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/CxSAST_Result_Summary.PNG -------------------------------------------------------------------------------- /docs/Images/CxSAST_branch_project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/CxSAST_branch_project.png -------------------------------------------------------------------------------- /docs/Images/CxSAST_default_project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/CxSAST_default_project.png -------------------------------------------------------------------------------- /docs/Images/CxSAST_project_count.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/CxSAST_project_count.png -------------------------------------------------------------------------------- /docs/Images/IAST1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/IAST1.png -------------------------------------------------------------------------------- /docs/Images/IAST4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/IAST4.png -------------------------------------------------------------------------------- /docs/Images/SCA-policy-creation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/SCA-policy-creation.png -------------------------------------------------------------------------------- /docs/Images/SCA1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/SCA1.png -------------------------------------------------------------------------------- /docs/Images/SCA2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/SCA2.png -------------------------------------------------------------------------------- /docs/Images/SCA2A.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/SCA2A.png -------------------------------------------------------------------------------- /docs/Images/SCA3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/SCA3.png -------------------------------------------------------------------------------- /docs/Images/SCA4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/SCA4.png -------------------------------------------------------------------------------- /docs/Images/SCA5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/SCA5.png -------------------------------------------------------------------------------- /docs/Images/SCA6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/SCA6.png -------------------------------------------------------------------------------- /docs/Images/SCA7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/SCA7.png -------------------------------------------------------------------------------- /docs/Images/SCA8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/SCA8.png -------------------------------------------------------------------------------- /docs/Images/Training_link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/Training_link.png -------------------------------------------------------------------------------- /docs/Images/adolab1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/adolab1.png -------------------------------------------------------------------------------- /docs/Images/arch1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/arch1.png -------------------------------------------------------------------------------- /docs/Images/arch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/arch2.png -------------------------------------------------------------------------------- /docs/Images/automatedWorkflow1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/automatedWorkflow1.png -------------------------------------------------------------------------------- /docs/Images/automatedWorkflow2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/automatedWorkflow2.png -------------------------------------------------------------------------------- /docs/Images/azure_branch_policies.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/azure_branch_policies.png -------------------------------------------------------------------------------- /docs/Images/azure_enable_checkmarx_scan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/azure_enable_checkmarx_scan.png -------------------------------------------------------------------------------- /docs/Images/batch1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/batch1.png -------------------------------------------------------------------------------- /docs/Images/batch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/batch2.png -------------------------------------------------------------------------------- /docs/Images/batch3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/batch3.png -------------------------------------------------------------------------------- /docs/Images/bb_multi_scm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/bb_multi_scm.png -------------------------------------------------------------------------------- /docs/Images/bp_db1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/bp_db1.png -------------------------------------------------------------------------------- /docs/Images/branchedProjectOnPull.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/branchedProjectOnPull.png -------------------------------------------------------------------------------- /docs/Images/branchedProjectScan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/branchedProjectScan.png -------------------------------------------------------------------------------- /docs/Images/bug1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/bug1.png -------------------------------------------------------------------------------- /docs/Images/bug10.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/bug10.PNG -------------------------------------------------------------------------------- /docs/Images/bug11.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/bug11.PNG -------------------------------------------------------------------------------- /docs/Images/bug2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/bug2.png -------------------------------------------------------------------------------- /docs/Images/bug3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/bug3.png -------------------------------------------------------------------------------- /docs/Images/bug4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/bug4.png -------------------------------------------------------------------------------- /docs/Images/bug5.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/bug5.PNG -------------------------------------------------------------------------------- /docs/Images/bug6.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/bug6.PNG -------------------------------------------------------------------------------- /docs/Images/bug7.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/bug7.PNG -------------------------------------------------------------------------------- /docs/Images/bug8.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/bug8.PNG -------------------------------------------------------------------------------- /docs/Images/bug9.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/bug9.PNG -------------------------------------------------------------------------------- /docs/Images/cxLogo.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/cxLogo.PNG -------------------------------------------------------------------------------- /docs/Images/cxflow_thresholds.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/cxflow_thresholds.png -------------------------------------------------------------------------------- /docs/Images/dev1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/dev1.png -------------------------------------------------------------------------------- /docs/Images/dev2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/dev2.png -------------------------------------------------------------------------------- /docs/Images/fargate1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/fargate1.png -------------------------------------------------------------------------------- /docs/Images/fargate2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/fargate2.png -------------------------------------------------------------------------------- /docs/Images/fbranch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/fbranch.png -------------------------------------------------------------------------------- /docs/Images/gh1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/gh1.png -------------------------------------------------------------------------------- /docs/Images/gh2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/gh2.png -------------------------------------------------------------------------------- /docs/Images/gh3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/gh3.png -------------------------------------------------------------------------------- /docs/Images/gh4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/gh4.png -------------------------------------------------------------------------------- /docs/Images/gh5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/gh5.png -------------------------------------------------------------------------------- /docs/Images/gh6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/gh6.png -------------------------------------------------------------------------------- /docs/Images/gh7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/gh7.png -------------------------------------------------------------------------------- /docs/Images/gh8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/gh8.png -------------------------------------------------------------------------------- /docs/Images/github-branch-delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/github-branch-delete.png -------------------------------------------------------------------------------- /docs/Images/github_multi_instance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/github_multi_instance.png -------------------------------------------------------------------------------- /docs/Images/github_status_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/github_status_check.png -------------------------------------------------------------------------------- /docs/Images/gitlab_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/gitlab_icon.png -------------------------------------------------------------------------------- /docs/Images/gitlab_issues.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/gitlab_issues.png -------------------------------------------------------------------------------- /docs/Images/gitlab_merge_request.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/gitlab_merge_request.png -------------------------------------------------------------------------------- /docs/Images/gitlab_security_dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/gitlab_security_dashboard.png -------------------------------------------------------------------------------- /docs/Images/gitlab_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/gitlab_settings.png -------------------------------------------------------------------------------- /docs/Images/guide1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/guide1.png -------------------------------------------------------------------------------- /docs/Images/iast_github_issue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/iast_github_issue.png -------------------------------------------------------------------------------- /docs/Images/iast_gitlab_issue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/iast_gitlab_issue.png -------------------------------------------------------------------------------- /docs/Images/multi_instance_example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/multi_instance_example.png -------------------------------------------------------------------------------- /docs/Images/multi_instance_url_payload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/multi_instance_url_payload.png -------------------------------------------------------------------------------- /docs/Images/no_project_present.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/no_project_present.PNG -------------------------------------------------------------------------------- /docs/Images/postwebhooks_password.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/postwebhooks_password.png -------------------------------------------------------------------------------- /docs/Images/prereq1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/prereq1.png -------------------------------------------------------------------------------- /docs/Images/prereq2azure.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/prereq2azure.PNG -------------------------------------------------------------------------------- /docs/Images/sarif-report-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/sarif-report-1.png -------------------------------------------------------------------------------- /docs/Images/sarif-report-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/sarif-report-2.png -------------------------------------------------------------------------------- /docs/Images/sarif-report-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/sarif-report-3.png -------------------------------------------------------------------------------- /docs/Images/webhookGitLab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/webhookGitLab.png -------------------------------------------------------------------------------- /docs/Images/webhookGithub.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/webhookGithub.png -------------------------------------------------------------------------------- /docs/Images/workflow1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/workflow1.png -------------------------------------------------------------------------------- /docs/Images/workflow2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/workflow2.png -------------------------------------------------------------------------------- /docs/Images/workflow3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/workflow3.png -------------------------------------------------------------------------------- /docs/Images/workflow4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/workflow4.png -------------------------------------------------------------------------------- /docs/Images/workflow5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/workflow5.png -------------------------------------------------------------------------------- /docs/Images/workflow6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/workflow6.png -------------------------------------------------------------------------------- /docs/Images/workflow7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/workflow7.png -------------------------------------------------------------------------------- /docs/Images/workflow8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/docs/Images/workflow8.png -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun Aug 18 18:37:41 EDT 2019 2 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip 3 | distributionBase=GRADLE_USER_HOME 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /helm/cxflow/.helmignore: -------------------------------------------------------------------------------- 1 | # Patterns to ignore when building packages. 2 | # This supports shell glob matching, relative path matching, and 3 | # negation (prefixed with !). Only one pattern per line. 4 | .DS_Store 5 | # Common VCS dirs 6 | .git/ 7 | .gitignore 8 | .bzr/ 9 | .bzrignore 10 | .hg/ 11 | .hgignore 12 | .svn/ 13 | # Common backup files 14 | *.swp 15 | *.bak 16 | *.tmp 17 | *.orig 18 | *~ 19 | # Various IDEs 20 | .project 21 | .idea/ 22 | *.tmproj 23 | .vscode/ 24 | -------------------------------------------------------------------------------- /helm/cxflow/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | appVersion: latest 3 | description: A Helm chart for Kubernetes 4 | name: cxflow 5 | type: application 6 | version: 0.1.0 7 | -------------------------------------------------------------------------------- /helm/cxflow/templates/external-secret.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: 'kubernetes-client.io/v1' 2 | kind: ExternalSecret 3 | metadata: 4 | name: {{ .Release.Name }}-external-secret 5 | spec: 6 | backendType: secretsManager 7 | dataFrom: 8 | - checkmarx/credentials 9 | - cxflow/sca 10 | - cxflow/ast 11 | - cxflow/cxgo 12 | -------------------------------------------------------------------------------- /helm/cxflow/templates/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: {{ include "cxflow.fullname" . }} 5 | labels: 6 | {{- include "cxflow.labels" . | nindent 4 }} 7 | spec: 8 | type: {{ .Values.service.type }} 9 | ports: 10 | - name: http 11 | protocol: TCP 12 | port: {{ .Values.service.port }} 13 | targetPort: http 14 | - name: hc 15 | protocol: TCP 16 | port: 8081 17 | targetPort: hc 18 | selector: 19 | {{- include "cxflow.selectorLabels" . | nindent 4 }} 20 | -------------------------------------------------------------------------------- /helm/cxflow/templates/tests/test-connection.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: "{{ include "cxflow.fullname" . }}-test-connection" 5 | labels: 6 | {{- include "cxflow.labels" . | nindent 4 }} 7 | annotations: 8 | "helm.sh/hook": test-success 9 | spec: 10 | containers: 11 | - name: wget 12 | image: busybox 13 | command: ['wget'] 14 | args: ['{{ include "cxflow.fullname" . }}:{{ .Values.service.port }}'] 15 | restartPolicy: Never 16 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'cx-flow' 2 | -------------------------------------------------------------------------------- /sonar-project.properties: -------------------------------------------------------------------------------- 1 | sonar.projectKey=checkmarx-ltd_cx-flow 2 | sonar.organization=checkmarx-ltd 3 | sonar.java.binaries=./build/classes 4 | sonar.exclusions=src/test/resources/cucumber/data/input-code-samples/** 5 | # This is the name and version displayed in the SonarCloud UI. 6 | #sonar.projectName=cx-flow 7 | #sonar.projectVersion=1.0 8 | 9 | # Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows. 10 | #sonar.sources=. 11 | 12 | # Encoding of the source code. Default is default system encoding 13 | #sonar.sourceEncoding=UTF-8 -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/config/CliMode.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.config; 2 | 3 | public enum CliMode{ 4 | SCAN, 5 | PROJECT 6 | } -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/config/CodebashingProperties.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.config; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | import lombok.extern.slf4j.Slf4j; 6 | import org.springframework.boot.context.properties.ConfigurationProperties; 7 | import org.springframework.stereotype.Component; 8 | import org.springframework.validation.annotation.Validated; 9 | 10 | @Component 11 | @ConfigurationProperties(prefix = "codebashing") 12 | @Validated 13 | @Slf4j 14 | @Getter 15 | @Setter 16 | public class CodebashingProperties { 17 | 18 | private String codebashingApiUrl = "https://api.codebashing.com/lessons"; 19 | private String tenantBaseUrl; 20 | private String apiSecret; 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/config/CxIntegrationsProperties.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.config; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | import org.springframework.boot.context.properties.ConfigurationProperties; 6 | import org.springframework.stereotype.Component; 7 | import org.springframework.validation.annotation.Validated; 8 | 9 | @Component 10 | @ConfigurationProperties(prefix = "cx-integrations") 11 | @Validated 12 | @Getter 13 | @Setter 14 | public class CxIntegrationsProperties { 15 | 16 | private String url; 17 | private boolean readMultiTenantConfiguration; 18 | } -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/config/FindingSeverity.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.config; 2 | 3 | public enum FindingSeverity { 4 | CRITICAL,HIGH, MEDIUM, LOW, INFO 5 | } 6 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/config/IastProperties.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.config; 2 | 3 | import com.checkmarx.flow.dto.iast.ql.utils.Severity; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | import org.springframework.boot.context.properties.ConfigurationProperties; 7 | import org.springframework.stereotype.Component; 8 | import org.springframework.validation.annotation.Validated; 9 | 10 | import java.util.List; 11 | import java.util.Map; 12 | 13 | @Component 14 | @ConfigurationProperties(prefix = "iast") 15 | @Validated 16 | @Getter 17 | @Setter 18 | public class IastProperties { 19 | 20 | private String url; 21 | private String sslCertificateFilePath; 22 | private String username; 23 | private String password; 24 | private String managerPort; 25 | private Integer updateTokenSeconds; 26 | private List filterSeverity; 27 | private Map thresholdsSeverity; 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/config/OptionalScmInstanceProperties.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.config; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class OptionalScmInstanceProperties { 9 | 10 | private String webhookToken; 11 | private String token; 12 | private String url; 13 | private String apiUrl; 14 | } -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/config/ScmConfigParams.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.config; 2 | 3 | public enum ScmConfigParams { 4 | TOKEN, WEBHOOK_TOKEN, API_URL 5 | } -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/config/external/ASTConfig.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.config.external; 2 | 3 | import com.typesafe.config.Optional; 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @Data 10 | @Builder 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | /* 14 | This class serves as an external bean class populated by the config-provider component 15 | It represents current AST allowed properties configuration 16 | */ 17 | public class ASTConfig { 18 | private String apiUrl; 19 | private String preset; 20 | @Optional 21 | private boolean incremental; 22 | private String clientSecret; 23 | private String clientId; 24 | } -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/config/external/CxGoConfigFromWebService.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.config.external; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * Config override coming from an external web service. 10 | */ 11 | @Data 12 | @AllArgsConstructor 13 | @NoArgsConstructor 14 | @Builder 15 | public class CxGoConfigFromWebService { 16 | public static final String SECTION_NAME = "cxGoConfig"; 17 | 18 | private String team; 19 | private String cxgoToken; 20 | private String scmAccessToken; 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/constants/FlowConstants.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.constants; 2 | 3 | public class FlowConstants { 4 | 5 | public static final String MAIN_MDC_ENTRY = "cx"; 6 | public static final String GITHUB_APP_INSTALLATION_ID = "github-installation-id"; 7 | public static final String GITHUB_APP_CLONE_USER = "x-access-token"; 8 | public static final String CODE_BASHING_LESSON = "CodeBashingLesson"; 9 | public static final String MERGE_ID = "merge_id"; 10 | public static final String MERGE_TITLE = "merge_title"; 11 | private FlowConstants() { 12 | } 13 | 14 | 15 | } -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/constants/JiraConstants.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.constants; 2 | 3 | public class JiraConstants { 4 | private JiraConstants(){} 5 | 6 | public static final String NEW_TICKET = "new"; 7 | public static final String UPDATED_TICKET = "updated"; 8 | public static final String CLOSED_TICKET = "closed"; 9 | public static final int JIRA_MAX_DESCRIPTION = 32760; 10 | public static final int JIRA_MAX_ISSUE_DESCRIPTION = 20000; 11 | 12 | public static final int MAX_RESULTS_ALLOWED = 1000000; 13 | public static final String JIRA_ISSUE_BODY_WITH_BRANCH = "*%s* issue exists @ *%s* in branch *%s*"; 14 | public static final String JIRA_ISSUE_BODY = "*%s* issue exists @ *%s*"; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/custom/CxXMLProperties.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.custom; 2 | 3 | import org.springframework.boot.context.properties.ConfigurationProperties; 4 | import org.springframework.stereotype.Component; 5 | import org.springframework.validation.annotation.Validated; 6 | 7 | @Component 8 | @ConfigurationProperties(prefix = "cx-xml") 9 | @Validated 10 | public class CxXMLProperties { 11 | //TEAM, PROJECT, APP, BRANCH, REPO, NAMESPACE, TIME (YYYYMMDD.HHMMSS 12 | private String fileNameFormat = "[APP]-[BRANCH]-[TIME]"; 13 | private String dataFolder = "/tmp"; 14 | 15 | public String getFileNameFormat() { 16 | return fileNameFormat; 17 | } 18 | 19 | public void setFileNameFormat(String fileNameFormat) { 20 | this.fileNameFormat = fileNameFormat; 21 | } 22 | 23 | public String getDataFolder() { 24 | return dataFolder; 25 | } 26 | 27 | public void setDataFolder(String dataFolder) { 28 | this.dataFolder = dataFolder; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/custom/PDFProperties.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.custom; 2 | 3 | import org.springframework.boot.context.properties.ConfigurationProperties; 4 | import org.springframework.stereotype.Component; 5 | import org.springframework.validation.annotation.Validated; 6 | 7 | @Component 8 | @ConfigurationProperties(prefix = "pdf") 9 | @Validated 10 | public class PDFProperties { 11 | //TEAM, PROJECT, APP, BRANCH, REPO, NAMESPACE, TIME (YYYYMMDD.HHMMSS 12 | private String fileNameFormat = "[APP]-[BRANCH]-[TIME]"; 13 | private String dataFolder = "/tmp"; 14 | 15 | public String getFileNameFormat() { 16 | return fileNameFormat; 17 | } 18 | 19 | public void setFileNameFormat(String fileNameFormat) { 20 | this.fileNameFormat = fileNameFormat; 21 | } 22 | 23 | public String getDataFolder() { 24 | return dataFolder; 25 | } 26 | 27 | public void setDataFolder(String dataFolder) { 28 | this.dataFolder = dataFolder; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/custom/WebPostProperties.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.custom; 2 | 3 | import org.springframework.boot.context.properties.ConfigurationProperties; 4 | import org.springframework.stereotype.Component; 5 | import org.springframework.validation.annotation.Validated; 6 | 7 | @Component 8 | @ConfigurationProperties(prefix = "web") 9 | @Validated 10 | public class WebPostProperties { 11 | private String fileNameFormat = "[APP]-[BRANCH]-[TIME]"; 12 | private String dataFolder = "/tmp"; 13 | 14 | 15 | public String getDataFolder() { 16 | return dataFolder; 17 | } 18 | 19 | public void setDataFolder(String dataFolder) { 20 | this.dataFolder = dataFolder; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/BugTrackersDto.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto; 2 | 3 | import com.checkmarx.flow.service.*; 4 | import com.checkmarx.sdk.ShardManager.ShardSessionTracker; 5 | import lombok.Data; 6 | import lombok.RequiredArgsConstructor; 7 | import org.springframework.stereotype.Service; 8 | 9 | @Service 10 | @RequiredArgsConstructor 11 | @Data 12 | public class BugTrackersDto { 13 | private final EmailService emailService; 14 | private final BugTrackerEventTrigger bugTrackerEventTrigger; 15 | protected final GitHubService gitService; 16 | protected final GitLabService gitLabService; 17 | protected final BitBucketService bitBucketService; 18 | protected final ADOService adoService; 19 | protected final ShardSessionTracker sessionTracker; 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/Event.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto; 2 | 3 | public class Event { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/ExitCode.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | 6 | /** 7 | * Exit codes for the command line mode. 8 | * To be filled with the rest of the values. 9 | */ 10 | @Getter 11 | @AllArgsConstructor 12 | public enum ExitCode { 13 | SUCCESS(0), 14 | BUILD_INTERRUPTED_INTENTIONALLY(1), 15 | ARGUMENT_NOT_PROVIDED(2), 16 | CHECKMARX_EXCEPTION(3), 17 | BUILD_INTERRUPTED(10), 18 | BUILD_INTERRUPTED_DUE_TO_THRESHOLDS(11); 19 | 20 | private final int value; 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/Issue.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.util.List; 9 | import java.util.Map; 10 | 11 | @Data 12 | @NoArgsConstructor 13 | @AllArgsConstructor 14 | @Builder 15 | public class Issue { 16 | 17 | private String id; 18 | private String url; 19 | private String title; 20 | private String body; 21 | private String state; 22 | private List labels; 23 | private Map metadata; 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/LabelField.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto; 2 | 3 | import lombok.Getter; 4 | import lombok.Setter; 5 | 6 | @Getter 7 | @Setter 8 | public class LabelField { 9 | private String type; 10 | private String name; 11 | private String defaultValue; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/OperationResult.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Getter; 5 | import lombok.NoArgsConstructor; 6 | 7 | @Getter 8 | @AllArgsConstructor 9 | // No args - to avoid deserialization error. 10 | @NoArgsConstructor 11 | public class OperationResult { 12 | private OperationStatus status; 13 | private String message; 14 | 15 | public static OperationResult successful() { 16 | return new OperationResult(OperationStatus.SUCCESS, null); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/OperationStatus.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto; 2 | 3 | public enum OperationStatus { 4 | FAILURE, 5 | SUCCESS 6 | } 7 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/RepoComment.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto; 2 | 3 | 4 | import lombok.AllArgsConstructor; 5 | import lombok.Builder; 6 | import lombok.Getter; 7 | import lombok.Setter; 8 | 9 | import java.util.Date; 10 | 11 | @Getter 12 | @Setter 13 | @AllArgsConstructor 14 | @Builder 15 | public class RepoComment { 16 | long id; 17 | String comment; 18 | String commentUrl; 19 | Date createdAt; 20 | Date updateTime; 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/Results.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto; 2 | 3 | 4 | public abstract class Results { 5 | public abstract XXIssue getXIssues(); 6 | } 7 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/XXIssue.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto; 2 | 3 | 4 | public abstract class XXIssue { 5 | public abstract String getVulnType(); 6 | public abstract String getFilename(); 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/azure/Account.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.azure; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "id", 11 | "baseUrl" 12 | }) 13 | public class Account { 14 | 15 | @JsonProperty("id") 16 | private String id; 17 | @JsonProperty("baseUrl") 18 | private String baseUrl; 19 | 20 | @JsonProperty("id") 21 | public String getId() { 22 | return id; 23 | } 24 | 25 | @JsonProperty("id") 26 | public void setId(String id) { 27 | this.id = id; 28 | } 29 | 30 | @JsonProperty("baseUrl") 31 | public String getBaseUrl() { 32 | return baseUrl; 33 | } 34 | 35 | @JsonProperty("baseUrl") 36 | public void setBaseUrl(String baseUrl) { 37 | this.baseUrl = baseUrl; 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/azure/AdoDetailsRequest.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.azure; 2 | 3 | import lombok.*; 4 | 5 | /** 6 | * Represents ADO-specific parameters that are passed to {@link com.checkmarx.flow.controller.ADOController}. 7 | * All the parameters are optional. 8 | * 9 | * Field names are quite awkward but have to be kept for backward compatibility, unless we find a better solution. 10 | */ 11 | @Getter 12 | @Setter 13 | @Builder 14 | @NoArgsConstructor 15 | @AllArgsConstructor 16 | public class AdoDetailsRequest { 17 | // Issue type 18 | private String adoIssue; 19 | 20 | // Issue body 21 | private String adoBody; 22 | 23 | // Opened state 24 | private String adoOpened; 25 | 26 | // Closed state 27 | private String adoClosed; 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/azure/Avatar.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.azure; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "href" 11 | }) 12 | public class Avatar { 13 | 14 | @JsonProperty("href") 15 | private String href; 16 | 17 | @JsonProperty("href") 18 | public String getHref() { 19 | return href; 20 | } 21 | 22 | @JsonProperty("href") 23 | public void setHref(String href) { 24 | this.href = href; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/azure/Collection.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.azure; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "id", 11 | "baseUrl" 12 | }) 13 | public class Collection { 14 | 15 | @JsonProperty("id") 16 | private String id; 17 | @JsonProperty("baseUrl") 18 | private String baseUrl; 19 | 20 | @JsonProperty("id") 21 | public String getId() { 22 | return id; 23 | } 24 | 25 | @JsonProperty("id") 26 | public void setId(String id) { 27 | this.id = id; 28 | } 29 | 30 | @JsonProperty("baseUrl") 31 | public String getBaseUrl() { 32 | return baseUrl; 33 | } 34 | 35 | @JsonProperty("baseUrl") 36 | public void setBaseUrl(String baseUrl) { 37 | this.baseUrl = baseUrl; 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/azure/CommentAuthor.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.azure; 2 | 3 | import com.fasterxml.jackson.annotation.*; 4 | 5 | @JsonIgnoreProperties(ignoreUnknown = true) 6 | public class CommentAuthor { 7 | 8 | @JsonProperty("displayName") 9 | private String displayName; 10 | 11 | @JsonProperty("displayName") 12 | public String getDisplayName() { 13 | return displayName; 14 | } 15 | 16 | @JsonProperty("displayName") 17 | public void setDisplayName(String displayName){ 18 | this.displayName=displayName; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/azure/CommentSelf.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.azure; 2 | 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | 7 | @JsonInclude(JsonInclude.Include.NON_NULL) 8 | 9 | public class CommentSelf { 10 | 11 | @JsonProperty("href") 12 | private String href; 13 | 14 | @JsonProperty("href") 15 | public void setHref(String href){ 16 | this.href=href; 17 | } 18 | 19 | @JsonProperty("href") 20 | public String getHref(){ 21 | return href; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/azure/Commits.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.azure; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "href" 11 | }) 12 | public class Commits { 13 | 14 | @JsonProperty("href") 15 | private String href; 16 | 17 | @JsonProperty("href") 18 | public String getHref() { 19 | return href; 20 | } 21 | 22 | @JsonProperty("href") 23 | public void setHref(String href) { 24 | this.href = href; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/azure/ConsumerInputs.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.azure; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @Builder 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class ConsumerInputs { 13 | private String httpHeaders; 14 | private String url; 15 | } -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/azure/Links.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.azure; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "avatar" 11 | }) 12 | public class Links { 13 | 14 | @JsonProperty("avatar") 15 | private Avatar avatar; 16 | 17 | @JsonProperty("avatar") 18 | public Avatar getAvatar() { 19 | return avatar; 20 | } 21 | 22 | @JsonProperty("avatar") 23 | public void setAvatar(Avatar avatar) { 24 | this.avatar = avatar; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/azure/PRCommentEvent.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.azure; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import com.fasterxml.jackson.annotation.JsonProperty; 5 | 6 | @JsonInclude(JsonInclude.Include.NON_NULL) 7 | public class PRCommentEvent extends PullEvent{ 8 | @JsonProperty("resource") 9 | private ResourceComment resource; 10 | 11 | @JsonProperty("resource") 12 | public void setResource(ResourceComment resource){ 13 | this.resource=resource; 14 | } 15 | @JsonProperty("resource") 16 | public ResourceComment getResource(){ 17 | return resource; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/azure/PRCreatedEvent.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.azure; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import com.fasterxml.jackson.annotation.JsonProperty; 5 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 6 | import com.fasterxml.jackson.annotation.JsonTypeName; 7 | 8 | /**This PRCreated Event is used for the create and Update PR event as they consist of same JSON structure 9 | */ 10 | 11 | @JsonInclude(JsonInclude.Include.NON_NULL) 12 | public class PRCreatedEvent extends PullEvent{ 13 | @JsonProperty("resource") 14 | private Resource resource; 15 | 16 | @JsonProperty("resource") 17 | public void setResource(Resource resource){ 18 | this.resource=resource; 19 | } 20 | @JsonProperty("resource") 21 | public Resource getResource(){ 22 | return resource; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/azure/Project_.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.azure; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "id", 11 | "baseUrl" 12 | }) 13 | public class Project_ { 14 | 15 | @JsonProperty("id") 16 | private String id; 17 | @JsonProperty("baseUrl") 18 | private String baseUrl; 19 | 20 | @JsonProperty("id") 21 | public String getId() { 22 | return id; 23 | } 24 | 25 | @JsonProperty("id") 26 | public void setId(String id) { 27 | this.id = id; 28 | } 29 | 30 | @JsonProperty("baseUrl") 31 | public String getBaseUrl() { 32 | return baseUrl; 33 | } 34 | 35 | @JsonProperty("baseUrl") 36 | public void setBaseUrl(String baseUrl) { 37 | this.baseUrl = baseUrl; 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/azure/PublisherInputs.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.azure; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | @Data 9 | @Builder 10 | @NoArgsConstructor 11 | @AllArgsConstructor 12 | public class PublisherInputs { 13 | private String projectId; 14 | } -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/azure/Pusher.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.azure; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "href" 11 | }) 12 | public class Pusher { 13 | 14 | @JsonProperty("href") 15 | private String href; 16 | 17 | @JsonProperty("href") 18 | public String getHref() { 19 | return href; 20 | } 21 | 22 | @JsonProperty("href") 23 | public void setHref(String href) { 24 | this.href = href; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/azure/Refs.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.azure; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "href" 11 | }) 12 | public class Refs { 13 | 14 | @JsonProperty("href") 15 | private String href; 16 | 17 | @JsonProperty("href") 18 | public String getHref() { 19 | return href; 20 | } 21 | 22 | @JsonProperty("href") 23 | public void setHref(String href) { 24 | this.href = href; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/azure/Repository_.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.azure; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "href" 11 | }) 12 | public class Repository_ { 13 | 14 | @JsonProperty("href") 15 | private String href; 16 | 17 | @JsonProperty("href") 18 | public String getHref() { 19 | return href; 20 | } 21 | 22 | @JsonProperty("href") 23 | public void setHref(String href) { 24 | this.href = href; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/azure/Self.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.azure; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "href" 11 | }) 12 | public class Self { 13 | 14 | @JsonProperty("href") 15 | private String href; 16 | 17 | @JsonProperty("href") 18 | public String getHref() { 19 | return href; 20 | } 21 | 22 | @JsonProperty("href") 23 | public void setHref(String href) { 24 | this.href = href; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/azure/Statuses.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.azure; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "href" 11 | }) 12 | public class Statuses { 13 | 14 | @JsonProperty("href") 15 | private String href; 16 | 17 | @JsonProperty("href") 18 | public String getHref() { 19 | return href; 20 | } 21 | 22 | @JsonProperty("href") 23 | public void setHref(String href) { 24 | this.href = href; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/azure/Subscription.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.azure; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | 5 | import lombok.AllArgsConstructor; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.NoArgsConstructor; 9 | 10 | @JsonInclude(JsonInclude.Include.NON_NULL) 11 | @Data 12 | @NoArgsConstructor 13 | @AllArgsConstructor 14 | @Builder 15 | public class Subscription { 16 | private String consumerActionId; 17 | private String consumerId; 18 | private ConsumerInputs consumerInputs; 19 | private String eventType; 20 | private String publisherId; 21 | private PublisherInputs publisherInputs; 22 | private String resourceVersion; 23 | private Integer scope; 24 | } -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/azure/Thread.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.azure; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import com.fasterxml.jackson.annotation.JsonProperty; 5 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 6 | 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | public class Thread { 10 | 11 | @JsonProperty("href") 12 | private String href; 13 | 14 | @JsonProperty("href") 15 | public void setHref(String href){ 16 | this.href=href; 17 | } 18 | 19 | @JsonProperty("href") 20 | public String getHref(){ 21 | return href; 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/azure/Web.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.azure; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "href" 11 | }) 12 | public class Web { 13 | 14 | @JsonProperty("href") 15 | private String href; 16 | 17 | @JsonProperty("href") 18 | public String getHref() { 19 | return href; 20 | } 21 | 22 | @JsonProperty("href") 23 | public void setHref(String href) { 24 | this.href = href; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucket/Activity.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.bitbucket; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "href" 11 | }) 12 | public class Activity { 13 | 14 | @JsonProperty("href") 15 | private String href; 16 | 17 | @JsonProperty("href") 18 | public String getHref() { 19 | return href; 20 | } 21 | 22 | @JsonProperty("href") 23 | public void setHref(String href) { 24 | this.href = href; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucket/Approve.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.bitbucket; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "href" 11 | }) 12 | public class Approve { 13 | 14 | @JsonProperty("href") 15 | private String href; 16 | 17 | @JsonProperty("href") 18 | public String getHref() { 19 | return href; 20 | } 21 | 22 | @JsonProperty("href") 23 | public void setHref(String href) { 24 | this.href = href; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucket/Avatar.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.bitbucket; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "href" 11 | }) 12 | public class Avatar { 13 | 14 | @JsonProperty("href") 15 | private String href; 16 | 17 | @JsonProperty("href") 18 | public String getHref() { 19 | return href; 20 | } 21 | 22 | @JsonProperty("href") 23 | public void setHref(String href) { 24 | this.href = href; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucket/Branch.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.bitbucket; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "name" 11 | }) 12 | public class Branch { 13 | 14 | @JsonProperty("name") 15 | private String name; 16 | 17 | @JsonProperty("name") 18 | public String getName() { 19 | return name; 20 | } 21 | 22 | @JsonProperty("name") 23 | public void setName(String name) { 24 | this.name = name; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucket/Comments.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.bitbucket; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "href" 11 | }) 12 | public class Comments { 13 | 14 | @JsonProperty("href") 15 | private String href; 16 | 17 | @JsonProperty("href") 18 | public String getHref() { 19 | return href; 20 | } 21 | 22 | @JsonProperty("href") 23 | public void setHref(String href) { 24 | this.href = href; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucket/Commits.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.bitbucket; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "href" 11 | }) 12 | public class Commits { 13 | 14 | @JsonProperty("href") 15 | private String href; 16 | 17 | @JsonProperty("href") 18 | public String getHref() { 19 | return href; 20 | } 21 | 22 | @JsonProperty("href") 23 | public void setHref(String href) { 24 | this.href = href; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucket/Decline.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.bitbucket; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "href" 11 | }) 12 | public class Decline { 13 | 14 | @JsonProperty("href") 15 | private String href; 16 | 17 | @JsonProperty("href") 18 | public String getHref() { 19 | return href; 20 | } 21 | 22 | @JsonProperty("href") 23 | public void setHref(String href) { 24 | this.href = href; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucket/Diff.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.bitbucket; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "href" 11 | }) 12 | public class Diff { 13 | 14 | @JsonProperty("href") 15 | private String href; 16 | 17 | @JsonProperty("href") 18 | public String getHref() { 19 | return href; 20 | } 21 | 22 | @JsonProperty("href") 23 | public void setHref(String href) { 24 | this.href = href; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucket/History.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.bitbucket; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import com.fasterxml.jackson.annotation.JsonProperty; 5 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 6 | 7 | @JsonInclude(JsonInclude.Include.NON_NULL) 8 | @JsonPropertyOrder({ 9 | "href" 10 | }) 11 | public class History { 12 | 13 | @JsonProperty("href") 14 | private String href; 15 | 16 | @JsonProperty("href") 17 | public String getHref() { 18 | return href; 19 | } 20 | 21 | @JsonProperty("href") 22 | public void setHref(String href) { 23 | this.href = href; 24 | } 25 | 26 | } -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucket/Html.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.bitbucket; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "href" 11 | }) 12 | public class Html { 13 | 14 | @JsonProperty("href") 15 | private String href; 16 | 17 | @JsonProperty("href") 18 | public String getHref() { 19 | return href; 20 | } 21 | 22 | @JsonProperty("href") 23 | public void setHref(String href) { 24 | this.href = href; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucket/Merge.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.bitbucket; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "href" 11 | }) 12 | public class Merge { 13 | 14 | @JsonProperty("href") 15 | private String href; 16 | 17 | @JsonProperty("href") 18 | public String getHref() { 19 | return href; 20 | } 21 | 22 | @JsonProperty("href") 23 | public void setHref(String href) { 24 | this.href = href; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucket/MergeCommit.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.bitbucket; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "hash", 11 | "links" 12 | }) 13 | public class MergeCommit { 14 | 15 | @JsonProperty("hash") 16 | private String hash; 17 | @JsonProperty("links") 18 | private Links links; 19 | 20 | @JsonProperty("hash") 21 | public String getHash() { 22 | return hash; 23 | } 24 | 25 | @JsonProperty("hash") 26 | public void setHash(String hash) { 27 | this.hash = hash; 28 | } 29 | 30 | @JsonProperty("links") 31 | public Links getLinks() { 32 | return links; 33 | } 34 | 35 | @JsonProperty("links") 36 | public void setLinks(Links links) { 37 | this.links = links; 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucket/Meta.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.bitbucket; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import com.fasterxml.jackson.annotation.JsonProperty; 5 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 6 | 7 | @JsonInclude(JsonInclude.Include.NON_NULL) 8 | @JsonPropertyOrder({ 9 | "href" 10 | }) 11 | public class Meta { 12 | 13 | @JsonProperty("href") 14 | private String href; 15 | 16 | @JsonProperty("href") 17 | public String getHref() { 18 | return href; 19 | } 20 | 21 | @JsonProperty("href") 22 | public void setHref(String href) { 23 | this.href = href; 24 | } 25 | 26 | } -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucket/Patch.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.bitbucket; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "href" 11 | }) 12 | public class Patch { 13 | 14 | @JsonProperty("href") 15 | private String href; 16 | 17 | @JsonProperty("href") 18 | public String getHref() { 19 | return href; 20 | } 21 | 22 | @JsonProperty("href") 23 | public void setHref(String href) { 24 | this.href = href; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucket/Push.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.bitbucket; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | import java.util.List; 9 | 10 | @JsonInclude(JsonInclude.Include.NON_NULL) 11 | @JsonPropertyOrder({ 12 | "changes" 13 | }) 14 | public class Push { 15 | 16 | @JsonProperty("changes") 17 | private List changes = null; 18 | 19 | @JsonProperty("changes") 20 | public List getChanges() { 21 | return changes; 22 | } 23 | 24 | @JsonProperty("changes") 25 | public void setChanges(List changes) { 26 | this.changes = changes; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucket/Self.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.bitbucket; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "href" 11 | }) 12 | public class Self { 13 | 14 | @JsonProperty("href") 15 | private String href; 16 | 17 | @JsonProperty("href") 18 | public String getHref() { 19 | return href; 20 | } 21 | 22 | @JsonProperty("href") 23 | public void setHref(String href) { 24 | this.href = href; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucket/Statuses.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.bitbucket; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "href" 11 | }) 12 | public class Statuses { 13 | 14 | @JsonProperty("href") 15 | private String href; 16 | 17 | @JsonProperty("href") 18 | public String getHref() { 19 | return href; 20 | } 21 | 22 | @JsonProperty("href") 23 | public void setHref(String href) { 24 | this.href = href; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucketserver/Clone.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.bitbucketserver; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "href", 11 | "name" 12 | }) 13 | public class Clone { 14 | 15 | @JsonProperty("href") 16 | private String href; 17 | @JsonProperty("name") 18 | private String name; 19 | 20 | @JsonProperty("href") 21 | public String getHref() { 22 | return href; 23 | } 24 | 25 | @JsonProperty("href") 26 | public void setHref(String href) { 27 | this.href = href; 28 | } 29 | 30 | @JsonProperty("name") 31 | public String getName() { 32 | return name; 33 | } 34 | 35 | @JsonProperty("name") 36 | public void setName(String name) { 37 | this.name = name; 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucketserver/Links.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.bitbucketserver; 3 | 4 | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; 5 | import com.fasterxml.jackson.annotation.JsonInclude; 6 | import com.fasterxml.jackson.annotation.JsonProperty; 7 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 8 | 9 | import java.util.List; 10 | 11 | @JsonIgnoreProperties(ignoreUnknown = true) 12 | @JsonInclude(JsonInclude.Include.NON_NULL) 13 | @JsonPropertyOrder({ 14 | "self" 15 | }) 16 | public class Links { 17 | 18 | @JsonProperty("self") 19 | private List self = null; 20 | 21 | @JsonProperty("self") 22 | public List getSelf() { 23 | return self; 24 | } 25 | 26 | @JsonProperty("self") 27 | public void setSelf(List self) { 28 | this.self = self; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucketserver/Links_.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.bitbucketserver; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | import java.util.List; 9 | 10 | @JsonInclude(JsonInclude.Include.NON_NULL) 11 | @JsonPropertyOrder({ 12 | "self" 13 | }) 14 | public class Links_ { 15 | 16 | @JsonProperty("self") 17 | private List self = null; 18 | 19 | @JsonProperty("self") 20 | public List getSelf() { 21 | return self; 22 | } 23 | 24 | @JsonProperty("self") 25 | public void setSelf(List self) { 26 | this.self = self; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucketserver/Self.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.bitbucketserver; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "href" 11 | }) 12 | public class Self { 13 | 14 | @JsonProperty("href") 15 | private String href; 16 | 17 | @JsonProperty("href") 18 | public String getHref() { 19 | return href; 20 | } 21 | 22 | @JsonProperty("href") 23 | public void setHref(String href) { 24 | this.href = href; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucketserver/Self_.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.bitbucketserver; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "href" 11 | }) 12 | public class Self_ { 13 | 14 | @JsonProperty("href") 15 | private String href; 16 | 17 | @JsonProperty("href") 18 | public String getHref() { 19 | return href; 20 | } 21 | 22 | @JsonProperty("href") 23 | public void setHref(String href) { 24 | this.href = href; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucketserver/Self__.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.bitbucketserver; 3 | 4 | import com.fasterxml.jackson.annotation.JsonInclude; 5 | import com.fasterxml.jackson.annotation.JsonProperty; 6 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @JsonPropertyOrder({ 10 | "href" 11 | }) 12 | public class Self__ { 13 | 14 | @JsonProperty("href") 15 | private String href; 16 | 17 | @JsonProperty("href") 18 | public String getHref() { 19 | return href; 20 | } 21 | 22 | @JsonProperty("href") 23 | public void setHref(String href) { 24 | this.href = href; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucketserver/plugin/postwebhook/BitbucketPushChange.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.bitbucketserver.plugin.postwebhook; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import com.fasterxml.jackson.annotation.JsonProperty; 5 | 6 | import lombok.Getter; 7 | 8 | 9 | @JsonInclude(JsonInclude.Include.NON_NULL) 10 | @Getter 11 | public class BitbucketPushChange { 12 | 13 | private boolean created; 14 | private boolean closed; 15 | @JsonProperty("new") 16 | private State newState; 17 | @JsonProperty("old") 18 | private State oldState; 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucketserver/plugin/postwebhook/BitbucketPushDetail.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.bitbucketserver.plugin.postwebhook; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | 5 | import lombok.Getter; 6 | 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @Getter 10 | public class BitbucketPushDetail { 11 | 12 | private BitbucketPushChange[] changes; 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucketserver/plugin/postwebhook/BitbucketPushEvent.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.bitbucketserver.plugin.postwebhook; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | 5 | import lombok.Getter; 6 | 7 | @JsonInclude(JsonInclude.Include.NON_NULL) 8 | @Getter 9 | public class BitbucketPushEvent { 10 | private BitbucketServerRepositoryOwner actor; 11 | private BitbucketServerRepository repository; 12 | private BitbucketPushDetail push; 13 | private String[] branches; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucketserver/plugin/postwebhook/BitbucketServerBranch.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.bitbucketserver.plugin.postwebhook; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | 5 | import lombok.Getter; 6 | 7 | @JsonInclude(JsonInclude.Include.NON_NULL) 8 | @Getter 9 | public class BitbucketServerBranch { 10 | String name; 11 | String latestCommit; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucketserver/plugin/postwebhook/BitbucketServerCommit.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.bitbucketserver.plugin.postwebhook; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | 5 | import lombok.Getter; 6 | 7 | @JsonInclude(JsonInclude.Include.NON_NULL) 8 | @Getter 9 | public class BitbucketServerCommit { 10 | 11 | String message; 12 | String date; 13 | String hash; 14 | long authorTimestamp; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucketserver/plugin/postwebhook/BitbucketServerProject.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.bitbucketserver.plugin.postwebhook; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | 5 | import lombok.Getter; 6 | 7 | @JsonInclude(JsonInclude.Include.NON_NULL) 8 | @Getter 9 | public class BitbucketServerProject { 10 | String key; 11 | String name; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucketserver/plugin/postwebhook/BitbucketServerPullRequest.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.bitbucketserver.plugin.postwebhook; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | 5 | import lombok.Getter; 6 | 7 | @JsonInclude(JsonInclude.Include.NON_NULL) 8 | @Getter 9 | public class BitbucketServerPullRequest { 10 | 11 | String id; 12 | String title; 13 | String link; 14 | String authorLogin; 15 | BitbucketServerPullRequestSource fromRef; 16 | BitbucketServerPullRequestSource toRef; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucketserver/plugin/postwebhook/BitbucketServerPullRequestEvent.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.bitbucketserver.plugin.postwebhook; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | 5 | import lombok.Getter; 6 | 7 | @JsonInclude(JsonInclude.Include.NON_NULL) 8 | @Getter 9 | public class BitbucketServerPullRequestEvent { 10 | private BitbucketServerRepositoryOwner actor; 11 | private BitbucketServerPullRequest pullrequest; 12 | private BitbucketServerRepository repository; 13 | private String comment; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucketserver/plugin/postwebhook/BitbucketServerPullRequestSource.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.bitbucketserver.plugin.postwebhook; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | 5 | import lombok.Getter; 6 | 7 | @JsonInclude(JsonInclude.Include.NON_NULL) 8 | @Getter 9 | public class BitbucketServerPullRequestSource { 10 | String latestCommit; 11 | String displayId; 12 | BitbucketServerRepository repository; 13 | BitbucketServerBranch branch; 14 | BitbucketServerCommit commit; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucketserver/plugin/postwebhook/BitbucketServerRepository.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.bitbucketserver.plugin.postwebhook; 2 | 3 | import java.util.List; 4 | import java.util.Map; 5 | 6 | import com.fasterxml.jackson.annotation.JsonInclude; 7 | import com.fasterxml.jackson.annotation.JsonProperty; 8 | 9 | import lombok.Getter; 10 | 11 | @JsonInclude(JsonInclude.Include.NON_NULL) 12 | @Getter 13 | public class BitbucketServerRepository { 14 | String scmId; 15 | BitbucketServerProject project; 16 | String slug; 17 | Map> links; 18 | @JsonProperty("public") 19 | boolean isPublic; 20 | String fullName; 21 | BitbucketServerRepositoryOwner owner; 22 | String ownerName; 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucketserver/plugin/postwebhook/BitbucketServerRepositoryOwner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.bitbucketserver.plugin.postwebhook; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | 5 | import lombok.Getter; 6 | 7 | @JsonInclude(JsonInclude.Include.NON_NULL) 8 | @Getter 9 | public class BitbucketServerRepositoryOwner { 10 | private String username; 11 | private String displayName; 12 | private String emailAddress; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucketserver/plugin/postwebhook/Link.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.bitbucketserver.plugin.postwebhook; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | 5 | import lombok.Getter; 6 | 7 | @JsonInclude(JsonInclude.Include.NON_NULL) 8 | @Getter 9 | public class Link { 10 | private String href; 11 | private String name; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucketserver/plugin/postwebhook/State.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.bitbucketserver.plugin.postwebhook; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | 5 | import lombok.Getter; 6 | 7 | 8 | @JsonInclude(JsonInclude.Include.NON_NULL) 9 | @Getter 10 | public class State { 11 | 12 | private String type; 13 | private String name; 14 | private Target target; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/bitbucketserver/plugin/postwebhook/Target.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.bitbucketserver.plugin.postwebhook; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | 5 | import lombok.Getter; 6 | 7 | @JsonInclude(JsonInclude.Include.NON_NULL) 8 | @Getter 9 | public class Target { 10 | 11 | private String type; 12 | private String hash; 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/github/DeleteEvent.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.dto.github; 3 | 4 | import com.fasterxml.jackson.annotation.*; 5 | 6 | @JsonIgnoreProperties 7 | @JsonInclude(JsonInclude.Include.NON_NULL) 8 | public class DeleteEvent extends EventCommon { 9 | 10 | @JsonProperty("ref") 11 | private String ref; 12 | @JsonProperty("ref_type") 13 | private String ref_type; 14 | 15 | @JsonProperty("ref") 16 | public String getRef() { 17 | return ref; 18 | } 19 | 20 | @JsonProperty("ref") 21 | public void setRef(String ref) { 22 | this.ref = ref; 23 | } 24 | 25 | @JsonProperty("ref_type") 26 | public String getRefType() { 27 | return ref_type; 28 | } 29 | 30 | @JsonProperty("ref_type") 31 | public void setRefType(String ref_type) { 32 | this.ref_type = ref_type; 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/github/IssueStatus.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.github; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.util.Map; 9 | 10 | @Data 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | @Builder 14 | public class IssueStatus { 15 | 16 | private String openFalsePositiveLinesAsADescription; 17 | private Map sastResolvedIssuesFromResults; // key is code line, e.g. '60' and value is the code snippet, e.g. 'password = txtPassword.Text' 18 | private int totalOpenLinesForIssueBeforeFixing; 19 | private int totalResolvedFalsePositiveLines; 20 | private int totalResolvedLinesFromResults; 21 | private int totalLinesToFixLeft; 22 | 23 | } -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/gitlab/Changes.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.gitlab; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import com.fasterxml.jackson.annotation.JsonProperty; 5 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 6 | 7 | @JsonInclude(JsonInclude.Include.NON_NULL) 8 | @JsonPropertyOrder({ 9 | "last_edited_at", 10 | "title", 11 | "updated_at" 12 | }) 13 | public class Changes { 14 | 15 | @JsonProperty("title") 16 | private Title title; 17 | 18 | @JsonProperty("title") 19 | public Title getTitle() { 20 | return title; 21 | } 22 | 23 | @JsonProperty("title") 24 | public void setTitle(Title title) { 25 | this.title = title; 26 | } 27 | 28 | } -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/gitlab/Comment.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.gitlab; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import com.fasterxml.jackson.annotation.JsonProperty; 5 | import lombok.AllArgsConstructor; 6 | import lombok.Data; 7 | import lombok.NoArgsConstructor; 8 | 9 | @JsonInclude(JsonInclude.Include.NON_NULL) 10 | @Data 11 | @AllArgsConstructor 12 | @NoArgsConstructor 13 | public class Comment { 14 | 15 | private long id; 16 | private String body; 17 | @JsonProperty("created_at") 18 | private String createdAt; 19 | @JsonProperty("updated_at") 20 | private String updatedAt; 21 | } -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/iast/common/model/agent/ProgrammingLanguage.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.iast.common.model.agent; 2 | 3 | import java.io.Serializable; 4 | 5 | public enum ProgrammingLanguage implements Serializable { 6 | JAVA, 7 | NODE_JS, 8 | C_SHARP 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/iast/common/model/enums/ManagementResultState.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.iast.common.model.enums; 2 | 3 | import lombok.Getter; 4 | 5 | import java.io.Serializable; 6 | 7 | public enum ManagementResultState implements Serializable { 8 | TO_VERIFY("To Verify"), 9 | CONFIRMED("Confirmed"), 10 | SUSPICIOUS("Suspicious"), 11 | NOT_A_PROBLEM("Not a Problem"), 12 | REMEDIATED("Remediated"); 13 | 14 | @Getter 15 | private final String displayName; 16 | 17 | ManagementResultState(String displayName) { 18 | this.displayName = displayName; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/iast/common/model/enums/QueryDisplayType.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.iast.common.model.enums; 2 | 3 | import java.io.Serializable; 4 | 5 | public enum QueryDisplayType implements Serializable { 6 | SHOW_ALL_VECTORS, 7 | REQUEST, 8 | RESPONSE, 9 | SINK, 10 | SIMPLE, 11 | SINK_FORMATTED, 12 | RESPONSE_FORMATTED, 13 | REQUEST_FORMATTED; 14 | 15 | private static final String FORMATTED_SUFFIX = "_FORMATTED"; 16 | 17 | public static QueryDisplayType toDisplayType(QueryDisplayType type) { 18 | final String name = type.name(); 19 | 20 | if (name.endsWith(FORMATTED_SUFFIX)) { 21 | return QueryDisplayType.valueOf(name.replace(FORMATTED_SUFFIX, "")); 22 | } 23 | return type; 24 | } 25 | 26 | public boolean isFormatted() { 27 | return this.name().endsWith(FORMATTED_SUFFIX); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/iast/manager/dal/entity/InstantAttributeConverter.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.iast.manager.dal.entity; 2 | 3 | import javax.persistence.AttributeConverter; 4 | import javax.persistence.Converter; 5 | import java.sql.Timestamp; 6 | import java.time.Instant; 7 | 8 | @Converter(autoApply = true) 9 | public class InstantAttributeConverter implements AttributeConverter { 10 | 11 | @Override 12 | public Timestamp convertToDatabaseColumn(Instant instant) { 13 | return instant == null ? null : Timestamp.from(instant); 14 | } 15 | 16 | @Override 17 | public Instant convertToEntityAttribute(Timestamp sqlTimestamp) { 18 | return sqlTimestamp == null ? null : sqlTimestamp.toInstant(); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/iast/manager/dto/ConnectionResultsDetails.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.iast.manager.dto; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.time.Instant; 9 | 10 | @Data 11 | @NoArgsConstructor 12 | @AllArgsConstructor 13 | @Builder 14 | public class ConnectionResultsDetails { 15 | 16 | private String domain; // remote connection 17 | 18 | private Integer port; 19 | 20 | private String path; 21 | 22 | private int vectorId; 23 | 24 | private Instant firstDetectionTime; 25 | } 26 | 27 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/iast/manager/dto/Page.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.iast.manager.dto; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.List; 6 | 7 | @Data 8 | public class Page { 9 | public static final String PAGE_NUMBER_PARAM_DESCRIPTION = "The page number inside the pagination - starts from 0"; 10 | public static final String PAGE_SIZE_PARAM_DESCRIPTION = 11 | "The size of the page - the maximum number of items in the requested page"; 12 | 13 | private int pageNumber; 14 | private int pageSize; 15 | private int totalPages; 16 | 17 | private List content; 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/iast/manager/dto/ResolutionStatus.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.iast.manager.dto; 2 | 3 | 4 | import com.fasterxml.jackson.annotation.JsonCreator; 5 | import com.fasterxml.jackson.annotation.JsonValue; 6 | 7 | import java.util.HashMap; 8 | import java.util.Map; 9 | 10 | public enum ResolutionStatus { 11 | 12 | NOT_RESOLVED(0), RESOLVED(1); 13 | 14 | private static final Map MAP = new HashMap<>(); 15 | 16 | static { 17 | for (ResolutionStatus status : ResolutionStatus.values()) { 18 | MAP.put(status.toValue(), status); 19 | } 20 | } 21 | 22 | private final int val; 23 | 24 | ResolutionStatus(int val) { 25 | this.val = val; 26 | } 27 | 28 | @JsonValue 29 | public int toValue() { 30 | return val; 31 | } 32 | 33 | @JsonCreator 34 | public static ResolutionStatus fromValue(Integer val) { 35 | return MAP.get(val); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/iast/manager/dto/RunningScanAggregation.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.iast.manager.dto; 2 | 3 | 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import lombok.NoArgsConstructor; 7 | 8 | 9 | @EqualsAndHashCode(callSuper = true) 10 | @Data 11 | @NoArgsConstructor 12 | public class RunningScanAggregation extends Scan { 13 | /** 14 | * count of running scans for the project (multiple agents) 15 | */ 16 | private int aggregationCount; 17 | 18 | 19 | public RunningScanAggregation(Long projectId, String projectName) { 20 | setProjectId(projectId); 21 | setProjectName(projectName); 22 | } 23 | 24 | @Override 25 | public Integer getState() { 26 | return ScanState.STATE_RUNNING.getStateNum(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/iast/manager/dto/ScanState.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.iast.manager.dto; 2 | 3 | import lombok.Getter; 4 | 5 | @Getter 6 | public enum ScanState { 7 | STATE_RUNNING(1), 8 | STATE_FINISHING(3), 9 | STATE_COMPLETED(2); 10 | 11 | private int stateNum; 12 | 13 | ScanState(int stateNum) { 14 | this.stateNum = stateNum; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/iast/manager/dto/ScanVulnerabilities.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.iast.manager.dto; 2 | 3 | 4 | import lombok.*; 5 | 6 | import java.util.List; 7 | 8 | @Data 9 | @NoArgsConstructor 10 | @AllArgsConstructor 11 | @Builder 12 | public class ScanVulnerabilities { 13 | private long projectId; 14 | 15 | private Long scanId; 16 | 17 | @Singular 18 | private List vulnerabilities; 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/iast/manager/dto/description/CodeSample.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.iast.manager.dto.description; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | /** 9 | * @author Yevgeny Kuznetsov 10 | * @since 3.6, 20 May 2020 11 | **/ 12 | @Data 13 | @NoArgsConstructor 14 | @AllArgsConstructor 15 | @Builder 16 | public class CodeSample { 17 | 18 | private String title; 19 | 20 | private String sourceCodeExample; 21 | 22 | private String programmingLanguage; 23 | 24 | private Boolean vulnerable; 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/iast/manager/dto/description/VulnerabilityDescription.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.iast.manager.dto.description; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Builder; 5 | import lombok.Data; 6 | import lombok.NoArgsConstructor; 7 | 8 | import java.util.List; 9 | 10 | /** 11 | * @author Yevgeny Kuznetsov 12 | * @since 3.6, 20 May 2020 13 | **/ 14 | @Data 15 | @NoArgsConstructor 16 | @AllArgsConstructor 17 | @Builder 18 | public class VulnerabilityDescription { 19 | 20 | private Integer id; 21 | 22 | private String language; 23 | 24 | private String name; 25 | 26 | private String resultDescription; 27 | 28 | private String risk; 29 | 30 | private String cause; 31 | 32 | private String generalRecommendations; 33 | 34 | private String insertDate; 35 | 36 | private List codeSample; 37 | 38 | private String cwe; 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/iast/manager/dto/projects/groups/ProjectGroupBase.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.iast.manager.dto.projects.groups; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.NoArgsConstructor; 6 | import lombok.experimental.SuperBuilder; 7 | 8 | import jakarta.validation.constraints.NotEmpty; 9 | import jakarta.validation.constraints.Pattern; 10 | import jakarta.validation.constraints.Size; 11 | 12 | @Data 13 | @NoArgsConstructor 14 | @AllArgsConstructor 15 | @SuperBuilder 16 | public class ProjectGroupBase { 17 | 18 | @Pattern(regexp = "^[a-zA-Z][a-zA-Z0-9_]*$") 19 | @NotEmpty 20 | @Size(min = 1, max = 64) 21 | protected String projectGroupName; 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/iast/manager/dto/projects/groups/ProjectGroupData.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.iast.manager.dto.projects.groups; 2 | 3 | import lombok.AllArgsConstructor; 4 | import lombok.Data; 5 | import lombok.EqualsAndHashCode; 6 | import lombok.NoArgsConstructor; 7 | import lombok.experimental.SuperBuilder; 8 | 9 | /** 10 | * @author Yevgeny Kuznetsov 11 | * @since 3.4, 21 November 2019 12 | **/ 13 | @Data 14 | @EqualsAndHashCode(callSuper = true) 15 | @NoArgsConstructor 16 | @AllArgsConstructor 17 | @SuperBuilder 18 | public class ProjectGroupData extends ProjectGroupBase { 19 | private Long projectGroupId; 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/iast/ql/utils/Severity.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.iast.ql.utils; 2 | 3 | import com.fasterxml.jackson.annotation.JsonCreator; 4 | import com.fasterxml.jackson.annotation.JsonValue; 5 | 6 | public enum Severity { 7 | INFO, 8 | LOW, 9 | MEDIUM, 10 | HIGH; 11 | 12 | @JsonValue 13 | public int toValue() { 14 | return ordinal(); 15 | } 16 | 17 | @JsonCreator 18 | public static Severity fromValue(Integer val) { 19 | return values()[val]; 20 | } 21 | 22 | public String getName() { 23 | String name = this.toString().toLowerCase(); 24 | return name.substring(0, 1).toUpperCase() + name.substring(1); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/report/GetResultsReport.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/src/main/java/com/checkmarx/flow/dto/report/GetResultsReport.java -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/dto/servicenow/Result.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.dto.servicenow; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import com.fasterxml.jackson.annotation.JsonProperty; 5 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 6 | import com.google.common.collect.Lists; 7 | 8 | import java.util.List; 9 | 10 | @JsonInclude(JsonInclude.Include.NON_NULL) 11 | @JsonPropertyOrder({ 12 | "result" 13 | }) 14 | public class Result { 15 | @JsonProperty("result") 16 | private List incidents = Lists.newArrayList(); 17 | 18 | @JsonProperty("result") 19 | public List getIncidents() { 20 | return incidents; 21 | } 22 | 23 | @JsonProperty("result") 24 | public void setIncidents(List incidents) { 25 | this.incidents = incidents; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/exception/ADOClientException.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | 4 | public class ADOClientException extends MachinaException { 5 | public ADOClientException() { 6 | } 7 | 8 | public ADOClientException(String message) { 9 | super(message); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/exception/BitBucketClientException.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | 4 | public class BitBucketClientException extends MachinaException { 5 | public BitBucketClientException() { 6 | } 7 | 8 | public BitBucketClientException(String message) { 9 | super(message); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/exception/CheckmarxLegacyException.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | public class CheckmarxLegacyException extends Exception { 4 | public CheckmarxLegacyException(String message) { 5 | super(message); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/exception/ExitThrowable.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | import com.checkmarx.flow.dto.ExitCode; 4 | 5 | public class ExitThrowable extends Throwable { 6 | 7 | private final int exitCode; 8 | 9 | public static void exit(int exitCode) throws ExitThrowable { 10 | throw new ExitThrowable(exitCode); 11 | } 12 | 13 | public static void exit(ExitCode code) throws ExitThrowable { 14 | exit(code.getValue()); 15 | } 16 | 17 | public ExitThrowable(int exitCode) { 18 | super("Exit Code:" + exitCode); 19 | this.exitCode = exitCode; 20 | } 21 | 22 | public int getExitCode() { 23 | return exitCode; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/exception/GitHubClientException.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | 4 | public class GitHubClientException extends MachinaException { 5 | public GitHubClientException() { 6 | } 7 | 8 | public GitHubClientException(String message) { 9 | super(message); 10 | } 11 | 12 | public GitHubClientException(String message, Throwable t) { 13 | super(message, t); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/exception/GitHubClientRunTimeException.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | public class GitHubClientRunTimeException extends RuntimeException { 4 | 5 | public GitHubClientRunTimeException() { 6 | } 7 | 8 | public GitHubClientRunTimeException(String message) { 9 | super(message); 10 | } 11 | 12 | public GitHubClientRunTimeException(String message, Throwable cause) { 13 | super(message, cause); 14 | } 15 | } -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/exception/GitHubRepoUnavailableException.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | public class GitHubRepoUnavailableException extends RuntimeException { 4 | 5 | public GitHubRepoUnavailableException() { 6 | } 7 | 8 | public GitHubRepoUnavailableException(String message) { 9 | super(message); 10 | } 11 | 12 | public GitHubRepoUnavailableException(String message, Throwable cause) { 13 | super(message, cause); 14 | } 15 | } -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/exception/GitLabClientException.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | 4 | public class GitLabClientException extends MachinaException { 5 | public GitLabClientException() { 6 | } 7 | 8 | public GitLabClientException(String message) { 9 | super(message); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/exception/GitLabClientRuntimeException.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | import org.springframework.http.HttpStatus; 4 | import org.springframework.web.bind.annotation.ResponseStatus; 5 | 6 | 7 | @ResponseStatus(value = HttpStatus.BAD_REQUEST, reason = "Error communicating with GitLab API") 8 | public class GitLabClientRuntimeException extends RuntimeException { 9 | 10 | public GitLabClientRuntimeException() { 11 | 12 | } 13 | 14 | public GitLabClientRuntimeException(String message, Throwable cause) { 15 | super(message, cause); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/exception/IastBugTrackerClientException.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | public class IastBugTrackerClientException extends RuntimeException { 4 | public IastBugTrackerClientException(String msg) { 5 | super(msg); 6 | } 7 | 8 | public IastBugTrackerClientException(String msg, Exception e) { 9 | super(msg, e); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/exception/IastIssueNotCreatedException.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | public class IastIssueNotCreatedException extends RuntimeException { 4 | public IastIssueNotCreatedException(String msg, Exception e) { 5 | super(msg, e); 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/exception/IastPropertiesNotSetupException.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | public class IastPropertiesNotSetupException extends RuntimeException { 4 | public IastPropertiesNotSetupException(String errorMsg) { 5 | super(errorMsg); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/exception/IastScanRequestMustProvideException.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | public class IastScanRequestMustProvideException extends RuntimeException { 4 | public IastScanRequestMustProvideException(String msgError) { 5 | super(msgError); 6 | } 7 | 8 | public IastScanRequestMustProvideException(String msgError, Exception e) { 9 | super(msgError, e); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/exception/IastThatPropertiesIsRequiredException.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | public class IastThatPropertiesIsRequiredException extends RuntimeException { 4 | public IastThatPropertiesIsRequiredException(String msg) { 5 | super(msg); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/exception/IastThresholdsSeverityException.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | import org.springframework.http.HttpStatus; 4 | import org.springframework.web.bind.annotation.ResponseStatus; 5 | 6 | @ResponseStatus(value = HttpStatus.PRECONDITION_FAILED, reason = "Thresholds Severity") 7 | public class IastThresholdsSeverityException extends RuntimeException { 8 | public IastThresholdsSeverityException(String s) { 9 | super(s); 10 | } 11 | 12 | public IastThresholdsSeverityException() { 13 | super(); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/exception/IastValidationScanTagFailedException.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | public class IastValidationScanTagFailedException extends RuntimeException { 4 | public IastValidationScanTagFailedException(String msgError) { 5 | super(msgError); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/exception/InvalidCredentialsException.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | import org.springframework.http.HttpStatus; 4 | import org.springframework.web.bind.annotation.ResponseStatus; 5 | 6 | @ResponseStatus(value = HttpStatus.FORBIDDEN, reason = "Invalid Credentials") 7 | public class InvalidCredentialsException extends RuntimeException { 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/exception/InvalidTokenException.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | import org.springframework.http.HttpStatus; 4 | import org.springframework.web.bind.annotation.ResponseStatus; 5 | 6 | @ResponseStatus(value = HttpStatus.FORBIDDEN, reason = "Invalid Credentials") 7 | public class InvalidTokenException extends RuntimeException { 8 | 9 | public InvalidTokenException() { 10 | } 11 | 12 | public InvalidTokenException(String message) { 13 | super(message); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/exception/JiraClientException.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | public class JiraClientException extends MachinaException { 4 | public JiraClientException() { 5 | } 6 | 7 | public JiraClientException(String message) { 8 | super(message); 9 | } 10 | 11 | public JiraClientException(String message, Exception e) { 12 | super(message, e); 13 | } 14 | //TODO Step? 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/exception/JiraClientRunTimeException.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | public class JiraClientRunTimeException extends RuntimeException { 4 | 5 | public JiraClientRunTimeException() { 6 | } 7 | 8 | public JiraClientRunTimeException(String message) { 9 | super(message); 10 | } 11 | 12 | public JiraClientRunTimeException(String message, Throwable cause) { 13 | super(message, cause); 14 | } 15 | } -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/exception/MachinaRuntimeException.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | import org.springframework.http.HttpStatus; 4 | import org.springframework.web.bind.annotation.ResponseStatus; 5 | 6 | 7 | @ResponseStatus(value = HttpStatus.BAD_REQUEST, reason = "Error has occurred") 8 | public class MachinaRuntimeException extends RuntimeException { 9 | 10 | public MachinaRuntimeException() { 11 | } 12 | 13 | public MachinaRuntimeException(Throwable cause) { 14 | super(cause); 15 | } 16 | 17 | public MachinaRuntimeException(String message) { 18 | super(message); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/exception/PullRequestCommentUnknownException.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | public class PullRequestCommentUnknownException extends RuntimeException { 4 | public PullRequestCommentUnknownException(String message) { 5 | super(message); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/exception/ReposManagerException.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | public class ReposManagerException extends RuntimeException { 4 | 5 | public ReposManagerException(String message) { 6 | super(message); 7 | } 8 | 9 | public ReposManagerException(String message, Throwable cause) { 10 | super(message, cause); 11 | } 12 | } -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/exception/RequestValidationException.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | import org.springframework.http.HttpStatus; 4 | import org.springframework.web.bind.annotation.ResponseStatus; 5 | 6 | 7 | @ResponseStatus(value = HttpStatus.BAD_REQUEST, reason = "Request validation failed") 8 | public class RequestValidationException extends RuntimeException { 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/gitdashboardnewver/SCA/Signature.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.gitdashboardnewver.SCA; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import com.fasterxml.jackson.annotation.JsonProperty; 5 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.Getter; 9 | import lombok.Setter; 10 | 11 | @JsonInclude(JsonInclude.Include.NON_NULL) 12 | @JsonPropertyOrder({ 13 | 14 | }) 15 | 16 | @Data 17 | @Builder 18 | public class Signature { 19 | 20 | @JsonProperty("algorithm") 21 | @Getter 22 | @Setter 23 | @Builder.Default 24 | private String algo="SCA-Algorithm"; 25 | 26 | 27 | @JsonProperty("value") 28 | @Getter 29 | @Setter 30 | @Builder.Default 31 | private String value="NA"; 32 | 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/gitdashboardnewver/Signature.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.gitdashboardnewver; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import com.fasterxml.jackson.annotation.JsonProperty; 5 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.Getter; 9 | import lombok.Setter; 10 | 11 | @JsonInclude(JsonInclude.Include.NON_NULL) 12 | @JsonPropertyOrder({ 13 | 14 | }) 15 | 16 | @Data 17 | @Builder 18 | public class Signature { 19 | 20 | @JsonProperty("algorithm") 21 | @Getter 22 | @Setter 23 | @Builder.Default 24 | private String algo="SAST-Algorithm"; 25 | 26 | 27 | @JsonProperty("value") 28 | @Getter 29 | @Setter 30 | @Builder.Default 31 | private String value="NA"; 32 | 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/gitdashboardnewverfifteen/SAST/Signature.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.gitdashboardnewverfifteen.SAST; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import com.fasterxml.jackson.annotation.JsonProperty; 5 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.Getter; 9 | import lombok.Setter; 10 | 11 | @JsonInclude(JsonInclude.Include.NON_NULL) 12 | @JsonPropertyOrder({ 13 | 14 | }) 15 | 16 | @Data 17 | @Builder 18 | public class Signature { 19 | 20 | @JsonProperty("algorithm") 21 | @Getter 22 | @Setter 23 | @Builder.Default 24 | private String algo="SAST-Algorithm"; 25 | 26 | 27 | @JsonProperty("value") 28 | @Getter 29 | @Setter 30 | @Builder.Default 31 | private String value="NA"; 32 | 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/gitdashboardnewverfifteen/SCA/Signature.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.gitdashboardnewverfifteen.SCA; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import com.fasterxml.jackson.annotation.JsonProperty; 5 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.Getter; 9 | import lombok.Setter; 10 | 11 | @JsonInclude(JsonInclude.Include.NON_NULL) 12 | @JsonPropertyOrder({ 13 | 14 | }) 15 | 16 | @Data 17 | @Builder 18 | public class Signature { 19 | 20 | @JsonProperty("algorithm") 21 | @Getter 22 | @Setter 23 | @Builder.Default 24 | private String algo="SCA-Algorithm"; 25 | 26 | 27 | @JsonProperty("value") 28 | @Getter 29 | @Setter 30 | @Builder.Default 31 | private String value="NA"; 32 | 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/gitlabdashboardfifteen/sast/Items.java: -------------------------------------------------------------------------------- 1 | 2 | package com.checkmarx.flow.gitlabdashboardfifteen.sast; 3 | 4 | import com.fasterxml.jackson.annotation.*; 5 | import lombok.Builder; 6 | import lombok.Data; 7 | import lombok.Getter; 8 | import lombok.Setter; 9 | 10 | import javax.annotation.Generated; 11 | import java.util.HashMap; 12 | import java.util.List; 13 | import java.util.Map; 14 | 15 | @JsonInclude(JsonInclude.Include.NON_NULL) 16 | @JsonPropertyOrder({ 17 | 18 | }) 19 | @Generated("jsonschema2pojo") 20 | @Data 21 | @Builder 22 | public class Items { 23 | 24 | @JsonProperty("signatures") 25 | @Getter 26 | @Setter 27 | private List signatures; 28 | 29 | @JsonProperty("file") 30 | @Getter 31 | @Setter 32 | @Builder.Default 33 | private String file="NA"; 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/gitlabdashboardfifteen/sast/Signature.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.gitlabdashboardfifteen.sast; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import com.fasterxml.jackson.annotation.JsonProperty; 5 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.Getter; 9 | import lombok.Setter; 10 | 11 | @JsonInclude(JsonInclude.Include.NON_NULL) 12 | @JsonPropertyOrder({ 13 | 14 | }) 15 | 16 | @Data 17 | @Builder 18 | public class Signature { 19 | 20 | @JsonProperty("algorithm") 21 | @Getter 22 | @Setter 23 | @Builder.Default 24 | private String algo="SAST-Algorithm"; 25 | 26 | 27 | @JsonProperty("value") 28 | @Getter 29 | @Setter 30 | @Builder.Default 31 | private String value="NA"; 32 | 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/gitlabdashboardfifteen/sca/Signature.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.gitlabdashboardfifteen.sca; 2 | 3 | import com.fasterxml.jackson.annotation.JsonInclude; 4 | import com.fasterxml.jackson.annotation.JsonProperty; 5 | import com.fasterxml.jackson.annotation.JsonPropertyOrder; 6 | import lombok.Builder; 7 | import lombok.Data; 8 | import lombok.Getter; 9 | import lombok.Setter; 10 | 11 | @JsonInclude(JsonInclude.Include.NON_NULL) 12 | @JsonPropertyOrder({ 13 | 14 | }) 15 | 16 | @Data 17 | @Builder 18 | public class Signature { 19 | 20 | @JsonProperty("algorithm") 21 | @Getter 22 | @Setter 23 | @Builder.Default 24 | private String algo="SCA-Algorithm"; 25 | 26 | 27 | @JsonProperty("value") 28 | @Getter 29 | @Setter 30 | @Builder.Default 31 | private String value="NA"; 32 | 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/handlers/config/BitBucketConfigContextProvider.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.handlers.config; 2 | 3 | import com.checkmarx.flow.config.BitBucketProperties; 4 | import com.checkmarx.flow.service.BitBucketService; 5 | 6 | public interface BitBucketConfigContextProvider extends ConfigContextProvider { 7 | 8 | public BitBucketProperties getBitBucketProperties(); 9 | public BitBucketService getBitbucketService(); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/handlers/config/ConfigContextProvider.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.handlers.config; 2 | 3 | import com.checkmarx.flow.config.FlowProperties; 4 | import com.checkmarx.flow.config.JiraProperties; 5 | import com.checkmarx.flow.service.ConfigurationOverrider; 6 | import com.checkmarx.flow.service.CxScannerService; 7 | import com.checkmarx.flow.service.FilterFactory; 8 | import com.checkmarx.flow.service.FlowService; 9 | import com.checkmarx.flow.service.HelperService; 10 | 11 | public interface ConfigContextProvider { 12 | 13 | public FlowProperties getFlowProperties(); 14 | public CxScannerService getCxScannerService(); 15 | public JiraProperties getJiraProperties(); 16 | public FlowService getFlowService(); 17 | public HelperService getHelperService(); 18 | public FilterFactory getFilterFactory(); 19 | public ConfigurationOverrider getConfigOverrider(); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/service/ThresholdValidator.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.service; 2 | 3 | import com.checkmarx.flow.config.RepoProperties; 4 | import com.checkmarx.flow.dto.ScanRequest; 5 | import com.checkmarx.flow.dto.report.PullRequestReport; 6 | import com.checkmarx.sdk.dto.ScanResults; 7 | 8 | public interface ThresholdValidator { 9 | boolean isMergeAllowed(ScanResults results, RepoProperties repoProperties, PullRequestReport pullRequestReport); 10 | boolean thresholdsExceeded(ScanRequest request, ScanResults results); 11 | 12 | boolean thresholdsExceededDirectNDEVDependency(ScanRequest request, ScanResults results); 13 | boolean isThresholdsConfigurationExist(ScanRequest scanRequest); 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/service/VulnerabilityScanner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.service; 2 | 3 | import com.checkmarx.flow.custom.PDFProperties; 4 | import com.checkmarx.flow.dto.ScanRequest; 5 | import com.checkmarx.sdk.dto.ScanResults; 6 | 7 | import javax.annotation.CheckForNull; 8 | import java.io.File; 9 | 10 | public interface VulnerabilityScanner { 11 | @CheckForNull 12 | ScanResults scan(ScanRequest scanRequest); 13 | 14 | @CheckForNull 15 | ScanResults scanCli(ScanRequest request, String scanType, File... files); 16 | @CheckForNull 17 | ScanResults scanCliToGeneratePDF(ScanRequest request, String scanType, File... files); 18 | ScanResults DownloadPDF(ScanResults scanResults,PDFProperties pdfProperties); 19 | 20 | ScanResults getLatestScanResults(ScanRequest request); 21 | 22 | boolean isEnabled(); 23 | 24 | default void deleteProject(ScanRequest request) { 25 | 26 | } 27 | } -------------------------------------------------------------------------------- /src/main/java/com/checkmarx/flow/utils/CommonUtils.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.utils; 2 | 3 | public class CommonUtils { 4 | public static String parseCommand(String comment) { 5 | comment = comment.trim().replaceAll("\\s+", " ").toLowerCase(); 6 | 7 | if (comment.contains("@cxflow status")) { 8 | return "status"; 9 | } else if (comment.contains("@cxflow rescan")) { 10 | return "rescan"; 11 | }else if (comment.contains("@cxflow hi")) { 12 | return "hi"; 13 | }else if (comment.contains("@cxflow cancel")) { 14 | return "cancel"; 15 | } else { 16 | return "unsupported"; 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/resources/application-ast.yml: -------------------------------------------------------------------------------- 1 | ast: 2 | apiUrl: 3 | webAppUrl: 4 | clientId: 5 | clientSecret: xxxx 6 | preset: Checkmarx Default 7 | incremental: false -------------------------------------------------------------------------------- /src/main/resources/application-cxgo.yml: -------------------------------------------------------------------------------- 1 | cxgo: 2 | client-secret: xxxxx 3 | base-url: https://api.checkmarx.net 4 | portal-url: https://cloud.checkmarx.net 5 | # CxOD Business unit that will contain the project/application/scan 6 | team: \Demo\CxFlow 7 | url: ${cxgo.base-url} 8 | multi-tenant: true 9 | configuration: Default Configuration 10 | # 11 | ## Available Scan defaults 12 | # 13 | # - CXOD_MOBILE_NATIVE = 1; 14 | # - CXOD_MOBILE_WEB_BASED = 2; 15 | # - CXOD_DESKTOP_NATIVE = 3; 16 | # - CXOD_DESKTOP_WEB = 4; 17 | # - CXOD_API = 5; 18 | # - CXOD_FRONTEND = 6; 19 | # - CXOD_BACKEND = 7; 20 | # - CXOD_LAMBDA = 8; 21 | # - CXOD_CLI = 9; 22 | # - CXOD_SERVICE = 10; 23 | # - CXOD_SMART_DEVICE = 11; 24 | # - CXOD_OTHER = 12; 25 | scan-preset: 1,2,3,4,5,9 -------------------------------------------------------------------------------- /src/main/resources/application-sast.yml: -------------------------------------------------------------------------------- 1 | checkmarx: 2 | version: 9.0 3 | scope: access_control_api sast_rest_api 4 | base-url: http://cx.local 5 | url: ${checkmarx.base-url}/cxrestapi 6 | scan-preset: Checkmarx Default 7 | configuration: Default Configuration 8 | team: /CxServer/SP/Company 9 | scan-timeout: 120 10 | portal-url: ${checkmarx.base-url}/cxwebinterface/Portal/CxWebService.asmx 11 | #project-script: ./CxProject.groovy 12 | #team-script: ./CxTeam.groovy 13 | #exclude-files: 14 | #exclude-folders: 15 | -------------------------------------------------------------------------------- /src/main/resources/application-sca.yml: -------------------------------------------------------------------------------- 1 | sca: 2 | appUrl: https://sca.scacheckmarx.com 3 | apiUrl: https://api-sca.checkmarx.net 4 | accessControlUrl: https://platform.checkmarx.net 5 | tenant: 6 | username: 7 | password: 8 | scan-timeout: 9 | -------------------------------------------------------------------------------- /src/main/resources/banner.txt: -------------------------------------------------------------------------------- 1 | ___ ___ _ 2 | / __\_ __ / __\ | _____ __ 3 | / / \ \/ /____ / _\ | |/ _ \ \ /\ / / 4 | / /___ > <_____/ / | | (_) \ V V / 5 | \____//_/\_\ \/ |_|\___/ \_/\_/ 6 | -------------------------------------------------------------------------------- /src/main/resources/samples/CheckBranch.groovy: -------------------------------------------------------------------------------- 1 | @Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.7' ) 2 | 3 | import groovyx.net.http.HTTPBuilder 4 | 5 | println "Checking 'request' object for details and determine if scan is applicable for this branch (target or current)" 6 | //must be boolean 7 | return true -------------------------------------------------------------------------------- /src/main/resources/samples/CxProject.groovy: -------------------------------------------------------------------------------- 1 | @Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.7' ) 2 | 3 | import groovyx.net.http.HTTPBuilder 4 | 5 | println "Running groovy script for project" 6 | return "GroovyProject" -------------------------------------------------------------------------------- /src/main/resources/samples/CxTeam.groovy: -------------------------------------------------------------------------------- 1 | @Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.7' ) 2 | import groovyx.net.http.HTTPBuilder 3 | 4 | println "Running groovy script for project" 5 | return "/CxServer/SP/Checkmarx/team" -------------------------------------------------------------------------------- /src/main/resources/samples/JiraProjectKey.groovy: -------------------------------------------------------------------------------- 1 | @Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.7' ) 2 | 3 | import com.checkmarx.flow.dto.ScanRequest 4 | 5 | println("------------- Groovy script execution started --------------------") 6 | println("Running groovy script for Jira project key") 7 | 8 | String jiraProjectKey = request.getBugTracker().getProjectKey() 9 | println("Jira project key set to: " + jiraProjectKey) 10 | return jiraProjectKey -------------------------------------------------------------------------------- /src/main/resources/samples/ScanComment.groovy: -------------------------------------------------------------------------------- 1 | @Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.7' ) 2 | 3 | import groovyx.net.http.HTTPBuilder 4 | 5 | def repoUrl = request.getRepoUrl() 6 | def branch = request.getBranch() 7 | //When using webhooks to read the commit hash, use this: 8 | def commitId = request.getHash() 9 | //When using SCM automated workflows, comment the line above and uncomment the 2 lines below so the hash is not null (example is for Github Actions): 10 | // def env = System.getenv() 11 | // def commitId = env['GITHUB_SHA'] 12 | 13 | String scanComment = "Repo: $repoUrl | Branch: $branch | Commit ID: $commitId" 14 | 15 | println "INFO : Scanning code from $scanComment" 16 | 17 | return scanComment 18 | -------------------------------------------------------------------------------- /src/main/resources/samples/cx-flow.json: -------------------------------------------------------------------------------- 1 | { 2 | "application": "Goat", 3 | "jira": { 4 | "project": "APPSEC", 5 | "issue_type": "Bug", 6 | "assignee": "admin", 7 | "fields": [] 8 | }, 9 | "filters": { 10 | "severity": ["High", "Medium"] 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/resources/samples/gitlab/gitlab-ast-sample.yml: -------------------------------------------------------------------------------- 1 | include: 'https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/master/src/main/resources/samples/gitlab-config.yml' 2 | 3 | variables: 4 | CX_FLOW_ENABLED_VULNERABILITY_SCANNERS: ast 5 | AST_API_URL: $AST_API_URL 6 | AST_WEBAPPURL: $AST_WEBAPP_URL 7 | AST_CLIENT_ID: 8 | AST_CLIENT_SECRET: $AST_CLIENT_SECRET 9 | 10 | 11 | stages: 12 | - scan 13 | 14 | -------------------------------------------------------------------------------- /src/main/resources/samples/gitlab/gitlab-astcloud-sample.yml: -------------------------------------------------------------------------------- 1 | include: 'https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/master/src/main/resources/samples/gitlab-config.yml' 2 | 3 | variables: 4 | CX_FLOW_ENABLED_VULNERABILITY_SCANNERS: cxgo 5 | CXGO_CLIENT_SECRET: $CXGO_CLIENT_SECRET 6 | CX_TEAM: \Demo\CxFlow\ 7 | PARAMS: "" #Additional cxflow parameters if needed. 8 | 9 | stages: 10 | - scan 11 | 12 | -------------------------------------------------------------------------------- /src/main/resources/samples/gitlab/gitlab-sast-sca-sample.yml: -------------------------------------------------------------------------------- 1 | include: 'https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/master/src/main/resources/samples/gitlab-config.yml' 2 | 3 | variables: 4 | CX_FLOW_ENABLED_VULNERABILITY_SCANNERS: "sast,sca" 5 | CX_TEAM: "/CxServer/SP" 6 | CHECKMARX_USERNAME: $CHECKMARX_USERNAME 7 | CHECKMARX_PASSWORD: $CHECKMARX_PASSWORD 8 | CHECKMARX_BASE_URL: $CHECKMARX_SERVER 9 | CHECKMARX_CLIENT_SECRET: $CHECKMARX_CLIENT_SECRET 10 | 11 | SCA_TENANT: $SCA_TENANT 12 | SCA_USERNAME: $SCA_USERNAME 13 | SCA_PASSWORD: $SCA_PASSWORD 14 | 15 | 16 | stages: 17 | - scan 18 | 19 | cx-scan: 20 | artifacts: 21 | reports: 22 | sast: gl-sast-report.json 23 | dependency_scanning: gl-dependency-scanning-report.json 24 | paths: 25 | - gl-sast-report.json 26 | - gl-dependency-scanning-report.json 27 | -------------------------------------------------------------------------------- /src/main/resources/samples/gitlab/gitlab-sca-sample.yml: -------------------------------------------------------------------------------- 1 | include: 'https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/master/src/main/resources/samples/gitlab-config.yml' 2 | 3 | variables: 4 | CX_FLOW_ENABLED_VULNERABILITY_SCANNERS: sca 5 | SCA_TENANT: $SCA_TENANT 6 | SCA_USERNAME: $SCA_USERNAME 7 | SCA_PASSWORD: $SCA_PASSWORD 8 | 9 | 10 | stages: 11 | - scan 12 | 13 | cx-scan: 14 | artifacts: 15 | reports: 16 | dependency_scanning: gl-dependency-scanning-report.json 17 | paths: 18 | - gl-dependency-scanning-report.json 19 | -------------------------------------------------------------------------------- /src/main/resources/samples/osa-summary.json: -------------------------------------------------------------------------------- 1 | { 2 | "totalLibraries" : 977, 3 | "highVulnerabilityLibraries" : 15, 4 | "mediumVulnerabilityLibraries" : 12, 5 | "lowVulnerabilityLibraries" : 4, 6 | "nonVulnerableLibraries" : 946, 7 | "vulnerableAndUpdated" : 1, 8 | "vulnerableAndOutdated" : 30, 9 | "vulnerabilityScore" : "High", 10 | "totalHighVulnerabilities" : 15, 11 | "totalMediumVulnerabilities" : 20, 12 | "totalLowVulnerabilities" : 6 13 | } -------------------------------------------------------------------------------- /src/main/resources/static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/src/main/resources/static/favicon.ico -------------------------------------------------------------------------------- /src/main/resources/static/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/src/main/resources/static/favicon.png -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/CxFlowApplicationTest.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow; 2 | 3 | import org.junit.Test; 4 | import org.junit.runner.RunWith; 5 | import org.springframework.boot.test.context.SpringBootTest; 6 | import org.springframework.test.context.junit4.SpringRunner; 7 | 8 | import static org.junit.Assert.*; 9 | @SpringBootTest 10 | @RunWith(SpringRunner.class) 11 | public class CxFlowApplicationTest { 12 | 13 | @Test 14 | public void contextLoads() throws Exception { 15 | } 16 | 17 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/common/Constants.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.common; 2 | 3 | public class Constants { 4 | public static final String SAMPLE_SAST_RESULTS_DIR = "sample-sast-results"; 5 | public static final String WEBHOOK_REQUEST_DIR = "sample-webhook-requests"; 6 | public static final String CUCUMBER_DATA_DIR = "cucumber/data"; 7 | public static final String CXFLOW_REPORTS_DIR = "cxflow-reference-reports"; 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/common/repoServiceMockers/RepoServiceMocker.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.common.repoServiceMockers; 2 | 3 | import com.checkmarx.flow.config.RepoProperties; 4 | import com.checkmarx.flow.controller.WebhookController; 5 | import com.checkmarx.flow.dto.ScanRequest; 6 | import org.springframework.web.client.RestTemplate; 7 | 8 | public interface RepoServiceMocker { 9 | void init(String gitProjectName, RepoProperties properties, String branch, String projectName, String teamName, RestTemplate restTemplate); 10 | void initPullRequestDetails(int pullRequestId, String lastCommitHash); 11 | void setController(WebhookController controller); 12 | void openPullRequest(); 13 | void sendPushEvent(); 14 | String getPullRequestCommentsUrl(); 15 | String getPullRequestStatus(); 16 | } 17 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/component/analytics/get/RunGetResultsAnalyticsTest.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.component.analytics.get; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | import org.springframework.boot.test.context.SpringBootTest; 7 | 8 | @RunWith(Cucumber.class) 9 | @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT) 10 | @CucumberOptions(plugin = { "pretty", "summary", "html:build/cucumber/component/api", "json:build/cucumber/component/api/cucumber.json" }, 11 | features = "classpath:cucumber/features/componentTests/analytics-get-results.feature", 12 | glue = { "com.checkmarx.flow.cucumber.common.steps", "com.checkmarx.flow.cucumber.component.analytics.get" }, 13 | tags = "@Component and not @Skip") 14 | 15 | public class RunGetResultsAnalyticsTest { 16 | } 17 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/component/analytics/pullrequest/AnalyticsRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.component.analytics.pullrequest; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | features = "src/test/resources/cucumber/features/componentTests/pull-request-analytics.feature", 10 | tags = "@ComponentTest and @PullRequestAnalyticsFeature and not @Skip") 11 | public class AnalyticsRunner { 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/component/ast/parse/GitHubCommentsASTStepsRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.component.ast.parse; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | import org.springframework.boot.test.context.SpringBootTest; 7 | 8 | @RunWith(Cucumber.class) 9 | @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT) 10 | @CucumberOptions(plugin = { "pretty", "summary", "html:build/cucumber/component/api", "json:build/cucumber/component/api/cucumber.json" }, 11 | features = "classpath:cucumber/features/componentTests/astComments.feature", 12 | glue = { "com.checkmarx.flow.cucumber.component.ast.parse" }, 13 | tags = "@Component and not @Skip") 14 | 15 | public class GitHubCommentsASTStepsRunner { 16 | } 17 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/component/batch/RunBatchComponentTest.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.component.batch; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions(plugin = { "pretty", "summary", "html:build/cucumber/component/batch", "json:build/cucumber/component/batch/cucumber.json" }, 9 | features = "src/test/resources/cucumber/features", 10 | glue = { "com.checkmarx.flow.cucumber.common.steps", "com.checkmarx.flow.cucumber.component.batch" }, 11 | tags = "@BatchFeature and @ComponentTest and not @Skip") 12 | public class RunBatchComponentTest { 13 | } 14 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/component/commentscript/CommentScriptRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.component.commentscript; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | features = "src/test/resources/cucumber/features/componentTests/configure-sast-comment-script.feature", 10 | tags = "not @Skip") 11 | public class CommentScriptRunner { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/component/csvissuetracker/CsvIssueTrackerRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.component.csvissuetracker; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | features = "src/test/resources/cucumber/features/componentTests/csv-issue-tracker.feature", 10 | tags = "not @Skip") 11 | public class CsvIssueTrackerRunner { 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/component/cxintegrations/CxIntegrationsRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.component.cxintegrations; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | features = "src/test/resources/cucumber/features/componentTests/cxIntegrations.feature", 10 | tags = "@Cx-integrations and not @Skip") 11 | public class CxIntegrationsRunner { 12 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/component/deletebranch/DeleteBranchRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.component.deletebranch; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | features = "src/test/resources/cucumber/features/componentTests/delete-branch.feature", 10 | tags = "not @Skip") 11 | public class DeleteBranchRunner { 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/component/filterscript/FilterScriptRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.component.filterscript; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | features = "src/test/resources/cucumber/features/componentTests/filter-script.feature", 10 | tags = "not @Skip") 11 | public class FilterScriptRunner { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/component/parse/RunParseComponentTest.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.component.parse; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions(plugin = { "pretty", "summary", "html:build/cucumber/component/parse", "json:build/cucumber/component/parse/cucumber.json" }, 9 | features = "src/test/resources/cucumber/features", 10 | glue = { "com.checkmarx.flow.cucumber.component.parse" }, 11 | tags = "@ParseFeature and @ComponentTest and not @Skip") 12 | public class RunParseComponentTest { 13 | } 14 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/component/parse/matchscenario/Mismatch.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.component.parse.matchscenario; 2 | 3 | import com.fasterxml.jackson.databind.JsonNode; 4 | 5 | /** 6 | * Contains differences between a specific JSON file and its corresponding reference file. 7 | */ 8 | public class Mismatch { 9 | private final String baseName; 10 | private final JsonNode differences; 11 | 12 | public Mismatch(String baseName, JsonNode differences) { 13 | this.baseName = baseName; 14 | this.differences = differences; 15 | } 16 | 17 | public String getBaseName() { 18 | return baseName; 19 | } 20 | 21 | public JsonNode getDifferences() { 22 | return differences; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/component/projectkeyscript/JiraProjectKeyScriptRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.component.projectkeyscript; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | features = "src/test/resources/cucumber/features/componentTests/configure-jira-project-key-script.feature", 10 | tags = "not @Skip") 11 | public class JiraProjectKeyScriptRunner { 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/component/projectname/ProjectNameRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.component.projectname; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | features = "src/test/resources/cucumber/features/componentTests/project-name-generator.feature", 10 | tags = "not @Skip") 11 | public class ProjectNameRunner { 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/component/scan/RunScanComponentTest.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.component.scan; 2 | 3 | import com.checkmarx.test.flow.config.CxFlowMocksConfig; 4 | import com.checkmarx.flow.CxFlowApplication; 5 | import io.cucumber.junit.Cucumber; 6 | import io.cucumber.junit.CucumberOptions; 7 | import org.junit.runner.RunWith; 8 | import org.springframework.test.context.ContextConfiguration; 9 | 10 | @RunWith(Cucumber.class) 11 | @CucumberOptions(plugin = { "pretty", "summary", "html:build/cucumber/component/scan", "json:build/cucumber/component/scan/cucumber.json" }, 12 | features = "src/test/resources/cucumber/features", 13 | glue = { "com.checkmarx.flow.cucumber.common.steps", "com.checkmarx.flow.cucumber.component.scan" }, 14 | tags = " @ScanFeature and @ComponentTest and not @Skip") 15 | public class RunScanComponentTest { 16 | } 17 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/component/thresholds/sastPR/ThresholdsTestRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.component.thresholds.sastPR; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | features = "src/test/resources/cucumber/features/componentTests/thresholds.feature", 10 | glue = {"com.checkmarx.flow.cucumber.component.thresholds.sastPR"}, 11 | tags = "@ThresholdsFeature and not @Skip and not @CxSCA") 12 | public class ThresholdsTestRunner { 13 | } 14 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/component/thresholds/scaPR/ScaThresholdsTestRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.component.thresholds.scaPR; 2 | 3 | import org.junit.runner.RunWith; 4 | 5 | import io.cucumber.junit.Cucumber; 6 | import io.cucumber.junit.CucumberOptions; 7 | 8 | @RunWith(Cucumber.class) 9 | @CucumberOptions( 10 | features = "src/test/resources/cucumber/features/componentTests/sca-thresholds.feature", 11 | glue = {"com.checkmarx.flow.cucumber.component.thresholds.scaPR"}, 12 | tags = "@CxSCA and @ThresholdsFeature and not @Skip") 13 | public class ScaThresholdsTestRunner { 14 | 15 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/component/webhook/WebHookTestRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.component.webhook; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | features = "src/test/resources/cucumber/features/componentTests/webhook.feature", 10 | tags = "@WebHook and not @Skip") 11 | public class WebHookTestRunner { 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/ast/bugtrackers/jira/RunAstTicketsCreationViaJiraSteps.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.ast.bugtrackers.jira; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | features = "src/test/resources/cucumber/features/integrationTests/ast/astScanProcessing.feature", 10 | tags = "@AST_JIRA_issue_creation and not @Skip") 11 | public class RunAstTicketsCreationViaJiraSteps { 12 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/ast/scans/RunAstRemoteRepoSteps.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.ast.scans; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions(plugin = { "pretty", "summary", "html:build/cucumber/integration/ast", "json:build/cucumber/integration/ast/cucumber.json" }, 9 | features = "src/test/resources/cucumber/features/integrationTests/ast/astScanProcessing.feature", 10 | glue = {"com.checkmarx.flow.cucumber.integration.ast.scans"}, 11 | tags = "@ASTRemoteRepoScan and not @Skip") 12 | public class RunAstRemoteRepoSteps { 13 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/azure/publishing/github2ado/Github2AdoRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.azure.publishing.github2ado; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | plugin = { "pretty", "summary", "html:build/cucumber/integration/azure/publishing/github2ado/"}, 10 | features = "src/test/resources/cucumber/features/integrationTests/azure/github2ado/github2ado.feature", 11 | glue = { "com.checkmarx.flow.cucumber.integration.azure.publishing.github2ado" }, 12 | tags = "@Github2AdoFeature and not @Skip") 13 | public class Github2AdoRunner { 14 | } 15 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/azure/publishing/githubflow/PublishingRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.azure.publishing.githubflow; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | features = "src/test/resources/cucumber/features/integrationTests/azure/publishing-github-flow.feature", 10 | tags = "not @Skip") 11 | public class PublishingRunner { 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/azure/publishing/issueprocessing/PublishingRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.azure.publishing.issueprocessing; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | features = "src/test/resources/cucumber/features/integrationTests/azure/publishing-issue-processing.feature", 10 | tags = "not @Skip") 11 | public class PublishingRunner { 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/cli/ast/AstCliStepsRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.cli.ast; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | features = "src/test/resources/cucumber/features/integrationTests/cli/astCliScan.feature", 10 | glue = {"com.checkmarx.flow.cucumber.integration.cli.ast"}, 11 | tags = "@AST_CLI_SCAN and not @Skip") 12 | public class AstCliStepsRunner { 13 | } 14 | 15 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/cli/iast/IastCliStepsRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.cli.iast; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | 8 | @RunWith(Cucumber.class) 9 | @CucumberOptions( 10 | features = "src/test/resources/cucumber/features/integrationTests/cli/iastCli.feature", 11 | glue = {"com.checkmarx.flow.cucumber.integration.cli.iast"}, 12 | tags = "@IastFeature and not @Skip") 13 | public class IastCliStepsRunner { 14 | } 15 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/cli/sast/SastCliStepsRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.cli.sast; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | features = "src/test/resources/cucumber/features/integrationTests/cli/sastCliScan.feature", 10 | glue = {"com.checkmarx.flow.cucumber.integration.cli.sast"}, 11 | tags = "@SAST_CLI_SCAN and not @Skip") 12 | public class SastCliStepsRunner { 13 | } 14 | 15 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/cli/sca/ScaCliStepsRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.cli.sca; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | features = "src/test/resources/cucumber/features/integrationTests/cli/scaCliScan.feature", 10 | glue = {"com.checkmarx.flow.cucumber.integration.cli.sca"}, 11 | tags = "@SCA_CLI_SCAN and not @Skip") 12 | public class ScaCliStepsRunner { 13 | } 14 | 15 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/codebashing/RunCodeBashingRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.codebashing; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions(plugin = { "pretty", "summary", "html:build/cucumber/integration/codebashing", "json:build/cucumber/integration/codebashing/cucumber.json" }, 9 | features = "src/test/resources/cucumber/features/integrationTests/codebashing/codebashingLessons.feature", 10 | glue = {"com.checkmarx.flow.cucumber.integration.codebashing"}, 11 | tags = "@CodeBashingIntegrationTests and not @Skip") 12 | public class RunCodeBashingRunner { 13 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/config_provider/remote_repo/ConfigProviderRemoteRepoTestRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.config_provider.remote_repo; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | features = "src/test/resources/cucumber/features/integrationTests/configProvider/remoteRepo/configProviderRemoteRepo.feature", 10 | tags = "@ConfigProviderRemoteRepoFeature and not @Skip") 11 | public class ConfigProviderRemoteRepoTestRunner { 12 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/cxconfig/CxConfigTestRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.cxconfig; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | plugin = { "pretty", "summary", "html:build/cucumber/integration/cxconfig"}, 10 | features = "src/test/resources/cucumber/features/integrationTests/cxconfig.feature", 11 | glue = { "com.checkmarx.flow.cucumber.integration.cxconfig" }, 12 | tags = "@CxConfigFeature and not @Skip and not @Sca_cx_config") 13 | public class CxConfigTestRunner { 14 | } 15 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/cxconfigbugtracker/CxConfigBugTrackerConfiguration.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.cxconfigbugtracker; 2 | 3 | import com.checkmarx.sdk.service.CxService; 4 | import org.mockito.Mockito; 5 | import org.springframework.boot.test.context.TestConfiguration; 6 | import org.springframework.context.annotation.Bean; 7 | 8 | @TestConfiguration 9 | public class CxConfigBugTrackerConfiguration { 10 | 11 | 12 | @Bean(name = "cxConfigurationTestBean") 13 | public CxService getCxService() { 14 | return Mockito.mock(CxService.class); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/cxconfigbugtracker/CxConfigBugTrackerRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.cxconfigbugtracker; 2 | 3 | 4 | import io.cucumber.junit.Cucumber; 5 | import io.cucumber.junit.CucumberOptions; 6 | import org.junit.runner.RunWith; 7 | 8 | @RunWith(Cucumber.class) 9 | @CucumberOptions( 10 | plugin = { "pretty", "summary", "html:build/cucumber/integration/cxconfig"}, 11 | features = "src/test/resources/cucumber/features/integrationTests/cxConfigBugTracker.feature", 12 | glue = { "com.checkmarx.flow.cucumber.integration.cxconfigbugtracker" }, 13 | tags = "@CxConfigBugTrackerFeature and not @Skip") 14 | public class CxConfigBugTrackerRunner { 15 | } 16 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/cxgo/RunCxGoScanRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.cxgo; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions(plugin = { "pretty", "summary", "html:build/cucumber/integration/cxgo", "json:build/cucumber/integration/cxgo/cucumber.json" }, 9 | features = "src/test/resources/cucumber/features/integrationTests/cxgo/cxgoScanProcessing.feature", 10 | glue = {"com.checkmarx.flow.cucumber.integration.cxgo"}, 11 | tags = "@CxGoIntegrationTests and not @Skip") 12 | public class RunCxGoScanRunner { 13 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/end2end/genericendtoend/HookType.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.end2end.genericendtoend; 2 | 3 | enum HookType { 4 | PUSH, PULL_REQUEST 5 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/end2end/genericendtoend/RunGenericEndToEndTest.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.end2end.genericendtoend; 2 | 3 | import org.junit.runner.RunWith; 4 | 5 | import io.cucumber.junit.Cucumber; 6 | import io.cucumber.junit.CucumberOptions; 7 | 8 | @RunWith(Cucumber.class) 9 | @CucumberOptions(plugin = { "pretty", "summary", "html:build/integration/end2end/genericendtoend", "json:build/cucumber/features/e2eTests/genericEndToEnd" }, 10 | features = "src/test/resources/cucumber/features", 11 | glue = { "com.checkmarx.flow.cucumber.integration.end2end.genericendtoend"}, 12 | tags = "@EndToEnd and @Integration and not @Skip") 13 | public class RunGenericEndToEndTest { 14 | 15 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/github/RunGitHubOpenIssuesSteps.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.github; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions(plugin = { "pretty", "summary", "html:build/cucumber/integration/github", "json:build/cucumber/integration/github/cucumber.json" }, 9 | features = "src/test/resources/cucumber/features/integrationTests/github/publish-processing.feature", 10 | glue = {"com.checkmarx.flow.cucumber.common.steps", "com.checkmarx.flow.cucumber.integration.github"}, 11 | tags = "@GitHubIntegrationTests and not @Skip") 12 | public class RunGitHubOpenIssuesSteps { 13 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/jira/analytics/RunJiraAnalyticsSteps.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.jira.analytics; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions(plugin = { "pretty", "summary", "html:build/cucumber/integration/jira/analytics", "json:build/cucumber/integration/jira/analytics/cucumber.json" }, 9 | features = "src/test/resources/cucumber/features/integrationTests/jira/publish-processing.feature", 10 | glue = {"com.checkmarx.flow.cucumber.common.steps", "com.checkmarx.flow.cucumber.integration.jira.analytics"}, 11 | tags = "@Jira_Analytics and not @Skip") 12 | public class RunJiraAnalyticsSteps { 13 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/jira/autoconfig/AutoConfigRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.jira.autoconfig; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions(plugin = { "pretty", "summary", "html:build/cucumber/integration/scan"}, 9 | features = "classpath:cucumber/features/integrationTests/jira/jira-auto-config.feature", 10 | glue = { "com.checkmarx.flow.cucumber.integration.jira.autoconfig" }, 11 | tags = "@Integration and not @Skip") 12 | public class AutoConfigRunner { 13 | } 14 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/jira/load/JiraLoadTestRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.jira.load; 2 | 3 | 4 | import io.cucumber.junit.Cucumber; 5 | import io.cucumber.junit.CucumberOptions; 6 | import org.junit.runner.RunWith; 7 | import org.springframework.boot.test.context.SpringBootTest; 8 | 9 | @RunWith(Cucumber.class) 10 | @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT) 11 | @CucumberOptions(plugin = { "pretty", "summary", "html:build/cucumber/component/api", "json:build/cucumber/component/api/cucumber.json" }, 12 | features = "classpath:cucumber/features/integrationTests/jira/jira-load.feature", 13 | glue = { "com.checkmarx.flow.cucumber.integration.jira" }, 14 | tags = "@Integration and not @Skip") 15 | public class JiraLoadTestRunner { 16 | } 17 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/jira/manualconfig/ManualConfigRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.jira.manualconfig; 2 | 3 | 4 | import io.cucumber.junit.Cucumber; 5 | import io.cucumber.junit.CucumberOptions; 6 | import org.junit.runner.RunWith; 7 | 8 | @RunWith(Cucumber.class) 9 | @CucumberOptions(plugin = { "pretty", "summary", "html:build/cucumber/integration/scan"}, 10 | features = "classpath:cucumber/features/integrationTests/jira/jira-manual-config.feature", 11 | glue = { "com.checkmarx.flow.cucumber.integration.jira.manualconfig" }, 12 | tags = "@Integration and not @Skip") 13 | public class ManualConfigRunner { 14 | } 15 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/multiScmInstances/RunPublishTicketsWithOptionalScmConfSteps.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.multiScmInstances; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | features = "src/test/resources/cucumber/features/integrationTests/jira/publish-processing.feature", 10 | tags = "@Scm_Optional_Instance and not @Skip") 11 | public class RunPublishTicketsWithOptionalScmConfSteps { 12 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/negative_tests/RunJiraNegativeSteps.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.negative_tests; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions(plugin = { "pretty", "summary", "html:build/cucumber/integration/negative_tests", "json:build/cucumber/integration/negative_tests/cucumber.json" }, 9 | features = "src/test/resources/cucumber/features/integrationTests/jira/publish-processing.feature", 10 | glue = { "com.checkmarx.flow.cucumber.integration.negative_tests"}, 11 | tags = "@Integration and @Negative_test and @Error_Handling and not @Skip") 12 | public class RunJiraNegativeSteps { 13 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/publishprocess/PublishProcessRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.publishprocess; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | import org.springframework.boot.test.context.SpringBootTest; 7 | 8 | @RunWith(Cucumber.class) 9 | @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT) 10 | @CucumberOptions(plugin = { "pretty", "summary", "html:build/cucumber/component/api", "json:build/cucumber/component/api/cucumber.json" }, 11 | features = "classpath:cucumber/features/integrationTests/jira/publish-processing.feature", 12 | glue = { "com.checkmarx.flow.cucumber.common.steps", "com.checkmarx.flow.cucumber.integration.publishprocess" }, 13 | tags = "@Integration and not @Skip") 14 | public class PublishProcessRunner { 15 | } 16 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/pullrequest/updatecomments/UpdatePullRequestCommentsTestRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.pullrequest.updatecomments; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | import org.springframework.boot.test.context.SpringBootTest; 7 | 8 | @RunWith(Cucumber.class) 9 | @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT) 10 | @CucumberOptions(plugin = { "pretty", "summary", "html:build/cucumber/component/api", "json:build/cucumber/component/api/cucumber.json" }, 11 | features = "classpath:cucumber/features/integrationTests/pull-request-comments-update.feature", 12 | glue = { "com.checkmarx.flow.cucumber.integration.pullrequest.updatecomments" }, 13 | tags = "@Integration and not @Skip") 14 | public class UpdatePullRequestCommentsTestRunner { 15 | } 16 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/sast/config/OverwritingProjectConfigRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.sast.config; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | features = "src/test/resources/cucumber/features/integrationTests/sast/overwriting-project-config.feature", 10 | tags = "not @Skip") 11 | public class OverwritingProjectConfigRunner { 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/sast/scan/RunScanSteps.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.sast.scan; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | features = "src/test/resources/cucumber/features", 10 | tags = "@ScanFeature and @IntegrationTest and not @Skip") 11 | public class RunScanSteps { 12 | } 13 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/sast/scan/ScanDTO.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.sast.scan; 2 | 3 | public class ScanDTO { 4 | 5 | private final String teamId; 6 | 7 | public Integer getScanId() { 8 | return scanId; 9 | } 10 | 11 | public Integer getProjectId() { 12 | return projectId; 13 | } 14 | 15 | private final Integer scanId; 16 | 17 | public String getTeamId() { 18 | return teamId; 19 | } 20 | 21 | private final Integer projectId; 22 | 23 | public ScanDTO(Integer projectId, Integer scanId, String teamId) { 24 | this.projectId = projectId; 25 | this.scanId = scanId; 26 | this.teamId = teamId; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/sca_scanner/bugtrackers/ado/ScaIssuesCreationRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.sca_scanner.bugtrackers.ado; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | features = "src/test/resources/cucumber/features/integrationTests/sca/scanResultsProcessing.feature", 10 | tags = "@SCA_Issues_Creation and not @Skip") 11 | public class ScaIssuesCreationRunner { 12 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/sca_scanner/bugtrackers/github/ScaResolveIssueRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.sca_scanner.bugtrackers.github; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | features = "src/test/resources/cucumber/features/integrationTests/sca/scanResultsProcessing.feature", 10 | tags = "@SCA_Resolve_Issue and not @Skip") 11 | public class ScaResolveIssueRunner { 12 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/sca_scanner/config_as_code/ScaConfigAsCodeRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.sca_scanner.config_as_code; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | features = "src/test/resources/cucumber/features/integrationTests/cxconfig.feature", 10 | glue = {"com.checkmarx.flow.cucumber.integration.sca_scanner.config_as_code"}, 11 | tags = "@Sca_cx_config and not @Skip") 12 | public class ScaConfigAsCodeRunner { 13 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/sca_scanner/filters/ScaFiltersStepsRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.sca_scanner.filters; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | features = "src/test/resources/cucumber/features/integrationTests/sca/scanResultsProcessing.feature", 10 | glue = {"com.checkmarx.flow.cucumber.integration.sca_scanner.filters"}, 11 | tags = "@SCA_Filtering and not @Skip") 12 | public class ScaFiltersStepsRunner { 13 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/sca_scanner/policy_management/ScaPolicyManagementRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.sca_scanner.policy_management; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | features = "src/test/resources/cucumber/features/integrationTests/sca/scanResultsProcessing.feature", 10 | tags = "@SCA_Policy_Management and not @Skip") 11 | public class ScaPolicyManagementRunner { 12 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/sca_scanner/scans/RunSCARemoteRepoSteps.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.sca_scanner.scans; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions(plugin = { "pretty", "summary", "html:build/cucumber/integration/sca", "json:build/cucumber/integration/sca/cucumber.json" }, 9 | features = "src/test/resources/cucumber/features/integrationTests/sca/scanResultsProcessing.feature", 10 | glue = {"com.checkmarx.flow.cucumber.integration.sca_scanner.scans"}, 11 | tags = "@SCARemoteRepoScan and not @Skip") 12 | public class RunSCARemoteRepoSteps { 13 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/sca_scanner/teams/RunSCATeamsSteps.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.sca_scanner.teams; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions(plugin = { "pretty", "summary", "html:build/cucumber/integration/sca", "json:build/cucumber/integration/sca/cucumber.json" }, 9 | features = "src/test/resources/cucumber/features/integrationTests/sca/teams.feature", 10 | tags = "not @Skip") 11 | public class RunSCATeamsSteps { 12 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/sca_scanner/zip_scan/ScaZipScanRunner.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.sca_scanner.zip_scan; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions( 9 | features = "src/test/resources/cucumber/features/integrationTests/sca/scanResultsProcessing.feature", 10 | tags = "@SCA_Zip_Scan and not @Skip") 11 | public class ScaZipScanRunner { 12 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/cucumber/integration/ziputils/RunZipUtilsTest.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.cucumber.integration.ziputils; 2 | 3 | import io.cucumber.junit.Cucumber; 4 | import io.cucumber.junit.CucumberOptions; 5 | import org.junit.runner.RunWith; 6 | 7 | @RunWith(Cucumber.class) 8 | @CucumberOptions(plugin = { "pretty", "summary", "html:build/integration/ziputils", "json:build/cucumber/features/integration/ziputils" }, 9 | features = "src/test/resources/cucumber/features", 10 | glue = { "com.checkmarx.flow.cucumber.integration.ziputils"}, 11 | tags = "@Ziputils and @Integration and not @Skip") 12 | public class RunZipUtilsTest { 13 | } 14 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/exception/CheckmarxLegacyExceptionTest.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | import org.junit.Test; 4 | 5 | public class CheckmarxLegacyExceptionTest { 6 | 7 | @Test 8 | public void setNullMessage() { 9 | CheckmarxLegacyException checkmarxLegacyException = new CheckmarxLegacyException(null); 10 | assert checkmarxLegacyException.getMessage() == null; 11 | } 12 | 13 | @Test 14 | public void setEmptyMessage() { 15 | CheckmarxLegacyException checkmarxLegacyException = new CheckmarxLegacyException(""); 16 | assert checkmarxLegacyException.getMessage().equals(""); 17 | } 18 | 19 | @Test 20 | public void setMessage() { 21 | String message = "message"; 22 | CheckmarxLegacyException checkmarxLegacyException = new CheckmarxLegacyException(message); 23 | assert checkmarxLegacyException.getMessage().equals(message); 24 | } 25 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/exception/GitLabClientRuntimeExceptionTest.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | import org.junit.Test; 4 | 5 | public class GitLabClientRuntimeExceptionTest { 6 | @Test 7 | public void setNothing() { 8 | GitLabClientRuntimeException gitLabClientRuntimeException = new GitLabClientRuntimeException(); 9 | assert gitLabClientRuntimeException.getMessage() == null; 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/exception/InvalidCredentialsExceptionTest.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | import org.junit.Test; 4 | 5 | public class InvalidCredentialsExceptionTest { 6 | @Test 7 | public void setNothing() { 8 | InvalidCredentialsException invalidCredentialsException = new InvalidCredentialsException(); 9 | assert invalidCredentialsException.getMessage() == null; 10 | } 11 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/exception/InvalidTokenExceptionTest.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | import org.junit.Test; 4 | 5 | public class InvalidTokenExceptionTest { 6 | @Test 7 | public void setNothing() { 8 | InvalidTokenException invalidTokenException = new InvalidTokenException(); 9 | assert invalidTokenException.getMessage() == null; 10 | } 11 | 12 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/exception/MachinaRuntimeExceptionTest.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | public class MachinaRuntimeExceptionTest { 8 | 9 | @Test 10 | public void setNothing() { 11 | MachinaRuntimeException machinaRuntimeException = new MachinaRuntimeException(); 12 | assert machinaRuntimeException.getMessage() == null; 13 | } 14 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/exception/RequestValidationExceptionTest.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.exception; 2 | 3 | import org.junit.Test; 4 | 5 | public class RequestValidationExceptionTest { 6 | 7 | @Test 8 | public void setNothing() { 9 | RequestValidationException requestValidationException = new RequestValidationException(); 10 | assert requestValidationException.getMessage() == null; 11 | } 12 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/service/BitBucketServiceTest.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.service; 2 | 3 | import org.junit.Test; 4 | 5 | public class BitBucketServiceTest { 6 | 7 | @Test 8 | public void processMerge() { 9 | } 10 | 11 | @Test 12 | public void sendMergeComment() { 13 | } 14 | 15 | @Test 16 | public void processCommit() { 17 | } 18 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/service/CxLegacyServiceTest.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.service; 2 | 3 | import org.junit.Test; 4 | 5 | public class CxLegacyServiceTest { 6 | 7 | @Test 8 | public void login() { 9 | } 10 | 11 | @Test 12 | public void createTeam() { 13 | } 14 | 15 | @Test 16 | public void getDescription() { 17 | } 18 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/service/JiraServiceTest.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.service; 2 | 3 | import org.junit.After; 4 | import org.junit.Before; 5 | import org.junit.Test; 6 | 7 | public class JiraServiceTest { 8 | 9 | @Before 10 | public void setUp() throws Exception { 11 | } 12 | 13 | @Test 14 | public void createIssueTest() { 15 | } 16 | 17 | @Test 18 | public void getCustomFields() { 19 | } 20 | 21 | @Test 22 | public void processResults() { 23 | } 24 | 25 | @After 26 | public void tearDown() throws Exception { 27 | } 28 | 29 | @Test 30 | public void init() { 31 | } 32 | 33 | @Test 34 | public void getCustomFields1() { 35 | } 36 | 37 | @Test 38 | public void process() { 39 | } 40 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/flow/service/ResultsServiceTest.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.flow.service; 2 | 3 | import org.junit.Test; 4 | 5 | public class ResultsServiceTest { 6 | 7 | @Test 8 | public void processScanResultsAsync() { 9 | } 10 | 11 | @Test 12 | public void processResults() { 13 | } 14 | } -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/jira/IPublishUtils.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.jira; 2 | 3 | import com.checkmarx.flow.dto.BugTracker; 4 | import com.checkmarx.flow.dto.ScanRequest; 5 | import com.checkmarx.flow.exception.ExitThrowable; 6 | import com.checkmarx.flow.service.SastScanner; 7 | 8 | import java.io.File; 9 | import java.io.IOException; 10 | 11 | public interface IPublishUtils { 12 | File getFileFromResourcePath(String path) throws IOException; 13 | BugTracker createJiraBugTracker(); 14 | void publishRequest(ScanRequest request, File file, BugTracker.Type bugTrackerType, SastScanner scanner) throws ExitThrowable; 15 | ScanRequest getScanRequestWithDefaults(); 16 | } 17 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/jira/JiraUtilsException.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.jira; 2 | 3 | public class JiraUtilsException extends RuntimeException { 4 | public JiraUtilsException(String message) { 5 | super(message); 6 | } 7 | 8 | public JiraUtilsException(String message, Throwable t) { 9 | super(message, t); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/test/flow/config/JiraMocksConfig.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.test.flow.config; 2 | 3 | import org.springframework.context.annotation.Configuration; 4 | 5 | @Configuration 6 | public class JiraMocksConfig { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/test/java/com/checkmarx/test/flow/config/SastMocksConfig.java: -------------------------------------------------------------------------------- 1 | package com.checkmarx.test.flow.config; 2 | 3 | import org.springframework.context.annotation.Configuration; 4 | 5 | @Configuration 6 | public class SastMocksConfig { 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/test/resources/CxConfig-flow.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1.0, 3 | "active": true, 4 | "project": "XYZ-${repo}-${branch}", 5 | "team": "/a/b/c", 6 | "sast": { 7 | "preset": "Checkmarx Express", 8 | "incremental": false, 9 | "forceScan" : true 10 | }, 11 | "additionalProperties" : { 12 | "cxFlow": { 13 | "application": "test app", 14 | "branches": ["develop", "master"], 15 | "emails": ["abc@checkmarx.com"], 16 | "filters" : { 17 | "severity": ["High", "Medium"], 18 | "cwe": ["79", "89"], 19 | "category": ["XSS_Reflected", "SQL_Injection"], 20 | "status": ["Confirmed", "New"] 21 | } 22 | } 23 | } 24 | } -------------------------------------------------------------------------------- /src/test/resources/CxConfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1.0, 3 | "active": true, 4 | "host": "cx01.whatever.com", 5 | "credential": { 6 | "type": "prompt|plain|enc|external->vault/environment/parameter", 7 | "username": "ENC(XXXXXXX)", 8 | "password": "ENC(XXXXXXX)", 9 | "oidcClient": "ENC(XXXXXXXX)", 10 | "oidcClientSecret": "ENC(XXXXXXX)", 11 | "scope": "" 12 | }, 13 | "project": "XYZ-${repo}-${branch}", 14 | "team": "/a/b/c", 15 | "policy":"", 16 | "customFields":{ 17 | "key":"value", 18 | "key2":"value" 19 | }, 20 | "sast": { 21 | "preset": "All", 22 | "incremental": false, 23 | "forceScan" : true, 24 | "fileExcludes": "", 25 | "folderExcludes": "" 26 | }, 27 | "osa": { 28 | "fileExcludes": "", 29 | "folderExcludes": "" 30 | } 31 | } -------------------------------------------------------------------------------- /src/test/resources/application-sast.yml: -------------------------------------------------------------------------------- 1 | cx-flow: 2 | enabled-vulnerability-scanners: 3 | - sast 4 | -------------------------------------------------------------------------------- /src/test/resources/application-sca.yml: -------------------------------------------------------------------------------- 1 | cx-flow: 2 | enabled-vulnerability-scanners: 3 | - sca 4 | 5 | sca: 6 | appUrl: https://sca.scacheckmarx.com 7 | apiUrl: https://api-sca.checkmarx.net 8 | accessControlUrl: https://platform.checkmarx.net 9 | -------------------------------------------------------------------------------- /src/test/resources/application-scan.yml: -------------------------------------------------------------------------------- 1 | logging: 2 | file: 3 | path: c:\temp 4 | 5 | #cx-flow: 6 | # Agreed upon shared API token 7 | # token: xxxx 8 | # bug-tracker: Json 9 | 10 | #checkmarx: 11 | # multi-tenant: false 12 | # configuration: Default Configuration 13 | # team: \CxServer\SP 14 | # scan-timeout: 1800 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/test/resources/cucumber/data/cxflow-reference-reports/empty-results.json: -------------------------------------------------------------------------------- 1 | { 2 | "projectId": "5", 3 | "team": "CxServer", 4 | "project": "EmptyClass", 5 | "link": "http://CX-FLOW-CLEAN/CxWebClient/ViewerMain.aspx?scanid=1000024&projectid=5", 6 | "files": "1", 7 | "loc": "6", 8 | "scanType": "Full", 9 | "version":"8.9.0.210", 10 | "additionalDetails": { 11 | "flow-summary": {}, 12 | "scanId": "1000024", 13 | "scanStartDate": "Wednesday, January 15, 2020 1:31:13 PM" 14 | }, 15 | "xissues": [], 16 | "unFilteredIssues": [], 17 | "reportCreationTime":"Wednesday, January 15, 2020 1:32:47 PM", 18 | "deepLink":"http://CX-FLOW-CLEAN/CxWebClient/ViewerMain.aspx?scanid=1000024&projectid=5", 19 | "scanTime":"00h:01m:24s", 20 | "sastResults": false 21 | } -------------------------------------------------------------------------------- /src/test/resources/cucumber/data/input-code-for-sca/commons-fileupload-1.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/src/test/resources/cucumber/data/input-code-for-sca/commons-fileupload-1.0.jar -------------------------------------------------------------------------------- /src/test/resources/cucumber/data/input-code-samples/EmptyClass.java: -------------------------------------------------------------------------------- 1 | 2 | public class EmptyClass { 3 | 4 | public static void main(String[] args) { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/test/resources/cucumber/data/input-files-toscan/VB_3845/encode.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/checkmarx-ltd/cx-flow/173b6ab93b9aa600b06af0c79025aea8fdf200b6/src/test/resources/cucumber/data/input-files-toscan/VB_3845/encode.zip -------------------------------------------------------------------------------- /src/test/resources/cucumber/data/input-files-toscan/cx.config.src: -------------------------------------------------------------------------------- 1 | { 2 | "additionalProperties": { 3 | "cxFlow": { 4 | "vulnerabilityScanners": ["sca"] 5 | } 6 | }, 7 | "sca": { 8 | "appUrl": "https://sca.scacheckmarx.com", 9 | "apiUrl": "https://api-sca.checkmarx.net", 10 | "accessControlUrl": "https://platform.checkmarx.net", 11 | "tenant": "cxflow" 12 | } 13 | } -------------------------------------------------------------------------------- /src/test/resources/cucumber/data/input-files-toscan/cx.gitlab.configuration: -------------------------------------------------------------------------------- 1 | { 2 | "additionalProperties": { 3 | "cxFlow": { 4 | "bugTracker": "GitLab", 5 | "filters": { 6 | "severity": ["High", "Medium"] 7 | }, 8 | "thresholds": { 9 | "MEDIUM": 1, 10 | "LOW": 15 11 | } 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/test/resources/cucumber/data/input-scripts-sample/invalid-return-type-comment-script.groovy: -------------------------------------------------------------------------------- 1 | 2 | import com.checkmarx.flow.dto.ScanRequest 3 | import com.checkmarx.flow.utils.ScanUtils 4 | import groovy.json.JsonSlurper 5 | 6 | println("------------- Groovy script execution started --------------------") 7 | println("Checking sast comment") 8 | 9 | int SAST_Comment = 11; 10 | return SAST_Comment; 11 | -------------------------------------------------------------------------------- /src/test/resources/cucumber/data/input-scripts-sample/invalid-syntax-script-comment.groovy.invalid: -------------------------------------------------------------------------------- 1 | 2 | import com.checkmarx.flow.dto.ScanRequest 3 | import com.checkmarx.flow.utils.ScanUtils 4 | import groovy.json.JsonSlurper 5 | 6 | println("------------- Groovy script execution started --------------------") 7 | println("Checking sast comment") 8 | 9 | 10 | Str----ing SAST_Comment = "standard comment"; 11 | ret----urn SAST_Comment; 12 | 13 | -------------------------------------------------------------------------------- /src/test/resources/cucumber/data/input-scripts-sample/jira-project-key/invalid-return-type-project-key-script.groovy: -------------------------------------------------------------------------------- 1 | import com.checkmarx.flow.dto.ScanRequest 2 | 3 | println("------------- Groovy script execution started --------------------") 4 | println("Running groovy script for Jira project key - invalid return type") 5 | 6 | int jiraProjectKey = 5 7 | println("Jira project key set to: Type 'int', Value " + jiraProjectKey) 8 | return jiraProjectKey -------------------------------------------------------------------------------- /src/test/resources/cucumber/data/input-scripts-sample/jira-project-key/invalid-syntax-project-key-script.groovy: -------------------------------------------------------------------------------- 1 | import com.checkmarx.flow.dto.ScanRequest 2 | 3 | println("------------- Groovy script execution started --------------------") 4 | println("Running groovy script for Jira project key - invalid syntax") 5 | 6 | S---g jiraProjectKey = "standard project key" 7 | p-----n("Jira project key set to: " + jiraProjectKey) 8 | r----n jiraProjectKey -------------------------------------------------------------------------------- /src/test/resources/cucumber/data/input-scripts-sample/jira-project-key/jira-standard-project-key.groovy: -------------------------------------------------------------------------------- 1 | import com.checkmarx.flow.dto.ScanRequest 2 | 3 | println("------------- Groovy script execution started --------------------") 4 | println("Running groovy script for Jira project key - standard") 5 | 6 | String jiraProjectKey = "standard project key" 7 | println("Jira project key set to: " + jiraProjectKey) 8 | return jiraProjectKey -------------------------------------------------------------------------------- /src/test/resources/cucumber/data/input-scripts-sample/jira-project-key/parse-jira-project-key.groovy: -------------------------------------------------------------------------------- 1 | import com.checkmarx.flow.dto.ScanRequest 2 | 3 | println("------------- Groovy script execution started --------------------") 4 | println("Running groovy script for Jira project key - parse using scan request repo name") 5 | 6 | String repoName = request.getRepoName() 7 | String jiraProjectKey = "script-prefix-" + repoName 8 | println("Jira project key set to: " + jiraProjectKey) 9 | return jiraProjectKey -------------------------------------------------------------------------------- /src/test/resources/cucumber/data/input-scripts-sample/parse-branch-name-comment.groovy: -------------------------------------------------------------------------------- 1 | 2 | println("------------- Groovy script execution started --------------------") 3 | println("Checking sast comment") 4 | 5 | return "script-prefix-" + request.getBranch() 6 | 7 | -------------------------------------------------------------------------------- /src/test/resources/cucumber/data/input-scripts-sample/sast-standard-comment.groovy: -------------------------------------------------------------------------------- 1 | 2 | import com.checkmarx.flow.dto.ScanRequest 3 | import com.checkmarx.flow.utils.ScanUtils 4 | import groovy.json.JsonSlurper 5 | 6 | println("------------- Groovy script execution started --------------------") 7 | println("Checking sast comment") 8 | 9 | 10 | String SAST_Comment = "standard comment"; 11 | return SAST_Comment; 12 | 13 | -------------------------------------------------------------------------------- /src/test/resources/cucumber/data/input-scripts-sample/special-characters-comment-script.groovy: -------------------------------------------------------------------------------- 1 | 2 | import com.checkmarx.flow.dto.ScanRequest 3 | import com.checkmarx.flow.utils.ScanUtils 4 | import groovy.json.JsonSlurper 5 | 6 | println("------------- Groovy script execution started --------------------") 7 | println("Checking sast comment") 8 | 9 | String SAST_Comment = "comment_with-special/characters*\$@!66 ^*"; 10 | return SAST_Comment; 11 | -------------------------------------------------------------------------------- /src/test/resources/cucumber/data/sample-sast-results/empty-results.xml: -------------------------------------------------------------------------------- 1 |  2 | -------------------------------------------------------------------------------- /src/test/resources/cucumber/features/componentTests/astComments.feature: -------------------------------------------------------------------------------- 1 | @Component 2 | Feature: Test analytics for get results operation 3 | 4 | @Skip 5 | Scenario Outline: do get results operation for a known project, and validate the analytics created for the operation. 6 | When repository is "" and scanner is "" 7 | And doing get results operation on scan with results 8 | Then we should see the expected number of results in comments 9 | Examples: 10 | | repo | scanner | high | medium | low | info | 11 | | github | AST | 10 | 10 | 10 | 10 | 12 | | github | AST | 10 | 0 | 0 | 0 | 13 | | github | AST | 0 | 0 | 10 | 0 | 14 | | github | AST | 0 | 0 | 0 | 0 | 15 | | github | AST,SCA | 0 | 0 | 10 | 0 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /src/test/resources/cucumber/features/componentTests/csv-issue-tracker.feature: -------------------------------------------------------------------------------- 1 | @CsvIssueTracker @Skip 2 | Feature: Csv issue tracker flow 3 | 4 | Scenario Outline: Csv issue tracker 5 | Given Sast results having the following findings: 6 | When publish findings using Csv issue tracker 7 | Then Csv result generated with issue(s) 8 | Examples: 9 | | findings | number of issues | 10 | | 2 findings with the same vulnerability type and in the same file | 1 | 11 | | 2 findings with the same vulnerability type and in different files | 2 | 12 | | 2 findings with different vulnerability types and in the same file | 2 | 13 | | 2 findings with different vulnerability types and in different files | 2 | -------------------------------------------------------------------------------- /src/test/resources/cucumber/features/componentTests/cxIntegrations.feature: -------------------------------------------------------------------------------- 1 | @Cx-integrations 2 | Feature: Cx-Flow components tests integration with Cx-integrations 3 | 4 | Scenario: Cx-Go configuration is getting override when read-multi-tenant-configuration flag in cx-integrations configuration section set to true 5 | Given read-multi-tenant-configuration flag is set to true 6 | When cx-flow getting a new event 7 | Then scanRequest is getting populated with cx-go new configuration -------------------------------------------------------------------------------- /src/test/resources/cucumber/features/componentTests/webhook.feature: -------------------------------------------------------------------------------- 1 | @WebHook @ComponentTest 2 | Feature: Processing WebHook requests from version control providers 3 | 4 | Scenario: High load on CxFlow due to frequent WebHook requests from GitHub 5 | Given CxFlow is running as a service 6 | When GitHub sends WebHook requests to CxFlow 2 times per second 7 | Then each of the requests is answered in at most 500 ms -------------------------------------------------------------------------------- /src/test/resources/cucumber/features/componentTests/webhook.properties: -------------------------------------------------------------------------------- 1 | totalRequestCount = 20 2 | maxAwaitTimeForAllRequests = PT10S 3 | maxWarmUpRequestDuration = PT5S -------------------------------------------------------------------------------- /src/test/resources/cucumber/features/componentTests/winservice.feature: -------------------------------------------------------------------------------- 1 | @Skip @WinServiceFeature @ComponentTest 2 | Feature: Check Component tests WinService functionality -------------------------------------------------------------------------------- /src/test/resources/cucumber/features/e2eTests/HookProperties_ADO.properties: -------------------------------------------------------------------------------- 1 | ADO_target={target} 2 | ADO_namespace={namespace} 3 | ADO_repo={repo} -------------------------------------------------------------------------------- /src/test/resources/cucumber/features/e2eTests/HookProperties_GITHUB.properties: -------------------------------------------------------------------------------- 1 | GITHUB_target={target} 2 | GITHUB_namespace={namespace} 3 | GITHUB_repo={repo} 4 | GITHUB_repo_SCA={sca_repo} -------------------------------------------------------------------------------- /src/test/resources/cucumber/features/e2eTests/HookProperties_GITLAB.properties: -------------------------------------------------------------------------------- 1 | GITLAB_target={target} 2 | GITLAB_namespace={namespace} 3 | GITLAB_repo={repo} -------------------------------------------------------------------------------- /src/test/resources/cucumber/features/e2eTests/PullRequestProperties_GITHUB.properties: -------------------------------------------------------------------------------- 1 | title=cxflow GitHub e2e test 2 | body=This is an automated test 3 | base=master 4 | head=develop 5 | -------------------------------------------------------------------------------- /src/test/resources/cucumber/features/integrationTests/azure/publishing.properties: -------------------------------------------------------------------------------- 1 | projectName = Cx-FlowRepo-develop 2 | organization = cxflowtestuser -------------------------------------------------------------------------------- /src/test/resources/cucumber/features/integrationTests/configProvider/remoteRepo/configProviderRemoteRepo.feature: -------------------------------------------------------------------------------- 1 | @ConfigProviderRemoteRepoFeature 2 | Feature: CxFlow should read configuration from a remote repo 3 | 4 | Scenario Outline: CxFlow should read vulnerability scanner configuration from a remote repo and initialize the scanner's config with the right values 5 | Given github repo contains a Checkmarx configuration 6 | When initializing config provider 7 | And getting "" config provider configuration 8 | Then "" configuration on Cx-Flow side should match the remote repo configuration data 9 | 10 | Examples: 11 | | scanner | 12 | | ast | 13 | | sca | -------------------------------------------------------------------------------- /src/test/resources/cucumber/features/integrationTests/cxConfigBugTracker.feature: -------------------------------------------------------------------------------- 1 | @CxConfigBugTrackerFeature 2 | 3 | Feature: CxFlow can get a different bug tracker implementation from config-as-code configuration file. 4 | 5 | Scenario: Cx Flow receives a pull request webhook, and in the config-as-code configuration file, GitHub is defined as bug tracker. bug tracker should be GITHUBPULL 6 | Given github branch is udi-tests 7 | When pull request webhook arrives 8 | Then scan request should have GITHUBPULL bug tracker 9 | 10 | 11 | Scenario: CxFlow receives a push event and in the config-as-code configuration file, GitHub is defined as bug tracker, bug tracker should be GitHub 12 | Given github branch is udi-tests 13 | When push event arrives 14 | Then scan request should have GitHub bug tracker 15 | 16 | 17 | -------------------------------------------------------------------------------- /src/test/resources/cucumber/features/integrationTests/jira/jira-auto-config.feature: -------------------------------------------------------------------------------- 1 | @Jira 2 | @Integration 3 | @JiraAutoConfig 4 | @JiraIntegrationTests 5 | Feature: When there are no closed or open statuses for Jira in YML, CxFlow should auto config it from Jira 6 | 7 | Scenario: There are no Jira closed and open statuses defined in yml. CxFlow Should get those definitions from Jira. 8 | #Given There is no Jira closed and open statuses defined in yml 9 | Then we should have open and closed statuses in jira properties bean 10 | 11 | -------------------------------------------------------------------------------- /src/test/resources/cucumber/features/integrationTests/jira/jira-manual-config.feature: -------------------------------------------------------------------------------- 1 | @Jira 2 | @Integration 3 | @JiraManualConfig 4 | @JiraIntegrationTests 5 | Feature: When there are no closed or open statuses for Jira in YML, CxFlow should auto config it from Jira 6 | 7 | Scenario: There are values for jira closed and open statuses in yml, and so they should be used 8 | Then we should use te values from yml 9 | 10 | -------------------------------------------------------------------------------- /src/test/resources/cucumber/features/integrationTests/sca/teams.feature: -------------------------------------------------------------------------------- 1 | Feature: Cx-Flow SCA teams tests 2 | 3 | Scenario Outline: Create project team and validated returned assignedTeams value 4 | Given scanner is SCA 5 | When creating a new project with associated "" value 6 | Then project assignedTeams returned value is "" 7 | 8 | # empty team -> team: (team does exists, but without any value) 9 | # team = null -> team property doesn't exists in configuration 10 | 11 | Examples: 12 | | team | returned_value | 13 | | | | 14 | | null | | 15 | | /CxServer | /CxServer | 16 | | /CxServer/MyTeam | /CxServer/MyTeam | -------------------------------------------------------------------------------- /src/test/resources/cucumber/features/ziputils/ziputils.feature: -------------------------------------------------------------------------------- 1 | @Ziputils 2 | @Integration 3 | Feature: Zipping files 4 | 5 | Scenario: Zip a file created and deleted successfully 6 | When Creating zip File at a time 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /version.txt: -------------------------------------------------------------------------------- 1 | 1.7.10 2 | --------------------------------------------------------------------------------