mirror of
https://github.com/Lydanne/spaceflow.git
synced 2026-03-11 19:52:45 +08:00
4.9 KiB
4.9 KiB
spaceflow
Spaceflow 的工作流系统,提供统一的 CI/CD 管理和 AI 代码审查能力。
功能特性
- 统一管理手动触发的 CI:提供统一的 UI 系统管理手动触发的 CI 任务
- 可扩展的 UI 界面:支持命令行、Web 界面、飞书对话机器人等多种交互方式
- 可自定义的通知消息模板:灵活配置通知消息格式
- 可扩展的通知方式:支持多种通知渠道
- 按仓库隔离:各仓库配置独立,互不干扰
- PR 流程自动化:AI 审核、ESLint 检查、重复代码检查、自定义仓库脚本等
项目结构
spaceflow/
├── actions/ # GitHub Actions
├── core/ # 核心服务(NestJS 应用)
│ └── src/
│ ├── commands/ # CLI 命令模块
│ │ ├── review/ # 代码审查
│ │ ├── publish/ # CI 发布
│ │ ├── ci-scripts/ # 自定义脚本执行
│ │ ├── ci-shell/ # Shell 命令执行
│ │ ├── claude-setup/ # Claude 配置
│ │ └── period-summary/ # 周期总结
│ └── shared/ # 共享模块
│ ├── feishu-sdk/ # 飞书 SDK
│ ├── git-sdk/ # Git 命令封装
│ ├── git-provider/ # Git Provider 适配器
│ ├── llm-proxy/ # LLM 统一代理
│ ├── review-spec/ # 审查规范管理
│ ├── review-report/ # 审查报告格式化
│ └── storage/ # 通用存储模块
├── .github/
│ └── workflows/ # GitHub Actions 工作流文件
└── spaceflow.json # 项目配置
核心命令
review
基于 LLM 的自动化代码审查,支持 OpenAI、Claude 等多种 LLM 模式。
# 审查 PR
npx spaceflow review -p 123 -l openai
# 审查两个分支之间的差异
npx spaceflow review -b main --head feature/xxx -l openai
# 仅分析删除代码
npx spaceflow review -p 123 --deletion-only -l openai
详细文档:Review 模块文档
publish
自动化版本发布,基于 release-it 实现版本管理和变更日志生成。
ci-scripts
执行仓库中的自定义脚本。
ci-shell
执行自定义 Shell 命令。
claude-setup
配置 Claude CLI 工具。
period-summary
生成周期性工作总结,支持飞书消息推送。
配置
在项目根目录创建 spaceflow.json 配置文件:
export default {
changelog: {
preset: {
type: [
{ type: "feat", section: "新特性" },
{ type: "fix", section: "修复BUG" },
// 更多配置...
],
},
},
review: {
claudeCode: {
baseUrl: process.env.CLAUDE_CODE_BASE_URL,
authToken: process.env.CLAUDE_CODE_AUTH_TOKEN,
model: process.env.CLAUDE_CODE_MODEL || "ark-code-latest",
},
openai: {
baseUrl: process.env.OPENAI_BASE_URL || "https://api.openai.com/v1",
apiKey: process.env.OPENAI_API_KEY,
model: process.env.OPENAI_MODEL || "gpt-4o",
},
includes: ["*/**/*.ts", "!*/**/*.spec.*", "!*/**/*.config.*"],
generateDescription: true,
lineComments: true,
verifyFixes: true,
analyzeDeletions: true,
concurrency: 10,
retries: 3,
},
/**
* 支持的编辑器列表,用于自动关联插件到对应的配置目录
* 可选值: "claudeCode" (.claude), "windsurf" (.windsurf), "cursor" (.cursor), "opencode" (.opencode)
* 默认值: ["claudeCode"]
*/
support: ["claudeCode", "windsurf", "cursor"],
};
插件系统
Spaceflow 支持将插件自动关联到多个编辑器的配置目录中。通过在 spaceflow.json 中配置 support 字段,你可以让安装的技能和命令同时支持多个 AI 编程工具。
支持的编辑器
- claudeCode: 关联到
.claude/ - windsurf: 关联到
.windsurf/ - cursor: 关联到
.cursor/ - opencode: 关联到
.opencode/
自动关联逻辑
当你运行 spaceflow install 时,系统会:
- 下载/链接插件到
.spaceflow/目录。 - 根据
support配置,在对应的编辑器目录下创建skills或commands的符号链接。 - 如果是全局安装 (
-g),则会关联到家目录下的对应编辑器目录(如~/.claude/)。
开发
安装依赖
pnpm install
构建
pnpm build
运行测试
pnpm test
代码检查
pnpm lint
代码格式化
pnpm format
GitHub Actions 工作流
项目包含多个预配置的 GitHub Actions 工作流:
pr-review.yml:自动 PR AI 审查pr-review-command.yml:手动触发 PR 审查core-command.yml:运行任意 spaceflow 命令actions-test.yml:Actions 测试
Git Flow
参考飞书文档
许可证
UNLICENSED