intel

package
v1.5.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 20, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Version = "dev"

Version is the CLI version injected by main.go for the HTTP user-agent.

Functions

func RunGovulncheck

func RunGovulncheck(ctx context.Context, dir string, logger *slog.Logger) ([]model.Finding, error)

RunGovulncheck runs govulncheck on a Go module directory and returns findings.

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 (v *VulnersClient) AddWebhook(ctx context.Context, query string) (*vulners.Webhook, error)

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 (v *VulnersClient) EnableSubscription(ctx context.Context, id string, active bool) error

func (*VulnersClient) EnableWebhook added in v1.2.0

func (v *VulnersClient) EnableWebhook(ctx context.Context, id string, active bool) error

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 (v *VulnersClient) GetAIScore(ctx context.Context, text string) (*vulners.AIScore, error)

func (*VulnersClient) GetBulletin

func (v *VulnersClient) GetBulletin(ctx context.Context, id string) (*vulners.Bulletin, error)

func (*VulnersClient) GetBulletinHistory

func (v *VulnersClient) GetBulletinHistory(ctx context.Context, id string) ([]vulners.HistoryEntry, error)

func (*VulnersClient) GetBulletinReferences

func (v *VulnersClient) GetBulletinReferences(ctx context.Context, id string) ([]string, error)

func (*VulnersClient) GetBulletinWithReferences added in v1.4.0

func (v *VulnersClient) GetBulletinWithReferences(ctx context.Context, id string) (*vulners.BulletinsWithReferences, error)

func (*VulnersClient) GetMultipleBulletins

func (v *VulnersClient) GetMultipleBulletins(ctx context.Context, ids []string) (map[string]vulners.Bulletin, error)

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 (v *VulnersClient) GetSuggestion(ctx context.Context, fieldName string) ([]string, error)

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 (v *VulnersClient) GetWebhook(ctx context.Context, id string) (*vulners.Webhook, error)

func (*VulnersClient) HostAudit

func (v *VulnersClient) HostAudit(ctx context.Context, osName, osVersion string, packages []vulners.AuditItem) (*vulners.SoftwareAuditResult, error)

func (*VulnersClient) HostVulns added in v1.2.0

func (v *VulnersClient) HostVulns(ctx context.Context, limit, offset int) ([]vulners.HostVuln, error)

func (*VulnersClient) IPSummaryReport added in v1.2.0

func (v *VulnersClient) IPSummaryReport(ctx context.Context) (*vulners.IPSummary, error)

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 (v *VulnersClient) ListWebhooks(ctx context.Context) ([]vulners.Webhook, error)

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 (v *VulnersClient) QueryAutocomplete(ctx context.Context, query string) ([]string, error)

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) ScanList added in v1.2.0

func (v *VulnersClient) ScanList(ctx context.Context, limit, offset int) ([]vulners.ScanItem, 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) VulnsList added in v1.2.0

func (v *VulnersClient) VulnsList(ctx context.Context, limit, offset int) ([]vulners.VulnItem, 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 (*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 (v *VulnersVScannerClient) GetLicenses(ctx context.Context) ([]vscanner.License, error)

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 (v *VulnersVScannerClient) ListProjects(ctx context.Context, limit, offset int) ([]vscanner.Project, error)

func (*VulnersVScannerClient) ListResults added in v1.2.0

func (v *VulnersVScannerClient) ListResults(ctx context.Context, projectID string, limit, offset int) ([]vscanner.Result, error)

func (*VulnersVScannerClient) ListTasks added in v1.2.0

func (v *VulnersVScannerClient) ListTasks(ctx context.Context, projectID string, limit, offset int) ([]vscanner.Task, error)

func (*VulnersVScannerClient) StartTask added in v1.2.0

func (v *VulnersVScannerClient) StartTask(ctx context.Context, projectID, taskID string) (*vscanner.Task, error)

func (*VulnersVScannerClient) UpdateProject added in v1.2.0

func (*VulnersVScannerClient) UpdateTask added in v1.2.0

func (v *VulnersVScannerClient) UpdateTask(ctx context.Context, projectID, taskID string, req *vscanner.TaskRequest) (*vscanner.Task, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL