Skip to content

Commit

Permalink
Merge branch 'dev' into skip_non_applicable
Browse files Browse the repository at this point in the history
  • Loading branch information
dortam888 authored Dec 2, 2024
2 parents feff818 + fc3c156 commit 4b4322a
Show file tree
Hide file tree
Showing 20 changed files with 247 additions and 77 deletions.
2 changes: 1 addition & 1 deletion .github/actions/install-and-setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ runs:
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: 1.22.x
go-version: 1.23.x
# - name: Setup Go with cache
# uses: jfrog/.github/actions/install-go-with-cache@main

Expand Down
8 changes: 6 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ concurrency:
# Environment variables shared across all jobs.
env:
GOPROXY: direct
GO_COMMON_TEST_ARGS: "-v github.com/jfrog/jfrog-cli-security --race --timeout 30m --jfrog.url=${{ secrets.PLATFORM_URL }} --jfrog.adminToken=${{ secrets.PLATFORM_ADMIN_TOKEN }}"
GO_COMMON_TEST_ARGS: "-v github.com/jfrog/jfrog-cli-security --race --timeout 30m --jfrog.url=${{ secrets.PLATFORM_URL }} --jfrog.adminToken=${{ secrets.PLATFORM_ADMIN_TOKEN }} --test.containerRegistry=${{ secrets.CONTAINER_REGISTRY }}"
GRADLE_OPTS: -Dorg.gradle.daemon=false
CI: true
JFROG_CLI_LOG_LEVEL: DEBUG
Expand Down Expand Up @@ -180,6 +180,10 @@ jobs:
# Test
- name: Run tests
run: go test ${{ env.GO_COMMON_TEST_ARGS }} --test.xsc
if: ${{ matrix.os != 'ubuntu' }}
- name: Run security tests (with Docker Scan)
run: go test ${{ env.GO_COMMON_TEST_ARGS }} --test.xsc --test.dockerScan --ci.runId=${{ runner.os }}-sec-test
if: ${{ matrix.os == 'ubuntu' }}

Other_Scan_Commands_Integration_Tests:
name: "[${{ matrix.os }}] Other Scan Commands Integration Tests"
Expand All @@ -204,7 +208,7 @@ jobs:
run: go test ${{ env.GO_COMMON_TEST_ARGS }} --test.scan
if: ${{ matrix.os != 'ubuntu' }}
- name: Run security tests (with Docker Scan)
run: go test ${{ env.GO_COMMON_TEST_ARGS }} --test.scan --test.dockerScan --test.containerRegistry=${{ secrets.CONTAINER_REGISTRY }} --ci.runId=${{ runner.os }}-sec-test
run: go test ${{ env.GO_COMMON_TEST_ARGS }} --test.scan --test.dockerScan --ci.runId=${{ runner.os }}-sec-test
if: ${{ matrix.os == 'ubuntu' }}

