@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.
Files changed (170) hide show
  1. package/comate-engine/assets/skills/auto-commit-comate/SKILL.md +260 -0
  2. package/comate-engine/assets/skills/auto-commit-comate/references/data_structures.md +189 -0
  3. package/comate-engine/assets/skills/auto-commit-comate/references/new_version_instruction.md +209 -0
  4. package/comate-engine/assets/skills/auto-commit-comate/references/old_version_instruction.md +208 -0
  5. package/comate-engine/assets/skills/auto-commit-comate/scripts/git_diff_cli.py +196 -0
  6. package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/git_utils.py +20 -10
  7. package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/icafe/client.py +69 -40
  8. package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/icafe/farseer.py +8 -9
  9. package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/icafe/matching.py +65 -9
  10. package/comate-engine/assets/skills/auto-commit-comate/scripts/match_card_cli.py +37 -0
  11. package/comate-engine/assets/skills/cnap-comate/SKILL.md +157 -0
  12. package/comate-engine/assets/skills/cnap-comate/references/cases.md +198 -0
  13. package/comate-engine/assets/skills/cnap-comate/references/deploy-troubleshoot.md +15 -0
  14. package/comate-engine/assets/skills/cnap-comate/references/install.md +43 -0
  15. package/comate-engine/assets/skills/cnap-comate/references/kubectl.md +55 -0
  16. package/comate-engine/assets/skills/cnap-comate/references/login.md +125 -0
  17. package/comate-engine/assets/skills/cnap-comate/references/oncall.md +24 -0
  18. package/comate-engine/assets/skills/cnap-comate/scripts/install_cnap_cli.sh +36 -0
  19. package/comate-engine/assets/skills/code-security/SKILL.md +176 -0
  20. package/comate-engine/assets/skills/code-security/references/credential_hosting.md +102 -0
  21. package/comate-engine/assets/skills/code-security/references/vul_repair_sensitive.md +219 -0
  22. package/comate-engine/assets/skills/code-security/scripts/build_repair_info.py +0 -0
  23. package/comate-engine/assets/skills/code-security/scripts/credential_hosting.py +99 -0
  24. package/comate-engine/assets/skills/code-security/scripts/credential_poll.py +350 -0
  25. package/comate-engine/assets/skills/code-security/scripts/http_client.py +173 -0
  26. package/comate-engine/assets/skills/code-security/scripts/parse_scan_result.py +301 -0
  27. package/comate-engine/assets/skills/code-security/scripts/repair_vulnerability.py +261 -0
  28. package/comate-engine/assets/skills/code-security/scripts/report_chat.py +198 -0
  29. package/comate-engine/assets/skills/code-security/scripts/scan_vulnerability.py +316 -0
  30. package/comate-engine/assets/skills/code-security-comate/SKILL.md +219 -0
  31. package/comate-engine/assets/skills/code-security-comate/references/credential_hosting.md +102 -0
  32. package/comate-engine/assets/skills/code-security-comate/references/vul_repair-go_sql_injection.md +399 -0
  33. package/comate-engine/assets/skills/code-security-comate/references/vul_repair-java_sql_injection.md +591 -0
  34. package/comate-engine/assets/skills/code-security-comate/references/vul_repair-php_sql_injection.md +318 -0
  35. package/comate-engine/assets/skills/code-security-comate/references/vul_repair-python_sql_injection.md +198 -0
  36. package/comate-engine/assets/skills/code-security-comate/references/vul_repair_sensitive.md +219 -0
  37. package/comate-engine/assets/skills/code-security-comate/scripts/credential_hosting.py +87 -0
  38. package/comate-engine/assets/skills/code-security-comate/scripts/credential_poll.py +345 -0
  39. package/comate-engine/assets/skills/code-security-comate/scripts/http_client.py +173 -0
  40. package/comate-engine/assets/skills/code-security-comate/scripts/parse_scan_result.py +392 -0
  41. package/comate-engine/assets/skills/code-security-comate/scripts/repair_vulnerability.py +245 -0
  42. package/comate-engine/assets/skills/code-security-comate/scripts/report_chat.py +145 -0
  43. package/comate-engine/assets/skills/code-security-comate/scripts/scan_vulnerability.py +444 -0
  44. package/comate-engine/assets/skills/code-security-comate/scripts/utils.py +153 -0
  45. package/comate-engine/assets/skills/comate-docs-comate/SKILL.md +148 -0
  46. package/comate-engine/assets/skills/comate-docs-comate/references/doc-map-extended.md +78 -0
  47. package/comate-engine/assets/skills/comate-docs-comate/references/models-and-billing.md +51 -0
  48. package/comate-engine/assets/skills/comate-docs-comate/references/product-overview.md +73 -0
  49. package/comate-engine/assets/skills/comate-docs-comate/references/query_content.md +83 -0
  50. package/comate-engine/assets/skills/comate-docs-comate/references/query_repo.md +57 -0
  51. package/comate-engine/assets/skills/comate-docs-comate/scripts/ku_operator.py +1575 -0
  52. package/comate-engine/assets/skills/create-image-comate/SKILL.md +278 -0
  53. package/comate-engine/assets/skills/create-skill-comate/SKILL.md +308 -217
  54. package/comate-engine/assets/skills/create-skill-comate/agents/analyzer.md +274 -0
  55. package/comate-engine/assets/skills/create-skill-comate/agents/comparator.md +202 -0
  56. package/comate-engine/assets/skills/create-skill-comate/agents/grader.md +223 -0
  57. package/comate-engine/assets/skills/create-skill-comate/assets/eval_review.html +146 -0
  58. package/comate-engine/assets/skills/create-skill-comate/eval-viewer/generate_review.py +489 -0
  59. package/comate-engine/assets/skills/create-skill-comate/eval-viewer/viewer.html +1325 -0
  60. package/comate-engine/assets/skills/create-skill-comate/references/schemas.md +430 -0
  61. package/comate-engine/assets/skills/create-skill-comate/scripts/__init__.py +0 -0
  62. package/comate-engine/assets/skills/create-skill-comate/scripts/__pycache__/__init__.cpython-311.pyc +0 -0
  63. package/comate-engine/assets/skills/create-skill-comate/scripts/__pycache__/aggregate_benchmark.cpython-311.pyc +0 -0
  64. package/comate-engine/assets/skills/create-skill-comate/scripts/aggregate_benchmark.py +412 -0
  65. package/comate-engine/assets/skills/create-skill-comate/scripts/generate_report.py +334 -0
  66. package/comate-engine/assets/skills/create-skill-comate/scripts/package_skill.py +140 -0
  67. package/comate-engine/assets/skills/create-skill-comate/scripts/utils.py +53 -0
  68. package/comate-engine/assets/skills/find-skills-comate/SKILL.md +15 -12
  69. package/comate-engine/assets/skills/find-skills-comate/scripts/fetch_skills.py +32 -3
  70. package/comate-engine/assets/skills/get-ugate-token-comate/SKILL.md +159 -0
  71. package/comate-engine/assets/skills/get-ugate-token-comate/getUgateToken.py +150 -0
  72. package/comate-engine/assets/skills/icafe-comate/SKILL.md +240 -0
  73. package/comate-engine/assets/skills/icafe-comate/references/ai-workflows.md +233 -0
  74. package/comate-engine/assets/skills/icafe-comate/references/commands.md +1147 -0
  75. package/comate-engine/assets/skills/icafe-comate/references/error-handling.md +164 -0
  76. package/comate-engine/assets/skills/icafe-comate/references/git-auto-bindcard-workflow.md +201 -0
  77. package/comate-engine/assets/skills/icafe-comate/references/git-bindcard-workflow.md +327 -0
  78. package/comate-engine/assets/skills/icafe-comate/references/iql-syntax.md +327 -0
  79. package/comate-engine/assets/skills/icafe-comate/references/platform-concepts.md +317 -0
  80. package/comate-engine/assets/skills/icafe-comate/references/smart-create-workflow.md +171 -0
  81. package/comate-engine/assets/skills/icafe-comate/references/smart-find-workflow.md +127 -0
  82. package/comate-engine/assets/skills/icafe-comate/references/smart-update-workflow.md +118 -0
  83. package/comate-engine/assets/skills/icode-comate/SKILL.md +366 -0
  84. package/comate-engine/assets/skills/icode-comate/references/api/add_reviewers.md +44 -0
  85. package/comate-engine/assets/skills/icode-comate/references/api/build_fetch_command.md +89 -0
  86. package/comate-engine/assets/skills/icode-comate/references/api/check_repo_permission.md +89 -0
  87. package/comate-engine/assets/skills/icode-comate/references/api/create_branch.md +79 -0
  88. package/comate-engine/assets/skills/icode-comate/references/api/create_draft_comment.md +109 -0
  89. package/comate-engine/assets/skills/icode-comate/references/api/get_ai_cr_result.md +190 -0
  90. package/comate-engine/assets/skills/icode-comate/references/api/get_ai_review.md +97 -0
  91. package/comate-engine/assets/skills/icode-comate/references/api/get_diff_content.md +92 -0
  92. package/comate-engine/assets/skills/icode-comate/references/api/get_diff_file.md +88 -0
  93. package/comate-engine/assets/skills/icode-comate/references/api/get_machine_check.md +73 -0
  94. package/comate-engine/assets/skills/icode-comate/references/api/get_my_reviews.md +115 -0
  95. package/comate-engine/assets/skills/icode-comate/references/api/get_person_commit.md +89 -0
  96. package/comate-engine/assets/skills/icode-comate/references/api/get_person_repo.md +63 -0
  97. package/comate-engine/assets/skills/icode-comate/references/api/get_repo_branch.md +62 -0
  98. package/comate-engine/assets/skills/icode-comate/references/api/get_repo_config.md +91 -0
  99. package/comate-engine/assets/skills/icode-comate/references/api/get_repo_members.md +118 -0
  100. package/comate-engine/assets/skills/icode-comate/references/api/get_repo_reviews.md +91 -0
  101. package/comate-engine/assets/skills/icode-comate/references/api/get_review_comments.md +87 -0
  102. package/comate-engine/assets/skills/icode-comate/references/api/get_review_info.md +81 -0
  103. package/comate-engine/assets/skills/icode-comate/references/api/get_submit_settings.md +105 -0
  104. package/comate-engine/assets/skills/icode-comate/references/api/icode-api.md +86 -0
  105. package/comate-engine/assets/skills/icode-comate/references/api/publish_comments.md +72 -0
  106. package/comate-engine/assets/skills/icode-comate/references/api/set_review_score.md +58 -0
  107. package/comate-engine/assets/skills/icode-comate/references/api/start_ai_review.md +77 -0
  108. package/comate-engine/assets/skills/icode-comate/references/api/submit_review.md +50 -0
  109. package/comate-engine/assets/skills/icode-comate/references/api/trigger_ai_cr.md +63 -0
  110. package/comate-engine/assets/skills/icode-comate/references/feature/add-reviewer.md +92 -0
  111. package/comate-engine/assets/skills/icode-comate/references/feature/fix-machine-check.md +144 -0
  112. package/comate-engine/assets/skills/icode-comate/references/feature/merge-cr.md +100 -0
  113. package/comate-engine/assets/skills/icode-comate/references/feature/ssh-setup.md +106 -0
  114. package/comate-engine/assets/skills/icode-comate/references/feature/submit-acr.md +135 -0
  115. package/comate-engine/assets/skills/icode-comate/references/feature/submit-cr.md +123 -0
  116. package/comate-engine/assets/skills/icode-comate/references/git/clone.md +67 -0
  117. package/comate-engine/assets/skills/icode-comate/references/git/icode-git.md +68 -0
  118. package/comate-engine/assets/skills/icode-comate/references/git/push.md +64 -0
  119. package/comate-engine/assets/skills/icode-comate/references/git/push_cr.md +103 -0
  120. package/comate-engine/assets/skills/icode-comate/references/install.md +144 -0
  121. package/comate-engine/assets/skills/icode-comate/references/login.md +111 -0
  122. package/comate-engine/assets/skills/icode-comate/scripts/add-reviewer.sh +154 -0
  123. package/comate-engine/assets/skills/icode-comate/scripts/common.sh +145 -0
  124. package/comate-engine/assets/skills/icode-comate/scripts/fix-machine-check.sh +131 -0
  125. package/comate-engine/assets/skills/icode-comate/scripts/merge-cr.sh +105 -0
  126. package/comate-engine/assets/skills/icode-comate/scripts/ssh-setup.sh +159 -0
  127. package/comate-engine/assets/skills/icode-comate/scripts/submit-acr.sh +236 -0
  128. package/comate-engine/assets/skills/icode-comate/scripts/submit-cr.sh +104 -0
  129. package/comate-engine/assets/skills/icode-comate/scripts/test-preflight.sh +89 -0
  130. package/comate-engine/assets/skills/ku-operator-comate/SKILL.md +121 -0
  131. package/comate-engine/assets/skills/ku-operator-comate/examples.md +190 -0
  132. package/comate-engine/assets/skills/ku-operator-comate/references/add_member.md +49 -0
  133. package/comate-engine/assets/skills/ku-operator-comate/references/change_scope.md +38 -0
  134. package/comate-engine/assets/skills/ku-operator-comate/references/copy_doc.md +50 -0
  135. package/comate-engine/assets/skills/ku-operator-comate/references/create_doc.md +61 -0
  136. package/comate-engine/assets/skills/ku-operator-comate/references/delete_doc.md +31 -0
  137. package/comate-engine/assets/skills/ku-operator-comate/references/edit_content.md +568 -0
  138. package/comate-engine/assets/skills/ku-operator-comate/references/move_doc.md +45 -0
  139. package/comate-engine/assets/skills/ku-operator-comate/references/query_comment.md +79 -0
  140. package/comate-engine/assets/skills/ku-operator-comate/references/query_content.md +83 -0
  141. package/comate-engine/assets/skills/ku-operator-comate/references/query_flowchart.md +84 -0
  142. package/comate-engine/assets/skills/ku-operator-comate/references/query_permission.md +38 -0
  143. package/comate-engine/assets/skills/ku-operator-comate/references/query_recent_view.md +67 -0
  144. package/comate-engine/assets/skills/ku-operator-comate/references/query_repo.md +57 -0
  145. package/comate-engine/assets/skills/ku-operator-comate/references/query_user_info.md +37 -0
  146. package/comate-engine/assets/skills/ku-operator-comate/references/update_member.md +41 -0
  147. package/comate-engine/assets/skills/ku-operator-comate/references/upload_attachment.md +52 -0
  148. package/comate-engine/assets/skills/ku-operator-comate/scripts/ku_operator.py +1575 -0
  149. package/comate-engine/node_modules/better-sqlite3/node_modules/.bin/prebuild-install +2 -2
  150. package/comate-engine/node_modules/tree-sitter-bash/node_modules/.bin/node-gyp-build +2 -2
  151. package/comate-engine/node_modules/tree-sitter-bash/node_modules/.bin/node-gyp-build-optional +2 -2
  152. package/comate-engine/node_modules/tree-sitter-bash/node_modules/.bin/node-gyp-build-test +2 -2
  153. package/comate-engine/package.json +2 -0
  154. package/comate-engine/server.js +170 -46
  155. package/dist/bundle/index.js +8 -8
  156. package/package.json +1 -1
  157. package/comate-engine/assets/skills/figma2code-comate/codeConnect.md +0 -37
  158. package/comate-engine/assets/skills/figma2code-comate/designToken.md +0 -3
  159. package/comate-engine/assets/skills/figma2code-comate/f2cMcp.md +0 -59
  160. package/comate-engine/assets/skills/smart-commit/SKILL.md +0 -646
  161. package/comate-engine/node_modules/@comate/plugin-host/dist/index-AZIho4HV.js +0 -1
  162. package/comate-engine/node_modules/@comate/plugin-host/dist/user-BIpzRUfb.js +0 -44
  163. package/comate-engine/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  164. /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/references/issue_type_mapping.json +0 -0
  165. /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/references/query_reference.md +0 -0
  166. /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/compat.py +0 -0
  167. /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/create_card_cli.py +0 -0
  168. /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/icafe/__init__.py +0 -0
  169. /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/logger.py +0 -0
  170. /package/comate-engine/assets/skills/{smart-commit → auto-commit-comate}/scripts/recognize_card_cli.py +0 -0
