Skip to content

🛡️ CheckForSecurityVulnerabilities

检查当前项目依赖是否包含已知安全漏洞,等价于执行 composer audit 并自动分析输出。返回三值:原始输出、是否存在漏洞、错误。

何时使用

需要在 CI 或定时巡检中快速判断"当前依赖是否有漏洞"并据此触发告警时使用。相比 Audit 的纯文本输出,本方法直接给出布尔判定,便于条件分支。

签名

go
func (c *Composer) CheckForSecurityVulnerabilities() (string, bool, error)

参数

该方法无参数。

返回值

返回值类型说明
第一返回值stringcomposer audit 的原始输出
第二返回值booltrue 表示检测到漏洞
第三返回值error非漏洞类错误时返回;发现漏洞时为 nil

实现细节

composer audit 在发现漏洞时会返回非零退出码。本方法通过分析输出文本(含 Foundvulnerability 等关键字)区分"预期的漏洞提示"与"真实执行错误",因此发现漏洞时不会返回 error

示例

go
package main

import (
	"fmt"
	"log"

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

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

	output, hasVuln, err := comp.CheckForSecurityVulnerabilities()
	if err != nil {
		log.Fatalf("安全检查失败: %v", err)
	}

	if hasVuln {
		fmt.Println("⚠️ 发现安全漏洞:")
		fmt.Println(output)
	} else {
		fmt.Println("未发现安全漏洞")
	}
}

进阶

基于 MIT 许可证发布