Other_Commands_Integration_Tests:
Expand Down
138 changes: 105 additions & 33 deletions audit_test.go

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions commands/audit/sca/common_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ func TestGetExcludePattern(t *testing.T) {
{
name: "Test no exclude pattern recursive",
params: func() *utils.AuditBasicParams { return (&utils.AuditBasicParams{}).SetIsRecursiveScan(true) },
expected: "(^.*\\.git.*$)|(^.*node_modules.*$)|(^.*target.*$)|(^.*venv.*$)|(^.*test.*$)",
expected: "(^.*\\.git.*$)|(^.*node_modules.*$)|(^.*target.*$)|(^.*venv.*$)|(^.*test.*$)|(^dist$)",
},
{
name: "Test exclude pattern not recursive",
Expand All @@ -50,7 +50,7 @@ func TestGetExcludePattern(t *testing.T) {
{
name: "Test no exclude pattern",
params: func() *utils.AuditBasicParams { return &utils.AuditBasicParams{} },
expected: "(^.*\\.git.*$)|(^.*node_modules.*$)|(^.*target.*$)|(^.*venv.*$)|(^.*test.*$)",
expected: "(^.*\\.git.*$)|(^.*node_modules.*$)|(^.*target.*$)|(^.*venv.*$)|(^.*test.*$)|(^dist$)",
},
}

Expand Down
6 changes: 3 additions & 3 deletions commands/audit/sca/nuget/nuget.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ func restoreInTempDirAndGetBuildInfo(params utils.AuditParams, wd string, exclus
}

log.Info("Dependencies sources were not detected nor 'install' command provided. Running 'restore' command")
sol, err := runDotnetRestoreAndLoadSolution(params, tmpWd, exclusionPattern)
sol, err := runDotnetRestoreAndLoadSolution(params, tmpWd, exclusionPattern, params.InsecureTls())
if err != nil {
return
}
Expand All @@ -116,7 +116,7 @@ func isInstallRequired(params utils.AuditParams, sol solution.Solution, skipAuto
return installRequired, nil
}

func runDotnetRestoreAndLoadSolution(params utils.AuditParams, tmpWd, exclusionPattern string) (sol solution.Solution, err error) {
func runDotnetRestoreAndLoadSolution(params utils.AuditParams, tmpWd, exclusionPattern string, allowInsecureConnections bool) (sol solution.Solution, err error) {
toolName := params.InstallCommandName()
if toolName == "" {
// Determine if the project is a NuGet or .NET project
Expand Down Expand Up @@ -148,7 +148,7 @@ func runDotnetRestoreAndLoadSolution(params utils.AuditParams, tmpWd, exclusionP
log.Info(fmt.Sprintf("Resolving dependencies from '%s' from repo '%s'", serverDetails.Url, depsRepo))

var configFile *os.File
configFile, err = dotnet.InitNewConfig(tmpWd, depsRepo, serverDetails, false)
configFile, err = dotnet.InitNewConfig(tmpWd, depsRepo, serverDetails, false, allowInsecureConnections)
if err != nil {
err = fmt.Errorf("failed while attempting to generate a configuration file for setting up Artifactory as a resolution server")
return
Expand Down
2 changes: 1 addition & 1 deletion commands/audit/sca/nuget/nuget_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ func TestRunDotnetRestoreAndLoadSolution(t *testing.T) {
assert.Empty(t, sol.GetDependenciesSources())

params := &xrayUtils2.AuditBasicParams{}
sol, err = runDotnetRestoreAndLoadSolution(params, tempDirPath, "")
sol, err = runDotnetRestoreAndLoadSolution(params, tempDirPath, "", true)
assert.NoError(t, err)
assert.NotEmpty(t, sol.GetProjects())
assert.NotEmpty(t, sol.GetDependenciesSources())
Expand Down
2 changes: 2 additions & 0 deletions commands/curation/curationaudit_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -507,6 +507,8 @@ func createCurationCmdAndRun(tt testCase) (cmdResults map[string]*CurationReport
curationCmd := NewCurationAuditCommand()
curationCmd.SetIsCurationCmd(true)
curationCmd.parallelRequests = 3
// For tests, we use localhost http server (nuget have issues without setting insecureTls)
curationCmd.SetInsecureTls(true)
curationCmd.SetIgnoreConfigFile(tt.shouldIgnoreConfigFile)
cmdResults = map[string]*CurationReport{}
err = curationCmd.doCurateAudit(cmdResults)
Expand Down
24 changes: 16 additions & 8 deletions commands/enrich/enrich.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,18 +73,21 @@ func AppendVulnsToJson(cmdResults *results.SecurityCommandResults) error {
fileName := getScaScanFileName(cmdResults)
fileContent, err := os.ReadFile(fileName)
if err != nil {
fmt.Println("Error reading file:", err)
return err
return fmt.Errorf("error reading file: %s", err.Error())
}
var data map[string]interface{}
err = json.Unmarshal(fileContent, &data)
if err != nil {
fmt.Println("Error parsing XML:", err)
return err
return fmt.Errorf("error parsing JSON: %s", err.Error())
}
var vulnerabilities []map[string]string
xrayResults := cmdResults.GetScaScansXrayResults()[0]
for _, vuln := range xrayResults.Vulnerabilities {
xrayResults := cmdResults.GetScaScansXrayResults()
if len(xrayResults) == 0 {
return fmt.Errorf("failed while getting sca scan from xray: %s", err.Error())
} else if len(xrayResults) > 1 {
log.Warn("Received %d results, parsing only first result", len(xrayResults))
}
for _, vuln := range xrayResults[0].Vulnerabilities {
for component := range vuln.Components {
vulnerability := map[string]string{"bom-ref": component, "id": vuln.Cves[0].Id}
vulnerabilities = append(vulnerabilities, vulnerability)
Expand All @@ -102,9 +105,14 @@ func AppendVulnsToXML(cmdResults *results.SecurityCommandResults) error {
return err
}
destination := result.FindElements("//bom")[0]
xrayResults := cmdResults.GetScaScansXrayResults()[0]
xrayResults := cmdResults.GetScaScansXrayResults()
if len(xrayResults) == 0 {
return fmt.Errorf("failed while getting sca scan from xray: %s", err.Error())
} else if len(xrayResults) > 1 {
log.Warn("Received %d results, parsing only first result", len(xrayResults))
}
vulns := destination.CreateElement("vulnerabilities")
for _, vuln := range xrayResults.Vulnerabilities {
for _, vuln := range xrayResults[0].Vulnerabilities {
for component := range vuln.Components {
addVuln := vulns.CreateElement("vulnerability")
addVuln.CreateAttr("bom-ref", component)
Expand Down
6 changes: 4 additions & 2 deletions commands/scan/scan.go
Original file line number Diff line number Diff line change
Expand Up @@ -460,9 +460,11 @@ func (scanCmd *ScanCommand) createIndexerHandlerFunc(file *spec.File, cmdResults
IncludeVulnerabilities: scanCmd.includeVulnerabilities,
ProjectKey: scanCmd.projectKey,
ScanType: services.Binary,
MultiScanId: cmdResults.MultiScanId,
XscVersion: cmdResults.XscVersion,
XrayVersion: cmdResults.XrayVersion,
}
params.MultiScanId = cmdResults.MultiScanId
params.XscVersion = cmdResults.XscVersion

if scanCmd.progress != nil {
scanCmd.progress.SetHeadlineMsg("Scanning 🔍")
}
Expand Down
18 changes: 6 additions & 12 deletions go.mod
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
module github.com/jfrog/jfrog-cli-security

go 1.22.9

toolchain go1.23.3
go 1.23.3

require (
github.com/beevik/etree v1.4.0
github.com/google/go-github/v56 v56.0.0
github.com/gookit/color v1.5.4
github.com/jfrog/build-info-go v1.10.5
github.com/jfrog/build-info-go v1.10.6
github.com/jfrog/froggit-go v1.16.2
github.com/jfrog/gofrog v1.7.6
github.com/jfrog/jfrog-apps-config v1.0.1
github.com/jfrog/jfrog-cli-core/v2 v2.56.7
github.com/jfrog/jfrog-client-go v1.47.6
github.com/jfrog/jfrog-cli-core/v2 v2.57.0
github.com/jfrog/jfrog-client-go v1.48.2
github.com/magiconair/properties v1.8.7
github.com/owenrumney/go-sarif/v2 v2.3.0
github.com/stretchr/testify v1.9.0
Expand Down Expand Up @@ -113,13 +111,9 @@ require (
gopkg.in/warnings.v0 v0.1.2 // indirect
)

// replace github.com/jfrog/jfrog-cli-core/v2 => github.com/jfrog/jfrog-cli-core/v2 dev

replace github.com/jfrog/jfrog-client-go => github.com/jfrog/jfrog-client-go v1.28.1-0.20241124172451-50bd3e54f1e0
// replace github.com/jfrog/jfrog-client-go => github.com/jfrog/jfrog-client-go dev

// replace github.com/jfrog/jfrog-client-go => ../cli-projects/jfrog-client-go

// replace github.com/jfrog/jfrog-client-go => github.com/attiasas/jfrog-client-go v0.0.0-20241118103817-1d4e8d19de4f
// replace github.com/jfrog/jfrog-cli-core/v2 => github.com/jfrog/jfrog-cli-core/v2 dev

// replace github.com/jfrog/build-info-go => github.com/jfrog/build-info-go dev

Expand Down
12 changes: 6 additions & 6 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -119,18 +119,18 @@ github.com/jedib0t/go-pretty/v6 v6.6.1 h1:iJ65Xjb680rHcikRj6DSIbzCex2huitmc7bDtx
github.com/jedib0t/go-pretty/v6 v6.6.1/go.mod h1:zbn98qrYlh95FIhwwsbIip0LYpwSG8SUOScs+v9/t0E=
github.com/jfrog/archiver/v3 v3.6.1 h1:LOxnkw9pOn45DzCbZNFV6K0+6dCsQ0L8mR3ZcujO5eI=
github.com/jfrog/archiver/v3 v3.6.1/go.mod h1:VgR+3WZS4N+i9FaDwLZbq+jeU4B4zctXL+gL4EMzfLw=
github.com/jfrog/build-info-go v1.10.5 h1:cW03JlPlKv7RMUU896uLUxyLWXAmCgR5Y5QX0fwgz0Q=
github.com/jfrog/build-info-go v1.10.5/go.mod h1:JcISnovFXKx3wWf3p1fcMmlPdt6adxScXvoJN4WXqIE=
github.com/jfrog/build-info-go v1.10.6 h1:zH1ZhXlVfi5DlFyunygHjrdOcnv5qxfeLqmsfD4+lc4=
github.com/jfrog/build-info-go v1.10.6/go.mod h1:JcISnovFXKx3wWf3p1fcMmlPdt6adxScXvoJN4WXqIE=
github.com/jfrog/froggit-go v1.16.2 h1:F//S83iXH14qsCwYzv0zB2JtjS2pJVEsUoEmYA+37dQ=
github.com/jfrog/froggit-go v1.16.2/go.mod h1:5VpdQfAcbuyFl9x/x8HGm7kVk719kEtW/8YJFvKcHPA=
github.com/jfrog/gofrog v1.7.6 h1:QmfAiRzVyaI7JYGsB7cxfAJePAZTzFz0gRWZSE27c6s=
github.com/jfrog/gofrog v1.7.6/go.mod h1:ntr1txqNOZtHplmaNd7rS4f8jpA5Apx8em70oYEe7+4=
github.com/jfrog/jfrog-apps-config v1.0.1 h1:mtv6k7g8A8BVhlHGlSveapqf4mJfonwvXYLipdsOFMY=
github.com/jfrog/jfrog-apps-config v1.0.1/go.mod h1:8AIIr1oY9JuH5dylz2S6f8Ym2MaadPLR6noCBO4C22w=
github.com/jfrog/jfrog-cli-core/v2 v2.56.7 h1:pB4ronzVk60k/lf9bUL9HxBZ8PbMW6LhbIFld9NXNNc=
github.com/jfrog/jfrog-cli-core/v2 v2.56.7/go.mod h1:puLwWcnXYCJqUOvhscXRJiKNzPdj0adP+zadKy6A/gU=
github.com/jfrog/jfrog-client-go v1.28.1-0.20241124172451-50bd3e54f1e0 h1:YROG+bJY4QJEz9KdKUbBlbOHXY1vnDhhi0/cXrEgu9E=
github.com/jfrog/jfrog-client-go v1.28.1-0.20241124172451-50bd3e54f1e0/go.mod h1:1a7bmQHkRmPEza9wva2+WVrYzrGbosrMymq57kyG5gU=
github.com/jfrog/jfrog-cli-core/v2 v2.57.0 h1:3ON0J6Sjc2+4HZrzh4eSbdciXx3sJsJUIJ3TPQXh/5c=
github.com/jfrog/jfrog-cli-core/v2 v2.57.0/go.mod h1:SThaC/fniC96oN8YgCsHjvOxp5rBM7IppuIybn1oxT0=
github.com/jfrog/jfrog-client-go v1.48.2 h1:YVAIiNWuBEa4NbWL54I+YzvXHaxoHDk532USDKTvgLU=
github.com/jfrog/jfrog-client-go v1.48.2/go.mod h1:1a7bmQHkRmPEza9wva2+WVrYzrGbosrMymq57kyG5gU=
github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k=
github.com/k0kubun/pp v3.0.1+incompatible/go.mod h1:GWse8YhT0p8pT4ir3ZgBbfZild3tgzSScAn6HmfYukg=
github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4=
Expand Down
2 changes: 1 addition & 1 deletion jas/analyzermanager.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import (
const (
ApplicabilityFeatureId = "contextual_analysis"
AnalyzerManagerZipName = "analyzerManager.zip"
defaultAnalyzerManagerVersion = "1.11.8"
defaultAnalyzerManagerVersion = "1.12.0"
analyzerManagerDownloadPath = "xsc-gen-exe-analyzer-manager-local/v1"
analyzerManagerDirName = "analyzerManager"
analyzerManagerExecutableName = "analyzerManager"
Expand Down
5 changes: 4 additions & 1 deletion scans_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ import (
// Binary scan tests

func TestXrayBinaryScanJson(t *testing.T) {
integration.InitScanTest(t, scangraph.GraphScanMinXrayVersion)
output := testXrayBinaryScan(t, string(format.Json), false)
validations.VerifyJsonResults(t, output, validations.ValidationParams{
Vulnerabilities: 1,
Expand All @@ -50,6 +51,7 @@ func TestXrayBinaryScanJson(t *testing.T) {
}

func TestXrayBinaryScanSimpleJson(t *testing.T) {
integration.InitScanTest(t, scangraph.GraphScanMinXrayVersion)
output := testXrayBinaryScan(t, string(format.SimpleJson), true)
validations.VerifySimpleJsonResults(t, output, validations.ValidationParams{
Vulnerabilities: 1,
Expand All @@ -59,6 +61,7 @@ func TestXrayBinaryScanSimpleJson(t *testing.T) {
}

func TestXrayBinaryScanJsonWithProgress(t *testing.T) {
integration.InitScanTest(t, scangraph.GraphScanMinXrayVersion)
callback := commonTests.MockProgressInitialization()
defer callback()
output := testXrayBinaryScan(t, string(format.Json), false)
Expand All @@ -69,6 +72,7 @@ func TestXrayBinaryScanJsonWithProgress(t *testing.T) {
}

func TestXrayBinaryScanSimpleJsonWithProgress(t *testing.T) {
integration.InitScanTest(t, scangraph.GraphScanMinXrayVersion)
callback := commonTests.MockProgressInitialization()
defer callback()
output := testXrayBinaryScan(t, string(format.SimpleJson), true)
Expand All @@ -80,7 +84,6 @@ func TestXrayBinaryScanSimpleJsonWithProgress(t *testing.T) {
}

func testXrayBinaryScan(t *testing.T, format string, withViolation bool) string {
integration.InitScanTest(t, scangraph.GraphScanMinXrayVersion)
binariesPath := filepath.Join(filepath.FromSlash(securityTests.GetTestResourcesPath()), "projects", "binaries", "*")
args := []string{"scan", binariesPath, "--licenses", "--format=" + format}
if withViolation {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Copy of __init__ - inside the dist folder - which we expect not to be scanned

import os
import sqlite3
from pathlib import Path

from flask import Flask, g

DB_FILENAME = "database.db"


def query_db(query, args=(), one=False, commit=False):
with sqlite3.connect(DB_FILENAME) as conn:
# vulnerability: Sensitive Data Exposure
conn.set_trace_callback(print)
cur = conn.cursor().execute(query, args)
if commit:
conn.commit()
return cur.fetchone() if one else cur.fetchall()


def create_app():
app = Flask(__name__)
# jfrog-ignore - disable secrets scan findings
app.secret_key = "aeZ1iwoh2ree2mo0Eereireong4baitixaixu5Ee"

db_path = Path(DB_FILENAME)
if db_path.exists():
db_path.unlink()

conn = sqlite3.connect(DB_FILENAME)
create_table_query = """CREATE TABLE IF NOT EXISTS user
(id INTEGER PRIMARY KEY, username TEXT, password TEXT, access_level INTEGER)"""
conn.execute(create_table_query)

insert_admin_query = """INSERT INTO user (id, username, password, access_level)
VALUES (1, 'admin', 'admin', 0)"""
conn.execute(insert_admin_query)
conn.commit()
conn.close()

with app.app_context():
from . import actions
from . import auth
from . import status
from . import ui
from . import users

app.register_blueprint(actions.bp)
app.register_blueprint(auth.bp)
app.register_blueprint(status.bp)
app.register_blueprint(ui.bp)
app.register_blueprint(users.bp)
return app
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
using System;
using System.IO;
using System.Web;

public class TaintedPathHandler : IHttpHandler
{
public void ProcessRequest(HttpContext ctx)
{
String path = ctx.Request.QueryString["path"];
// BAD: This could read any file on the filesystem.
ctx.Response.Write(File.ReadAllText(path));

// BAD: This could still read any file on the filesystem.
ctx.Response.Write(File.ReadAllText("/home/user/" + path));

// GOOD: MapPath ensures the path is safe to read from.
string safePath = ctx.Request.MapPath(path, ctx.Request.ApplicationPath, false);
ctx.Response.Write(File.ReadAllText(safePath));
}
}
4 changes: 4 additions & 0 deletions utils/results/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,10 @@ func PrepareScaViolations(target ScanTarget, violations []services.Violation, en
continue
}
for compIndex := 0; compIndex < len(impactedPackagesNames); compIndex++ {
if impactedPackagesNames[compIndex] == "root" {
// No Need to output 'root' as impacted package for license since we add this as the root node for the scan
continue
}
if e := licenseHandler(
violation, cves, applicabilityStatus, severity,
impactedPackagesNames[compIndex], impactedPackagesVersions[compIndex], impactedPackagesTypes[compIndex],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ func addSimpleJsonLicenseViolation(licenseViolationsRows *[]formats.LicenseRow,
return func(violation services.Violation, cves []formats.CveRow, applicabilityStatus jasutils.ApplicabilityStatus, severity severityutils.Severity, impactedPackagesName, impactedPackagesVersion, impactedPackagesType string, fixedVersion []string, directComponents []formats.ComponentRow, impactPaths [][]formats.ComponentRow) error {
*licenseViolationsRows = append(*licenseViolationsRows,
formats.LicenseRow{
LicenseKey: violation.LicenseKey,
LicenseKey: getLicenseKey(violation.LicenseKey, violation.IssueId),
ImpactedDependencyDetails: formats.ImpactedDependencyDetails{
SeverityDetails: severityutils.GetAsDetails(severity, applicabilityStatus, pretty),
ImpactedDependencyName: impactedPackagesName,
Expand All @@ -246,6 +246,13 @@ func addSimpleJsonLicenseViolation(licenseViolationsRows *[]formats.LicenseRow,
}
}

func getLicenseKey(licenseKey, issueId string) string {
if licenseKey == "" {
return issueId
}
return licenseKey
}

func addSimpleJsonOperationalRiskViolation(operationalRiskViolationsRows *[]formats.OperationalRiskViolationRow, pretty bool) results.ParseScaViolationFunc {
return func(violation services.Violation, cves []formats.CveRow, applicabilityStatus jasutils.ApplicabilityStatus, severity severityutils.Severity, impactedPackagesName, impactedPackagesVersion, impactedPackagesType string, fixedVersion []string, directComponents []formats.ComponentRow, impactPaths [][]formats.ComponentRow) error {
violationOpRiskData := getOperationalRiskViolationReadableData(violation)
Expand Down
2 changes: 1 addition & 1 deletion utils/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ var (
// Exclude pattern for files.
DefaultJasExcludePatterns = []string{"**/.git/**", "**/*test*/**", "**/*venv*/**", NodeModulesPattern, "**/target/**", "**/dist/**"}
// Exclude pattern for directories.
DefaultScaExcludePatterns = []string{"*.git*", "*node_modules*", "*target*", "*venv*", "*test*"}
DefaultScaExcludePatterns = []string{"*.git*", "*node_modules*", "*target*", "*venv*", "*test*", "dist"}
)

const (
Expand Down
Loading

0 comments on commit 4b4322a

Please sign in to comment.