Documentation
¶
Index ¶
- func BuildScanResultsComment(imageRef string, result *scan.ScanResult, uploads []*UploadSummary) string
- func NewSARIFFromScanResult(result *scan.ScanResult, imageRef string) ([]byte, error)
- type DefectDojoClient
- type DefectDojoEngagement
- type DefectDojoProduct
- type DefectDojoTest
- type DefectDojoUploaderConfig
- type ImportScanResponse
- type ProvenanceSummary
- type SBOMSummary
- type ScanSummary
- type SigningSummary
- type UploadSummary
- type WorkflowSummary
- func (w *WorkflowSummary) Display()
- func (w *WorkflowSummary) Duration() time.Duration
- func (w *WorkflowSummary) Finalize()
- func (w *WorkflowSummary) HasFailures() bool
- func (w *WorkflowSummary) RecordMergedScan(result *scan.ScanResult)
- func (w *WorkflowSummary) RecordProvenance(format string, err error, duration time.Duration, attached bool)
- func (w *WorkflowSummary) RecordSBOM(result *sbom.SBOM, err error, duration time.Duration, outputPath string)
- func (w *WorkflowSummary) RecordScan(tool scan.ScanTool, result *scan.ScanResult, err error, duration time.Duration, ...)
- func (w *WorkflowSummary) RecordSigning(result *signing.SignResult, err error, duration time.Duration)
- func (w *WorkflowSummary) RecordUpload(target string, err error, url string, duration time.Duration)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BuildScanResultsComment ¶
func BuildScanResultsComment(imageRef string, result *scan.ScanResult, uploads []*UploadSummary) string
BuildScanResultsComment renders a concise markdown summary for PR comments.
func NewSARIFFromScanResult ¶
func NewSARIFFromScanResult(result *scan.ScanResult, imageRef string) ([]byte, error)
NewSARIFFromScanResult converts a normalized scan result into SARIF 2.1.0.
Types ¶
type DefectDojoClient ¶
DefectDojoClient handles interactions with DefectDojo API API Documentation: https://defectdojo.github.io/django-DefectDojo/rest/api/
func NewDefectDojoClient ¶
func NewDefectDojoClient(baseURL, apiKey string) *DefectDojoClient
NewDefectDojoClient creates a new DefectDojo client. Warns if the URL is not HTTPS (API key would be sent in cleartext).
func (*DefectDojoClient) UploadScanResult ¶
func (c *DefectDojoClient) UploadScanResult(ctx context.Context, result *scan.ScanResult, imageRef string, config *DefectDojoUploaderConfig) (*ImportScanResponse, error)
UploadScanResult uploads scan results to DefectDojo. Uses reimport when a test with the same title already exists in the engagement to avoid creating duplicate findings. Falls back to import-scan for new tests.
type DefectDojoEngagement ¶
type DefectDojoEngagement struct {
ID int `json:"id"`
Name string `json:"name"`
Product int `json:"product"`
TargetStart string `json:"target_start"`
TargetEnd string `json:"target_end"`
Status string `json:"status"`
}
DefectDojoEngagement represents a DefectDojo engagement
type DefectDojoProduct ¶
type DefectDojoProduct struct {
ID int `json:"id"`
Name string `json:"name"`
Description string `json:"description"`
ProductType int `json:"prod_type"`
}
DefectDojoProduct represents a DefectDojo product
type DefectDojoTest ¶
type DefectDojoTest struct {
ID int `json:"id"`
Title string `json:"title"`
Engagement int `json:"engagement"`
TestType int `json:"test_type"`
TargetStart string `json:"target_start"`
TargetEnd string `json:"target_end"`
}
DefectDojoTest represents a DefectDojo test
type DefectDojoUploaderConfig ¶
type DefectDojoUploaderConfig struct {
EngagementID int
EngagementName string
ProductID int
ProductName string
TestType string
Tags []string
Environment string
AutoCreate bool
}
DefectDojoUploaderConfig contains configuration for uploading to DefectDojo
type ImportScanResponse ¶
type ImportScanResponse struct {
ID int `json:"id"`
Test int `json:"test"`
Product int `json:"product"`
Engagement int `json:"engagement"`
NumberOfFindings int `json:"number_of_findings"`
}
ImportScanResponse represents the response from importing a scan
type ProvenanceSummary ¶
type ProvenanceSummary struct {
Success bool
Error error
Format string
Duration time.Duration
Attached bool
}
ProvenanceSummary tracks provenance generation results
type SBOMSummary ¶
type SBOMSummary struct {
Success bool
Error error
PackageCount int
Format string
Generator string
Attached bool
Signed bool
Duration time.Duration
OutputPath string
}
SBOMSummary tracks SBOM generation results
type ScanSummary ¶
type ScanSummary struct {
Tool scan.ScanTool
Success bool
Error error
ScanResult *scan.ScanResult
Duration time.Duration
ToolVersion string
}
ScanSummary tracks vulnerability scan results
type SigningSummary ¶
type SigningSummary struct {
Success bool
Error error
Keyless bool
SignedAt time.Time
Duration time.Duration
}
SigningSummary tracks signing results
type UploadSummary ¶
type UploadSummary struct {
Target string // "defectdojo"
Success bool
Error error
URL string
Duration time.Duration
}
UploadSummary tracks report upload results
type WorkflowSummary ¶
type WorkflowSummary struct {
ImageRef string
StartTime time.Time
EndTime time.Time
SBOMResult *SBOMSummary
ScanResults []*ScanSummary
MergedResult *ScanSummary
SigningResult *SigningSummary
ProvenanceResult *ProvenanceSummary
UploadResults []*UploadSummary
}
WorkflowSummary tracks the results of all security operations
func NewWorkflowSummary ¶
func NewWorkflowSummary(imageRef string) *WorkflowSummary
NewWorkflowSummary creates a new workflow summary
func (*WorkflowSummary) Display ¶
func (w *WorkflowSummary) Display()
Display prints a formatted summary to stdout
func (*WorkflowSummary) Duration ¶
func (w *WorkflowSummary) Duration() time.Duration
Duration returns the total workflow duration
func (*WorkflowSummary) Finalize ¶
func (w *WorkflowSummary) Finalize()
Finalize marks the workflow as complete
func (*WorkflowSummary) HasFailures ¶
func (w *WorkflowSummary) HasFailures() bool
HasFailures returns true if any operation failed
func (*WorkflowSummary) RecordMergedScan ¶
func (w *WorkflowSummary) RecordMergedScan(result *scan.ScanResult)
RecordMergedScan records merged scan result
func (*WorkflowSummary) RecordProvenance ¶
func (w *WorkflowSummary) RecordProvenance(format string, err error, duration time.Duration, attached bool)
RecordProvenance records provenance generation result
func (*WorkflowSummary) RecordSBOM ¶
func (w *WorkflowSummary) RecordSBOM(result *sbom.SBOM, err error, duration time.Duration, outputPath string)
RecordSBOM records SBOM generation result
func (*WorkflowSummary) RecordScan ¶
func (w *WorkflowSummary) RecordScan(tool scan.ScanTool, result *scan.ScanResult, err error, duration time.Duration, toolVersion string)
RecordScan records a scan result
func (*WorkflowSummary) RecordSigning ¶
func (w *WorkflowSummary) RecordSigning(result *signing.SignResult, err error, duration time.Duration)
RecordSigning records signing result
func (*WorkflowSummary) RecordUpload ¶
func (w *WorkflowSummary) RecordUpload(target string, err error, url string, duration time.Duration)
RecordUpload records a report upload result