Skip to content

Commit

Permalink
Utilize default project when undefined in frogbot-config.yml (#368)
Browse files Browse the repository at this point in the history
  • Loading branch information
omerzi committed Jun 21, 2023
1 parent ef24b3c commit 7ae41fe
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 1 deletion.
5 changes: 5 additions & 0 deletions commands/testdata/config/frogbot-config-empty-scan.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
- params:
git:
repoName: clean-test-proj
branches:
- master
3 changes: 3 additions & 0 deletions commands/utils/params.go
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,9 @@ func (s *Scan) setDefaultsIfNeeded() (err error) {
if s.MinSeverity, err = xrutils.GetSeveritiesFormat(s.MinSeverity); err != nil {
return
}
if len(s.Projects) == 0 {
s.Projects = append(s.Projects, Project{})
}
for i := range s.Projects {
if err = s.Projects[i].setDefaultsIfNeeded(); err != nil {
return
Expand Down
42 changes: 41 additions & 1 deletion commands/utils/params_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@ import (
"github.com/stretchr/testify/assert"
)

var configParamsTestFile = filepath.Join("..", "testdata", "config", "frogbot-config-test-params.yml")
var (
configParamsTestFile = filepath.Join("..", "testdata", "config", "frogbot-config-test-params.yml")
configEmptyScanParamsTestFile = filepath.Join("..", "testdata", "config", "frogbot-config-empty-scan.yml")
)

func TestExtractParamsFromEnvError(t *testing.T) {
SetEnvAndAssert(t, map[string]string{
Expand Down Expand Up @@ -169,6 +172,43 @@ func TestExtractAndAssertRepoParams(t *testing.T) {
}
}

func TestBuildRepoAggregatorWithEmptyScan(t *testing.T) {
SetEnvAndAssert(t, map[string]string{
JFrogUrlEnv: "http://127.0.0.1:8081",
JFrogTokenEnv: "token",
GitProvider: string(GitHub),
GitRepoOwnerEnv: "jfrog",
GitRepoEnv: "frogbot",
GitTokenEnv: "123456789",
})
defer func() {
assert.NoError(t, SanitizeEnv())
}()
server, gitParams, err := extractClientServerParams()
assert.NoError(t, err)
configFileContent, err := ReadConfigFromFileSystem(configEmptyScanParamsTestFile)
assert.NoError(t, err)
configAggregator, err := BuildRepoAggregator(configFileContent, gitParams, server)
assert.NoError(t, err)
assert.Len(t, configAggregator, 1)
assert.False(t, configAggregator[0].AggregateFixes)
scan := configAggregator[0].Scan
assert.False(t, scan.IncludeAllVulnerabilities)
assert.False(t, scan.FixableOnly)
assert.Empty(t, scan.MinSeverity)
assert.Empty(t, scan.JfrogReleasesRepo)
assert.True(t, *scan.FailOnSecurityIssues)
assert.Len(t, scan.Projects, 1)
project := scan.Projects[0]
assert.Empty(t, project.InstallCommandName)
assert.Empty(t, project.InstallCommandArgs)
assert.Empty(t, project.PipRequirementsFile)
assert.Empty(t, project.Repository)
assert.Len(t, project.WorkingDirs, 1)
assert.Equal(t, RootDir, project.WorkingDirs[0])
assert.True(t, *project.UseWrapper)
}

func testExtractAndAssertProjectParams(t *testing.T, project Project) {
assert.Equal(t, "nuget", project.InstallCommandName)
assert.Equal(t, []string{"restore"}, project.InstallCommandArgs)
Expand Down

0 comments on commit 7ae41fe

Please sign in to comment.