create-branch-cli 1.0.1 → 1.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.
Files changed (3) hide show
  1. package/README.md +105 -12
  2. package/index.js +1240 -396
  3. package/package.json +2 -2
package/README.md CHANGED
@@ -7,18 +7,21 @@
7
7
  - 🚀 快速创建 Git 分支
8
8
  - 📝 自动生成规范的分支名称
9
9
  - 👤 首次使用自动保存用户信息(工号、姓名)
10
- - 🐛 支持 feature 和 hotFix 两种分支类型
10
+ - 🐛 支持 feature 和 hotfix 两种分支类型
11
11
  - 📅 自动添加日期后缀
12
12
  - 💾 支持保存需求唯一标识,快速提交和推送
13
+ - 🎯 支持为不同项目配置不同的目标分支(如 master 或 main)
14
+ - 🔄 支持 push 后自动轮询检查合并状态
15
+ - 🔍 支持监听 GitLab 合并请求状态,合并后自动拉取最新目标分支代码
13
16
 
14
17
  ## 分支命名规则
15
18
 
16
19
  - **Feature 分支**: `feature/工号_姓名_需求标题_年月日`
17
- - **HotFix 分支**: `hotFix/工号_姓名_需求标题_年月日`
20
+ - **HotFix 分支**: `hotfix/工号_姓名_需求标题_年月日`
18
21
 
19
22
  示例:
20
23
  - `feature/001_张三_用户登录功能_20251226`
21
- - `hotFix/001_张三_修复登录bug_20251226`
24
+ - `hotfix/001_张三_修复登录bug_20251226`
22
25
 
23
26
  ## 安装
24
27
 
@@ -96,26 +99,87 @@ cb push
96
99
  - 会自动添加所有更改到暂存区
97
100
  - 提交信息格式:`需求唯一标识:需求标题`(例如:`PROJ-123:用户登录功能`)
98
101
  - 自动推送到远程仓库的当前分支
102
+ - **首次使用时,会提示设置当前项目的目标分支(如 master 或 main)**
103
+ - 如果启用了自动同步(`autoSyncMaster`),push 后会自动开始轮询检查合并状态
104
+ - 轮询检测到合并后会自动切换到目标分支并拉取最新代码
99
105
 
100
- ### 重置用户信息
106
+ ### 配置用户信息
101
107
 
102
- 如果需要修改工号或姓名,可以使用以下命令:
108
+ 如果需要修改工号、姓名或配置选项,可以使用以下命令:
103
109
 
104
110
  ```bash
105
- create-branch reset
106
- # 或
107
111
  create-branch config
108
112
  # 或使用别名
109
- cb reset
110
- # 或
111
113
  cb config
112
114
  ```
113
115
 
114
116
  **说明**:
115
117
  - 会提示输入新的工号和姓名
116
- - 重置后,之前保存的需求信息会保留
118
+ - 可以配置是否启用合并后自动拉取目标分支(需要配置 GitLab 信息)
119
+ - 如果启用了自动同步,push 后会自动开始轮询检查合并状态
120
+ - 配置后,之前保存的需求信息会保留
117
121
  - 新创建的分支将使用新的工号和姓名
118
122
 
123
+ ### 设置目标分支
124
+
125
+ 设置当前项目的目标分支(例如:master 或 main),用于自动创建合并请求和拉取最新代码。
126
+
127
+ ```bash
128
+ create-branch set-target
129
+ # 或使用别名
130
+ cb set-target
131
+ ```
132
+
133
+ **说明**:
134
+ - 首次使用 `push` 命令时会自动提示设置
135
+ - 设置后的目标分支名会保存在配置文件中
136
+ - 每个项目可以有不同的目标分支
137
+
138
+ ### 检查合并状态并同步目标分支
139
+
140
+ 如果启用了 GitLab 自动同步功能,可以使用以下命令手动检查当前分支的合并请求状态:
141
+
142
+ ```bash
143
+ create-branch sync
144
+ # 或
145
+ create-branch check
146
+ # 或使用别名
147
+ cb sync
148
+ # 或
149
+ cb check
150
+ ```
151
+
152
+ **说明**:
153
+ - 检查当前分支的合并请求是否已合并到目标分支
154
+ - 如果已合并,自动切换到目标分支并拉取最新代码
155
+ - 如果未合并,显示合并请求状态和链接
156
+
157
+ ### 轮询检查合并状态
158
+
159
+ 由于合并请求是在 GitLab 上手动操作的,工具无法实时知道合并状态。可以使用轮询功能定期检查:
160
+
161
+ ```bash
162
+ # 默认每30秒检查一次,直到合并或手动停止(Ctrl+C)
163
+ create-branch watch
164
+ # 或
165
+ cb watch
166
+
167
+ # 指定检查间隔(秒)
168
+ cb watch 60 # 每60秒检查一次
169
+
170
+ # 指定检查间隔和最大检查次数
171
+ cb watch 30 60 # 每30秒检查一次,最多检查60次(30分钟)
172
+
173
+ # 指定分支名、间隔和最大次数
174
+ cb watch feature/xxx_xxx_xxx_20251226 30 60
175
+ ```
176
+
177
+ **说明**:
178
+ - 轮询会定期检查合并请求状态
179
+ - 一旦检测到合并,会自动切换到目标分支并拉取最新代码
180
+ - 可以使用 Ctrl+C 随时停止轮询
181
+ - 建议在 push 代码并创建合并请求后使用此功能
182
+
119
183
  ### 查看帮助
