flowpilot 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +203 -0
- package/dist/cli.js +32174 -0
- package/dist/client/chunks/client-Bb-xh-5_.js +356 -0
- package/dist/client/chunks/client-DSXtnba0.js +1399 -0
- package/dist/client/chunks/client-oAYP8wOx.js +1574 -0
- package/dist/client/chunks/jsx-dev-runtime-DGBfem3G.js +3704 -0
- package/dist/client/chunks/search-cPm8k8mK.js +20 -0
- package/dist/client/client.js +36 -0
- package/dist/public/android-chrome-192x192.png +0 -0
- package/dist/public/android-chrome-512x512.png +0 -0
- package/dist/public/apple-touch-icon.png +0 -0
- package/dist/public/favicon-16x16.png +0 -0
- package/dist/public/favicon-32x32.png +0 -0
- package/dist/public/favicon.ico +0 -0
- package/dist/public/site.webmanifest +19 -0
- package/dist/serve.js +19545 -0
- package/dist/server.js +19580 -0
- package/favicon/android-chrome-192x192.png +0 -0
- package/favicon/android-chrome-512x512.png +0 -0
- package/favicon/apple-touch-icon.png +0 -0
- package/favicon/favicon-16x16.png +0 -0
- package/favicon/favicon-32x32.png +0 -0
- package/favicon/favicon.ico +0 -0
- package/favicon/site.webmanifest +19 -0
- package/package.json +62 -0
package/README.md
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# FlowPilot
|
|
4
|
+
|
|
5
|
+
**桥接 Jira & GitLab — 自动化你的发布流程**
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/flowpilot)
|
|
8
|
+
[](https://www.npmjs.com/package/flowpilot)
|
|
9
|
+
[](https://www.npmjs.com/package/flowpilot)
|
|
10
|
+
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## FlowPilot 是什么?
|
|
16
|
+
|
|
17
|
+
FlowPilot 是一个 CLI + Web Dashboard 工具,将 **Jira** 和 **GitLab** 连接起来,让发布申请流程自动化:
|
|
18
|
+
|
|
19
|
+
- 从 GitLab 项目分支自动提取 `pom.xml` 版本号
|
|
20
|
+
- 在 Jira 自动创建或复用发布版本
|
|
21
|
+
- 一键生成发布申请 Issue,链接自动复制到剪贴板
|
|
22
|
+
|
|
23
|
+
所有配置和凭证仅存储在本地 `~/.flowpilotrc`,不会发送到任何外部服务。
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 快速开始
|
|
28
|
+
|
|
29
|
+
### 安装
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# 全局安装(需要 Node.js >= 22.13)
|
|
33
|
+
npm install -g flowpilot
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### 首次配置
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# CLI 交互式配置
|
|
40
|
+
flowpilot config
|
|
41
|
+
|
|
42
|
+
# 或者打开 Web 页面配置
|
|
43
|
+
flowpilot config --open
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
需要填写以下信息:
|
|
47
|
+
|
|
48
|
+
| 配置项 | 说明 |
|
|
49
|
+
|--------|------|
|
|
50
|
+
| **Jira 地址** | 带协议前缀,如 `https://jira.example.com` |
|
|
51
|
+
| **Jira 账号** | 用户名(无 @ 后缀) |
|
|
52
|
+
| **Jira 密码** | 仅本地存储 |
|
|
53
|
+
| **GitLab 地址** | 带 protocol 前缀,如 `http://git.example.com` |
|
|
54
|
+
| **GitLab Token** | 在 GitLab Settings → Access Tokens 生成 |
|
|
55
|
+
|
|
56
|
+
### 创建发布申请
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# CLI 交互式流程
|
|
60
|
+
flowpilot release
|
|
61
|
+
|
|
62
|
+
# 或者打开 Web 页面操作
|
|
63
|
+
flowpilot release --open
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## CLI 命令
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
flowpilot config 交互式配置账号信息
|
|
72
|
+
flowpilot config -o 打开 Web 配置页面
|
|
73
|
+
flowpilot release 创建发布申请(CLI)
|
|
74
|
+
flowpilot release -o 打开 Web 发布页面
|
|
75
|
+
flowpilot serve 启动后台服务
|
|
76
|
+
flowpilot stop 停止后台服务
|
|
77
|
+
flowpilot restart 重启后台服务
|
|
78
|
+
flowpilot update 更新到最新版本
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Web Dashboard
|
|
84
|
+
|
|
85
|
+
启动服务后访问 `http://127.0.0.1:8787`,提供两个页面:
|
|
86
|
+
|
|
87
|
+
### 配置页面 `/config`
|
|
88
|
+
|
|
89
|
+
在浏览器中填写和修改 Jira / GitLab 凭证,保存即时生效。
|
|
90
|
+
|
|
91
|
+
### 发布页面 `/release`
|
|
92
|
+
|
|
93
|
+
通过可视化界面完成发布流程:
|
|
94
|
+
|
|
95
|
+
1. **选择项目** — 从 GitLab 搜索并选择项目
|
|
96
|
+
2. **选择分支** — 选择要发布的分支
|
|
97
|
+
3. **查看版本** — 自动从 `pom.xml` 提取版本信息
|
|
98
|
+
4. **选择 Jira 项目** — 关联到对应的 Jira 项目
|
|
99
|
+
5. **创建 Issue** — 自动创建发布申请,如已存在则直接获取链接
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## 发布流程详解
|
|
104
|
+
|
|
105
|
+
无论是 CLI 还是 Web Dashboard,发布流程的核心步骤如下:
|
|
106
|
+
|
|
107
|
+
```
|
|
108
|
+
┌─────────────────────────────────────────────────────┐
|
|
109
|
+
│ 1. 解析 GitLab项目 │
|
|
110
|
+
│ git remote → 自动识别 / 手动搜索选择 │
|
|
111
|
+
├─────────────────────────────────────────────────────┤
|
|
112
|
+
│ 2. 选择分支 │
|
|
113
|
+
│ 获取所有分支 → 选择目标发布分支 │
|
|
114
|
+
├─────────────────────────────────────────────────────┤
|
|
115
|
+
│ 3. 提取版本号 │
|
|
116
|
+
│ 从 pom.xml 解析 groupId / artifactId / version │
|
|
117
|
+
├─────────────────────────────────────────────────────┤
|
|
118
|
+
│ 4. 关联 Jira 项目 │
|
|
119
|
+
│ 选择目标 Jira 项目 Key │
|
|
120
|
+
├─────────────────────────────────────────────────────┤
|
|
121
|
+
│ 5. 检查已有 Issue │
|
|
122
|
+
│ 搜索同版本 Issue → 如已存在直接返回链接 │
|
|
123
|
+
├─────────────────────────────────────────────────────┤
|
|
124
|
+
│ 6. 确保 Jira 版本 │
|
|
125
|
+
│ 检查版本是否存在 → 不存在则自动创建 │
|
|
126
|
+
├─────────────────────────────────────────────────────┤
|
|
127
|
+
│ 7. 创建发布 Issue │
|
|
128
|
+
│ 生成 Issue → 链接自动复制到剪贴板 │
|
|
129
|
+
└─────────────────────────────────────────────────────┘
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## 配置文件
|
|
135
|
+
|
|
136
|
+
凭证存储在 `~/.flowpilotrc`(JSON 格式):
|
|
137
|
+
|
|
138
|
+
```json
|
|
139
|
+
{
|
|
140
|
+
"jiraHost": "https://jira.example.com",
|
|
141
|
+
"jiraName": "your-username",
|
|
142
|
+
"jiraPassword": "your-password",
|
|
143
|
+
"gitlabHost": "http://git.example.com",
|
|
144
|
+
"gitlabKey": "glpat-xxxxxxxxxxxxxxxxxxxx"
|
|
145
|
+
}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## 技术栈
|
|
151
|
+
|
|
152
|
+
| 类别 | 技术 |
|
|
153
|
+
|------|------|
|
|
154
|
+
| 服务端框架 | Hono |
|
|
155
|
+
| 客户端渲染 | hono/jsx + hono/jsx/dom |
|
|
156
|
+
| 构建 | Rolldown(client 支持代码分包) |
|
|
157
|
+
| CLI 解析 | cac |
|
|
158
|
+
| 交互提示 | @clack/prompts + @inquirer/search |
|
|
159
|
+
| 国际化 | i18next(中文 / 英文自动检测) |
|
|
160
|
+
| 测试 | Vitest |
|
|
161
|
+
| 代码规范 | Biome |
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## 开发
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
# 安装依赖
|
|
169
|
+
pnpm install
|
|
170
|
+
|
|
171
|
+
# 开发模式(监听变化自动重建)
|
|
172
|
+
pnpm dev
|
|
173
|
+
|
|
174
|
+
# 构建
|
|
175
|
+
pnpm build
|
|
176
|
+
|
|
177
|
+
# 测试
|
|
178
|
+
pnpm test
|
|
179
|
+
|
|
180
|
+
# 代码检查
|
|
181
|
+
pnpm check
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## 发布
|
|
187
|
+
|
|
188
|
+
```bash
|
|
189
|
+
# 小版本更新 (0.0.x)
|
|
190
|
+
pnpm release:patch
|
|
191
|
+
|
|
192
|
+
# 功能更新 (0.x.0)
|
|
193
|
+
pnpm release:minor
|
|
194
|
+
|
|
195
|
+
# 大版本更新 (x.0.0)
|
|
196
|
+
pnpm release:major
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## License
|
|
202
|
+
|
|
203
|
+
ISC
|