Skip to content

📤 导出格式

cpeskills 包提供将漏洞报告和 SBOM 序列化为行业标准交换格式的函数:JSON、CSV、SARIF、CycloneDX 和 SPDX。

类型:ExportFormat

go
type ExportFormat string

字符串枚举,用于选择漏洞报告导出的输出格式。

常量

常量类型说明
ExportFormatJSONExportFormat"json"JSON 格式
ExportFormatCSVExportFormat"csv"CSV 格式
ExportFormatSARIFExportFormat"sarif"SARIF 格式(静态分析结果交换格式)
go
_ = cpeskills.ExportFormatJSON
_ = cpeskills.ExportFormatCSV
_ = cpeskills.ExportFormatSARIF

📄 ExportVulnerabilityReport

go
func ExportVulnerabilityReport(report *VulnerabilityReport, format ExportFormat) ([]byte, error)

将单个漏洞报告导出为指定格式。根据格式分派到对应的专用导出函数。

参数类型说明
report*VulnerabilityReport要导出的报告
formatExportFormat目标格式
返回值类型说明
第 1 个[]byte序列化后的报告字节
第 2 个error格式不支持或序列化失败时返回错误
go
data, err := cpeskills.ExportVulnerabilityReport(report, cpeskills.ExportFormatJSON)
if err != nil {
    log.Fatal(err)
}
fmt.Println(string(data))

🔷 ExportToJSON

go
func ExportToJSON(report *VulnerabilityReport) ([]byte, error)

将漏洞报告导出为格式化的 JSON(2 空格缩进)。

参数类型说明
report*VulnerabilityReport要导出的报告
返回值类型说明
第 1 个[]byteJSON 字节
第 2 个errorreport 为 nil 或序列化失败时返回错误
go
data, err := cpeskills.ExportToJSON(report)

📊 ExportToCSV

go
func ExportToCSV(reports []*VulnerabilityReport) ([]byte, error)

将多个漏洞报告导出为 CSV。表头为 Component, Version, CVE, Severity, CVSS, EPSS, KEV, Reachability, FixAvailable, FixedVersion,其后每个漏洞发现占一行。

参数类型说明
reports[]*VulnerabilityReport要导出的报告列表
返回值类型说明
第 1 个[]byteCSV 字节
第 2 个error写入失败时返回错误
go
data, err := cpeskills.ExportToCSV(reports)

🛡️ ExportToSARIF

go
func ExportToSARIF(reports []*VulnerabilityReport) ([]byte, error)

将漏洞报告导出为 SARIF 2.1.0,即 OASIS 标准的静态分析结果交换格式,被 GitHub 和 Azure DevOps 等广泛支持。Critical/High 级别映射为 error,Medium 映射为 warning,其余映射为 note

参数类型说明
reports[]*VulnerabilityReport要导出的报告列表
返回值类型说明
第 1 个[]byteSARIF JSON 字节
第 2 个error序列化失败时返回错误
go
data, err := cpeskills.ExportToSARIF(reports)

🔄 ExportSBOMToCycloneDX

go
func ExportSBOMToCycloneDX(sbom *SBOM) ([]byte, error)

将 SBOM 导出为 CycloneDX JSON 格式(委托给 sbom.ToCycloneDXJSON())。

参数类型说明
sbom*SBOM要导出的 SBOM
返回值类型说明
第 1 个[]byteCycloneDX JSON 字节
第 2 个error序列化失败时返回错误
go
data, err := cpeskills.ExportSBOMToCycloneDX(sbom)

📋 ExportSBOMToSPDX

go
func ExportSBOMToSPDX(sbom *SBOM) ([]byte, error)

将 SBOM 导出为 SPDX JSON 格式(委托给 sbom.ToSPDXJSON())。

参数类型说明
sbom*SBOM要导出的 SBOM
返回值类型说明
第 1 个[]byteSPDX JSON 字节
第 2 个error序列化失败时返回错误
go
data, err := cpeskills.ExportSBOMToSPDX(sbom)

📦 ExportVulnerabilityReportBatch

go
func ExportVulnerabilityReportBatch(reports []*VulnerabilityReport, format ExportFormat) ([]byte, error)

批量导出漏洞报告为指定格式。JSON 会序列化整个切片;CSV/SARIF 委托给对应的批量导出函数。

参数类型说明
reports[]*VulnerabilityReport要导出的报告列表
formatExportFormat目标格式
返回值类型说明
第 1 个[]byte序列化后的字节
第 2 个error格式不支持或序列化失败时返回错误
go
data, err := cpeskills.ExportVulnerabilityReportBatch(reports, cpeskills.ExportFormatCSV)

🧭 导出分派

Released under the MIT License.