@@ -0,0 +1,67 @@
1
+ # clone - 克隆代码库
2
+
3
+ 从 iCode 平台克隆代码库。
4
+
5
+ ## 命令格式
6
+
7
+ ```bash
8
+ icode-cli git clone --repo <代码库名称> [--path <本地路径>] [--verbose]
9
+ ```
10
+
11
+ 如果 `icode-cli` 不在全局 PATH 中,可以使用:
12
+
13
+ ```bash
14
+ ~/.icode/bin/icode-cli git clone --repo <代码库名称>
15
+ ```
16
+
17
+ ## 参数说明
18
+
19
+ | 参数 | 短参数 | 必填 | 默认值 | 说明 |
20
+ |------|--------|------|--------|------|
21
+ | `--repo` | `-r` | 是 | - | 代码库名称,三层目录形式 |
22
+ | `--path` | `-p` | 否 | 代码库名称 | 本地克隆路径 |
23
+ | `--verbose` | `-v` | 否 | false | 显示详细输出 |
24
+
25
+ ## 使用示例
26
+
27
+ ```bash
28
+ # 克隆代码库(路径默认为代码库名称)
29
+ icode-cli git clone --repo baidu/icode/agent-sandbox
30
+
31
+ # 克隆到指定路径
32
+ icode-cli git clone --repo baidu/icode/agent-sandbox --path ./my-agent
33
+
34
+ # 显示详细输出
35
+ icode-cli git clone --repo baidu/icode/agent-sandbox --verbose
36
+ ```
37
+
38
+ ## 执行流程
39
+
40
+ 克隆命令会自动执行以下操作:
41
+
42
+ 1. **SSH 配置**:执行 SSH 配置脚本(可选,失败不影响克隆)
43
+ 2. **HTTPS 克隆**:使用 HTTPS 协议下载代码
44
+ 3. **配置用户信息**:自动设置 `user.name` 和 `user.email`
45
+ 4. **安装 Hook**:安装 Gerrit 的 `commit-msg` hook
46
+
47
+ ## 输出示例
48
+
49
+ ```
50
+ ✓ Repository cloned successfully!
51
+ Location: agent-sandbox
52
+ Remote: origin (HTTPS)
53
+
54
+ Next steps:
55
+ cd agent-sandbox
56
+ # Make your changes
57
+ git add .
58
+ git commit -m 'Your message'
59
+ icode-cli git push_cr --branch master
60
+ ```
61
+
62
+ ## 注意事项
63
+
64
+ - 代码库名称必须是完整的三层目录形式(如 `baidu/icode/test`)
65
+ - 如果目标路径已存在,克隆会失败
66
+ - 需要有该代码库的访问权限
67
+ - `commit-msg` hook 用于自动生成 Gerrit Change-Id
@@ -0,0 +1,68 @@
1
+ # iCode Git 操作
2
+
3
+ 提供与 iCode 平台集成的 Git 操作命令,包括代码克隆、推送和代码评审(CR)提交。
4
+
5
+ ## 命令概览
6
+
7
+ | 命令 | 说明 | 文档 |
8
+ |------|------|------|
9
+ | `clone` | 克隆代码库 | [clone.md](clone.md) |
10
+ | `push` | 直接推送到远程分支 | [push.md](push.md) |
11
+ | `push_cr` | 推送到 Gerrit 进行代码评审 | [push_cr.md](push_cr.md) |
12
+
13
+ ## 快速开始
14
+
15
+ ### 1. 克隆代码库
16
+
17
+ ```bash
18
+ icode-cli git clone --repo baidu/icode/test
19
+ ```
20
+
21
+ ### 2. 提交代码评审
22
+
23
+ ```bash
24
+ cd test
25
+ # 修改代码...
26
+ git add .
27
+ git commit -m "feat: add new feature"
28
+
29
+ # 推送到 Gerrit 进行代码评审
30
+ icode-cli git push_cr --branch master
31
+ ```
32
+
33
+ ### 3. 直接推送
34
+
35
+ ```bash
36
+ # 推送到远程分支(不经过代码评审)
37
+ icode-cli git push --branch develop
38
+ ```
39
+
40
+ ## 特性
41
+
42
+ - **HTTPS 克隆**:自动使用 HTTPS 协议克隆代码
43
+ - **Git 配置**:自动配置 user.name 和 user.email
44
+ - **Gerrit Hook**:自动安装 commit-msg hook,确保提交包含 Change-Id
45
+ - **智能推送**:自动识别远程仓库并配置 HTTPS remote
46
+
47
+ ## 工作流示例
48
+
49
+ ### 完整的代码评审流程
50
+
51
+ ```bash
52
+ # 1. 克隆仓库
53
+ icode-cli git clone --repo baidu/icode/my-project
54
+
55
+ # 2. 进入目录并创建特性分支
56
+ cd my-project
57
+ git checkout -b feature/new-feature
58
+
59
+ # 3. 开发并提交
60
+ # ... 编写代码 ...
61
+ git add .
62
+ git commit -m "feat: implement new feature"
63
+
64
+ # 4. 推送到 Gerrit 进行代码评审
65
+ icode-cli git push_cr --branch master
66
+
67
+ # 5. 评审通过后,代码会被合并到 master 分支
68
+ ```
@@ -0,0 +1,64 @@
1
+ # push - 直接推送到远程分支
2
+
3
+ 将当前分支直接推送到远程仓库。
4
+
5
+ ## 命令格式
6
+
7
+ ```bash
8
+ icode-cli git push [--repo-path <仓库路径>] [--branch <分支名>]
9
+ ```
10
+
11
+ ## 参数说明
12
+
13
+ | 参数 | 短参数 | 必填 | 默认值 | 说明 |
14
+ |------|--------|------|--------|------|
15
+ | `--repo-path` | `-r` | 否 | 当前目录 | Git 仓库路径 |
16
+ | `--branch` | `-b` | 否 | 当前分支 | 目标分支名称 |
17
+
18
+ ## 使用示例
19
+
20
+ ```bash
21
+ # 推送当前分支到远程
22
+ icode-cli git push
23
+
24
+ # 推送到指定分支
25
+ icode-cli git push --branch develop
26
+
27
+ # 从指定仓库路径推送
28
+ icode-cli git push --repo-path ./my-project --branch main
29
+ ```
30
+
31
+ ## 执行流程
32
+
33
+ 1. **检查仓库**:确认当前目录是 Git 仓库
34
+ 2. **检查凭证**:检查 Git 凭证配置
35
+ 3. **获取远程**:从 origin 获取远程 URL
36
+ 4. **配置 HTTPS**:确保 HTTPS 远程可用
37
+ 5. **推送代码**:执行 `git push`
38
+
39
+ ## 输出示例
40
+
41
+ ```
42
+ ✓ Push successful!
43
+
44
+ Output:
45
+ To https://icode.baidu.com/baidu/icode/test
46
+ abc123..def456 develop -> develop
47
+ ```
48
+
49
+ ## push vs push_cr
50
+
51
+ | 命令 | 用途 | 推送目标 |
52
+ |------|------|----------|
53
+ | `push` | 直接推送到远程分支 | `origin/branch` |
54
+ | `push_cr` | 提交代码评审 | `refs/for/branch` |
55
+
56
+ - **push**:适用于有直接推送权限的分支(如个人分支)
57
+ - **push_cr**:适用于需要代码评审的分支(如 master)
58
+
59
+ ## 注意事项
60
+
61
+ - 必须在 Git 仓库内执行,或使用 `--repo-path` 指定仓库路径
62
+ - 需要有目标分支的推送权限
63
+ - 如果远程分支有新的提交,可能需要先拉取合并
64
+ - 某些分支可能配置了保护规则,不允许直接推送
@@ -0,0 +1,103 @@
1
+ # push_cr - 推送代码评审
2
+
3
+ 将当前分支推送到 Gerrit 进行代码评审(Code Review)。
4
+
5
+ ## 命令格式
6
+
7
+ ```bash
8
+ icode-cli git push_cr [--repo-path <仓库路径>] [--branch <目标分支>]
9
+ ```
10
+
11
+ ## 参数说明
12
+
13
+ | 参数 | 短参数 | 必填 | 默认值 | 说明 |
14
+ |------|--------|------|--------|------|
15
+ | `--repo-path` | `-r` | 否 | 当前目录 | Git 仓库路径 |
16
+ | `--branch` | `-b` | 否 | master 或当前分支 | 目标分支名称 |
17
+
18
+ ## 使用示例
19
+
20
+ ```bash
21
+ # 推送到 master 分支进行代码评审
22
+ icode-cli git push_cr
23
+
24
+ # 推送到指定分支
25
+ icode-cli git push_cr --branch develop
26
+
27
+ # 从指定仓库路径推送
28
+ icode-cli git push_cr --repo-path ./my-project --branch feature/test
29
+ ```
30
+
31
+ ## 执行流程
32
+
33
+ 1. **检查仓库**:确认当前目录是 Git 仓库
34
+ 2. **检查凭证**:检查 Git 凭证配置
35
+ 3. **获取远程**:从 origin 获取远程 URL
36
+ 4. **配置 HTTPS**:确保 HTTPS 远程可用
37
+ 5. **推送到 Gerrit**:执行 `git push origin HEAD:refs/for/<branch>`
38
+ 6. **返回 CR URL**:解析并输出代码评审链接
39
+
40
+ ## 输出示例
41
+
42
+ ```
43
+ https://icode.baidu.com/c/baidu/icode/test/+/123456
44
+ ```
45
+
46
+ 输出的 URL 即为代码评审(CR)的链接,可以直接在浏览器中打开进行评审操作。
47
+
48
+ ## Gerrit 代码评审说明
49
+
50
+ ### refs/for 机制
51
+
52
+ Gerrit 使用特殊的 `refs/for/<branch>` 引用来接收代码评审:
53
+
54
+ - 推送到 `refs/for/master` 会创建一个针对 master 分支的 CR
55
+ - 代码不会直接合并到目标分支,而是进入评审流程
56
+ - 评审通过后,代码才会被合并
57
+
58
+ ### Change-Id
59
+
60
+ 每个提交需要包含 Change-Id,用于标识同一个变更的多次修订:
61
+
62
+ ```
63
+ commit abc123
64
+ Author: zhangsan <zhangsan@baidu.com>
65
+ Date: Mon Jan 15 10:00:00 2024 +0800
66
+
67
+ feat: add new feature
68
+
69
+ Change-Id: I1234567890abcdef
70
+ ```
71
+
72
+ 使用 `icode-cli git clone` 克隆的仓库会自动安装 `commit-msg` hook,自动生成 Change-Id。
73
+
74
+ ## 代码评审流程
75
+
76
+ ```
77
+ 1. 提交代码评审
78
+ icode-cli git push_cr --branch master
79
+
80
+ 2. 获得 CR URL,分享给评审人
81
+ https://icode.baidu.com/c/baidu/icode/test/+/123456
82
+
83
+ 3. 评审人在 iCode 平台进行评审
84
+ - 查看代码变更
85
+ - 添加评论
86
+ - 给出评分(+2 批准,-2 拒绝)
87
+
88
+ 4. 根据评审意见修改代码
89
+ git add .
90
+ git commit --amend # 修订同一个变更
91
+ icode-cli git push_cr --branch master
92
+
93
+ 5. 评审通过后合并
94
+ - 在 iCode 平台点击 Submit
95
+ - 或使用 API: icode-cli api submit_review
96
+ ```
97
+
98
+ ## 注意事项
99
+
100
+ - 必须在 Git 仓库内执行,或使用 `--repo-path` 指定仓库路径
101
+ - 提交必须包含 Change-Id(使用 `commit-msg` hook 自动生成)
102
+ - 需要有代码库的提交权限
103
+ - 同一个 Change-Id 的多次推送会更新同一个 CR(而不是创建新的)
@@ -0,0 +1,144 @@
1
+ # 工具安装指南
2
+
3
+ iCode Skill 依赖以下工具,请按需安装。
4
+
5
+ ## icode-cli
6
+
7
+ iCode 命令行工具,提供 Git 操作、API 调用等功能。
8
+
9
+ ### 版本要求
10
+
11
+ - 最低版本:>= 0.1.8
12
+
13
+ ### 检测方式
14
+
15
+ ```bash
16
+ # 检查是否已安装
17
+ which icode-cli
18
+
19
+ # 或检查用户目录
20
+ ls ~/.icode/bin/icode-cli
21
+
22
+ # 查看版本
23
+ icode-cli --version
24
+ ```
25
+
26
+ ### 安装方式
27
+
28
+ #### Linux / macOS
29
+
30
+ ```bash
31
+ # 安装开发版(推荐,包含最新功能)
32
+ curl -sSL http://icode-cli.bj.bcebos.com/install.sh | bash -s -- --no-skills
33
+
34
+ # 安装稳定版(尚未发布,暂时不能使用)
35
+ curl -fsSL http://icode-cli.bj.bcebos.com/install.sh | bash -s -- --force
36
+ ```
37
+
38
+ #### Windows
39
+
40
+ 请使用 Git Bash 或 WSL 运行上述安装命令。
41
+
42
+ ### 安装位置
43
+
44
+ 默认安装到 `~/.icode/bin/icode-cli`,安装脚本会自动配置 PATH。
45
+
46
+ 如果 PATH 未生效,可手动添加:
47
+
48
+ ```bash
49
+ # bash
50
+ echo 'export PATH="$HOME/.icode/bin:$PATH"' >> ~/.bashrc
51
+ source ~/.bashrc
52
+
53
+ # zsh
54
+ echo 'export PATH="$HOME/.icode/bin:$PATH"' >> ~/.zshrc
55
+ source ~/.zshrc
56
+ ```
57
+
58
+ ### 验证安装
59
+
60
+ ```bash
61
+ icode-cli --version
62
+ # 输出: icode-cli version 0.1.8
63
+
64
+ icode-cli login
65
+ # 检查登录状态
66
+ ```
67
+
68
+ ---
69
+
70
+ ## Git
71
+
72
+ 分布式版本控制系统。
73
+
74
+ ### 版本要求
75
+
76
+ - 最低版本:>= 2.0
77
+
78
+ ### 检测方式
79
+
80
+ ```bash
81
+ git --version
82
+ # 输出: git version 2.x.x
83
+ ```
84
+
85
+ ### 安装方式
86
+
87
+ #### macOS
88
+
89
+ ```bash
90
+ # 使用 Homebrew
91
+ brew install git
92
+
93
+ # 或使用 Xcode Command Line Tools
94
+ xcode-select --install
95
+ ```
96
+
97
+ #### Ubuntu / Debian
98
+
99
+ ```bash
100
+ sudo apt update
101
+ sudo apt install git
102
+ ```
103
+
104
+ #### CentOS / RHEL
105
+
106
+ ```bash
107
+ sudo yum install git
108
+ ```
109
+
110
+ #### Windows
111
+
112
+ 1. 下载 [Git for Windows](https://git-scm.com/download/win)
113
+ 2. 运行安装程序,按默认选项安装
114
+ 3. 安装完成后可使用 Git Bash
115
+
116
+ ### 配置 Git
117
+
118
+ ```bash
119
+ # 配置用户名和邮箱
120
+ git config --global user.name "你的名字"
121
+ git config --global user.email "你的邮箱@baidu.com"
122
+
123
+ # 验证配置
124
+ git config --list
125
+ ```
126
+
127
+ ---
128
+
129
+ ## 环境验证
130
+
131
+ 安装完成后,运行以下命令验证环境:
132
+
133
+ ```bash
134
+ # 检查 icode-cli
135
+ icode-cli --version
136
+
137
+ # 检查 git
138
+ git --version
139
+
140
+ # 检查登录状态
141
+ icode-cli login
142
+ ```
143
+
144
+ 所有检查通过后,即可开始使用 iCode Skill。
@@ -0,0 +1,111 @@
1
+ # login - 登录认证
2
+
3
+ 检查当前用户的认证状态,或进行登录。
4
+
5
+ ## 命令格式
6
+
7
+ ```bash
8
+ # 交互式登录(默认使用 UGate)
9
+ icode-cli login
10
+
11
+ # 非交互式登录
12
+ icode-cli login --token "eyJ..."
13
+
14
+ # 指定认证方式
15
+ icode-cli login --method ugate --token "eyJ..."
16
+ icode-cli login --method comate --token "Bearer-xxx"
17
+ ```
18
+
19
+ ## 参数说明
20
+
21
+ | 参数 | 短参数 | 默认值 | 说明 |
22
+ |------|--------|--------|------|
23
+ | `--method` | `-m` | `ugate` | 认证方式(ugate/comate) |
24
+ | `--token` | `-t` | - | Token(非交互式模式) |
25
+
26
+ ## 使用示例
27
+
28
+ ```bash
29
+ # 检查登录状态(已登录则直接返回,未登录则提示输入 token)
30
+ icode-cli login
31
+
32
+ # 使用 UGate token 直接登录
33
+ icode-cli login --token "eyJhbGciOiJIUzI1NiIsInR..."
34
+
35
+ # 使用 Comate token 登录
36
+ icode-cli login --method comate --token "Bearer-abc123"
37
+ ```
38
+
39
+ ## 返回信息
40
+
41
+ ### 已登录状态
42
+
43
+ ```
44
+ Already logged in as: zhangsan (ugate)
45
+ ```
46
+
47
+ ### 登录成功
48
+
49
+ ```
50
+ Logged in as: zhangsan (ugate)
51
+ ```
52
+
53
+ ## 在脚本中使用
54
+
55
+ ```bash
56
+ # 获取当前用户名
57
+ USERNAME=$(icode-cli login 2>&1 | grep "logged in as" | sed 's/.*as: \([^ ]*\).*/\1/')
58
+
59
+ # 检查是否登录成功
60
+ if icode-cli login 2>&1 | grep -q "logged in as"; then
61
+ echo "已登录"
62
+ else
63
+ echo "未登录"
64
+ exit 1
65
+ fi
66
+ ```
67
+
68
+ ## 认证方式
69
+
70
+ | 认证方式 | Token 获取 | Token 存储 | 优先级 |
71
+ |---------|-----------|-----------|--------|
72
+ | ugate(默认) | https://uuap.baidu.com/agent/token | `~/.config/uuap/` | order=10 |
73
+ | comate | Comate IDE 自动保存 | `~/.comate/login` | order=20 |
74
+
75
+ ## 退出码
76
+
77
+ | 退出码 | 含义 |
78
+ |--------|------|
79
+ | 0 | 已登录或登录成功 |
80
+ | 1 | 登录失败 |
81
+
82
+ ---
83
+
84
+ # logout - 登出
85
+
86
+ 登出并清除认证信息。
87
+
88
+ ## 命令格式
89
+
90
+ ```bash
91
+ icode-cli logout
92
+ ```
93
+
94
+ ## 使用示例
95
+
96
+ ```bash
97
+ icode-cli logout
98
+ ```
99
+
100
+ ## 返回信息
101
+
102
+ ```
103
+ Logging out zhangsan (ugate)...
104
+ Logged out successfully
105
+ ```
106
+
107
+ ## 退出码
108
+
109
+ | 退出码 | 含义 |
110
+ |--------|------|
111
+ | 0 | 登出成功 |
@@ -0,0 +1,154 @@
1
+ #!/bin/bash
2
+ # add-reviewer.sh - 智能添加评审人脚本 (Linux/macOS)
3
+ # 按优先级从多个来源自动选择评审人,或使用用户指定的评审人
4
+ #
5
+ # 评审人来源优先级:
6
+ # 1. 当前 CR 已有评审人(续传 CR 场景)
7
+ # 2. 仓库成员(repo members)
8
+ # 3. 历史 CR 评审人(补充,当候选人不足 5 人时)
9
+ #
10
+ # 使用方法:
11
+ # ./add-reviewer.sh [CR编号] [评审人]
12
+ #
13
+ # 示例:
14
+ # ./add-reviewer.sh # 自动检测 CR,自动选择评审人
15
+ # ./add-reviewer.sh 120247220 # 指定 CR,自动选择评审人
16
+ # ./add-reviewer.sh 120247220 zhangsan # 指定 CR 和评审人
17
+
18
+ set -e
19
+
20
+ # 加载公共函数
21
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
22
+ source "$SCRIPT_DIR/common.sh"
23
+
24
+ # 获取候选评审人(按优先级)
25
+ get_reviewer_candidates() {
26
+ local repo_name=$1
27
+ local username=$2
28
+ local change_number=$3
29
+
30
+ local seen=""
31
+ local candidates=""
32
+
33
+ # 优先级 1: 当前 CR 已有评审人
34
+ if [ -n "$change_number" ] && [ "$change_number" != "0" ]; then
35
+ local cr_info
36
+ cr_info=$("$ICODE_CLI" api get_review_info --change-number "$change_number" -o json 2>/dev/null || echo '{"data":{"globalReviewers":[]}}')
37
+
38
+ local cr_reviewers
39
+ cr_reviewers=$(echo "$cr_info" | "$ICODE_CLI" jq -r ".data.globalReviewers[]? | select(.username != \"$username\") | .username" 2>/dev/null || true)
40
+
41
+ for r in $cr_reviewers; do
42
+ if [[ ! " $seen " =~ " $r " ]]; then
43
+ seen="$seen $r"
44
+ candidates="$candidates $r"
45
+ fi
46
+ done
47
+ fi
48
+
49
+ # 优先级 2: 仓库成员
50
+ local members
51
+ members=$("$ICODE_CLI" api get_repo_members --repo "$repo_name" -o json 2>/dev/null || echo '{"data":[]}')
52
+
53
+ local member_reviewers
54
+ # 注意:API 返回的字段是 userName(驼峰式)而不是 username
55
+ member_reviewers=$(echo "$members" | "$ICODE_CLI" jq -r ".data[]? | select(.userName != \"$username\") | .userName" 2>/dev/null || true)
56
+
57
+ for r in $member_reviewers; do
58
+ if [[ ! " $seen " =~ " $r " ]]; then
59
+ seen="$seen $r"
60
+ candidates="$candidates $r"
61
+ fi
62
+ done
63
+
64
+ # 优先级 3: 历史 CR 评审人(当候选人不足 5 人时补充)
65
+ local candidate_count
66
+ candidate_count=$(echo "$candidates" | wc -w | tr -d ' ')
67
+
68
+ if [ "$candidate_count" -lt 5 ]; then
69
+ local merged_crs
70
+ merged_crs=$("$ICODE_CLI" api get_repo_reviews --repo "$repo_name" --status MERGED -o json 2>/dev/null || echo '{"data":{"changes":[]}}')
71
+
72
+ local my_cr_numbers
73
+ my_cr_numbers=$(echo "$merged_crs" | "$ICODE_CLI" jq -r ".data.changes[] | select(.owner.username == \"$username\") | ._number" 2>/dev/null || true)
74
+
75
+ for cr_num in $my_cr_numbers; do
76
+ local cr_info
77
+ cr_info=$("$ICODE_CLI" api get_review_info --change-number "$cr_num" -o json 2>/dev/null || echo '{"data":{"globalReviewers":[]}}')
78
+
79
+ local cr_reviewers
80
+ cr_reviewers=$(echo "$cr_info" | "$ICODE_CLI" jq -r ".data.globalReviewers[]? | select(.username != \"$username\") | .username" 2>/dev/null || true)
81
+
82
+ for r in $cr_reviewers; do
83
+ if [[ ! " $seen " =~ " $r " ]]; then
84
+ seen="$seen $r"
85
+ candidates="$candidates $r"
86
+ fi
87
+ done
88
+ done
89
+ fi
90
+
91
+ # 输出去重后的候选人列表
92
+ echo "$candidates" | tr ' ' '\n' | grep -v '^$' | head -20
93
+ }
94
+
95
+ # ========== 主流程 ==========
96
+
97
+ # 初始化环境
98
+ init_toolkit_env
99
+
100
+ CHANGE_NUMBER=${1:-""}
101
+ SPECIFIED_REVIEWER=${2:-""}
102
+
103
+ # 如果没有指定 CR 编号,自动检测
104
+ if [ -z "$CHANGE_NUMBER" ]; then
105
+ log_step "检测当前 CR..."
106
+ CHANGE_NUMBER=$(get_current_cr "$ICODE_CLI" "$REPO_NAME" "$USERNAME")
107
+
108
+ if [ -z "$CHANGE_NUMBER" ]; then
109
+ log_error "未找到当前 commit 对应的 CR"
110
+ log_warn "请先使用 'icode-cli git push_cr' 提交 CR,或手动指定 CR 编号"
111
+ exit 1
112
+ fi
113
+ fi
114
+ log_info "CR 编号: $CHANGE_NUMBER"
115
+ echo ""
116
+
117
+ # 如果用户指定了评审人,直接添加
118
+ if [ -n "$SPECIFIED_REVIEWER" ]; then
119
+ log_step "添加用户指定的评审人: $SPECIFIED_REVIEWER"
120
+ $ICODE_CLI api add_reviewers --change-number "$CHANGE_NUMBER" --reviewers "$SPECIFIED_REVIEWER"
121
+ echo ""
122
+ log_info "评审人 $SPECIFIED_REVIEWER 已添加到 CR #$CHANGE_NUMBER"
123
+ exit 0
124
+ fi
125
+
126
+ # 获取候选评审人(按优先级)
127
+ log_step "获取候选评审人..."
128
+ REVIEWERS=$(get_reviewer_candidates "$REPO_NAME" "$USERNAME" "$CHANGE_NUMBER")
129
+
130
+ if [ -z "$REVIEWERS" ]; then
131
+ log_warn "未找到候选评审人"
132
+ log_warn "请手动指定评审人: $0 $CHANGE_NUMBER <reviewer_username>"
133
+ exit 1
134
+ fi
135
+
136
+ # 转为数组
137
+ IFS=$'\n' read -r -d '' -a REVIEWER_ARRAY <<< "$REVIEWERS" || true
138
+
139
+ COUNT=${#REVIEWER_ARRAY[@]}
140
+ log_info "找到 $COUNT 个候选评审人: ${REVIEWER_ARRAY[*]}"
141
+
142
+ # 随机选择一个
143
+ RANDOM_INDEX=$((RANDOM % COUNT))
144
+ SELECTED_REVIEWER=${REVIEWER_ARRAY[$RANDOM_INDEX]}
145
+
146
+ log_info "随机选择评审人: $SELECTED_REVIEWER"
147
+ echo ""
148
+
149
+ # 添加评审人
150
+ log_step "添加评审人..."
151
+ $ICODE_CLI api add_reviewers --change-number "$CHANGE_NUMBER" --reviewers "$SELECTED_REVIEWER"
152
+
153
+ echo ""
154
+ log_info "评审人 $SELECTED_REVIEWER 已添加到 CR #$CHANGE_NUMBER"