🎯 CheckStructured
检查 composer.json 与 composer.lock 是否同步,并返回结构化结果(有效性 + 消息/警告/错误分类)。
何时使用
CI 流水线需要根据 Valid 布尔值决定是否放行,并把错误明细分别上报时使用。
签名
go
func (c *Composer) CheckStructured() (*CheckResult, error)参数
| 参数 | 类型 | 说明 |
|---|---|---|
| 无 | — | 该方法不接收参数 |
返回值
*CheckResult:检查结果,包含Valid与分类消息error:执行命令时的错误(注意:有 error 时Valid会被置为false,但仍返回结果)
go
type CheckResult struct {
Valid bool `json:"valid"`
Messages []string `json:"messages,omitempty"`
Warnings []string `json:"warnings,omitempty"`
Errors []string `json:"errors,omitempty"`
}示例
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.Fatal(err)
}
result, err := comp.CheckStructured()
if err != nil {
log.Printf("检查出现错误: %v", err)
}
if !result.Valid {
fmt.Println("检查未通过,错误:")
for _, e := range result.Errors {
fmt.Println("- " + e)
}
} else {
fmt.Println("检查通过")
}
}进阶
- 解析由
ParseCheckOutput完成:按行匹配error/Error/FAIL归入错误,warning/Warning/WARN归入警告,其余归入消息 - 原始文本版本见 Check
- 若需校验
composer.jsonschema 严格性,使用ValidateStructured(见 result_types.go)