logo
0
0
WeChat Login
feat: 添加公共 API 导出与文档支持

Gitea CNB Parser

Gitea CNB Parser 是一个 Gitea native first 的 webhook parser MVP:读取 .gitea.yml,把 Gitea webhook payload 归一化为 NormalizedEvent,并匹配命中的 pipeline。

作为 Go 模块调用

package main import ( "log" runner "cnb.cool/zishuo/runner" ) func main() { parser, err := runner.NewParserFromFile("docs/.gitea.yml") if err != nil { log.Fatal(err) } result, err := parser.NormalizeAndMatch( map[string]string{ "X-Gitea-Delivery": "delivery-id", "X-Gitea-Event": "push", }, map[string]any{ "ref": "refs/heads/main", "before": "old-sha", "after": "new-sha", "repository": map[string]any{ "full_name": "owner/repo", "default_branch": "main", }, }, ) if err != nil { log.Fatal(err) } log.Printf("matched pipelines: %v", result.Pipelines) }

CLI 验证

go test ./... go vet ./... go run ./cmd/gitea-cnb-parser validate --config docs/.gitea.yml go run ./cmd/gitea-cnb-parser replay --config docs/.gitea.yml --fixture docs/fixtures/gitea-webhooks/push.main.json

核心蓝图见 docs/plans/gitea-cnb-parser_blueprint.md