Documentation
¶
Index ¶
- Variables
- func RunGovulncheck(ctx context.Context, dir string, logger *slog.Logger) ([]model.Finding, error)
- type Client
- type ClientOption
- type SearchResult
- type VScannerClient
- type VulnersClient
- func (v *VulnersClient) AddWebhook(ctx context.Context, query string) (*vulners.Webhook, error)
- func (v *VulnersClient) CVEAudit(ctx context.Context, cve string) (*vulners.CVEAuditIssue, error)
- func (v *VulnersClient) CreateSubscription(ctx context.Context, req *vulners.SubscriptionRequest) (*vulners.Subscription, error)
- func (v *VulnersClient) DeleteSubscription(ctx context.Context, id string) error
- func (v *VulnersClient) DeleteWebhook(ctx context.Context, id string) error
- func (v *VulnersClient) EnableSubscription(ctx context.Context, id string, active bool) error
- func (v *VulnersClient) EnableWebhook(ctx context.Context, id string, active bool) error
- func (v *VulnersClient) FetchCollection(ctx context.Context, collType vulners.CollectionType) ([]vulners.Bulletin, error)
- func (v *VulnersClient) FetchCollectionUpdate(ctx context.Context, collType vulners.CollectionType, after time.Time) ([]vulners.Bulletin, error)
- func (v *VulnersClient) GetAIScore(ctx context.Context, text string) (*vulners.AIScore, error)
- func (v *VulnersClient) GetBulletin(ctx context.Context, id string) (*vulners.Bulletin, error)
- func (v *VulnersClient) GetBulletinHistory(ctx context.Context, id string) ([]vulners.HistoryEntry, error)
- func (v *VulnersClient) GetBulletinReferences(ctx context.Context, id string) ([]string, error)
- func (v *VulnersClient) GetBulletinWithReferences(ctx context.Context, id string) (*vulners.BulletinsWithReferences, error)
- func (v *VulnersClient) GetMultipleBulletins(ctx context.Context, ids []string) (map[string]vulners.Bulletin, error)
- func (v *VulnersClient) GetSubscription(ctx context.Context, id string) (*vulners.Subscription, error)
- func (v *VulnersClient) GetSuggestion(ctx context.Context, fieldName string) ([]string, error)
- func (v *VulnersClient) GetWebVulnerabilities(ctx context.Context, paths []string, application any) (map[string][]vulners.WebVulnerability, error)
- func (v *VulnersClient) GetWebhook(ctx context.Context, id string) (*vulners.Webhook, error)
- func (v *VulnersClient) HostAudit(ctx context.Context, osName, osVersion string, packages []vulners.AuditItem) (*vulners.SoftwareAuditResult, error)
- func (v *VulnersClient) HostVulns(ctx context.Context, limit, offset int) ([]vulners.HostVuln, error)
- func (v *VulnersClient) IPSummaryReport(ctx context.Context) (*vulners.IPSummary, error)
- func (v *VulnersClient) KBAudit(ctx context.Context, os string, kbList []string) (*vulners.AuditResult, error)
- func (v *VulnersClient) LibraryAudit(ctx context.Context, packages []string) (*vulners.PackageAuditResult, error)
- func (v *VulnersClient) LinuxAudit(ctx context.Context, osName, osVersion string, packages []string) (*vulners.AuditResult, error)
- func (v *VulnersClient) LinuxAuditV4(ctx context.Context, osName, osVersion string, packages []string) (*vulners.PackageAuditResult, error)
- func (v *VulnersClient) ListSubscriptions(ctx context.Context) ([]vulners.Subscription, error)
- func (v *VulnersClient) ListWebhooks(ctx context.Context) ([]vulners.Webhook, error)
- func (v *VulnersClient) MakeSTIXBundleByCVE(ctx context.Context, cveID string) (*vulners.StixBundle, error)
- func (v *VulnersClient) MakeSTIXBundleByID(ctx context.Context, id string) (*vulners.StixBundle, error)
- func (v *VulnersClient) QueryAutocomplete(ctx context.Context, query string) ([]string, error)
- func (v *VulnersClient) ReadWebhook(ctx context.Context, id string, newestOnly bool) (*vulners.WebhookData, error)
- func (v *VulnersClient) SBOMAudit(ctx context.Context, sbom io.Reader) (*vulners.SBOMAuditResult, error)
- func (v *VulnersClient) ScanList(ctx context.Context, limit, offset int) ([]vulners.ScanItem, error)
- func (v *VulnersClient) Search(ctx context.Context, query string, limit, offset int) (*SearchResult, error)
- func (v *VulnersClient) SearchCPE(ctx context.Context, product, vendor string, limit int) (*vulners.CPESearchResult, error)
- func (v *VulnersClient) SearchExploits(ctx context.Context, query string, limit, offset int) (*SearchResult, error)
- func (v *VulnersClient) SmartAudit(ctx context.Context, software []string, catalog string) (*vulners.SmartAuditResult, error)
- func (v *VulnersClient) UpdateSubscription(ctx context.Context, id string, req *vulners.SubscriptionRequest) (*vulners.Subscription, error)
- func (v *VulnersClient) VulnsList(ctx context.Context, limit, offset int) ([]vulners.VulnItem, error)
- func (v *VulnersClient) VulnsSummaryReport(ctx context.Context, limit, offset int) (*vulners.VulnsSummary, error)
- func (v *VulnersClient) WinAudit(ctx context.Context, osName, osVersion string, kbList []string, ...) (*vulners.AuditResult, error)
- type VulnersVScannerClient
- func (v *VulnersVScannerClient) CreateProject(ctx context.Context, req *vscanner.ProjectRequest) (*vscanner.Project, error)
- func (v *VulnersVScannerClient) CreateTask(ctx context.Context, projectID string, req *vscanner.TaskRequest) (*vscanner.Task, error)
- func (v *VulnersVScannerClient) DeleteProject(ctx context.Context, id string) error
- func (v *VulnersVScannerClient) DeleteResult(ctx context.Context, projectID, resultID string) error
- func (v *VulnersVScannerClient) DeleteTask(ctx context.Context, projectID, taskID string) error
- func (v *VulnersVScannerClient) GetLicenses(ctx context.Context) ([]vscanner.License, error)
- func (v *VulnersVScannerClient) GetProjectStatistics(ctx context.Context, projectID string, stats []string) (map[string]json.RawMessage, error)
- func (v *VulnersVScannerClient) ListProjects(ctx context.Context, limit, offset int) ([]vscanner.Project, error)
- func (v *VulnersVScannerClient) ListResults(ctx context.Context, projectID string, limit, offset int) ([]vscanner.Result, error)
- func (v *VulnersVScannerClient) ListTasks(ctx context.Context, projectID string, limit, offset int) ([]vscanner.Task, error)
- func (v *VulnersVScannerClient) StartTask(ctx context.Context, projectID, taskID string) (*vscanner.Task, error)
- func (v *VulnersVScannerClient) UpdateProject(ctx context.Context, id string, req *vscanner.ProjectRequest) (*vscanner.Project, error)
- func (v *VulnersVScannerClient) UpdateTask(ctx context.Context, projectID, taskID string, req *vscanner.TaskRequest) (*vscanner.Task, error)
Constants ¶
This section is empty.
Variables ¶
var Version = "dev"
Version is the CLI version injected by main.go for the HTTP user-agent.
Functions ¶
Types ¶
type Client ¶
type Client interface {
Search(ctx context.Context, query string, limit, offset int) (*SearchResult, error)
SearchExploits(ctx context.Context, query string, limit, offset int) (*SearchResult, error)
GetBulletin(ctx context.Context, id string) (*vulners.Bulletin, error)
GetMultipleBulletins(ctx context.Context, ids []string) (map[string]vulners.Bulletin, error)
GetBulletinReferences(ctx context.Context, id string) ([]string, error)
GetBulletinHistory(ctx context.Context, id string) ([]vulners.HistoryEntry, error)
CVEAudit(ctx context.Context, cve string) (*vulners.CVEAuditIssue, error)
SearchCPE(ctx context.Context, product, vendor string, limit int) (*vulners.CPESearchResult, error)
LinuxAudit(ctx context.Context, osName, osVersion string, packages []string) (*vulners.AuditResult, error)
LinuxAuditV4(ctx context.Context, osName, osVersion string, packages []string) (*vulners.PackageAuditResult, error)
LibraryAudit(ctx context.Context, packages []string) (*vulners.PackageAuditResult, error)
SmartAudit(ctx context.Context, software []string, catalog string) (*vulners.SmartAuditResult, error)
GetBulletinWithReferences(ctx context.Context, id string) (*vulners.BulletinsWithReferences, error)
GetWebVulnerabilities(ctx context.Context, paths []string, application any) (map[string][]vulners.WebVulnerability, error)
KBAudit(ctx context.Context, os string, kbList []string) (*vulners.AuditResult, error)
HostAudit(ctx context.Context, osName, osVersion string, packages []vulners.AuditItem) (*vulners.SoftwareAuditResult, error)
WinAudit(ctx context.Context, osName, osVersion string, kbList []string, software []vulners.WinAuditItem) (*vulners.AuditResult, error)
SBOMAudit(ctx context.Context, sbom io.Reader) (*vulners.SBOMAuditResult, error)
FetchCollection(ctx context.Context, collType vulners.CollectionType) ([]vulners.Bulletin, error)
FetchCollectionUpdate(ctx context.Context, collType vulners.CollectionType, after time.Time) ([]vulners.Bulletin, error)
GetAIScore(ctx context.Context, text string) (*vulners.AIScore, error)
MakeSTIXBundleByID(ctx context.Context, id string) (*vulners.StixBundle, error)
MakeSTIXBundleByCVE(ctx context.Context, cveID string) (*vulners.StixBundle, error)
QueryAutocomplete(ctx context.Context, query string) ([]string, error)
GetSuggestion(ctx context.Context, fieldName string) ([]string, error)
VulnsSummaryReport(ctx context.Context, limit, offset int) (*vulners.VulnsSummary, error)
VulnsList(ctx context.Context, limit, offset int) ([]vulners.VulnItem, error)
HostVulns(ctx context.Context, limit, offset int) ([]vulners.HostVuln, error)
ScanList(ctx context.Context, limit, offset int) ([]vulners.ScanItem, error)
IPSummaryReport(ctx context.Context) (*vulners.IPSummary, error)
ListWebhooks(ctx context.Context) ([]vulners.Webhook, error)
AddWebhook(ctx context.Context, query string) (*vulners.Webhook, error)
GetWebhook(ctx context.Context, id string) (*vulners.Webhook, error)
ReadWebhook(ctx context.Context, id string, newestOnly bool) (*vulners.WebhookData, error)
EnableWebhook(ctx context.Context, id string, active bool) error
DeleteWebhook(ctx context.Context, id string) error
ListSubscriptions(ctx context.Context) ([]vulners.Subscription, error)
GetSubscription(ctx context.Context, id string) (*vulners.Subscription, error)
CreateSubscription(ctx context.Context, req *vulners.SubscriptionRequest) (*vulners.Subscription, error)
UpdateSubscription(ctx context.Context, id string, req *vulners.SubscriptionRequest) (*vulners.Subscription, error)
DeleteSubscription(ctx context.Context, id string) error
EnableSubscription(ctx context.Context, id string, active bool) error
}
Client is the interface for vulnerability intelligence lookups.
type ClientOption ¶ added in v1.5.1
type ClientOption func(*clientOptions)
ClientOption configures a VulnersClient at construction.
func WithMaxResponseSize ¶ added in v1.5.1
func WithMaxResponseSize(maxBytes int64) ClientOption
WithMaxResponseSize raises the maximum HTTP response body size the client will accept. Needed for fetching large archive collections (e.g. "cve", "ubuntu", "debian") whose CDN-cached downloads exceed the go-vulners default of 50 MiB. A non-positive value keeps the default.
type SearchResult ¶
type SearchResult struct {
Total int `json:"total"`
Bulletins []vulners.Bulletin `json:"bulletins"`
}
SearchResult wraps the Vulners search response.
type VScannerClient ¶ added in v1.2.0
type VScannerClient interface {
// Project management
ListProjects(ctx context.Context, limit, offset int) ([]vscanner.Project, error)
CreateProject(ctx context.Context, req *vscanner.ProjectRequest) (*vscanner.Project, error)
UpdateProject(ctx context.Context, id string, req *vscanner.ProjectRequest) (*vscanner.Project, error)
DeleteProject(ctx context.Context, id string) error
GetProjectStatistics(ctx context.Context, projectID string, stats []string) (map[string]json.RawMessage, error)
// Task management
ListTasks(ctx context.Context, projectID string, limit, offset int) ([]vscanner.Task, error)
CreateTask(ctx context.Context, projectID string, req *vscanner.TaskRequest) (*vscanner.Task, error)
UpdateTask(ctx context.Context, projectID, taskID string, req *vscanner.TaskRequest) (*vscanner.Task, error)
StartTask(ctx context.Context, projectID, taskID string) (*vscanner.Task, error)
DeleteTask(ctx context.Context, projectID, taskID string) error
// Result access
ListResults(ctx context.Context, projectID string, limit, offset int) ([]vscanner.Result, error)
DeleteResult(ctx context.Context, projectID, resultID string) error
// License
GetLicenses(ctx context.Context) ([]vscanner.License, error)
}
VScannerClient is the interface for VScanner operations.
type VulnersClient ¶
type VulnersClient struct {
// contains filtered or unexported fields
}
VulnersClient implements the Client interface using go-vulners.
func NewVulnersClient ¶
func NewVulnersClient(apiKey string, logger *slog.Logger, opts ...ClientOption) (*VulnersClient, error)
NewVulnersClient creates a new Vulners API client.
func (*VulnersClient) AddWebhook ¶ added in v1.2.0
func (*VulnersClient) CVEAudit ¶ added in v1.4.0
func (v *VulnersClient) CVEAudit(ctx context.Context, cve string) (*vulners.CVEAuditIssue, error)
func (*VulnersClient) CreateSubscription ¶ added in v1.2.0
func (v *VulnersClient) CreateSubscription(ctx context.Context, req *vulners.SubscriptionRequest) (*vulners.Subscription, error)
func (*VulnersClient) DeleteSubscription ¶ added in v1.2.0
func (v *VulnersClient) DeleteSubscription(ctx context.Context, id string) error
func (*VulnersClient) DeleteWebhook ¶ added in v1.2.0
func (v *VulnersClient) DeleteWebhook(ctx context.Context, id string) error
func (*VulnersClient) EnableSubscription ¶ added in v1.2.0
func (*VulnersClient) EnableWebhook ¶ added in v1.2.0
func (*VulnersClient) FetchCollection ¶
func (v *VulnersClient) FetchCollection(ctx context.Context, collType vulners.CollectionType) ([]vulners.Bulletin, error)
func (*VulnersClient) FetchCollectionUpdate ¶
func (v *VulnersClient) FetchCollectionUpdate(ctx context.Context, collType vulners.CollectionType, after time.Time) ([]vulners.Bulletin, error)
func (*VulnersClient) GetAIScore ¶
func (*VulnersClient) GetBulletin ¶
func (*VulnersClient) GetBulletinHistory ¶
func (v *VulnersClient) GetBulletinHistory(ctx context.Context, id string) ([]vulners.HistoryEntry, error)
func (*VulnersClient) GetBulletinReferences ¶
func (*VulnersClient) GetBulletinWithReferences ¶ added in v1.4.0
func (v *VulnersClient) GetBulletinWithReferences(ctx context.Context, id string) (*vulners.BulletinsWithReferences, error)
func (*VulnersClient) GetMultipleBulletins ¶
func (*VulnersClient) GetSubscription ¶ added in v1.2.0
func (v *VulnersClient) GetSubscription(ctx context.Context, id string) (*vulners.Subscription, error)
func (*VulnersClient) GetSuggestion ¶ added in v1.2.0
func (*VulnersClient) GetWebVulnerabilities ¶ added in v1.4.0
func (v *VulnersClient) GetWebVulnerabilities(ctx context.Context, paths []string, application any) (map[string][]vulners.WebVulnerability, error)
func (*VulnersClient) GetWebhook ¶ added in v1.2.0
func (*VulnersClient) HostAudit ¶
func (v *VulnersClient) HostAudit(ctx context.Context, osName, osVersion string, packages []vulners.AuditItem) (*vulners.SoftwareAuditResult, error)
func (*VulnersClient) IPSummaryReport ¶ added in v1.2.0
func (*VulnersClient) KBAudit ¶
func (v *VulnersClient) KBAudit(ctx context.Context, os string, kbList []string) (*vulners.AuditResult, error)
func (*VulnersClient) LibraryAudit ¶ added in v1.4.0
func (v *VulnersClient) LibraryAudit(ctx context.Context, packages []string) (*vulners.PackageAuditResult, error)
func (*VulnersClient) LinuxAudit ¶
func (v *VulnersClient) LinuxAudit(ctx context.Context, osName, osVersion string, packages []string) (*vulners.AuditResult, error)
func (*VulnersClient) LinuxAuditV4 ¶ added in v1.4.0
func (v *VulnersClient) LinuxAuditV4(ctx context.Context, osName, osVersion string, packages []string) (*vulners.PackageAuditResult, error)
func (*VulnersClient) ListSubscriptions ¶ added in v1.2.0
func (v *VulnersClient) ListSubscriptions(ctx context.Context) ([]vulners.Subscription, error)
func (*VulnersClient) ListWebhooks ¶ added in v1.2.0
func (*VulnersClient) MakeSTIXBundleByCVE ¶
func (v *VulnersClient) MakeSTIXBundleByCVE(ctx context.Context, cveID string) (*vulners.StixBundle, error)
func (*VulnersClient) MakeSTIXBundleByID ¶
func (v *VulnersClient) MakeSTIXBundleByID(ctx context.Context, id string) (*vulners.StixBundle, error)
func (*VulnersClient) QueryAutocomplete ¶ added in v1.2.0
func (*VulnersClient) ReadWebhook ¶ added in v1.2.0
func (v *VulnersClient) ReadWebhook(ctx context.Context, id string, newestOnly bool) (*vulners.WebhookData, error)
func (*VulnersClient) SBOMAudit ¶
func (v *VulnersClient) SBOMAudit(ctx context.Context, sbom io.Reader) (*vulners.SBOMAuditResult, error)
func (*VulnersClient) Search ¶
func (v *VulnersClient) Search(ctx context.Context, query string, limit, offset int) (*SearchResult, error)
func (*VulnersClient) SearchCPE ¶
func (v *VulnersClient) SearchCPE(ctx context.Context, product, vendor string, limit int) (*vulners.CPESearchResult, error)
func (*VulnersClient) SearchExploits ¶
func (v *VulnersClient) SearchExploits(ctx context.Context, query string, limit, offset int) (*SearchResult, error)
func (*VulnersClient) SmartAudit ¶ added in v1.5.0
func (v *VulnersClient) SmartAudit(ctx context.Context, software []string, catalog string) (*vulners.SmartAuditResult, error)
func (*VulnersClient) UpdateSubscription ¶ added in v1.2.0
func (v *VulnersClient) UpdateSubscription(ctx context.Context, id string, req *vulners.SubscriptionRequest) (*vulners.Subscription, error)
func (*VulnersClient) VulnsSummaryReport ¶ added in v1.2.0
func (v *VulnersClient) VulnsSummaryReport(ctx context.Context, limit, offset int) (*vulners.VulnsSummary, error)
func (*VulnersClient) WinAudit ¶
func (v *VulnersClient) WinAudit(ctx context.Context, osName, osVersion string, kbList []string, software []vulners.WinAuditItem) (*vulners.AuditResult, error)
type VulnersVScannerClient ¶ added in v1.2.0
type VulnersVScannerClient struct {
// contains filtered or unexported fields
}
VulnersVScannerClient implements VScannerClient using go-vulners/vscanner.
func NewVScannerClient ¶ added in v1.2.0
func NewVScannerClient(apiKey string, logger *slog.Logger) (*VulnersVScannerClient, error)
NewVScannerClient creates a new VScanner API client.
func (*VulnersVScannerClient) CreateProject ¶ added in v1.2.0
func (v *VulnersVScannerClient) CreateProject(ctx context.Context, req *vscanner.ProjectRequest) (*vscanner.Project, error)
func (*VulnersVScannerClient) CreateTask ¶ added in v1.2.0
func (v *VulnersVScannerClient) CreateTask(ctx context.Context, projectID string, req *vscanner.TaskRequest) (*vscanner.Task, error)
func (*VulnersVScannerClient) DeleteProject ¶ added in v1.2.0
func (v *VulnersVScannerClient) DeleteProject(ctx context.Context, id string) error
func (*VulnersVScannerClient) DeleteResult ¶ added in v1.2.0
func (v *VulnersVScannerClient) DeleteResult(ctx context.Context, projectID, resultID string) error
func (*VulnersVScannerClient) DeleteTask ¶ added in v1.2.0
func (v *VulnersVScannerClient) DeleteTask(ctx context.Context, projectID, taskID string) error
func (*VulnersVScannerClient) GetLicenses ¶ added in v1.2.0
func (*VulnersVScannerClient) GetProjectStatistics ¶ added in v1.4.0
func (v *VulnersVScannerClient) GetProjectStatistics(ctx context.Context, projectID string, stats []string) (map[string]json.RawMessage, error)
func (*VulnersVScannerClient) ListProjects ¶ added in v1.2.0
func (*VulnersVScannerClient) ListResults ¶ added in v1.2.0
func (*VulnersVScannerClient) UpdateProject ¶ added in v1.2.0
func (v *VulnersVScannerClient) UpdateProject(ctx context.Context, id string, req *vscanner.ProjectRequest) (*vscanner.Project, error)
func (*VulnersVScannerClient) UpdateTask ¶ added in v1.2.0
func (v *VulnersVScannerClient) UpdateTask(ctx context.Context, projectID, taskID string, req *vscanner.TaskRequest) (*vscanner.Task, error)