@cnbcool/cnb-cli 1.3.0 → 1.4.0

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 (265) hide show
  1. package/bin/cnb.js +1 -1
  2. package/dist/index.js +66 -0
  3. package/package.json +10 -5
  4. package/cli/core/config/cag.config.js +0 -58
  5. package/cli/core/core.js +0 -124
  6. package/cli/core/fetch-response-handler.js +0 -34
  7. package/cli/core/flat-options.json +0 -8909
  8. package/cli/core/help.json +0 -38458
  9. package/cli/core/index.js +0 -40
  10. package/cli/core/key-mapping.json +0 -538
  11. package/cli/core/lib/execute-action.js +0 -117
  12. package/cli/core/lib/extra-help.js +0 -20
  13. package/cli/core/lib/flat-options-data.js +0 -16
  14. package/cli/core/lib/format-output.js +0 -85
  15. package/cli/core/lib/format-params.js +0 -217
  16. package/cli/core/lib/help-data.js +0 -15
  17. package/cli/core/lib/key-mapping-data.js +0 -16
  18. package/cli/core/lib/parsers.js +0 -126
  19. package/cli/core/lib/print-json.js +0 -24
  20. package/cli/core/lib/register-fallback.js +0 -15
  21. package/cli/core/lib/register-modules.js +0 -121
  22. package/cli/core/lib/summary-extractors.js +0 -181
  23. package/cli/core/lib/trim-summary.js +0 -17
  24. package/cli/core/shortcuts.js +0 -276
  25. package/cli/core/utils/build-nested-field-map.js +0 -35
  26. package/cli/core/utils/convert-link.js +0 -144
  27. package/cli/core/utils/flat-key-from-segments.js +0 -14
  28. package/cli/core/utils/generate-unique-id.js +0 -10
  29. package/cli/core/utils/match-array-object-field.js +0 -25
  30. package/cli/core/utils/restore-original-keys.js +0 -24
  31. package/cli/core/utils/upload.js +0 -237
  32. package/cli/modules/activities/get-user-activities-by-date.js +0 -75
  33. package/cli/modules/activities/get-user-repo-activity-details.js +0 -77
  34. package/cli/modules/activities/top-contributors.js +0 -75
  35. package/cli/modules/ai/ai-chat-completions.js +0 -69
  36. package/cli/modules/assets/delete-asset.js +0 -75
  37. package/cli/modules/assets/get-files.js +0 -75
  38. package/cli/modules/assets/get-imgs.js +0 -75
  39. package/cli/modules/assets/list-assets.js +0 -75
  40. package/cli/modules/badge/get-badge.js +0 -79
  41. package/cli/modules/badge/list-badge.js +0 -69
  42. package/cli/modules/badge/upload-badge.js +0 -69
  43. package/cli/modules/build/build-crontab-sync.js +0 -74
  44. package/cli/modules/build/build-logs-delete.js +0 -74
  45. package/cli/modules/build/build-runner-download-log.js +0 -74
  46. package/cli/modules/build/get-build-logs.js +0 -75
  47. package/cli/modules/build/get-build-stage.js +0 -78
  48. package/cli/modules/build/get-build-status.js +0 -74
  49. package/cli/modules/build/start-build.js +0 -69
  50. package/cli/modules/build/stop-build.js +0 -74
  51. package/cli/modules/charge/get-special-amount.js +0 -67
  52. package/cli/modules/event/get-events.js +0 -73
  53. package/cli/modules/followers/get-followers-by-user-id.js +0 -75
  54. package/cli/modules/followers/get-following-by-user-id.js +0 -75
  55. package/cli/modules/git/create-blob.js +0 -69
  56. package/cli/modules/git/create-branch-lock.js +0 -74
  57. package/cli/modules/git/create-branch.js +0 -69
  58. package/cli/modules/git/create-tag.js +0 -69
  59. package/cli/modules/git/delete-branch-lock.js +0 -74
  60. package/cli/modules/git/delete-branch.js +0 -74
  61. package/cli/modules/git/delete-commit-annotation.js +0 -76
  62. package/cli/modules/git/delete-commit-asset.js +0 -76
  63. package/cli/modules/git/delete-tag-annotation.js +0 -74
  64. package/cli/modules/git/delete-tag.js +0 -74
  65. package/cli/modules/git/get-archive-commit-changed-files.js +0 -74
  66. package/cli/modules/git/get-archive-compare-changed-files.js +0 -74
  67. package/cli/modules/git/get-archive.js +0 -74
  68. package/cli/modules/git/get-branch.js +0 -74
  69. package/cli/modules/git/get-commit-annotations-in-batch.js +0 -69
  70. package/cli/modules/git/get-commit-annotations.js +0 -74
  71. package/cli/modules/git/get-commit-assets-by-sha.js +0 -74
  72. package/cli/modules/git/get-commit-assets.js +0 -79
  73. package/cli/modules/git/get-commit-statuses.js +0 -74
  74. package/cli/modules/git/get-commit.js +0 -74
  75. package/cli/modules/git/get-compare-commits.js +0 -74
  76. package/cli/modules/git/get-content-without-path.js +0 -75
  77. package/cli/modules/git/get-content.js +0 -77
  78. package/cli/modules/git/get-head.js +0 -66
  79. package/cli/modules/git/get-presigned-lfs-download-link.js +0 -77
  80. package/cli/modules/git/get-raw.js +0 -77
  81. package/cli/modules/git/get-tag-annotations.js +0 -74
  82. package/cli/modules/git/get-tag.js +0 -74
  83. package/cli/modules/git/list-branches.js +0 -75
  84. package/cli/modules/git/list-commits.js +0 -75
  85. package/cli/modules/git/list-tags.js +0 -75
  86. package/cli/modules/git/post-commit-asset-upload-confirmation.js +0 -81
  87. package/cli/modules/git/post-commit-asset-upload-url.js +0 -77
  88. package/cli/modules/git/put-commit-annotations.js +0 -77
  89. package/cli/modules/git/put-tag-annotations.js +0 -77
  90. package/cli/modules/git-settings/delete-branch-protection.js +0 -74
  91. package/cli/modules/git-settings/get-branch-protection.js +0 -74
  92. package/cli/modules/git-settings/get-pipeline-settings.js +0 -66
  93. package/cli/modules/git-settings/get-pull-request-settings.js +0 -66
  94. package/cli/modules/git-settings/get-push-limit-settings.js +0 -66
  95. package/cli/modules/git-settings/list-branch-protections.js +0 -66
  96. package/cli/modules/git-settings/patch-branch-protection.js +0 -77
  97. package/cli/modules/git-settings/post-branch-protection.js +0 -69
  98. package/cli/modules/git-settings/put-pipeline-settings.js +0 -69
  99. package/cli/modules/git-settings/put-pull-request-settings.js +0 -69
  100. package/cli/modules/git-settings/put-push-limit-settings.js +0 -69
  101. package/cli/modules/issues/can-user-be-assigned-to-issue.js +0 -76
  102. package/cli/modules/issues/create-issue.js +0 -69
  103. package/cli/modules/issues/delete-issue-assignees.js +0 -77
  104. package/cli/modules/issues/delete-issue-label.js +0 -76
  105. package/cli/modules/issues/delete-issue-labels.js +0 -74
  106. package/cli/modules/issues/get-issue-comment.js +0 -76
  107. package/cli/modules/issues/get-issue.js +0 -74
  108. package/cli/modules/issues/list-issue-activities-latest.js +0 -76
  109. package/cli/modules/issues/list-issue-activities.js +0 -77
  110. package/cli/modules/issues/list-issue-assignees.js +0 -74
  111. package/cli/modules/issues/list-issue-comments.js +0 -77
  112. package/cli/modules/issues/list-issue-labels.js +0 -77
  113. package/cli/modules/issues/list-issues.js +0 -75
  114. package/cli/modules/issues/list-user-issues.js +0 -71
  115. package/cli/modules/issues/patch-issue-assignees.js +0 -77
  116. package/cli/modules/issues/patch-issue-comment.js +0 -79
  117. package/cli/modules/issues/post-issue-assignees.js +0 -77
  118. package/cli/modules/issues/post-issue-comment.js +0 -77
  119. package/cli/modules/issues/post-issue-file-asset-upload-url.js +0 -77
  120. package/cli/modules/issues/post-issue-image-asset-upload-url.js +0 -77
  121. package/cli/modules/issues/post-issue-labels.js +0 -77
  122. package/cli/modules/issues/put-issue-labels.js +0 -77
  123. package/cli/modules/issues/update-issue-properties.js +0 -78
  124. package/cli/modules/issues/update-issue.js +0 -77
  125. package/cli/modules/knowledge-base/delete-knowledge-base.js +0 -66
  126. package/cli/modules/knowledge-base/get-knowledge-base-info.js +0 -66
  127. package/cli/modules/knowledge-base/get-models.js +0 -66
  128. package/cli/modules/knowledge-base/query-knowledge-base.js +0 -69
  129. package/cli/modules/knowledge-base/search-npc.js +0 -71
  130. package/cli/modules/members/add-members-of-group.js +0 -77
  131. package/cli/modules/members/add-members-of-mission.js +0 -77
  132. package/cli/modules/members/add-members-of-registry.js +0 -77
  133. package/cli/modules/members/add-members-of-repo.js +0 -77
  134. package/cli/modules/members/delete-members-of-group.js +0 -74
  135. package/cli/modules/members/delete-members-of-repo.js +0 -74
  136. package/cli/modules/members/delete-outside-collaborators.js +0 -74
  137. package/cli/modules/members/get-member-access-level-of-group.js +0 -75
  138. package/cli/modules/members/get-member-access-level-of-repo.js +0 -75
  139. package/cli/modules/members/list-all-members.js +0 -75
  140. package/cli/modules/members/list-inherit-members-of-group.js +0 -75
  141. package/cli/modules/members/list-inherit-members-of-repo.js +0 -75
  142. package/cli/modules/members/list-member-access-level-of-group.js +0 -74
  143. package/cli/modules/members/list-member-access-level-of-repo.js +0 -74
  144. package/cli/modules/members/list-members-of-group.js +0 -75
  145. package/cli/modules/members/list-members-of-repo.js +0 -75
  146. package/cli/modules/members/list-outside-collaborators.js +0 -75
  147. package/cli/modules/members/update-members-of-group.js +0 -77
  148. package/cli/modules/members/update-members-of-repo.js +0 -77
  149. package/cli/modules/members/update-outside-collaborators.js +0 -77
  150. package/cli/modules/missions/create-mission.js +0 -69
  151. package/cli/modules/missions/delete-mission.js +0 -66
  152. package/cli/modules/missions/get-group-sub-missions.js +0 -75
  153. package/cli/modules/missions/get-mission-view-config.js +0 -75
  154. package/cli/modules/missions/get-mission-view-list.js +0 -66
  155. package/cli/modules/missions/post-mission-view-config.js +0 -69
  156. package/cli/modules/missions/post-mission-view-list.js +0 -69
  157. package/cli/modules/missions/put-mission-view-list.js +0 -69
  158. package/cli/modules/missions/set-mission-visibility.js +0 -75
  159. package/cli/modules/organizations/create-organization.js +0 -65
  160. package/cli/modules/organizations/delete-organization.js +0 -66
  161. package/cli/modules/organizations/get-group-setting.js +0 -66
  162. package/cli/modules/organizations/get-group.js +0 -66
  163. package/cli/modules/organizations/get-groups-by-user-id.js +0 -75
  164. package/cli/modules/organizations/list-groups.js +0 -75
  165. package/cli/modules/organizations/list-subgroups.js +0 -75
  166. package/cli/modules/organizations/list-top-groups.js +0 -71
  167. package/cli/modules/organizations/transfer-group.js +0 -69
  168. package/cli/modules/organizations/update-group-setting.js +0 -69
  169. package/cli/modules/organizations/update-organization.js +0 -69
  170. package/cli/modules/organizations/upload-logos.js +0 -69
  171. package/cli/modules/pulls/can-user-be-assigned-to-pull.js +0 -76
  172. package/cli/modules/pulls/delete-pull-assignees.js +0 -77
  173. package/cli/modules/pulls/delete-pull-label.js +0 -76
  174. package/cli/modules/pulls/delete-pull-labels.js +0 -74
  175. package/cli/modules/pulls/delete-repo-files.js +0 -75
  176. package/cli/modules/pulls/delete-repo-imgs.js +0 -75
  177. package/cli/modules/pulls/get-pull-comment.js +0 -76
  178. package/cli/modules/pulls/get-pull.js +0 -74
  179. package/cli/modules/pulls/list-pull-assignees.js +0 -74
  180. package/cli/modules/pulls/list-pull-comments.js +0 -77
  181. package/cli/modules/pulls/list-pull-commit-statuses.js +0 -74
  182. package/cli/modules/pulls/list-pull-commits.js +0 -77
  183. package/cli/modules/pulls/list-pull-files.js +0 -74
  184. package/cli/modules/pulls/list-pull-labels.js +0 -77
  185. package/cli/modules/pulls/list-pull-review-comments.js +0 -79
  186. package/cli/modules/pulls/list-pull-reviews.js +0 -77
  187. package/cli/modules/pulls/list-pulls-by-numbers.js +0 -75
  188. package/cli/modules/pulls/list-pulls.js +0 -75
  189. package/cli/modules/pulls/merge-pull.js +0 -77
  190. package/cli/modules/pulls/patch-pull-comment.js +0 -79
  191. package/cli/modules/pulls/patch-pull.js +0 -77
  192. package/cli/modules/pulls/post-pull-assignees.js +0 -77
  193. package/cli/modules/pulls/post-pull-comment.js +0 -77
  194. package/cli/modules/pulls/post-pull-labels.js +0 -77
  195. package/cli/modules/pulls/post-pull-request-review-reply.js +0 -79
  196. package/cli/modules/pulls/post-pull-review.js +0 -77
  197. package/cli/modules/pulls/post-pull.js +0 -69
  198. package/cli/modules/pulls/put-pull-labels.js +0 -77
  199. package/cli/modules/pulls/upload-files.js +0 -69
  200. package/cli/modules/pulls/upload-imgs.js +0 -69
  201. package/cli/modules/rank/get-language-list.js +0 -71
  202. package/cli/modules/rank/get-repo-annual-rank.js +0 -71
  203. package/cli/modules/rank/get-repo-daily-rank.js +0 -71
  204. package/cli/modules/rank/get-repo-monthly-rank.js +0 -71
  205. package/cli/modules/rank/get-repo-weekly-rank.js +0 -71
  206. package/cli/modules/registries/delete-package-tag.js +0 -79
  207. package/cli/modules/registries/delete-package.js +0 -77
  208. package/cli/modules/registries/delete-registry.js +0 -66
  209. package/cli/modules/registries/get-group-sub-registries.js +0 -75
  210. package/cli/modules/registries/get-package-tag-detail.js +0 -82
  211. package/cli/modules/registries/get-package-tag-provenance.js +0 -79
  212. package/cli/modules/registries/get-package.js +0 -77
  213. package/cli/modules/registries/list-package-tags.js +0 -80
  214. package/cli/modules/registries/list-packages.js +0 -76
  215. package/cli/modules/registries/set-registry-visibility.js +0 -75
  216. package/cli/modules/releases/delete-release-asset.js +0 -76
  217. package/cli/modules/releases/delete-release.js +0 -74
  218. package/cli/modules/releases/get-latest-release.js +0 -66
  219. package/cli/modules/releases/get-release-asset.js +0 -76
  220. package/cli/modules/releases/get-release-by-id.js +0 -74
  221. package/cli/modules/releases/get-release-by-tag.js +0 -74
  222. package/cli/modules/releases/get-releases-asset.js +0 -79
  223. package/cli/modules/releases/list-releases.js +0 -75
  224. package/cli/modules/releases/patch-release.js +0 -77
  225. package/cli/modules/releases/post-release-asset-upload-confirmation.js +0 -81
  226. package/cli/modules/releases/post-release-asset-upload-url.js +0 -77
  227. package/cli/modules/releases/post-release.js +0 -69
  228. package/cli/modules/repo-code-issue/get-code-issue-detail-open-api.js +0 -75
  229. package/cli/modules/repo-code-issue/list-code-issue-open-api.js +0 -76
  230. package/cli/modules/repo-contributor/get-repo-contributor-trend.js +0 -75
  231. package/cli/modules/repo-labels/delete-label.js +0 -74
  232. package/cli/modules/repo-labels/list-labels.js +0 -75
  233. package/cli/modules/repo-labels/patch-label.js +0 -77
  234. package/cli/modules/repo-labels/post-label.js +0 -69
  235. package/cli/modules/repositories/archive-repo.js +0 -66
  236. package/cli/modules/repositories/create-repo.js +0 -69
  237. package/cli/modules/repositories/delete-repo.js +0 -66
  238. package/cli/modules/repositories/get-by-id.js +0 -66
  239. package/cli/modules/repositories/get-group-sub-repos.js +0 -75
  240. package/cli/modules/repositories/get-pinned-repo-by-group.js +0 -66
  241. package/cli/modules/repositories/get-pinned-repo-by-id.js +0 -66
  242. package/cli/modules/repositories/get-repos-by-user-name.js +0 -75
  243. package/cli/modules/repositories/get-repos.js +0 -71
  244. package/cli/modules/repositories/list-forks-repos.js +0 -75
  245. package/cli/modules/repositories/set-pinned-repo-by-group.js +0 -69
  246. package/cli/modules/repositories/set-repo-visibility.js +0 -75
  247. package/cli/modules/repositories/transfer-repo.js +0 -69
  248. package/cli/modules/repositories/un-archive-repo.js +0 -66
  249. package/cli/modules/repositories/update-repo.js +0 -69
  250. package/cli/modules/search/list-public-repos.js +0 -71
  251. package/cli/modules/security/get-repo-security-overview.js +0 -75
  252. package/cli/modules/starring/get-user-all-stared-repos.js +0 -71
  253. package/cli/modules/starring/get-user-stared-repos.js +0 -75
  254. package/cli/modules/starring/list-star-users.js +0 -75
  255. package/cli/modules/users/auto-complete-source.js +0 -71
  256. package/cli/modules/users/get-user-info-by-name.js +0 -66
  257. package/cli/modules/users/get-user-info.js +0 -62
  258. package/cli/modules/users/list-email.js +0 -62
  259. package/cli/modules/users/list-gpg-keys.js +0 -71
  260. package/cli/modules/users/update-user-info.js +0 -65
  261. package/cli/modules/workspace/delete-workspace.js +0 -65
  262. package/cli/modules/workspace/get-workspace-detail.js +0 -74
  263. package/cli/modules/workspace/list-workspaces.js +0 -71
  264. package/cli/modules/workspace/start-workspace.js +0 -69
  265. package/cli/modules/workspace/workspace-stop.js +0 -65
