Skip to content

Commit

Permalink
switch WithChecks to accepting []string
Browse files Browse the repository at this point in the history
Signed-off-by: Spencer Schrock <sschrock@google.com>
  • Loading branch information
spencerschrock committed May 17, 2024
1 parent f4e8cbd commit c97d7ef
Showing 1 changed file with 37 additions and 8 deletions.
45 changes: 37 additions & 8 deletions pkg/scorecard.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,10 @@ import (
"sigs.k8s.io/release-utils/version"

"github.com/ossf/scorecard/v5/checker"
scchecks "github.com/ossf/scorecard/v5/checks"
"github.com/ossf/scorecard/v5/clients"
"github.com/ossf/scorecard/v5/clients/githubrepo"
"github.com/ossf/scorecard/v5/clients/gitlabrepo"
"github.com/ossf/scorecard/v5/clients/localdir"
"github.com/ossf/scorecard/v5/clients/ossfuzz"
"github.com/ossf/scorecard/v5/config"
sce "github.com/ossf/scorecard/v5/errors"
Expand All @@ -37,6 +39,7 @@ import (
proberegistration "github.com/ossf/scorecard/v5/internal/probes"
sclog "github.com/ossf/scorecard/v5/log"
scoptions "github.com/ossf/scorecard/v5/options"
"github.com/ossf/scorecard/v5/policy"
)

// errEmptyRepository indicates the repository is empty.
Expand Down Expand Up @@ -285,7 +288,7 @@ type runConfig struct {
ciiClient clients.CIIBestPracticesClient
projectClient packageclient.ProjectPackageClient
ossfuzzClient clients.RepoClient
checks checker.CheckNameToFnMap
checks []string
commit string
probes []string
commitDepth int
Expand All @@ -307,7 +310,7 @@ func WithCommitSHA(sha string) Option {
}
}

func WithChecks(checks checker.CheckNameToFnMap) Option {
func WithChecks(checks []string) Option {
return func(c *runConfig) error {
c.checks = checks
return nil
Expand Down Expand Up @@ -350,6 +353,8 @@ func WithOpenSSFBestPraticesClient(client clients.CIIBestPracticesClient) Option
}

func Run(ctx context.Context, repo clients.Repo, options ...Option) (ScorecardResult, error) {
// TODO logger
logger := sclog.NewLogger(sclog.InfoLevel)
c := runConfig{
commit: clients.HeadSHA,
}
Expand All @@ -370,12 +375,36 @@ func Run(ctx context.Context, repo clients.Repo, options ...Option) (ScorecardRe
if c.projectClient == nil {
c.projectClient = packageclient.CreateDepsDevClient()
}
if c.client == nil {
// TODO, need to detect and create here.

var requiredRequestTypes []checker.RequestType
var err error
switch repo.(type) {
case *localdir.Repo:
requiredRequestTypes = append(requiredRequestTypes, checker.FileBased)
if c.client == nil {
c.client = localdir.CreateLocalDirClient(ctx, logger)
}
case *githubrepo.Repo:
if c.client == nil {
c.client = githubrepo.CreateGithubRepoClient(ctx, logger)
}
case *gitlabrepo.Repo:
if c.client == nil {
c.client, err = gitlabrepo.CreateGitlabClient(ctx, repo.Host())
if err != nil {
return ScorecardResult{}, err

Check failure on line 395 in pkg/scorecard.go

View workflow job for this annotation

GitHub Actions / check-linter

error returned from external package is unwrapped: sig: func github.com/ossf/scorecard/v5/clients/gitlabrepo.CreateGitlabClient(ctx context.Context, host string) (github.com/ossf/scorecard/v5/clients.RepoClient, error) (wrapcheck)
}
}
}
if c.checks == nil && len(c.probes) == 0 {
c.checks = scchecks.GetAll()

if !strings.EqualFold(c.commit, clients.HeadSHA) {
requiredRequestTypes = append(requiredRequestTypes, checker.CommitBased)
}

checksToRun, err := policy.GetEnabled(nil, c.checks, requiredRequestTypes)
if err != nil {
return ScorecardResult{}, err

Check failure on line 406 in pkg/scorecard.go

View workflow job for this annotation

GitHub Actions / check-linter

error returned from external package is unwrapped: sig: func github.com/ossf/scorecard/v5/policy.GetEnabled(sp *github.com/ossf/scorecard/v5/policy.ScorecardPolicy, argsChecks []string, requiredRequestTypes []github.com/ossf/scorecard/v5/checker.RequestType) (github.com/ossf/scorecard/v5/checker.CheckNameToFnMap, error) (wrapcheck)
}

return runScorecard(ctx, repo, c.commit, c.commitDepth, c.checks, c.probes, c.client, c.ossfuzzClient, c.ciiClient, c.vulnClient, c.projectClient)
return runScorecard(ctx, repo, c.commit, c.commitDepth, checksToRun, c.probes, c.client, c.ossfuzzClient, c.ciiClient, c.vulnClient, c.projectClient)
}

0 comments on commit c97d7ef

Please sign in to comment.