120
184
 
121
185
  ```bash
@@ -132,6 +196,16 @@ cb
132
196
  {
133
197
  "workId": "001",
134
198
  "name": "张三",
199
+ "autoSyncMaster": false,
200
+ "gitlab": {
201
+ "url": "https://gitlab.com",
202
+ "token": "your-personal-access-token"
203
+ },
204
+ "projects": {
205
+ "group_project": {
206
+ "targetBranch": "master"
207
+ }
208
+ },
135
209
  "requirements": {
136
210
  "feature/001_张三_用户登录功能_20251226": {
137
211
  "id": "PROJ-123",
@@ -145,10 +219,23 @@ cb
145
219
  **配置说明**:
146
220
  - `workId`: 工号
147
221
  - `name`: 姓名
222
+ - `autoSyncMaster`: 是否启用合并后自动拉取目标分支(默认:false)
223
+ - `gitlab`: GitLab 配置(仅在启用自动同步时需要)
224
+ - `url`: GitLab 服务器地址(例如:https://gitlab.com)
225
+ - `token`: GitLab Personal Access Token(需要 `api` 权限)
226
+ - `projects`: 项目配置(以项目路径或 ID 为 key)
227
+ - `targetBranch`: 项目的目标分支(如 master 或 main)
148
228
  - `requirements`: 需求信息(以分支名为 key,自动保存)
149
229
 
230
+ **GitLab Personal Access Token 获取方法**:
231
+ 1. 登录 GitLab
232
+ 2. 进入 Settings → Access Tokens
233
+ 3. 创建新的 Personal Access Token
234
+ 4. 勾选 `api` 权限
235
+ 5. 复制生成的 token
236
+
150
237
  如果需要修改用户信息,可以:
151
- 1. 使用 `cb reset` 或 `cb config` 命令(推荐)
238
+ 1. 使用 `cb config` 命令(推荐)
152
239
  2. 直接编辑配置文件
153
240
  3. 删除配置文件,下次使用时重新录入
154
241
 
@@ -160,8 +247,14 @@ cb
160
247
  4. 日期格式为 YYYYMMDD(例如:20251226)
161
248
  5. 使用 `cb push` 前,请确保创建分支时输入了需求唯一标识
162
249
  6. `cb push` 会自动添加所有更改并提交,提交信息格式:`需求唯一标识:需求标题`
250
+ 7. 启用自动同步功能需要配置 GitLab Personal Access Token(需要 `api` 权限)
251
+ 8. 自动同步功能会通过 GitLab API 检查合并请求状态,需要网络连接
252
+ 9. **重要**:如果启用了自动同步,push 后会自动开始轮询检查合并状态(每30秒检查一次)
253
+ 10. 轮询会在后台运行,检测到合并后会自动切换到目标分支并拉取最新代码
254
+ 11. 如果切换了分支,轮询会自动停止
255
+ 12. 可以使用 Ctrl+C 随时停止轮询,或使用 `cb sync` 手动检查一次
256
+ 13. 每个项目需要设置一次目标分支(`set-target` 或首次 push 时),支持 master、main 等不同分支名
163
257
 
164
258
  ## 许可证
165
259
 
166
260
  ISC
167
-