@comate/zulu 1.2.1-beta.2 → 1.3.1
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/comate-engine/assets/skills/auto-commit-comate/SKILL.md +260 -0
- package/comate-engine/assets/skills/auto-commit-comate/references/data_structures.md +189 -0
- package/comate-engine/assets/skills/auto-commit-comate/references/new_version_instruction.md +209 -0
- package/comate-engine/assets/skills/auto-commit-comate/references/old_version_instruction.md +208 -0
- package/comate-engine/assets/skills/auto-commit-comate/scripts/git_diff_cli.py +196 -0
- package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/git_utils.py +20 -10
- package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/icafe/client.py +69 -40
- package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/icafe/farseer.py +8 -9
- package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/icafe/matching.py +65 -9
- package/comate-engine/assets/skills/auto-commit-comate/scripts/match_card_cli.py +37 -0
- package/comate-engine/assets/skills/cnap-comate/SKILL.md +157 -0
- package/comate-engine/assets/skills/cnap-comate/references/cases.md +198 -0
- package/comate-engine/assets/skills/cnap-comate/references/deploy-troubleshoot.md +15 -0
- package/comate-engine/assets/skills/cnap-comate/references/install.md +43 -0
- package/comate-engine/assets/skills/cnap-comate/references/kubectl.md +55 -0
- package/comate-engine/assets/skills/cnap-comate/references/login.md +125 -0
- package/comate-engine/assets/skills/cnap-comate/references/oncall.md +24 -0
- package/comate-engine/assets/skills/cnap-comate/scripts/install_cnap_cli.sh +36 -0
- package/comate-engine/assets/skills/code-security/SKILL.md +176 -0
- package/comate-engine/assets/skills/code-security/references/credential_hosting.md +102 -0
- package/comate-engine/assets/skills/code-security/references/vul_repair_sensitive.md +219 -0
- package/comate-engine/assets/skills/code-security/scripts/build_repair_info.py +0 -0
- package/comate-engine/assets/skills/code-security/scripts/credential_hosting.py +99 -0
- package/comate-engine/assets/skills/code-security/scripts/credential_poll.py +350 -0
- package/comate-engine/assets/skills/code-security/scripts/http_client.py +173 -0
- package/comate-engine/assets/skills/code-security/scripts/parse_scan_result.py +301 -0
- package/comate-engine/assets/skills/code-security/scripts/repair_vulnerability.py +261 -0
- package/comate-engine/assets/skills/code-security/scripts/report_chat.py +198 -0
- package/comate-engine/assets/skills/code-security/scripts/scan_vulnerability.py +316 -0
- package/comate-engine/assets/skills/code-security-comate/SKILL.md +219 -0
- package/comate-engine/assets/skills/code-security-comate/references/credential_hosting.md +102 -0
- package/comate-engine/assets/skills/code-security-comate/references/vul_repair-go_sql_injection.md +399 -0
- package/comate-engine/assets/skills/code-security-comate/references/vul_repair-java_sql_injection.md +591 -0
- package/comate-engine/assets/skills/code-security-comate/references/vul_repair-php_sql_injection.md +318 -0
- package/comate-engine/assets/skills/code-security-comate/references/vul_repair-python_sql_injection.md +198 -0
- package/comate-engine/assets/skills/code-security-comate/references/vul_repair_sensitive.md +219 -0
- package/comate-engine/assets/skills/code-security-comate/scripts/credential_hosting.py +87 -0
- package/comate-engine/assets/skills/code-security-comate/scripts/credential_poll.py +345 -0
- package/comate-engine/assets/skills/code-security-comate/scripts/http_client.py +173 -0
- package/comate-engine/assets/skills/code-security-comate/scripts/parse_scan_result.py +392 -0
- package/comate-engine/assets/skills/code-security-comate/scripts/repair_vulnerability.py +245 -0
- package/comate-engine/assets/skills/code-security-comate/scripts/report_chat.py +145 -0
- package/comate-engine/assets/skills/code-security-comate/scripts/scan_vulnerability.py +444 -0
- package/comate-engine/assets/skills/code-security-comate/scripts/utils.py +153 -0
- package/comate-engine/assets/skills/comate-docs-comate/SKILL.md +148 -0
- package/comate-engine/assets/skills/comate-docs-comate/references/doc-map-extended.md +78 -0
- package/comate-engine/assets/skills/comate-docs-comate/references/models-and-billing.md +51 -0
- package/comate-engine/assets/skills/comate-docs-comate/references/product-overview.md +73 -0
- package/comate-engine/assets/skills/comate-docs-comate/references/query_content.md +83 -0
- package/comate-engine/assets/skills/comate-docs-comate/references/query_repo.md +57 -0
- package/comate-engine/assets/skills/comate-docs-comate/scripts/ku_operator.py +1575 -0
- package/comate-engine/assets/skills/create-image-comate/SKILL.md +278 -0
- package/comate-engine/assets/skills/create-skill-comate/SKILL.md +308 -217
- package/comate-engine/assets/skills/create-skill-comate/agents/analyzer.md +274 -0
- package/comate-engine/assets/skills/create-skill-comate/agents/comparator.md +202 -0
- package/comate-engine/assets/skills/create-skill-comate/agents/grader.md +223 -0
- package/comate-engine/assets/skills/create-skill-comate/assets/eval_review.html +146 -0
- package/comate-engine/assets/skills/create-skill-comate/eval-viewer/generate_review.py +489 -0
- package/comate-engine/assets/skills/create-skill-comate/eval-viewer/viewer.html +1325 -0
- package/comate-engine/assets/skills/create-skill-comate/references/schemas.md +430 -0
- package/comate-engine/assets/skills/create-skill-comate/scripts/__init__.py +0 -0
- package/comate-engine/assets/skills/create-skill-comate/scripts/__pycache__/__init__.cpython-311.pyc +0 -0
- package/comate-engine/assets/skills/create-skill-comate/scripts/__pycache__/aggregate_benchmark.cpython-311.pyc +0 -0
- package/comate-engine/assets/skills/create-skill-comate/scripts/aggregate_benchmark.py +412 -0
- package/comate-engine/assets/skills/create-skill-comate/scripts/generate_report.py +334 -0
- package/comate-engine/assets/skills/create-skill-comate/scripts/package_skill.py +140 -0
- package/comate-engine/assets/skills/create-skill-comate/scripts/utils.py +53 -0
- package/comate-engine/assets/skills/find-skills-comate/SKILL.md +15 -12
- package/comate-engine/assets/skills/find-skills-comate/scripts/fetch_skills.py +32 -3
- package/comate-engine/assets/skills/get-ugate-token-comate/SKILL.md +159 -0
- package/comate-engine/assets/skills/get-ugate-token-comate/getUgateToken.py +150 -0
- package/comate-engine/assets/skills/icafe-comate/SKILL.md +240 -0
- package/comate-engine/assets/skills/icafe-comate/references/ai-workflows.md +233 -0
- package/comate-engine/assets/skills/icafe-comate/references/commands.md +1147 -0
- package/comate-engine/assets/skills/icafe-comate/references/error-handling.md +164 -0
- package/comate-engine/assets/skills/icafe-comate/references/git-auto-bindcard-workflow.md +201 -0
- package/comate-engine/assets/skills/icafe-comate/references/git-bindcard-workflow.md +327 -0
- package/comate-engine/assets/skills/icafe-comate/references/iql-syntax.md +327 -0
- package/comate-engine/assets/skills/icafe-comate/references/platform-concepts.md +317 -0
- package/comate-engine/assets/skills/icafe-comate/references/smart-create-workflow.md +171 -0
- package/comate-engine/assets/skills/icafe-comate/references/smart-find-workflow.md +127 -0
- package/comate-engine/assets/skills/icafe-comate/references/smart-update-workflow.md +118 -0
- package/comate-engine/assets/skills/icode-comate/SKILL.md +366 -0
- package/comate-engine/assets/skills/icode-comate/references/api/add_reviewers.md +44 -0
- package/comate-engine/assets/skills/icode-comate/references/api/build_fetch_command.md +89 -0
- package/comate-engine/assets/skills/icode-comate/references/api/check_repo_permission.md +89 -0
- package/comate-engine/assets/skills/icode-comate/references/api/create_branch.md +79 -0
- package/comate-engine/assets/skills/icode-comate/references/api/create_draft_comment.md +109 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_ai_cr_result.md +190 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_ai_review.md +97 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_diff_content.md +92 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_diff_file.md +88 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_machine_check.md +73 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_my_reviews.md +115 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_person_commit.md +89 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_person_repo.md +63 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_repo_branch.md +62 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_repo_config.md +91 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_repo_members.md +118 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_repo_reviews.md +91 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_review_comments.md +87 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_review_info.md +81 -0
- package/comate-engine/assets/skills/icode-comate/references/api/get_submit_settings.md +105 -0
- package/comate-engine/assets/skills/icode-comate/references/api/icode-api.md +86 -0
- package/comate-engine/assets/skills/icode-comate/references/api/publish_comments.md +72 -0
- package/comate-engine/assets/skills/icode-comate/references/api/set_review_score.md +58 -0
- package/comate-engine/assets/skills/icode-comate/references/api/start_ai_review.md +77 -0
- package/comate-engine/assets/skills/icode-comate/references/api/submit_review.md +50 -0
- package/comate-engine/assets/skills/icode-comate/references/api/trigger_ai_cr.md +63 -0
- package/comate-engine/assets/skills/icode-comate/references/feature/add-reviewer.md +92 -0
- package/comate-engine/assets/skills/icode-comate/references/feature/fix-machine-check.md +144 -0
- package/comate-engine/assets/skills/icode-comate/references/feature/merge-cr.md +100 -0
- package/comate-engine/assets/skills/icode-comate/references/feature/ssh-setup.md +106 -0
- package/comate-engine/assets/skills/icode-comate/references/feature/submit-acr.md +135 -0
- package/comate-engine/assets/skills/icode-comate/references/feature/submit-cr.md +123 -0
- package/comate-engine/assets/skills/icode-comate/references/git/clone.md +67 -0
- package/comate-engine/assets/skills/icode-comate/references/git/icode-git.md +68 -0
- package/comate-engine/assets/skills/icode-comate/references/git/push.md +64 -0
- package/comate-engine/assets/skills/icode-comate/references/git/push_cr.md +103 -0
- package/comate-engine/assets/skills/icode-comate/references/install.md +144 -0
- package/comate-engine/assets/skills/icode-comate/references/login.md +111 -0
- package/comate-engine/assets/skills/icode-comate/scripts/add-reviewer.sh +154 -0
- package/comate-engine/assets/skills/icode-comate/scripts/common.sh +145 -0
- package/comate-engine/assets/skills/icode-comate/scripts/fix-machine-check.sh +131 -0
- package/comate-engine/assets/skills/icode-comate/scripts/merge-cr.sh +105 -0
- package/comate-engine/assets/skills/icode-comate/scripts/ssh-setup.sh +159 -0
- package/comate-engine/assets/skills/icode-comate/scripts/submit-acr.sh +236 -0
- package/comate-engine/assets/skills/icode-comate/scripts/submit-cr.sh +104 -0
- package/comate-engine/assets/skills/icode-comate/scripts/test-preflight.sh +89 -0
- package/comate-engine/assets/skills/ku-operator-comate/SKILL.md +121 -0
- package/comate-engine/assets/skills/ku-operator-comate/examples.md +190 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/add_member.md +49 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/change_scope.md +38 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/copy_doc.md +50 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/create_doc.md +61 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/delete_doc.md +31 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/edit_content.md +568 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/move_doc.md +45 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/query_comment.md +79 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/query_content.md +83 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/query_flowchart.md +84 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/query_permission.md +38 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/query_recent_view.md +67 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/query_repo.md +57 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/query_user_info.md +37 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/update_member.md +41 -0
- package/comate-engine/assets/skills/ku-operator-comate/references/upload_attachment.md +52 -0
- package/comate-engine/assets/skills/ku-operator-comate/scripts/ku_operator.py +1575 -0
- package/comate-engine/node_modules/better-sqlite3/node_modules/.bin/prebuild-install +2 -2
- package/comate-engine/node_modules/tree-sitter-bash/node_modules/.bin/node-gyp-build +2 -2
- package/comate-engine/node_modules/tree-sitter-bash/node_modules/.bin/node-gyp-build-optional +2 -2
- package/comate-engine/node_modules/tree-sitter-bash/node_modules/.bin/node-gyp-build-test +2 -2
- package/comate-engine/package.json +2 -0
- package/comate-engine/server.js +170 -46
- package/dist/bundle/index.js +8 -8
- package/package.json +1 -1
- package/comate-engine/assets/skills/figma2code-comate/codeConnect.md +0 -37
- package/comate-engine/assets/skills/figma2code-comate/designToken.md +0 -3
- package/comate-engine/assets/skills/figma2code-comate/f2cMcp.md +0 -59
- package/comate-engine/assets/skills/smart-commit/SKILL.md +0 -646
- package/comate-engine/node_modules/@comate/plugin-host/dist/index-AZIho4HV.js +0 -1
- package/comate-engine/node_modules/@comate/plugin-host/dist/user-BIpzRUfb.js +0 -44
- package/comate-engine/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
- /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/references/issue_type_mapping.json +0 -0
- /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/references/query_reference.md +0 -0
- /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/compat.py +0 -0
- /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/create_card_cli.py +0 -0
- /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/icafe/__init__.py +0 -0
- /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/logger.py +0 -0
- /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/recognize_card_cli.py +0 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# add-reviewer - 添加评审人
|
|
2
|
+
|
|
3
|
+
按优先级从多个来源自动选择合适的评审人,也支持手动指定。
|
|
4
|
+
|
|
5
|
+
## 执行流程
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
开始
|
|
9
|
+
│
|
|
10
|
+
▼
|
|
11
|
+
获取当前 CR 信息(change-number)
|
|
12
|
+
│
|
|
13
|
+
▼
|
|
14
|
+
用户是否指定了评审人?
|
|
15
|
+
│
|
|
16
|
+
├─ 是 → 直接添加用户指定的评审人 → 结束
|
|
17
|
+
│
|
|
18
|
+
└─ 否 → 继续自动选择流程
|
|
19
|
+
│
|
|
20
|
+
▼
|
|
21
|
+
【按优先级收集候选评审人】
|
|
22
|
+
│
|
|
23
|
+
├─ 1. 当前 CR 已有评审人(续传 CR 场景)
|
|
24
|
+
│ └─ get_review_info → globalReviewers
|
|
25
|
+
│
|
|
26
|
+
├─ 2. 仓库成员(repo members)
|
|
27
|
+
│ └─ get_repo_members
|
|
28
|
+
│
|
|
29
|
+
└─ 3. 历史 CR 评审人(补充,当前两个来源不足 5 人时)
|
|
30
|
+
└─ get_repo_reviews(MERGED) → 遍历获取 reviewers
|
|
31
|
+
│
|
|
32
|
+
▼
|
|
33
|
+
汇总所有候选评审人,排除自己,去重
|
|
34
|
+
│
|
|
35
|
+
▼
|
|
36
|
+
是否有符合条件的评审人?
|
|
37
|
+
│
|
|
38
|
+
├─ 是 → 展示候选列表供选择(或随机选取1个)
|
|
39
|
+
│ │
|
|
40
|
+
│ ▼
|
|
41
|
+
│ 添加评审人到当前 CR → 结束
|
|
42
|
+
│
|
|
43
|
+
└─ 否 → 提示用户手动指定评审人 → 结束
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## 评审人来源优先级
|
|
47
|
+
|
|
48
|
+
| 优先级 | 来源 | 说明 | API |
|
|
49
|
+
|--------|------|------|-----|
|
|
50
|
+
| 1 | 当前 CR 评审人 | 续传 CR 时,优先使用已有评审人 | `get_review_info` |
|
|
51
|
+
| 2 | 仓库成员 | 有仓库权限的成员 | `get_repo_members` |
|
|
52
|
+
| 3 | 历史 CR 评审人 | 当前用户已合入 CR 的评审人 | `get_repo_reviews` + `get_review_info` |
|
|
53
|
+
|
|
54
|
+
## 快速使用
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# 自动选择评审人
|
|
58
|
+
./add-reviewer.sh
|
|
59
|
+
|
|
60
|
+
# 指定 CR 编号,自动选择评审人
|
|
61
|
+
./add-reviewer.sh 120247220
|
|
62
|
+
|
|
63
|
+
# 手动指定评审人(跳过自动选择)
|
|
64
|
+
./add-reviewer.sh 120247220 zhangsan
|
|
65
|
+
|
|
66
|
+
# 多个评审人用逗号分隔
|
|
67
|
+
./add-reviewer.sh 120247220 "zhangsan,lisi"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## 参数说明
|
|
71
|
+
|
|
72
|
+
| 参数 | 说明 |
|
|
73
|
+
|------|------|
|
|
74
|
+
| CR 编号(第1个位置参数) | 可选,不指定则自动检测当前 commit 对应的 CR |
|
|
75
|
+
| 评审人(第2个位置参数) | 可选,指定后跳过自动选择,直接添加指定的评审人 |
|
|
76
|
+
|
|
77
|
+
## 注意事项
|
|
78
|
+
|
|
79
|
+
1. **用户指定优先**:如果用户指定了评审人,直接使用指定的,跳过自动选择
|
|
80
|
+
2. **优先级顺序**:当前 CR 评审人 > 仓库成员 > 历史 CR 评审人
|
|
81
|
+
3. **去重处理**:同一用户只添加一次,避免重复
|
|
82
|
+
4. **排除自己**:自动选择时会排除提交者本人
|
|
83
|
+
5. **补充机制**:仅当候选人不足 5 人时才查询历史 CR
|
|
84
|
+
|
|
85
|
+
## 相关命令
|
|
86
|
+
|
|
87
|
+
| 命令 | 说明 |
|
|
88
|
+
|------|------|
|
|
89
|
+
| `icode-cli api get_review_info` | 获取 CR 详情(含评审人) |
|
|
90
|
+
| `icode-cli api get_repo_members` | 获取仓库成员列表 |
|
|
91
|
+
| `icode-cli api get_repo_reviews` | 获取仓库 CR 列表 |
|
|
92
|
+
| `icode-cli api add_reviewers` | 添加评审人 |
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
# fix-machine-check - 修复机器检查
|
|
2
|
+
|
|
3
|
+
自动检测 CR 的机器检查结果,分析失败原因,并协助修复代码。
|
|
4
|
+
|
|
5
|
+
## 执行流程
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
开始
|
|
9
|
+
│
|
|
10
|
+
▼
|
|
11
|
+
获取 CR 编号(参数 / 自动检测)
|
|
12
|
+
│
|
|
13
|
+
├─ 无法获取 → 告知原因,退出
|
|
14
|
+
│
|
|
15
|
+
▼
|
|
16
|
+
获取机器检查结果 (get_machine_check)
|
|
17
|
+
│
|
|
18
|
+
▼
|
|
19
|
+
检查是否有问题(遍历 operations,检查 status/score)
|
|
20
|
+
│
|
|
21
|
+
├─ 无问题 → 输出"机器检查通过",退出
|
|
22
|
+
│
|
|
23
|
+
▼
|
|
24
|
+
【修复循环】(最多 N 次,默认 5 次)
|
|
25
|
+
│
|
|
26
|
+
├─ 1. 输出问题详情(检查项、失败原因、行内评论)
|
|
27
|
+
│
|
|
28
|
+
├─ 2. Agent 分析问题并修复代码
|
|
29
|
+
│
|
|
30
|
+
├─ 3. 调用 submit-cr 提交
|
|
31
|
+
│
|
|
32
|
+
├─ 4. 等待 5 秒
|
|
33
|
+
│
|
|
34
|
+
├─ 5. 重新获取机器检查结果
|
|
35
|
+
│
|
|
36
|
+
├─ 6. 检查是否通过
|
|
37
|
+
│ │
|
|
38
|
+
│ ├─ 通过 → 输出"修复成功",退出
|
|
39
|
+
│ │
|
|
40
|
+
│ └─ 未通过 → 继续循环
|
|
41
|
+
│
|
|
42
|
+
└─ 达到最大次数 → 输出"修复失败",退出
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## 快速使用
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
# 自动检测当前 CR
|
|
49
|
+
./fix-machine-check.sh
|
|
50
|
+
|
|
51
|
+
# 指定 CR 编号
|
|
52
|
+
./fix-machine-check.sh 120247220
|
|
53
|
+
|
|
54
|
+
# 指定最大重试次数
|
|
55
|
+
./fix-machine-check.sh 120247220 10
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## 参数说明
|
|
59
|
+
|
|
60
|
+
| 参数 | 默认值 | 说明 |
|
|
61
|
+
|------|--------|------|
|
|
62
|
+
| CR 编号(第1个位置参数) | 自动检测 | CR 的 change number |
|
|
63
|
+
| 最大重试次数(第2个位置参数) | 5 | 修复循环的最大次数 |
|
|
64
|
+
|
|
65
|
+
## 机器检查项说明
|
|
66
|
+
|
|
67
|
+
| 检查项 | changeType | 说明 |
|
|
68
|
+
|--------|------------|------|
|
|
69
|
+
| 编码规范 | `CODE_STYLE` | 代码格式、命名规范等 |
|
|
70
|
+
| 缺陷检查 | `STATIC_CHECK` | 静态代码分析,潜在 bug |
|
|
71
|
+
| 语言合规 | `LANGUAGE_CHECK` | 语言规范检查 |
|
|
72
|
+
| 开源合规 | - | 开源许可证检查 |
|
|
73
|
+
|
|
74
|
+
## 检查结果字段
|
|
75
|
+
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"operations": [
|
|
79
|
+
{
|
|
80
|
+
"name": "编码规范, 来自于 CodeStyle",
|
|
81
|
+
"changeType": "CODE_STYLE",
|
|
82
|
+
"status": "SUCCESS",
|
|
83
|
+
"score": 1,
|
|
84
|
+
"comment": "检查结果说明",
|
|
85
|
+
"lineComments": {
|
|
86
|
+
"src/main.go": [
|
|
87
|
+
{
|
|
88
|
+
"line": 42,
|
|
89
|
+
"message": "变量名不符合规范"
|
|
90
|
+
}
|
|
91
|
+
]
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
]
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Agent 修复指南
|
|
99
|
+
|
|
100
|
+
当机器检查失败时,Agent 需要:
|
|
101
|
+
|
|
102
|
+
### 1. 分析问题
|
|
103
|
+
|
|
104
|
+
从检查结果中提取:
|
|
105
|
+
- **检查项名称** (`name`):了解是哪类检查
|
|
106
|
+
- **失败原因** (`comment`):理解具体问题
|
|
107
|
+
- **行内评论** (`lineComments`):定位具体代码位置
|
|
108
|
+
|
|
109
|
+
### 2. 读取相关文件
|
|
110
|
+
|
|
111
|
+
根据 `lineComments` 中的文件路径,读取相关代码。
|
|
112
|
+
|
|
113
|
+
### 3. 修复代码
|
|
114
|
+
|
|
115
|
+
根据问题类型修复:
|
|
116
|
+
|
|
117
|
+
| 问题类型 | 修复方法 |
|
|
118
|
+
|----------|----------|
|
|
119
|
+
| 变量命名 | 按规范重命名(camelCase/snake_case) |
|
|
120
|
+
| 缩进问题 | 统一使用 tab 或 space |
|
|
121
|
+
| 未使用变量 | 删除或添加使用 |
|
|
122
|
+
| 缺少注释 | 添加必要注释 |
|
|
123
|
+
| 潜在空指针 | 添加空值检查 |
|
|
124
|
+
|
|
125
|
+
### 4. 提交修复
|
|
126
|
+
|
|
127
|
+
修复完成后,调用 submit-cr 提交:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
./submit-cr.sh
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## 注意事项
|
|
134
|
+
|
|
135
|
+
1. **轮询间隔**:每次检查间隔 5 秒,等待机器检查完成
|
|
136
|
+
2. **最大重试**:默认 5 次,可通过参数调整
|
|
137
|
+
3. **Agent 介入**:修复代码需要 Agent 分析和执行
|
|
138
|
+
|
|
139
|
+
## 相关命令
|
|
140
|
+
|
|
141
|
+
| 命令 | 说明 |
|
|
142
|
+
|------|------|
|
|
143
|
+
| `icode-cli api get_machine_check` | 获取机器检查结果 |
|
|
144
|
+
| `icode-cli api get_repo_reviews` | 获取 CR 列表 |
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# merge-cr - 合入 CR
|
|
2
|
+
|
|
3
|
+
尝试打分 +2 并合入 CR,通过打分结果判断是否有合入权限。
|
|
4
|
+
|
|
5
|
+
## 执行流程
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
开始
|
|
9
|
+
│
|
|
10
|
+
▼
|
|
11
|
+
获取 CR 编号(参数 / 自动检测)
|
|
12
|
+
│
|
|
13
|
+
├─ 无法获取 → 告知原因,退出 (1)
|
|
14
|
+
│
|
|
15
|
+
▼
|
|
16
|
+
尝试打分 +2 (set_review_score)
|
|
17
|
+
│
|
|
18
|
+
├─ 打分成功 ─────────────────────────────────────
|
|
19
|
+
│ │
|
|
20
|
+
│ ├─ 尝试合入 (submit_review)
|
|
21
|
+
│ │ │
|
|
22
|
+
│ │ ├─ 成功 → 输出"合入成功",退出 (0)
|
|
23
|
+
│ │ │
|
|
24
|
+
│ │ └─ 失败 → 输出失败原因,退出 (1)
|
|
25
|
+
│ │
|
|
26
|
+
└─ 打分失败 ─────────────────────────────────────
|
|
27
|
+
│
|
|
28
|
+
└─ 输出"无合入权限",退出 (1)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## 快速使用
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# 自动检测当前 CR
|
|
35
|
+
./merge-cr.sh
|
|
36
|
+
|
|
37
|
+
# 指定 CR 编号
|
|
38
|
+
./merge-cr.sh 120247220
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## 参数说明
|
|
42
|
+
|
|
43
|
+
| 参数 | 默认值 | 说明 |
|
|
44
|
+
|------|--------|------|
|
|
45
|
+
| CR 编号(`$1`) | 自动检测 | CR 的 change number |
|
|
46
|
+
|
|
47
|
+
## 退出码说明
|
|
48
|
+
|
|
49
|
+
| 退出码 | 含义 | 说明 |
|
|
50
|
+
|--------|------|------|
|
|
51
|
+
| 0 | 成功 | CR 已合入 |
|
|
52
|
+
| 1 | 失败 | 无 CR / 无权限 / 打分失败 / 合入失败 |
|
|
53
|
+
|
|
54
|
+
## 权限检测说明
|
|
55
|
+
|
|
56
|
+
脚本通过尝试 **打分 +2** 来检测权限:
|
|
57
|
+
|
|
58
|
+
- **打分成功**:说明用户有该仓库的评审权限,继续尝试合入
|
|
59
|
+
- **打分失败**:说明用户没有评审权限,输出错误信息
|
|
60
|
+
|
|
61
|
+
## 合入失败常见原因
|
|
62
|
+
|
|
63
|
+
| 原因 | 说明 | 解决方法 |
|
|
64
|
+
|------|------|----------|
|
|
65
|
+
| 无评审权限 | 用户不是仓库成员或权限不足 | 联系仓库管理员添加权限 |
|
|
66
|
+
| 机器检查未通过 | 存在代码规范或缺陷问题 | 执行 fix-machine-check 修复 |
|
|
67
|
+
| 未解决的评审意见 | 有评审人提出的问题未处理 | 回复或解决评审意见 |
|
|
68
|
+
| 代码冲突 | 目标分支有新提交导致冲突 | Rebase 并解决冲突后重新提交 |
|
|
69
|
+
| 缺少必要审批 | 需要特定角色审批 | 联系有权限的评审人 |
|
|
70
|
+
|
|
71
|
+
## 完整工作流示例
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# 场景 1:有权限,合入成功
|
|
75
|
+
./merge-cr.sh
|
|
76
|
+
# 输出: ✓ CR #120247220 合入成功!
|
|
77
|
+
|
|
78
|
+
# 场景 2:无权限
|
|
79
|
+
./merge-cr.sh
|
|
80
|
+
# 输出: ✗ 打分失败,无合入权限
|
|
81
|
+
|
|
82
|
+
# 场景 3:有权限但合入失败
|
|
83
|
+
./merge-cr.sh
|
|
84
|
+
# 输出: ✗ CR 合入失败
|
|
85
|
+
# 失败原因: 机器检查未通过
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## 注意事项
|
|
89
|
+
|
|
90
|
+
1. **权限检测**:通过打分 +2 来检测权限
|
|
91
|
+
2. **打分覆盖**:如果之前有其他评分,新评分会覆盖
|
|
92
|
+
3. **合入不可逆**:合入后 CR 状态变为 MERGED,无法撤销
|
|
93
|
+
|
|
94
|
+
## 相关命令
|
|
95
|
+
|
|
96
|
+
| 命令 | 说明 |
|
|
97
|
+
|------|------|
|
|
98
|
+
| `icode-cli api set_review_score` | 设置评审分数 |
|
|
99
|
+
| `icode-cli api submit_review` | 提交/合入评审 |
|
|
100
|
+
| `icode-cli api get_review_info` | 获取 CR 详情 |
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# ssh-setup - SSH 密钥配置
|
|
2
|
+
|
|
3
|
+
自动检测并配置 SSH 密钥,用于 iCode Git 操作认证。
|
|
4
|
+
|
|
5
|
+
## 执行流程
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
开始
|
|
9
|
+
│
|
|
10
|
+
▼
|
|
11
|
+
检测本地 SSH 密钥:
|
|
12
|
+
- 检查 ~/.ssh/id_ed25519 是否存在
|
|
13
|
+
- 检查 ~/.ssh/id_rsa 是否存在
|
|
14
|
+
│
|
|
15
|
+
├─ 密钥已存在 → 提示"检测到已有 SSH 密钥"
|
|
16
|
+
│
|
|
17
|
+
└─ 密钥不存在 → 生成新的 ed25519 密钥
|
|
18
|
+
│
|
|
19
|
+
▼
|
|
20
|
+
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N ""
|
|
21
|
+
│
|
|
22
|
+
▼
|
|
23
|
+
复制公钥到剪贴板:
|
|
24
|
+
├─ macOS → pbcopy < ~/.ssh/id_ed25519.pub
|
|
25
|
+
├─ Linux (xclip) → xclip -selection clipboard < ~/.ssh/id_ed25519.pub
|
|
26
|
+
└─ 无剪贴板工具 → 打印公钥内容
|
|
27
|
+
│
|
|
28
|
+
▼
|
|
29
|
+
输出引导信息:
|
|
30
|
+
- 提示公钥已复制(或需手动复制)
|
|
31
|
+
- 显示 iCode 密钥管理 URL
|
|
32
|
+
- 提示用户粘贴公钥完成绑定
|
|
33
|
+
│
|
|
34
|
+
▼
|
|
35
|
+
结束
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## 快速使用
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# 执行 SSH 密钥配置
|
|
42
|
+
./ssh-setup.sh
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## 参数说明
|
|
46
|
+
|
|
47
|
+
此脚本无需参数,自动检测和配置。
|
|
48
|
+
|
|
49
|
+
## 密钥检测逻辑
|
|
50
|
+
|
|
51
|
+
### 检测优先级
|
|
52
|
+
|
|
53
|
+
1. **ed25519 密钥**(优先): `~/.ssh/id_ed25519`
|
|
54
|
+
2. **RSA 密钥**(备选): `~/.ssh/id_rsa`
|
|
55
|
+
|
|
56
|
+
### 检测结果处理
|
|
57
|
+
|
|
58
|
+
| 情况 | 处理方式 |
|
|
59
|
+
|------|----------|
|
|
60
|
+
| ed25519 密钥存在 | 使用已有密钥,不生成新密钥 |
|
|
61
|
+
| 仅 RSA 密钥存在 | 使用已有 RSA 密钥 |
|
|
62
|
+
| 无密钥 | 生成新的 ed25519 密钥 |
|
|
63
|
+
|
|
64
|
+
## 剪贴板复制
|
|
65
|
+
|
|
66
|
+
### 平台支持
|
|
67
|
+
|
|
68
|
+
| 平台 | 工具 | 命令 |
|
|
69
|
+
|------|------|------|
|
|
70
|
+
| macOS | pbcopy | `pbcopy < ~/.ssh/id_ed25519.pub` |
|
|
71
|
+
| Linux | xclip | `xclip -selection clipboard < ~/.ssh/id_ed25519.pub` |
|
|
72
|
+
| Linux | xsel | `xsel --clipboard < ~/.ssh/id_ed25519.pub` |
|
|
73
|
+
|
|
74
|
+
### 回退机制
|
|
75
|
+
|
|
76
|
+
如果剪贴板工具不可用,脚本会:
|
|
77
|
+
1. 打印公钥完整内容
|
|
78
|
+
2. 提示用户手动复制
|
|
79
|
+
|
|
80
|
+
## iCode 密钥绑定
|
|
81
|
+
|
|
82
|
+
完成密钥配置后,需要将公钥添加到 iCode 账户:
|
|
83
|
+
|
|
84
|
+
**管理页面**: https://console.cloud.baidu-int.com/devops/icode/account/keys
|
|
85
|
+
|
|
86
|
+
### 绑定步骤
|
|
87
|
+
|
|
88
|
+
1. 打开上述 URL
|
|
89
|
+
2. 点击"添加 SSH 密钥"
|
|
90
|
+
3. 粘贴公钥内容(已复制到剪贴板)
|
|
91
|
+
4. 填写密钥标题(如:MacBook Pro)
|
|
92
|
+
5. 点击确认保存
|
|
93
|
+
|
|
94
|
+
## 注意事项
|
|
95
|
+
|
|
96
|
+
1. **不覆盖已有密钥**:如果本地已有 SSH 密钥,脚本不会覆盖
|
|
97
|
+
2. **密钥安全**:私钥 (`id_ed25519`) 请勿分享,仅公钥 (`id_ed25519.pub`) 需要上传
|
|
98
|
+
3. **多设备使用**:每台设备需要单独配置密钥
|
|
99
|
+
|
|
100
|
+
## 相关命令
|
|
101
|
+
|
|
102
|
+
| 命令 | 说明 |
|
|
103
|
+
|------|------|
|
|
104
|
+
| `ssh-keygen -t ed25519` | 生成 ed25519 密钥 |
|
|
105
|
+
| `cat ~/.ssh/id_ed25519.pub` | 查看公钥内容 |
|
|
106
|
+
| `ssh -T git@icode.baidu.com` | 测试 SSH 连接 |
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# submit-acr - AI 代码评审
|
|
2
|
+
|
|
3
|
+
自动触发 AI 代码评审并分析结果,发现需要修复的问题时退出等待 Agent 修复。
|
|
4
|
+
|
|
5
|
+
## 执行流程
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
开始
|
|
9
|
+
│
|
|
10
|
+
▼
|
|
11
|
+
获取 CR 编号(参数 / 自动检测)
|
|
12
|
+
│
|
|
13
|
+
├─ 无法获取 → 告知原因,退出 (1)
|
|
14
|
+
│
|
|
15
|
+
▼
|
|
16
|
+
【主循环】(最多 MAX_LOOPS 次,默认 10)
|
|
17
|
+
│
|
|
18
|
+
├─── AI 代码评审 ────────────────────────
|
|
19
|
+
│ │
|
|
20
|
+
│ ├─ 触发 AI 评审 (start_ai_review)
|
|
21
|
+
│ │
|
|
22
|
+
│ ├─ 轮询结果 (get_ai_review, 10s/次)
|
|
23
|
+
│ │ │
|
|
24
|
+
│ │ ├─ 超时 (默认 20min) → 退出 (1)
|
|
25
|
+
│ │ ├─ 状态 FAIL/TIMEOUT → 退出 (1)
|
|
26
|
+
│ │ └─ 状态 SUSS → 继续处理结果
|
|
27
|
+
│ │
|
|
28
|
+
│ ├─ 过滤 severityScore >= N (默认 5) 的问题
|
|
29
|
+
│ │ │
|
|
30
|
+
│ │ ├─ 无问题 → 流程成功,退出 (0)
|
|
31
|
+
│ │ │
|
|
32
|
+
│ │ └─ 有问题 → 输出问题详情,退出 (2)
|
|
33
|
+
│ │ 等待 Agent 修复后重新运行
|
|
34
|
+
│ │
|
|
35
|
+
└─── 达到最大循环次数 → 退出 (1)
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## 快速使用
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
# 自动检测当前 CR,使用默认参数
|
|
42
|
+
./submit-acr.sh
|
|
43
|
+
|
|
44
|
+
# 指定 CR 编号
|
|
45
|
+
./submit-acr.sh 120247220
|
|
46
|
+
|
|
47
|
+
# 指定最大循环次数
|
|
48
|
+
./submit-acr.sh 120247220 10
|
|
49
|
+
|
|
50
|
+
# 完整参数
|
|
51
|
+
./submit-acr.sh 120247220 10 1200 5
|
|
52
|
+
# 参数顺序: CR编号 最大循环次数 AI超时秒数 严重度阈值
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## 参数说明
|
|
56
|
+
|
|
57
|
+
| 参数 | 默认值 | 说明 |
|
|
58
|
+
|------|--------|------|
|
|
59
|
+
| CR 编号(`$1`) | 自动检测 | CR 的 change number |
|
|
60
|
+
| 最大循环次数(`$2`) | 10 | 主循环最大次数 |
|
|
61
|
+
| AI 评审超时(`$3`) | 1200 (20min) | AI 评审轮询超时秒数 |
|
|
62
|
+
| 严重度阈值(`$4`) | 5 | 需要修复的 severityScore 阈值 |
|
|
63
|
+
|
|
64
|
+
## 退出码说明
|
|
65
|
+
|
|
66
|
+
| 退出码 | 含义 | Agent 动作 |
|
|
67
|
+
|--------|------|-----------|
|
|
68
|
+
| 0 | 成功:AI 评审通过 | 无需操作 |
|
|
69
|
+
| 1 | 失败:无 CR / 超时 / 达到最大次数 | 报告错误 |
|
|
70
|
+
| 2 | 需要 Agent 修复 | 分析问题,修复代码,提交后重新运行 |
|
|
71
|
+
|
|
72
|
+
## AI 评审问题严重度说明
|
|
73
|
+
|
|
74
|
+
| severityScore | 严重程度 | 说明 | 默认处理 |
|
|
75
|
+
|---------------|----------|------|----------|
|
|
76
|
+
| 1-3 | 低 | 代码风格、命名建议 | 忽略 |
|
|
77
|
+
| 4 | 中低 | 轻微优化建议 | 忽略 |
|
|
78
|
+
| 5-6 | 中 | 代码优化、性能改进 | **需要修复** |
|
|
79
|
+
| 7-10 | 高 | 潜在 bug、安全问题 | **需要修复** |
|
|
80
|
+
|
|
81
|
+
## Agent 修复指南
|
|
82
|
+
|
|
83
|
+
### 收到退出码 2 时
|
|
84
|
+
|
|
85
|
+
脚本会输出需要修复的问题详情,Agent 需要:
|
|
86
|
+
|
|
87
|
+
1. **分析问题** - 查看文件、行号、严重度、问题描述
|
|
88
|
+
2. **读取相关文件** - 根据输出的文件路径读取代码
|
|
89
|
+
3. **修复代码** - 使用 Edit 工具修复代码
|
|
90
|
+
4. **提交修复** - 使用 submit-cr 提交
|
|
91
|
+
5. **重新运行检查** - 继续 AI CR 流程
|
|
92
|
+
|
|
93
|
+
### 常见问题类型修复
|
|
94
|
+
|
|
95
|
+
| 问题类型 | 修复方法 |
|
|
96
|
+
|----------|----------|
|
|
97
|
+
| 缺少错误处理 | 添加 error check |
|
|
98
|
+
| 潜在空指针 | 添加空值检查 |
|
|
99
|
+
| 性能问题 | 优化算法/数据结构 |
|
|
100
|
+
| 安全问题 | 修复安全漏洞 |
|
|
101
|
+
|
|
102
|
+
## 完整工作流示例
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
# 1. 提交 CR
|
|
106
|
+
./submit-cr.sh
|
|
107
|
+
|
|
108
|
+
# 2. 运行 AI CR 完整流程
|
|
109
|
+
./submit-acr.sh
|
|
110
|
+
|
|
111
|
+
# 3. 如果有问题需要修复,脚本会退出并输出问题
|
|
112
|
+
# Agent 分析问题并修复代码
|
|
113
|
+
|
|
114
|
+
# 4. 修复后重新提交
|
|
115
|
+
./submit-cr.sh
|
|
116
|
+
|
|
117
|
+
# 5. 继续运行 AI CR 流程
|
|
118
|
+
./submit-acr.sh 120247220
|
|
119
|
+
|
|
120
|
+
# 重复 3-5 直到通过
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## 注意事项
|
|
124
|
+
|
|
125
|
+
1. **轮询间隔**:AI 评审每 10 秒轮询一次
|
|
126
|
+
2. **超时设置**:默认 20 分钟,可根据代码量调整
|
|
127
|
+
3. **严重度阈值**:默认 5,可降低以检查更多问题
|
|
128
|
+
4. **Agent 介入**:修复代码需要 Agent 分析和执行
|
|
129
|
+
|
|
130
|
+
## 相关命令
|
|
131
|
+
|
|
132
|
+
| 命令 | 说明 |
|
|
133
|
+
|------|------|
|
|
134
|
+
| `icode-cli api start_ai_review` | 触发 AI 评审 |
|
|
135
|
+
| `icode-cli api get_ai_review` | 获取 AI 评审结果 |
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# submit-cr - 提交 CR
|
|
2
|
+
|
|
3
|
+
自动判断当前提交是新建 CR 还是追加到已有 CR,并执行相应的提交流程。
|
|
4
|
+
|
|
5
|
+
## 执行流程
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
开始
|
|
9
|
+
│
|
|
10
|
+
▼
|
|
11
|
+
查询本地信息:
|
|
12
|
+
- commit hash (git rev-parse HEAD)
|
|
13
|
+
- commit message (git log -1 --format="%s")
|
|
14
|
+
- iCafe 卡片号 (从 message 解析,如 ComateStack-5353)
|
|
15
|
+
│
|
|
16
|
+
▼
|
|
17
|
+
获取仓库名称和当前用户
|
|
18
|
+
│
|
|
19
|
+
▼
|
|
20
|
+
查询远程 NEW 状态的 CR 列表 (api get_repo_reviews)
|
|
21
|
+
│
|
|
22
|
+
▼
|
|
23
|
+
过滤当前用户的 CR,执行匹配判断:
|
|
24
|
+
│
|
|
25
|
+
├─【匹配方式一】current_revision == 本地 commit hash
|
|
26
|
+
│ │
|
|
27
|
+
│ ▼
|
|
28
|
+
│ 找到匹配 → 【同一个 CR - Amend 模式】
|
|
29
|
+
│
|
|
30
|
+
├─【匹配方式二】远程 CR 的 subject 以相同 iCafe 卡片号开头
|
|
31
|
+
│ │
|
|
32
|
+
│ ▼
|
|
33
|
+
│ 找到匹配 → 【同一个 CR - Amend 模式】
|
|
34
|
+
│
|
|
35
|
+
└─ 两种方式均未匹配 → 【新 CR 模式】
|
|
36
|
+
|
|
37
|
+
【同一个 CR - Amend 模式】
|
|
38
|
+
1. git add -A (添加所有修改)
|
|
39
|
+
2. git commit --amend --no-edit
|
|
40
|
+
3. icode-cli git push_cr
|
|
41
|
+
|
|
42
|
+
【新 CR 模式】
|
|
43
|
+
1. 使用 icafe-assistant skill 获取 iCafe 卡片 ID
|
|
44
|
+
2. git add -A (添加所有修改)
|
|
45
|
+
3. git commit -m "<iCafe卡片号> <commit message>"
|
|
46
|
+
4. icode-cli git push_cr
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## 快速使用
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# 默认 master 分支
|
|
53
|
+
./submit-cr.sh
|
|
54
|
+
|
|
55
|
+
# 指定 develop 分支
|
|
56
|
+
./submit-cr.sh develop
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## 参数说明
|
|
60
|
+
|
|
61
|
+
| 参数 | 默认值 | 说明 |
|
|
62
|
+
|------|--------|------|
|
|
63
|
+
| 目标分支(`$1`) | master | CR 的目标分支 |
|
|
64
|
+
|
|
65
|
+
## 判断逻辑详解
|
|
66
|
+
|
|
67
|
+
### 如何判断是否为同一个 CR
|
|
68
|
+
|
|
69
|
+
有两种匹配方式,满足任一条件即视为同一个 CR:
|
|
70
|
+
|
|
71
|
+
**方式一:Commit Hash 匹配**
|
|
72
|
+
|
|
73
|
+
1. 获取本地当前 commit: `git rev-parse HEAD`
|
|
74
|
+
2. 调用 `icode-cli api get_repo_reviews --repo <repo> --status NEW`
|
|
75
|
+
3. 在返回的 CR 列表中查找:
|
|
76
|
+
- `owner.username` == 当前用户
|
|
77
|
+
- `current_revision` == 本地 commit hash
|
|
78
|
+
4. 如果找到匹配项,说明当前 commit 已经有对应的远程 CR
|
|
79
|
+
|
|
80
|
+
**方式二:iCafe 卡片号匹配**
|
|
81
|
+
|
|
82
|
+
1. 解析本地 commit message 中的 iCafe 卡片号(如 `ComateStack-5353`)
|
|
83
|
+
2. 调用 `icode-cli api get_repo_reviews --repo <repo> --status NEW`
|
|
84
|
+
3. 在返回的 CR 列表中查找:
|
|
85
|
+
- `owner.username` == 当前用户
|
|
86
|
+
- `subject` 中包含相同的 iCafe 卡片号
|
|
87
|
+
4. 如果找到匹配项,说明本地修改属于已有的 CR
|
|
88
|
+
|
|
89
|
+
### iCafe 卡片号解析规则
|
|
90
|
+
|
|
91
|
+
iCafe 卡片号格式为 `<项目前缀>-<数字>`,位于 commit message 开头:
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
ComateStack-5353 support agentic
|
|
95
|
+
│ │
|
|
96
|
+
└──────────────┴── iCafe 卡片号
|
|
97
|
+
|
|
98
|
+
ISSUE-123 fix login bug
|
|
99
|
+
│ │
|
|
100
|
+
└───────┴── iCafe 卡片号
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## 注意事项
|
|
104
|
+
|
|
105
|
+
1. **Amend 模式会修改 commit history**:确保该 commit 尚未被其他人基于开发
|
|
106
|
+
2. **Change-Id 保持不变**:amend 后 Change-Id 不变,Gerrit 会识别为同一个 CR 的新版本
|
|
107
|
+
3. **分支选择**:Amend 模式使用原 CR 的目标分支;新 CR 默认使用 master
|
|
108
|
+
4. **iCafe 绑定**:新 CR 需要绑定 iCafe 卡片,通过 `icafe-cli-assistant` skill 获取卡片 ID
|
|
109
|
+
|
|
110
|
+
## 相关 Skill
|
|
111
|
+
|
|
112
|
+
| Skill | 说明 |
|
|
113
|
+
|-------|------|
|
|
114
|
+
| `icafe-cli-assistant` | 获取 iCafe 卡片 ID,用于绑定 CR |
|
|
115
|
+
|
|
116
|
+
## 相关命令
|
|
117
|
+
|
|
118
|
+
| 命令 | 说明 |
|
|
119
|
+
|------|------|
|
|
120
|
+
| `icode-cli git push_cr` | 推送代码评审 |
|
|
121
|
+
| `icode-cli api get_repo_reviews` | 获取仓库 CR 列表 |
|
|
122
|
+
| `icode-cli api get_review_info` | 获取 CR 详情 |
|
|
123
|
+
| `icode-cli login` | 检查登录状态 |
|