Skip to content

📈 GetAuditInfo

执行安全审计并返回结构化的详细结果 *AuditInfoResult。等价于执行 composer audit --format=json 并解析为更细粒度的公告结构。

何时使用

当需要比 AuditWithJSON 更结构化、字段更规范的审计结果时使用。本方法对 Composer 发现漏洞时返回非零退出码的情况做了容错:只要标准输出非空,仍会尝试解析其中的 JSON。

签名

go
func (c *Composer) GetAuditInfo() (*AuditInfoResult, error)

参数

该方法无参数。

返回值

返回值类型说明
第一返回值*AuditInfoResult结构化审计结果,含公告列表与计数
第二返回值error执行或 JSON 解析失败时返回

AuditInfoResult 字段:

字段类型说明
Advisories[]AuditAdvisoryInfo安全公告详情列表
Countint公告数量(解析时自动填充)

AuditAdvisoryInfo 关键字段:PackageNameVersionTitleSeveritycritical/high/medium/low)、CVELinkReportedAt

示例

go
package main

import (
	"fmt"
	"log"

	"github.com/scagogogo/composer-skills/pkg/composer"
)

func main() {
	comp, err := composer.NewComposer("")
	if err != nil {
		log.Fatalf("初始化失败: %v", err)
	}

	result, err := comp.GetAuditInfo()
	if err != nil {
		log.Fatalf("安全审计失败: %v", err)
	}

	fmt.Printf("共 %d 条公告\n", result.Count)
	for _, adv := range result.Advisories {
		fmt.Printf("漏洞: %s (%s) - %s\n", adv.PackageName, adv.Severity, adv.Title)
		fmt.Printf("详情: %s\n", adv.Link)
	}
}

进阶

  • 带自定义选项的结构化版本:GetAuditInfoWithOptions(options map[string]string),可在 JSON 输出基础上追加 no-devlocked 等参数。
  • 手动解析任意 audit JSON 输出:使用包级函数 ParseAuditInfoResult(output string)
  • 相关方法:AuditWithJSONHasVulnerabilitiesGetHighSeverityVulnerabilities

基于 MIT 许可证发布