Files
spaceflow/README.md
2026-02-15 22:02:21 +08:00

190 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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