github.com/devseccon/trivy@v0.47.1-0.20231123133102-bd902a0bd996/pkg/flag/repo.go (about)

     1  package flag
     2  
     3  var (
     4  	FetchBranchFlag = Flag{
     5  		Name:       "branch",
     6  		ConfigName: "repository.branch",
     7  		Default:    "",
     8  		Usage:      "pass the branch name to be scanned",
     9  	}
    10  	FetchCommitFlag = Flag{
    11  		Name:       "commit",
    12  		ConfigName: "repository.commit",
    13  		Default:    "",
    14  		Usage:      "pass the commit hash to be scanned",
    15  	}
    16  	FetchTagFlag = Flag{
    17  		Name:       "tag",
    18  		ConfigName: "repository.tag",
    19  		Default:    "",
    20  		Usage:      "pass the tag name to be scanned",
    21  	}
    22  )
    23  
    24  type RepoFlagGroup struct {
    25  	Branch *Flag
    26  	Commit *Flag
    27  	Tag    *Flag
    28  }
    29  
    30  type RepoOptions struct {
    31  	RepoBranch string
    32  	RepoCommit string
    33  	RepoTag    string
    34  }
    35  
    36  func NewRepoFlagGroup() *RepoFlagGroup {
    37  	return &RepoFlagGroup{
    38  		Branch: &FetchBranchFlag,
    39  		Commit: &FetchCommitFlag,
    40  		Tag:    &FetchTagFlag,
    41  	}
    42  }
    43  
    44  func (f *RepoFlagGroup) Name() string {
    45  	return "Repository"
    46  }
    47  
    48  func (f *RepoFlagGroup) Flags() []*Flag {
    49  	return []*Flag{f.Branch, f.Commit, f.Tag}
    50  }
    51  
    52  func (f *RepoFlagGroup) ToOptions() RepoOptions {
    53  	return RepoOptions{
    54  		RepoBranch: getString(f.Branch),
    55  		RepoCommit: getString(f.Commit),
    56  		RepoTag:    getString(f.Tag),
    57  	}
    58  }