mirror of
https://github.com/Lydanne/spaceflow.git
synced 2026-03-11 19:52:45 +08:00
190 lines
4.9 KiB
Markdown
190 lines
4.9 KiB
Markdown
# spaceflow
|
||
|
||
Spaceflow 的工作流系统,提供统一的 CI/CD 管理和 AI 代码审查能力。
|
||
|
||
## 功能特性
|
||
|
||
- **统一管理手动触发的 CI**:提供统一的 UI 系统管理手动触发的 CI 任务
|
||
- **可扩展的 UI 界面**:支持命令行、Web 界面、飞书对话机器人等多种交互方式
|
||
- **可自定义的通知消息模板**:灵活配置通知消息格式
|
||
- **可扩展的通知方式**:支持多种通知渠道
|
||
- **按仓库隔离**:各仓库配置独立,互不干扰
|
||
- **PR 流程自动化**:AI 审核、ESLint 检查、重复代码检查、自定义仓库脚本等
|
||
|
||
## 项目结构
|
||
|
||
```bash
|
||
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 模式。
|
||
|
||
```bash
|
||
# 审查 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 模块文档](core/src/commands/review/README.md)
|
||
|
||
### publish
|
||
|
||
自动化版本发布,基于 release-it 实现版本管理和变更日志生成。
|
||
|
||
### ci-scripts
|
||
|
||
执行仓库中的自定义脚本。
|
||
|
||
### ci-shell
|
||
|
||
执行自定义 Shell 命令。
|
||
|
||
### claude-setup
|
||
|
||
配置 Claude CLI 工具。
|
||
|
||
### period-summary
|
||
|
||
生成周期性工作总结,支持飞书消息推送。
|
||
|
||
## 配置
|
||
|
||
在项目根目录创建 `spaceflow.json` 配置文件:
|
||
|
||
```javascript
|
||
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` 时,系统会:
|
||
|
||
1. 下载/链接插件到 `.spaceflow/` 目录。
|
||
2. 根据 `support` 配置,在对应的编辑器目录下创建 `skills` 或 `commands` 的符号链接。
|
||
3. 如果是全局安装 (`-g`),则会关联到家目录下的对应编辑器目录(如 `~/.claude/`)。
|
||
|
||
## 开发
|
||
|
||
### 安装依赖
|
||
|
||
```bash
|
||
pnpm install
|
||
```
|
||
|
||
### 构建
|
||
|
||
```bash
|
||
pnpm build
|
||
```
|
||
|
||
### 运行测试
|
||
|
||
```bash
|
||
pnpm test
|
||
```
|
||
|
||
### 代码检查
|
||
|
||
```bash
|
||
pnpm lint
|
||
```
|
||
|
||
### 代码格式化
|
||
|
||
```bash
|
||
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
|