⚠️ HasVulnerabilities
快速判断当前项目是否存在任何已知安全漏洞,返回布尔值。内部调用 AuditWithJSON 并检查 Found 计数。
何时使用
在 CI 门禁、部署前检查或健康检查中,只需一个"有无漏洞"的布尔结论时使用。该方法对 Composer 发现漏洞时返回非零退出码的情况做了容错处理:只要错误信息中包含 Found 和 vulnerabilities 字样,也会判定为存在漏洞。
签名
go
func (c *Composer) HasVulnerabilities() (bool, error)参数
该方法无参数。
返回值
| 返回值 | 类型 | 说明 |
|---|---|---|
| 第一返回值 | bool | true 表示存在漏洞,false 表示未发现 |
| 第二返回值 | error | 检查过程中发生错误(非漏洞相关)时返回 |
提示
发现漏洞本身不会作为 error 返回——这正是本方法与直接调用 Audit 的关键区别。
示例
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)
}
hasVulns, err := comp.HasVulnerabilities()
if err != nil {
log.Fatalf("检查漏洞失败: %v", err)
}
if hasVulns {
fmt.Println("警告: 项目中存在安全漏洞!")
} else {
fmt.Println("项目中未发现安全漏洞。")
}
}进阶
- 需要漏洞详情:使用 AuditWithJSON 或 GetAuditInfo。
- 只关心高危漏洞:使用 GetHighSeverityVulnerabilities。
- 关心已放弃维护的包:使用 GetAbandonedPackages。