Skip to content

Commit 6964eab

Browse files
authored
Add option to disable Jas scans (#776)
1 parent 092691b commit 6964eab

File tree

6 files changed

+43
-15
lines changed

6 files changed

+43
-15
lines changed

scanpullrequest/scanpullrequest.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,8 @@ func auditPullRequest(repoConfig *utils.Repository, client vcsclient.VcsClient,
136136
SetFixableOnly(repoConfig.FixableOnly).
137137
SetFailOnInstallationErrors(*repoConfig.FailOnSecurityIssues).
138138
SetConfigProfile(repoConfig.ConfigProfile).
139-
SetSkipAutoInstall(repoConfig.SkipAutoInstall)
139+
SetSkipAutoInstall(repoConfig.SkipAutoInstall).
140+
SetDisableJas(repoConfig.DisableJas)
140141
if scanDetails, err = scanDetails.SetMinSeverity(repoConfig.MinSeverity); err != nil {
141142
return
142143
}

scanrepository/scanrepository.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@ import (
44
"context"
55
"errors"
66
"fmt"
7-
"github.com/go-git/go-git/v5"
8-
biutils "github.com/jfrog/build-info-go/utils"
97
"os"
108
"path/filepath"
119
"regexp"
1210
"strings"
1311

12+
"github.com/go-git/go-git/v5"
13+
biutils "github.com/jfrog/build-info-go/utils"
14+
1415
"github.com/jfrog/frogbot/v2/packagehandlers"
1516
"github.com/jfrog/frogbot/v2/utils"
1617
"github.com/jfrog/frogbot/v2/utils/outputwriter"
@@ -123,8 +124,8 @@ func (cfp *ScanRepositoryCmd) setCommandPrerequisites(repository *utils.Reposito
123124
SetFailOnInstallationErrors(*repository.FailOnSecurityIssues).
124125
SetFixableOnly(repository.FixableOnly).
125126
SetSkipAutoInstall(repository.SkipAutoInstall).
126-
SetFixableOnly(repository.FixableOnly).
127-
SetAllowPartialResults(repository.AllowPartialResults)
127+
SetAllowPartialResults(repository.AllowPartialResults).
128+
SetDisableJas(repository.DisableJas)
128129
if cfp.scanDetails, err = cfp.scanDetails.SetMinSeverity(repository.MinSeverity); err != nil {
129130
return
130131
}

utils/consts.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ const (
6161
DepsRepoEnv = "JF_DEPS_REPO"
6262
MinSeverityEnv = "JF_MIN_SEVERITY"
6363
FixableOnlyEnv = "JF_FIXABLE_ONLY"
64+
DisableJasEnv = "JF_DISABLE_ADVANCED_SECURITY"
6465
DetectionOnlyEnv = "JF_SKIP_AUTOFIX"
6566
AllowedLicensesEnv = "JF_ALLOWED_LICENSES"
6667
SkipAutoInstallEnv = "JF_SKIP_AUTO_INSTALL"

utils/params.go

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,18 @@ import (
44
"context"
55
"errors"
66
"fmt"
7-
"github.com/jfrog/jfrog-cli-security/utils/techutils"
8-
"github.com/jfrog/jfrog-cli-security/utils/xsc"
9-
"github.com/jfrog/jfrog-client-go/xsc/services"
10-
"golang.org/x/exp/slices"
117
"net/http"
128
"net/url"
139
"os"
1410
"path/filepath"
1511
"strconv"
1612
"strings"
1713

14+
"github.com/jfrog/jfrog-cli-security/utils/techutils"
15+
"github.com/jfrog/jfrog-cli-security/utils/xsc"
16+
"github.com/jfrog/jfrog-client-go/xsc/services"
17+
"golang.org/x/exp/slices"
18+
1819
"github.com/jfrog/frogbot/v2/utils/outputwriter"
1920
securityutils "github.com/jfrog/jfrog-cli-security/utils"
2021
"github.com/jfrog/jfrog-cli-security/utils/severityutils"
@@ -153,6 +154,7 @@ type Scan struct {
153154
FailOnSecurityIssues *bool `yaml:"failOnSecurityIssues,omitempty"`
154155
AvoidPreviousPrCommentsDeletion bool `yaml:"avoidPreviousPrCommentsDeletion,omitempty"`
155156
MinSeverity string `yaml:"minSeverity,omitempty"`
157+
DisableJas bool `yaml:"disableJas,omitempty"`
156158
AllowedLicenses []string `yaml:"allowedLicenses,omitempty"`
157159
Projects []Project `yaml:"projects,omitempty"`
158160
EmailDetails `yaml:",inline"`
@@ -213,6 +215,11 @@ func (s *Scan) setDefaultsIfNeeded() (err error) {
213215
return
214216
}
215217
}
218+
if !s.DisableJas {
219+
if s.DisableJas, err = getBoolEnv(DisableJasEnv, false); err != nil {
220+
return
221+
}
222+
}
216223
if !s.DetectionOnly {
217224
if s.DetectionOnly, err = getBoolEnv(DetectionOnlyEnv, false); err != nil {
218225
return

utils/params_test.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@ import (
44
"encoding/json"
55
"errors"
66
"fmt"
7-
"github.com/jfrog/jfrog-client-go/utils/tests"
8-
"github.com/jfrog/jfrog-client-go/xsc/services"
97
"os"
108
"path/filepath"
119
"testing"
1210

11+
"github.com/jfrog/jfrog-client-go/utils/tests"
12+
"github.com/jfrog/jfrog-client-go/xsc/services"
13+
1314
"github.com/jfrog/froggit-go/vcsclient"
1415
"github.com/jfrog/jfrog-cli-core/v2/utils/config"
1516

@@ -166,6 +167,7 @@ func TestExtractAndAssertRepoParams(t *testing.T) {
166167
GitEmailAuthorEnv: "[email protected]",
167168
MinSeverityEnv: "high",
168169
FixableOnlyEnv: "true",
170+
DisableJasEnv: "true",
169171
DetectionOnlyEnv: "true",
170172
AllowedLicensesEnv: "MIT, Apache-2.0, ISC",
171173
AvoidExtraMessages: "true",
@@ -196,6 +198,7 @@ func TestExtractAndAssertRepoParams(t *testing.T) {
196198
assert.Equal(t, "this is my branch {BRANCH_NAME_HASH}", templates.branchNameTemplate)
197199
assert.Equal(t, "High", repo.MinSeverity)
198200
assert.True(t, repo.FixableOnly)
201+
assert.True(t, repo.DisableJas)
199202
assert.True(t, repo.DetectionOnly)
200203
assert.Equal(t, true, repo.AggregateFixes)
201204
assert.Equal(t, "[email protected]", repo.EmailAuthor)
@@ -349,6 +352,7 @@ func TestGenerateConfigAggregatorFromEnv(t *testing.T) {
349352
FailOnSecurityIssuesEnv: "false",
350353
MinSeverityEnv: "medium",
351354
FixableOnlyEnv: "true",
355+
DisableJasEnv: "true",
352356
DetectionOnlyEnv: "true",
353357
AllowedLicensesEnv: "MIT, Apache-2.0",
354358
AvoidExtraMessages: "true",
@@ -392,6 +396,7 @@ func validateBuildRepoAggregator(t *testing.T, repo *Repository, gitParams *Git,
392396
assert.Equal(t, false, *repo.FailOnSecurityIssues)
393397
assert.Equal(t, "Medium", repo.MinSeverity)
394398
assert.Equal(t, true, repo.FixableOnly)
399+
assert.Equal(t, true, repo.DisableJas)
395400
assert.Equal(t, true, repo.DetectionOnly)
396401
assert.ElementsMatch(t, []string{"MIT", "Apache-2.0"}, repo.AllowedLicenses)
397402
assert.Equal(t, gitParams.RepoOwner, repo.RepoOwner)

utils/scandetails.go

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@ import (
44
"context"
55
"errors"
66
"fmt"
7-
clientservices "github.com/jfrog/jfrog-client-go/xsc/services"
87
"os"
98
"path/filepath"
109

10+
clientservices "github.com/jfrog/jfrog-client-go/xsc/services"
11+
1112
"github.com/jfrog/froggit-go/vcsclient"
1213
"github.com/jfrog/jfrog-cli-core/v2/utils/config"
1314
"github.com/jfrog/jfrog-cli-core/v2/utils/coreutils"
@@ -28,6 +29,7 @@ type ScanDetails struct {
2829
client vcsclient.VcsClient
2930
failOnInstallationErrors bool
3031
fixableOnly bool
32+
disableJas bool
3133
skipAutoInstall bool
3234
minSeverityFilter severityutils.Severity
3335
baseBranch string
@@ -39,6 +41,11 @@ func NewScanDetails(client vcsclient.VcsClient, server *config.ServerDetails, gi
3941
return &ScanDetails{client: client, ServerDetails: server, Git: git}
4042
}
4143

44+
func (sc *ScanDetails) SetDisableJas(disable bool) *ScanDetails {
45+
sc.disableJas = disable
46+
return sc
47+
}
48+
4249
func (sc *ScanDetails) SetFailOnInstallationErrors(toFail bool) *ScanDetails {
4350
sc.failOnInstallationErrors = toFail
4451
return sc
@@ -107,6 +114,10 @@ func (sc *ScanDetails) FixableOnly() bool {
107114
return sc.fixableOnly
108115
}
109116

117+
func (sc *ScanDetails) DisableJas() bool {
118+
return sc.disableJas
119+
}
120+
110121
func (sc *ScanDetails) MinSeverityFilter() severityutils.Severity {
111122
return sc.minSeverityFilter
112123
}
@@ -174,10 +185,13 @@ func (sc *ScanDetails) RunInstallAndAudit(workDirs ...string) (auditResults *res
174185
SetIgnoreConfigFile(true).
175186
SetServerDetails(sc.ServerDetails).
176187
SetInstallCommandName(sc.InstallCommandName).
177-
SetInstallCommandArgs(sc.InstallCommandArgs).SetUseJas(true).
188+
SetInstallCommandArgs(sc.InstallCommandArgs).
178189
SetTechnologies(sc.GetTechFromInstallCmdIfExists()).
179190
SetSkipAutoInstall(sc.skipAutoInstall).
180-
SetAllowPartialResults(sc.allowPartialResults)
191+
SetAllowPartialResults(sc.allowPartialResults).
192+
SetExclusions(sc.PathExclusions).
193+
SetIsRecursiveScan(sc.IsRecursiveScan).
194+
SetUseJas(!sc.DisableJas())
181195

182196
auditParams := audit.NewAuditParams().
183197
SetWorkingDirs(workDirs).
@@ -186,7 +200,6 @@ func (sc *ScanDetails) RunInstallAndAudit(workDirs ...string) (auditResults *res
186200
SetGraphBasicParams(auditBasicParams).
187201
SetCommonGraphScanParams(sc.CreateCommonGraphScanParams()).
188202
SetConfigProfile(sc.configProfile)
189-
auditParams.SetExclusions(sc.PathExclusions).SetIsRecursiveScan(sc.IsRecursiveScan)
190203

191204
auditResults, err = audit.RunAudit(auditParams)
192205

0 commit comments

Comments
 (0)