架构
包架构

系统架构
主包层次结构
| 包 | 含义 | 导入 |
|---|---|---|
cmd/** | 解析命令行参数和环境变量以启动服务器/cli/代理 | 所有其他 |
agent/** | 仅代理(远程工作器)需要的代码 | pipeline, shared |
cli/** | 仅 cli 工具需要的代码 | pipeline, shared, woodpecker-go |
server/** | 仅服务器需要的代码 | pipeline, shared |
shared/** | 三个主要工具共享的代码(go 帮助工具) | 仅标准库和外部库 |
woodpecker-go/** | 服务器 REST API 的 go 客户端 | 标准库 |
服务器
| 包 | 含义 | 导入 |
|---|---|---|
server/api/** | 处理来自 server/router 的 Web 请求 | pipeline, ../badges, ../ccmenu, ../logging, ../model, ../pubsub, ../queue, ../forge, ../shared, ../store, shared, (TODO: mv server/router/middleware/session) |
server/badges/** | 为管道生成 SVG 徽章 | ../model |
server/ccmenu/** | 为管道生成 XML ccmenu | ../model |
server/grpc/** | 代理可以连接的 gRPC 服务器 | pipeline/rpc/**, ../logging, ../model, ../pubsub, ../queue, ../forge, ../pipeline, ../store |
server/logging/** | gRPC 服务器的日志库,用于在运行时流式传输日志 | 标准库 |
server/model/** | 存储(数据库)和 API(JSON)的结构体 | 标准库 |
server/plugins/** | 服务器插件 | ../model, ../forge |
server/pipeline/** | 编排管道 | pipeline, ../model, ../pubsub, ../queue, ../forge, ../store, ../plugins |
server/pubsub/** | 服务器的 pubsub 库,用于向 WebUI 推送更改 | 标准库 |
server/queue/** | 服务器的队列库,代理通过 gRPC 从中拉取新管道 | server/model |
server/forge/** | 服务器的代码托管平台库,用于连接和处理代码托管平台特定内容 | shared, server/model |
server/router/** | 处理对 REST API 的请求(和所有中间件)并提供 UI 和 WebUI 配置 | shared, ../api, ../model, ../forge, ../store, ../web |
server/store/** | 处理数据库 | server/model |
server/shared/** | TODO: 移动和拆分 #974 | |
server/web/** | 服务器 SPA |
../=server/
代理
待完成
CLI
待完成