Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🐛 Add go installs to Pinned-Dependencies score #3424

Merged
merged 8 commits into from
Aug 25, 2023
18 changes: 17 additions & 1 deletion checks/evaluation/pinned_dependencies.go
Original file line number Diff line number Diff line change
Expand Up @@ -133,16 +133,23 @@ func PinningDependencies(name string, c *checker.CheckRequest,
return checker.CreateRuntimeErrorResult(name, err)
}

// Go installs.
goScore, err := createReturnForIsGoInstallPinned(pr, dl)
if err != nil {
return checker.CreateRuntimeErrorResult(name, err)
}

// Scores may be inconclusive.
actionScore = maxScore(0, actionScore)
dockerFromScore = maxScore(0, dockerFromScore)
dockerDownloadScore = maxScore(0, dockerDownloadScore)
scriptScore = maxScore(0, scriptScore)
pipScore = maxScore(0, pipScore)
npmScore = maxScore(0, npmScore)
goScore = maxScore(0, goScore)

score := checker.AggregateScores(actionScore, dockerFromScore,
dockerDownloadScore, scriptScore, pipScore, npmScore)
dockerDownloadScore, scriptScore, pipScore, npmScore, goScore)

if score == checker.MaxResultScore {
return checker.CreateMaxScoreResult(name, "all dependencies are pinned")
Expand Down Expand Up @@ -276,6 +283,15 @@ func createReturnForIsNpmInstallPinned(pr map[checker.DependencyUseType]pinnedRe
dl)
}

// Create the result for go install commands.
func createReturnForIsGoInstallPinned(pr map[checker.DependencyUseType]pinnedResult,
dl checker.DetailLogger,
) (int, error) {
return createReturnValues(pr, checker.DependencyUseTypeGoCommand,
"go installs are pinned",
dl)
}

func createReturnValues(pr map[checker.DependencyUseType]pinnedResult,
t checker.DependencyUseType, infoMsg string,
dl checker.DetailLogger,
Expand Down
38 changes: 27 additions & 11 deletions checks/evaluation/pinned_dependencies_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ func Test_PinningDependencies(t *testing.T) {
Error: nil,
Score: checker.MaxResultScore,
NumberOfWarn: 0,
NumberOfInfo: 7,
NumberOfInfo: 8,
gabibguti marked this conversation as resolved.
Show resolved Hide resolved
NumberOfDebug: 1,
},
},
Expand All @@ -130,9 +130,9 @@ func Test_PinningDependencies(t *testing.T) {
},
expected: scut.TestReturn{
Error: nil,
Score: 6,
Score: 7,
NumberOfWarn: 1,
NumberOfInfo: 5,
NumberOfInfo: 6,
NumberOfDebug: 1,
},
},
Expand All @@ -158,9 +158,9 @@ func Test_PinningDependencies(t *testing.T) {
},
expected: scut.TestReturn{
Error: nil,
Score: 3,
Score: 4,
NumberOfWarn: 3,
NumberOfInfo: 3,
NumberOfInfo: 4,
NumberOfDebug: 1,
},
},
Expand All @@ -176,7 +176,7 @@ func Test_PinningDependencies(t *testing.T) {
Error: nil,
Score: 8,
NumberOfWarn: 1,
NumberOfInfo: 6,
NumberOfInfo: 7,
NumberOfDebug: 0,
},
},
Expand All @@ -193,7 +193,7 @@ func Test_PinningDependencies(t *testing.T) {
Error: nil,
Score: 10,
NumberOfWarn: 0,
NumberOfInfo: 7,
NumberOfInfo: 8,
NumberOfDebug: 1,
},
},
Expand All @@ -203,7 +203,7 @@ func Test_PinningDependencies(t *testing.T) {
Error: nil,
Score: 10,
NumberOfWarn: 0,
NumberOfInfo: 7,
NumberOfInfo: 8,
NumberOfDebug: 0,
},
},
Expand All @@ -229,9 +229,9 @@ func Test_PinningDependencies(t *testing.T) {
},
expected: scut.TestReturn{
Error: nil,
Score: 3,
Score: 4,
NumberOfWarn: 3,
NumberOfInfo: 3,
NumberOfInfo: 4,
NumberOfDebug: 1,
},
},
Expand All @@ -247,7 +247,23 @@ func Test_PinningDependencies(t *testing.T) {
Error: nil,
Score: 8,
NumberOfWarn: 1,
NumberOfInfo: 6,
NumberOfInfo: 7,
NumberOfDebug: 0,
},
},
{
name: "unpinned go install",
dependencies: []checker.Dependency{
{
Location: &checker.File{},
Type: checker.DependencyUseTypeGoCommand,
},
},
expected: scut.TestReturn{
Error: nil,
Score: 8,
gabibguti marked this conversation as resolved.
Show resolved Hide resolved
NumberOfWarn: 1,
NumberOfInfo: 7,
NumberOfDebug: 0,
},
},
Expand Down
12 changes: 6 additions & 6 deletions e2e/pinned_dependencies_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,9 @@ var _ = Describe("E2E TEST:"+checks.CheckPinnedDependencies, func() {
}
expected := scut.TestReturn{
Error: nil,
Score: 3,
Score: 4,
NumberOfWarn: 139,
NumberOfInfo: 2,
NumberOfInfo: 3,
NumberOfDebug: 0,
}
result := checks.PinningDependencies(&req)
Expand All @@ -74,9 +74,9 @@ var _ = Describe("E2E TEST:"+checks.CheckPinnedDependencies, func() {
}
expected := scut.TestReturn{
Error: nil,
Score: 3,
Score: 4,
NumberOfWarn: 139,
NumberOfInfo: 2,
NumberOfInfo: 3,
NumberOfDebug: 0,
}
result := checks.PinningDependencies(&req)
Expand Down Expand Up @@ -110,9 +110,9 @@ var _ = Describe("E2E TEST:"+checks.CheckPinnedDependencies, func() {
}
expected := scut.TestReturn{
Error: nil,
Score: 3,
Score: 4,
NumberOfWarn: 139,
NumberOfInfo: 2,
NumberOfInfo: 3,
NumberOfDebug: 0,
}
result := checks.PinningDependencies(&req)
Expand Down
Loading