github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/pkg/platform/api/mediator/request/cve.go (about)

     1  package request
     2  
     3  // VulnerabilitiesByProject returns the query for retrieving vulnerabilities by projects
     4  func VulnerabilitiesByProject(org, name string) *vulnerabilitiesByProject {
     5  	return &vulnerabilitiesByProject{vars: map[string]interface{}{
     6  		"org":  org,
     7  		"name": name,
     8  	}}
     9  }
    10  
    11  type vulnerabilitiesByProject struct {
    12  	vars map[string]interface{}
    13  }
    14  
    15  func (p *vulnerabilitiesByProject) Query() string {
    16  	return `query Vulnerabilities($org: String!, $name: String!)
    17  		{
    18  		  project(org: $org, name: $name) {
    19  		    __typename
    20  		    ... on Project {
    21  		      name
    22  		      description
    23  		      commit {
    24  		        commit_id
    25  		        vulnerability_histogram {
    26  		          severity
    27  		          count
    28  		        }
    29  		        sources {
    30  		          name
    31  				  version
    32  		          vulnerabilities {
    33  		            severity
    34  		            cve_id
    35  		            alt_ids
    36  		          }
    37  		        }
    38  		      }
    39  		    }
    40  		    ... on NotFound {
    41  		      message
    42  		    }
    43  		  }
    44  		}`
    45  }
    46  
    47  func (p *vulnerabilitiesByProject) Vars() (map[string]interface{}, error) {
    48  	return p.vars, nil
    49  }
    50  
    51  type vulnerabilitiesByCommit struct {
    52  	vars map[string]interface{}
    53  }
    54  
    55  // VulnerabilitiesByCommit returns the query for retrieving vulnerabilities for a specific commit
    56  func VulnerabilitiesByCommit(commitID string) *vulnerabilitiesByCommit {
    57  	return &vulnerabilitiesByCommit{vars: map[string]interface{}{
    58  		"commit_id": commitID,
    59  	}}
    60  }
    61  
    62  func (p *vulnerabilitiesByCommit) Query() string {
    63  	return `query Vulnerabilities($commit_id: Uuid!)
    64  		{
    65  		  commit(commit_id: $commit_id) {
    66  		    __typename
    67  		    ... on Commit {
    68  		      commit_id
    69  		      vulnerability_histogram {
    70  		        severity
    71  		        count
    72  		      }
    73  		      sources {
    74  		        name
    75  				version
    76  		        vulnerabilities {
    77  		          severity
    78  		          cve_id
    79  		          alt_ids
    80  		        }
    81  		      }
    82  		    }
    83  		    ... on NotFound {
    84  		      message
    85  		    }
    86  		  }
    87  		}`
    88  }
    89  
    90  func (p *vulnerabilitiesByCommit) Vars() (map[string]interface{}, error) {
    91  	return p.vars, nil
    92  }