@@ -1,25 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.matchArrayObjectField = matchArrayObjectField;
7
- /**
8
- * 检测是否为 array<object> 展开字段(格式:bodyArrayKey@subPropName)
9
- * Commander 不会对 '@' 做 camelCase,所以直接匹配原始 key
10
- */
11
- function matchArrayObjectField(camelKey, bodyProps) {
12
- for (const [rootKey, rootProp] of Object.entries(bodyProps)) {
13
- if (rootProp.type !== 'array' || !rootProp.items?.properties) continue;
14
- for (const subKey of Object.keys(rootProp.items.properties)) {
15
- const flatKey = `${rootKey}@${subKey}`;
16
- if (flatKey === camelKey) {
17
- return {
18
- arrayKey: rootKey,
19
- subKey
20
- };
21
- }
22
- }
23
- }
24
- return null;
25
- }
@@ -1,24 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.restoreOriginalKeys = restoreOriginalKeys;
7
- var _keyMappingData = require("../lib/key-mapping-data");
8
- /**
9
- * 将 CLI 传入的带 '-' 的参数名还原为原始的 '_' 或 '@' 参数名
10
- * 通过 key-mapping.json 中的映射表进行查找还原
11
- */
12
- function restoreOriginalKeys(params) {
13
- const moduleName = params.module;
14
- const toolName = params.tool;
15
- if (!moduleName || !toolName) return params;
16
- const toolMapping = _keyMappingData.keyMappingData[moduleName]?.[toolName];
17
- if (!toolMapping) return params;
18
- const restored = {};
19
- for (const [key, value] of Object.entries(params)) {
20
- const originalKey = toolMapping[key];
21
- restored[originalKey || key] = value;
22
- }
23
- return restored;
24
- }
@@ -1,237 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.handleUpload = handleUpload;
7
- var _fs = _interopRequireDefault(require("fs"));
8
- var _path = _interopRequireDefault(require("path"));
9
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
- /**
11
- * 完整上传流程
12
- * 1. 读取本地文件 → 获取 name/size
13
- * 2. 调用上传 API → 获取 upload_url
14
- * 3. PUT 文件内容到 upload_url(流式上传)
15
- * 4. 返回最终结果
16
- */
17
-
18
- /** 常见文件扩展名 → MIME 类型映射(仅用于上传场景,不引入外部依赖) */
19
- const MIME_MAP = {
20
- '.txt': 'text/plain',
21
- '.html': 'text/html',
22
- '.htm': 'text/html',
23
- '.css': 'text/css',
24
- '.csv': 'text/csv',
25
- '.js': 'application/javascript',
26
- '.mjs': 'application/javascript',
27
- '.json': 'application/json',
28
- '.xml': 'application/xml',
29
- '.pdf': 'application/pdf',
30
- '.zip': 'application/zip',
31
- '.gz': 'application/gzip',
32
- '.gzip': 'application/gzip',
33
- '.tar': 'application/x-tar',
34
- '.7z': 'application/x-7z-compressed',
35
- '.rar': 'application/vnd.rar',
36
- '.doc': 'application/msword',
37
- '.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
38
- '.xls': 'application/vnd.ms-excel',
39
- '.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
40
- '.ppt': 'application/vnd.ms-powerpoint',
41
- '.pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
42
- '.png': 'image/png',
43
- '.jpg': 'image/jpeg',
44
- '.jpeg': 'image/jpeg',
45
- '.gif': 'image/gif',
46
- '.svg': 'image/svg+xml',
47
- '.webp': 'image/webp',
48
- '.ico': 'image/x-icon',
49
- '.bmp': 'image/bmp',
50
- '.mp3': 'audio/mpeg',
51
- '.wav': 'audio/wav',
52
- '.ogg': 'audio/ogg',
53
- '.mp4': 'video/mp4',
54
- '.webm': 'video/webm',
55
- '.avi': 'video/x-msvideo',
56
- '.mov': 'video/quicktime',
57
- '.woff': 'font/woff',
58
- '.woff2': 'font/woff2',
59
- '.ttf': 'font/ttf',
60
- '.otf': 'font/otf',
61
- '.md': 'text/markdown',
62
- '.yaml': 'text/yaml',
63
- '.yml': 'text/yaml',
64
- '.sh': 'application/x-sh',
65
- '.py': 'text/x-python',
66
- '.rb': 'text/x-ruby',
67
- '.go': 'text/x-go',
68
- '.rs': 'text/x-rust',
69
- '.ts': 'text/typescript',
70
- '.tsx': 'text/typescript',
71
- '.jsx': 'text/jsx',
72
- '.java': 'text/x-java-source',
73
- '.c': 'text/x-c',
74
- '.h': 'text/x-c',
75
- '.cpp': 'text/x-c++src',
76
- '.hpp': 'text/x-c++hdr',
77
- '.log': 'text/plain',
78
- '.patch': 'text/x-diff',
79
- '.diff': 'text/x-diff'
80
- };
81
- function mimeLookup(filePath) {
82
- const ext = _path.default.extname(filePath).toLowerCase();
83
- return MIME_MAP[ext] || 'application/octet-stream';
84
- }
85
-
86
- // 上传文件大小上限:100MB
87
- const MAX_FILE_SIZE = 100 * 1024 * 1024;
88
-
89
- /** 上传 API 的 path 参数 */
90
-
91
- /** Issue 上传请求体 */
92
-
93
- /** Pull 上传请求体 */
94
-
95
- /** 上传 API 函数签名 */
96
-
97
- /** 上传 API 响应 */
98
-
99
- /** 上传失败时的 data */
100
-
101
- /** Issue 上传成功时的 data */
102
-
103
- /** Pull 上传成功时的 data */
104
-
105
- /** handleUpload 的返回值 */
106
-
107
- /**
108
- * 处理完整上传流程
109
- * @param shortcut 解析后的快捷命令
110
- * @param filePath 本地文件路径
111
- * @param toolFunction 原始上传 API 函数(获取 upload_url)
112
- * @param pathParams API 调用的 path 参数(repo 或 {repo, number})
113
- */
114
- async function handleUpload(shortcut, filePath, toolFunction, pathParams) {
115
- // 校验 file 参数
116
- if (!filePath) {
117
- return {
118
- status: 400,
119
- data: {
120
- error: `上传命令需要指定文件路径,如: --data '{"file":"./path/to/file"}'`
121
- }
122
- };
123
- }
124
-
125
- // 1. 读取本地文件信息
126
- if (!_fs.default.existsSync(filePath)) {
127
- return {
128
- status: 400,
129
- data: {
130
- error: `文件不存在: ${filePath}`
131
- }
132
- };
133
- }
134
- const stat = _fs.default.statSync(filePath);
135
- if (!stat.isFile()) {
136
- return {
137
- status: 400,
138
- data: {
139
- error: `不是文件: ${filePath}`
140
- }
141
- };
142
- }
143
- const fileName = _path.default.basename(filePath);
144
- const fileSize = stat.size;
145
- if (fileSize === 0) {
146
- return {
147
- status: 400,
148
- data: {
149
- error: '文件为空'
150
- }
151
- };
152
- }
153
- if (fileSize > MAX_FILE_SIZE) {
154
- return {
155
- status: 400,
156
- data: {
157
- error: `文件过大 (${(fileSize / 1024 / 1024).toFixed(1)}MB),上限 ${MAX_FILE_SIZE / 1024 / 1024}MB`
158
- }
159
- };
160
- }
161
- const contentType = mimeLookup(filePath);
162
-
163
- // 2. 调用上传 API 获取 upload_url
164
- const isIssueUpload = shortcut.module === 'issues';
165
- const requestBody = isIssueUpload ? {
166
- name: fileName,
167
- size: fileSize,
168
- content_type: contentType
169
- } : {
170
- name: fileName,
171
- size: fileSize
172
- };
173
-
174
- // Issue API 签名: fn({ repo, number }, body)
175
- // PR API 签名: fn(repo, body)
176
- const apiFirstArg = isIssueUpload ? pathParams : pathParams.repo;
177
- const uploadResponse = await toolFunction(apiFirstArg, requestBody);
178
-
179
- // 提取 upload_url
180
- const responseData = uploadResponse?.data;
181
- const uploadUrl = responseData?.upload_url;
182
- if (!uploadUrl) {
183
- return uploadResponse; // 获取 URL 失败,直接返回原始错误
184
- }
185
-
186
- // 3. PUT 文件内容到 upload_url(流式读取,避免大文件撑爆内存)
187
- const fileStream = _fs.default.createReadStream(filePath);
188
- const putHeaders = {
189
- 'Content-Type': contentType,
190
- 'Content-Length': String(fileSize)
191
- };
192
- let putResponse;
193
- try {
194
- putResponse = await fetch(uploadUrl, {
195
- method: 'PUT',
196
- headers: putHeaders,
197
- body: fileStream,
198
- // @ts-ignore duplex required for streaming body in Node.js fetch
199
- duplex: 'half'
200
- });
201
- } catch (e) {
202
- fileStream.destroy();
203
- throw e;
204
- }
205
- if (!putResponse.ok) {
206
- fileStream.destroy();
207
- const errText = await putResponse.text().catch(() => '');
208
- return {
209
- status: putResponse.status,
210
- data: {
211
- error: `文件上传失败: ${putResponse.statusText}`,
212
- detail: errText
213
- }
214
- };
215
- }
216
-
217
- // 4. 返回最终结果
218
- if (isIssueUpload) {
219
- return {
220
- status: 200,
221
- data: {
222
- asset_link: responseData.asset_link,
223
- name: fileName,
224
- size: fileSize
225
- }
226
- };
227
- }
228
- return {
229
- status: 200,
230
- data: {
231
- name: responseData.assets?.name || fileName,
232
- path: responseData.assets?.path,
233
- size: fileSize,
234
- token: responseData.token
235
- }
236
- };
237
- }
@@ -1,75 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = _default;
7
- var _core = _interopRequireDefault(require("../../core/core.js"));
8
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
- // @ts-nocheck
10
- /* tslint:disable */
11
- /* eslint-disable */
12
- /*
13
- * -------------------------------------------------------------------------
14
- * ## THIS FILE WAS GENERATED VIA CNB-API-GENERATE ##
15
- * ## ##
16
- * ## AUTHOR: bapelin ##
17
- * ## SOURCE: https://cnb.cool/cnb/skills/cnb-api-generate ##
18
- * -------------------------------------------------------------------------
19
- * @Source /users/{username}/activities
20
- */
21
-
22
- /**
23
- * @description getUserActivitiesByDate request params
24
- */
25
-
26
- /**
27
- * @description Other reuqest params
28
- */
29
-
30
- /**
31
- * @description GetUserActivitiesByDateRes Success Response Type
32
- */
33
-
34
- /**
35
- * @description GetUserActivitiesByDateError Error Response Type
36
- */
37
-
38
- /**
39
- * @description 访问令牌调用此接口需包含以下权限。Required permissions for access token.
40
- * account-engage:r
41
- * @tags Activities
42
- * @name getUserActivitiesByDate
43
- * @summary 获取个人动态活跃详情汇总。Get user activities by date.
44
- * @request get:/users/{username}/activities
45
-
46
- ----------------------------------
47
- * @param {GetUserActivitiesByDateParams} arg0 - getUserActivitiesByDate request params
48
- * @param {RequestConfig} arg1 - Other reuqest params
49
- */
50
- async function _default({
51
- username,
52
- ...query
53
- }, {
54
- req,
55
- options,
56
- ...axiosConfig
57
- } = {}) {
58
- return await _core.default.request({
59
- ...axiosConfig,
60
- _next_req: req,
61
- options: options,
62
- url: `/users/${username}/activities`,
63
- _apiTag: "/users/{username}/activities",
64
- method: "get",
65
- params: query,
66
- _originParams: {
67
- method: "get",
68
- _apiTag: "/users/{username}/activities",
69
- path: {
70
- username
71
- },
72
- query: query
73
- }
74
- });
75
- }
@@ -1,77 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = _default;
7
- var _core = _interopRequireDefault(require("../../core/core.js"));
8
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
- // @ts-nocheck
10
- /* tslint:disable */
11
- /* eslint-disable */
12
- /*
13
- * -------------------------------------------------------------------------
14
- * ## THIS FILE WAS GENERATED VIA CNB-API-GENERATE ##
15
- * ## ##
16
- * ## AUTHOR: bapelin ##
17
- * ## SOURCE: https://cnb.cool/cnb/skills/cnb-api-generate ##
18
- * -------------------------------------------------------------------------
19
- * @Source /users/{username}/repo-activities/{activityType}
20
- */
21
-
22
- /**
23
- * @description getUserRepoActivityDetails request params
24
- */
25
-
26
- /**
27
- * @description Other reuqest params
28
- */
29
-
30
- /**
31
- * @description GetUserRepoActivityDetailsRes Success Response Type
32
- */
33
-
34
- /**
35
- * @description GetUserRepoActivityDetailsError Error Response Type
36
- */
37
-
38
- /**
39
- * @description 访问令牌调用此接口需包含以下权限。Required permissions for access token.
40
- * account-engage:r
41
- * @tags Activities
42
- * @name getUserRepoActivityDetails
43
- * @summary 个人仓库动态详情列表。List of personal repository activity details.
44
- * @request get:/users/{username}/repo-activities/{activityType}
45
-
46
- ----------------------------------
47
- * @param {GetUserRepoActivityDetailsParams} arg0 - getUserRepoActivityDetails request params
48
- * @param {RequestConfig} arg1 - Other reuqest params
49
- */
50
- async function _default({
51
- username,
52
- activityType,
53
- ...query
54
- }, {
55
- req,
56
- options,
57
- ...axiosConfig
58
- } = {}) {
59
- return await _core.default.request({
60
- ...axiosConfig,
61
- _next_req: req,
62
- options: options,
63
- url: `/users/${username}/repo-activities/${activityType}`,
64
- _apiTag: "/users/{username}/repo-activities/{activityType}",
65
- method: "get",
66
- params: query,
67
- _originParams: {
68
- method: "get",
69
- _apiTag: "/users/{username}/repo-activities/{activityType}",
70
- path: {
71
- username,
72
- activityType
73
- },
74
- query: query
75
- }
76
- });
77
- }
@@ -1,75 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = _default;
7
- var _core = _interopRequireDefault(require("../../core/core.js"));
8
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
- // @ts-nocheck
10
- /* tslint:disable */
11
- /* eslint-disable */
12
- /*
13
- * -------------------------------------------------------------------------
14
- * ## THIS FILE WAS GENERATED VIA CNB-API-GENERATE ##
15
- * ## ##
16
- * ## AUTHOR: bapelin ##
17
- * ## SOURCE: https://cnb.cool/cnb/skills/cnb-api-generate ##
18
- * -------------------------------------------------------------------------
19
- * @Source /{repo}/-/top-activity-users
20
- */
21
-
22
- /**
23
- * @description topContributors request params
24
- */
25
-
26
- /**
27
- * @description Other reuqest params
28
- */
29
-
30
- /**
31
- * @description TopContributorsRes Success Response Type
32
- */
33
-
34
- /**
35
- * @description TopContributorsError Error Response Type
36
- */
37
-
38
- /**
39
- * @description 访问令牌调用此接口需包含以下权限。Required permissions for access token.
40
- * repo-base-info:r
41
- * @tags Activities
42
- * @name topContributors
43
- * @summary 获取仓库 top 活跃用户。List the top active users
44
- * @request get:/{repo}/-/top-activity-users
45
-
46
- ----------------------------------
47
- * @param {TopContributorsParams} arg0 - topContributors request params
48
- * @param {RequestConfig} arg1 - Other reuqest params
49
- */
50
- async function _default({
51
- repo,
52
- ...query
53
- }, {
54
- req,
55
- options,
56
- ...axiosConfig
57
- } = {}) {
58
- return await _core.default.request({
59
- ...axiosConfig,
60
- _next_req: req,
61
- options: options,
62
- url: `/${repo}/-/top-activity-users`,
63
- _apiTag: "/{repo}/-/top-activity-users",
64
- method: "get",
65
- params: query,
66
- _originParams: {
67
- method: "get",
68
- _apiTag: "/{repo}/-/top-activity-users",
69
- path: {
70
- repo
71
- },
72
- query: query
73
- }
74
- });
75
- }
@@ -1,69 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = _default;
7
- var _core = _interopRequireDefault(require("../../core/core.js"));
8
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
- // @ts-nocheck
10
- /* tslint:disable */
11
- /* eslint-disable */
12
- /*
13
- * -------------------------------------------------------------------------
14
- * ## THIS FILE WAS GENERATED VIA CNB-API-GENERATE ##
15
- * ## ##
16
- * ## AUTHOR: bapelin ##
17
- * ## SOURCE: https://cnb.cool/cnb/skills/cnb-api-generate ##
18
- * -------------------------------------------------------------------------
19
- * @Source /{repo}/-/ai/chat/completions
20
- */
21
-
22
- /**
23
- * @description Other reuqest params
24
- */
25
-
26
- /**
27
- * @description AiChatCompletionsRes Success Response Type
28
- */
29
-
30
- /**
31
- * @description AiChatCompletionsError Error Response Type
32
- */
33
-
34
- /**
35
- * @description 访问令牌调用此接口需包含以下权限。Required permissions for access token.
36
- * repo-code:r
37
- * @tags AI
38
- * @name aiChatCompletions
39
- * @summary AI 对话。调用者需有代码写权限(CNB_TOKEN 仅需读权限,部署令牌不检查读写权限)。AI chat completions. Requires caller to have repo write permission.
40
- * @request post:/{repo}/-/ai/chat/completions
41
-
42
- ----------------------------------
43
- * @param {string} arg0
44
- * @param {DtoAiChatCompletionsReq} arg1
45
- * @param {RequestConfig} arg2 - Other reuqest params
46
- */
47
- async function _default(repo, request, {
48
- req,
49
- options,
50
- ...axiosConfig
51
- } = {}) {
52
- return await _core.default.request({
53
- ...axiosConfig,
54
- _next_req: req,
55
- options: options,
56
- url: `/${repo}/-/ai/chat/completions`,
57
- _apiTag: "/{repo}/-/ai/chat/completions",
58
- method: "post",
59
- data: request,
60
- _originParams: {
61
- method: "post",
62
- _apiTag: "/{repo}/-/ai/chat/completions",
63
- path: {
64
- repo
65
- },
66
- body: request
67
- }
68
- });
69
- }
@@ -1,75 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = _default;
7
- var _core = _interopRequireDefault(require("../../core/core.js"));
8
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
- // @ts-nocheck
10
- /* tslint:disable */
11
- /* eslint-disable */
12
- /*
13
- * -------------------------------------------------------------------------
14
- * ## THIS FILE WAS GENERATED VIA CNB-API-GENERATE ##
15
- * ## ##
16
- * ## AUTHOR: bapelin ##
17
- * ## SOURCE: https://cnb.cool/cnb/skills/cnb-api-generate ##
18
- * -------------------------------------------------------------------------
19
- * @Source /{repo}/-/assets/{assetID}
20
- */
21
-
22
- /**
23
- * @description deleteAsset request params
24
- */
25
-
26
- /**
27
- * @description Other reuqest params
28
- */
29
-
30
- /**
31
- * @description DeleteAssetRes Success Response Type
32
- */
33
-
34
- /**
35
- * @description DeleteAssetError Error Response Type
36
- */
37
-
38
- /**
39
- * @description 通过 asset 记录 id 删除一个 asset,release和commit附件不能通过该接口删除
40
- * 访问令牌调用此接口需包含以下权限。Required permissions for access token.
41
- * repo-manage:rw
42
- * @tags Assets
43
- * @name deleteAsset
44
- * @summary 通过 asset 记录 id 删除一个 asset
45
- * @request delete:/{repo}/-/assets/{assetID}
46
-
47
- ----------------------------------
48
- * @param {DeleteAssetParams} arg0 - deleteAsset request params
49
- * @param {RequestConfig} arg1 - Other reuqest params
50
- */
51
- async function _default({
52
- repo,
53
- assetID
54
- }, {
55
- req,
56
- options,
57
- ...axiosConfig
58
- } = {}) {
59
- return await _core.default.request({
60
- ...axiosConfig,
61
- _next_req: req,
62
- options: options,
63
- url: `/${repo}/-/assets/${assetID}`,
64
- _apiTag: "/{repo}/-/assets/{assetID}",
65
- method: "delete",
66
- _originParams: {
67
- method: "delete",
68
- _apiTag: "/{repo}/-/assets/{assetID}",
69
- path: {
70
- repo,
71
- assetID
72
- }
73
- }
74
- });
75
- }