Files
spaceflow/docs/guide/configuration.md
2026-02-15 22:02:21 +08:00

164 lines
4.6 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.json` 作为项目配置文件,统一存放在 `.spaceflow/` 目录下。也支持 `.spaceflowrc` 格式的 RC 文件。
## 配置文件位置
按以下优先级查找配置文件(从低到高,后者覆盖前者):
1. `~/.spaceflow/spaceflow.json`(全局配置)
2. `~/.spaceflowrc`(全局 RC 文件)
3. `.spaceflow/spaceflow.json`(项目配置)
4. `.spaceflowrc`(项目 RC 文件,最高优先级)
## 基本结构
```json
{
"$schema": "./.spaceflow/config-schema.json",
"review": { ... },
"publish": { ... },
"dependencies": { ... },
"support": ["claudeCode"]
}
```
## 配置项
### `review`
AI 代码审查相关配置。
```json
{
"review": {
"references": ["./references"],
"includes": ["*/**/*.ts", "!*/**/*.spec.*", "!*/**/*.config.*"],
"generateDescription": true,
"autoUpdatePrTitle": true,
"lineComments": true,
"verifyFixes": true,
"analyzeDeletions": false,
"deletionAnalysisMode": "open-code",
"concurrency": 10,
"retries": 3,
"retryDelay": 1000
}
}
```
| 字段 | 类型 | 默认值 | 说明 |
| --------------------- | ---------- | ------------ | -------------------------------------------- |
| `references` | `string[]` | `[]` | 审查规范文件目录,支持本地路径和远程仓库 URL |
| `includes` | `string[]` | `["*/**/*"]` | 审查文件匹配模式glob |
| `generateDescription` | `boolean` | `false` | 是否自动生成 PR 描述 |
| `autoUpdatePrTitle` | `boolean` | `false` | 是否自动更新 PR 标题 |
| `lineComments` | `boolean` | `true` | 是否生成行内评论 |
| `verifyFixes` | `boolean` | `false` | 是否验证修复建议 |
| `analyzeDeletions` | `boolean` | `false` | 是否分析删除代码的影响 |
| `concurrency` | `number` | `10` | 并发审查文件数 |
| `retries` | `number` | `3` | 失败重试次数 |
| `retryDelay` | `number` | `1000` | 重试间隔(毫秒) |
### `publish`
版本发布相关配置,基于 [release-it](https://github.com/release-it/release-it)。
```json
{
"publish": {
"monorepo": { "enabled": true, "propagateDeps": true },
"changelog": {
"preset": {
"type": [
{ "type": "feat", "section": "新特性" },
{ "type": "fix", "section": "修复BUG" },
{ "type": "perf", "section": "性能优化" },
{ "type": "refactor", "section": "代码重构" }
]
}
},
"npm": {
"publish": true,
"packageManager": "pnpm",
"tag": "latest"
},
"git": {
"pushWhitelistUsernames": ["github-actions[bot]"]
}
}
}
```
### `dependencies`
已安装的外部 Extension 注册表。由 `spaceflow install` 命令自动管理。
```json
{
"dependencies": {
"@spaceflow/review": "link:./commands/review",
"@spaceflow/publish": "link:./commands/publish",
"@spaceflow/ci-shell": "link:./commands/ci-shell"
}
}
```
支持的值格式:
| 格式 | 类型 | 示例 |
| --------------- | -------- | --------------------------------------- |
| `link:./path` | 本地链接 | `link:./commands/review` |
| `^1.0.0` | npm 版本 | `^1.0.0` |
| `git+ssh://...` | Git 仓库 | `git+ssh://git@github.com/org/repo.git` |
### `support`
配置需要关联的 AI 编辑器。安装 Extension 时,会在对应编辑器目录下创建符号链接。
```json
{
"support": ["claudeCode", "windsurf", "cursor"]
}
```
| 值 | 编辑器目录 |
| ------------ | ------------ |
| `claudeCode` | `.claude/` |
| `windsurf` | `.windsurf/` |
| `cursor` | `.cursor/` |
| `opencode` | `.opencode/` |
### `lang`
界面语言设置。
```json
{
"lang": "zh-CN"
}
```
## 配置优先级
1. **命令行参数**(最高优先级)
2. **环境变量**
3. **`spaceflow.json` 配置**
4. **Extension 默认值**(最低优先级)
## JSON Schema
运行以下命令生成配置的 JSON Schema获得编辑器自动补全支持
```bash
spaceflow schema
```
生成的 Schema 文件位于 `.spaceflow/config-schema.json`,在配置文件中通过 `$schema` 字段引用:
```json
{
"$schema": "./.spaceflow/config-schema.json"
}
```