@cnbcool/cnb-cli 1.0.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 (281) hide show
  1. package/.cnb.yml +37 -0
  2. package/DEVELOPMENT.md +345 -0
  3. package/LICENSE.md +9 -0
  4. package/README.md +119 -0
  5. package/bin/cnb.js +3 -0
  6. package/cag.config.js +57 -0
  7. package/downloads/1773729361207-dsfgely.png +0 -0
  8. package/package.json +20 -0
  9. package/skills/artifact-migrate/README.md +79 -0
  10. package/skills/artifact-migrate/SKILL.md +674 -0
  11. package/skills/auto-code/SKILL.md +71 -0
  12. package/skills/auto-code/hooks/hooks.json +15 -0
  13. package/skills/cnb-code-import/LICENSE +20 -0
  14. package/skills/cnb-code-import/README.md +311 -0
  15. package/skills/cnb-code-import/SKILL.md +368 -0
  16. package/skills/cnb-code-import/scripts/migrate.sh +371 -0
  17. package/skills/cnb-skill/SKILL.md +100 -0
  18. package/skills/cnb-skill/scripts/core/config/cag.config.js +57 -0
  19. package/skills/cnb-skill/scripts/core/convertLink.js +140 -0
  20. package/skills/cnb-skill/scripts/core/core.js +97 -0
  21. package/skills/cnb-skill/scripts/core/fetch-response-handler.js +34 -0
  22. package/skills/cnb-skill/scripts/core/help.json +35199 -0
  23. package/skills/cnb-skill/scripts/core/index.d.js +6 -0
  24. package/skills/cnb-skill/scripts/core/index.js +337 -0
  25. package/skills/cnb-skill/scripts/core/modules.help.js +40 -0
  26. package/skills/cnb-skill/scripts/core/schemaToJson.d.js +5 -0
  27. package/skills/cnb-skill/scripts/core/schemaToJson.js +32 -0
  28. package/skills/cnb-skill/scripts/core/shortcuts.js +247 -0
  29. package/skills/cnb-skill/scripts/core/tools.help.js +116 -0
  30. package/skills/cnb-skill/scripts/core/utils/convert-link.js +144 -0
  31. package/skills/cnb-skill/scripts/core/utils/generate-unique-id.js +10 -0
  32. package/skills/cnb-skill/scripts/modules/activities/get-user-activities-by-date.js +76 -0
  33. package/skills/cnb-skill/scripts/modules/activities/get-user-repo-activity-details.js +78 -0
  34. package/skills/cnb-skill/scripts/modules/activities/top-contributors.js +76 -0
  35. package/skills/cnb-skill/scripts/modules/ai/ai-auto-pr.js +70 -0
  36. package/skills/cnb-skill/scripts/modules/ai/ai-chat-completions.js +70 -0
  37. package/skills/cnb-skill/scripts/modules/assets/delete-asset.js +76 -0
  38. package/skills/cnb-skill/scripts/modules/assets/get-files.js +76 -0
  39. package/skills/cnb-skill/scripts/modules/assets/get-imgs.js +76 -0
  40. package/skills/cnb-skill/scripts/modules/assets/list-assets.js +76 -0
  41. package/skills/cnb-skill/scripts/modules/badge/get-badge.js +80 -0
  42. package/skills/cnb-skill/scripts/modules/badge/list-badge.js +70 -0
  43. package/skills/cnb-skill/scripts/modules/badge/upload-badge.js +70 -0
  44. package/skills/cnb-skill/scripts/modules/build/build-crontab-sync.js +75 -0
  45. package/skills/cnb-skill/scripts/modules/build/build-logs-delete.js +75 -0
  46. package/skills/cnb-skill/scripts/modules/build/build-runner-download-log.js +75 -0
  47. package/skills/cnb-skill/scripts/modules/build/get-build-logs.js +76 -0
  48. package/skills/cnb-skill/scripts/modules/build/get-build-stage.js +79 -0
  49. package/skills/cnb-skill/scripts/modules/build/get-build-status.js +75 -0
  50. package/skills/cnb-skill/scripts/modules/build/start-build.js +70 -0
  51. package/skills/cnb-skill/scripts/modules/build/stop-build.js +75 -0
  52. package/skills/cnb-skill/scripts/modules/charge/get-special-amount.js +68 -0
  53. package/skills/cnb-skill/scripts/modules/event/get-events.js +74 -0
  54. package/skills/cnb-skill/scripts/modules/followers/get-followers-by-user-id.js +76 -0
  55. package/skills/cnb-skill/scripts/modules/followers/get-following-by-user-id.js +76 -0
  56. package/skills/cnb-skill/scripts/modules/git/create-blob.js +70 -0
  57. package/skills/cnb-skill/scripts/modules/git/create-branch-lock.js +75 -0
  58. package/skills/cnb-skill/scripts/modules/git/create-branch.js +70 -0
  59. package/skills/cnb-skill/scripts/modules/git/create-tag.js +70 -0
  60. package/skills/cnb-skill/scripts/modules/git/delete-branch-lock.js +75 -0
  61. package/skills/cnb-skill/scripts/modules/git/delete-branch.js +75 -0
  62. package/skills/cnb-skill/scripts/modules/git/delete-commit-annotation.js +77 -0
  63. package/skills/cnb-skill/scripts/modules/git/delete-commit-asset.js +77 -0
  64. package/skills/cnb-skill/scripts/modules/git/delete-tag-annotation.js +75 -0
  65. package/skills/cnb-skill/scripts/modules/git/delete-tag.js +75 -0
  66. package/skills/cnb-skill/scripts/modules/git/get-archive-commit-changed-files.js +75 -0
  67. package/skills/cnb-skill/scripts/modules/git/get-archive-compare-changed-files.js +75 -0
  68. package/skills/cnb-skill/scripts/modules/git/get-archive.js +75 -0
  69. package/skills/cnb-skill/scripts/modules/git/get-branch.js +75 -0
  70. package/skills/cnb-skill/scripts/modules/git/get-commit-annotations-in-batch.js +70 -0
  71. package/skills/cnb-skill/scripts/modules/git/get-commit-annotations.js +75 -0
  72. package/skills/cnb-skill/scripts/modules/git/get-commit-assets-by-sha.js +75 -0
  73. package/skills/cnb-skill/scripts/modules/git/get-commit-assets.js +80 -0
  74. package/skills/cnb-skill/scripts/modules/git/get-commit-statuses.js +75 -0
  75. package/skills/cnb-skill/scripts/modules/git/get-commit.js +75 -0
  76. package/skills/cnb-skill/scripts/modules/git/get-compare-commits.js +75 -0
  77. package/skills/cnb-skill/scripts/modules/git/get-content-without-path.js +76 -0
  78. package/skills/cnb-skill/scripts/modules/git/get-content.js +78 -0
  79. package/skills/cnb-skill/scripts/modules/git/get-head.js +67 -0
  80. package/skills/cnb-skill/scripts/modules/git/get-presigned-lfs-download-link.js +78 -0
  81. package/skills/cnb-skill/scripts/modules/git/get-raw.js +78 -0
  82. package/skills/cnb-skill/scripts/modules/git/get-tag-annotations.js +75 -0
  83. package/skills/cnb-skill/scripts/modules/git/get-tag.js +75 -0
  84. package/skills/cnb-skill/scripts/modules/git/list-branches.js +76 -0
  85. package/skills/cnb-skill/scripts/modules/git/list-commits.js +76 -0
  86. package/skills/cnb-skill/scripts/modules/git/list-tags.js +76 -0
  87. package/skills/cnb-skill/scripts/modules/git/post-commit-asset-upload-confirmation.js +82 -0
  88. package/skills/cnb-skill/scripts/modules/git/post-commit-asset-upload-url.js +78 -0
  89. package/skills/cnb-skill/scripts/modules/git/put-commit-annotations.js +78 -0
  90. package/skills/cnb-skill/scripts/modules/git/put-tag-annotations.js +78 -0
  91. package/skills/cnb-skill/scripts/modules/git-settings/delete-branch-protection.js +75 -0
  92. package/skills/cnb-skill/scripts/modules/git-settings/get-branch-protection.js +75 -0
  93. package/skills/cnb-skill/scripts/modules/git-settings/get-pipeline-settings.js +67 -0
  94. package/skills/cnb-skill/scripts/modules/git-settings/get-pull-request-settings.js +67 -0
  95. package/skills/cnb-skill/scripts/modules/git-settings/get-push-limit-settings.js +67 -0
  96. package/skills/cnb-skill/scripts/modules/git-settings/list-branch-protections.js +67 -0
  97. package/skills/cnb-skill/scripts/modules/git-settings/patch-branch-protection.js +78 -0
  98. package/skills/cnb-skill/scripts/modules/git-settings/post-branch-protection.js +70 -0
  99. package/skills/cnb-skill/scripts/modules/git-settings/put-pipeline-settings.js +70 -0
  100. package/skills/cnb-skill/scripts/modules/git-settings/put-pull-request-settings.js +70 -0
  101. package/skills/cnb-skill/scripts/modules/git-settings/put-push-limit-settings.js +70 -0
  102. package/skills/cnb-skill/scripts/modules/issues/can-user-be-assigned-to-issue.js +77 -0
  103. package/skills/cnb-skill/scripts/modules/issues/create-issue.js +70 -0
  104. package/skills/cnb-skill/scripts/modules/issues/delete-issue-assignees.js +78 -0
  105. package/skills/cnb-skill/scripts/modules/issues/delete-issue-label.js +77 -0
  106. package/skills/cnb-skill/scripts/modules/issues/delete-issue-labels.js +75 -0
  107. package/skills/cnb-skill/scripts/modules/issues/get-issue-comment.js +77 -0
  108. package/skills/cnb-skill/scripts/modules/issues/get-issue.js +75 -0
  109. package/skills/cnb-skill/scripts/modules/issues/list-issue-activities-latest.js +77 -0
  110. package/skills/cnb-skill/scripts/modules/issues/list-issue-activities.js +78 -0
  111. package/skills/cnb-skill/scripts/modules/issues/list-issue-assignees.js +75 -0
  112. package/skills/cnb-skill/scripts/modules/issues/list-issue-comments.js +78 -0
  113. package/skills/cnb-skill/scripts/modules/issues/list-issue-labels.js +78 -0
  114. package/skills/cnb-skill/scripts/modules/issues/list-issues.js +76 -0
  115. package/skills/cnb-skill/scripts/modules/issues/patch-issue-assignees.js +78 -0
  116. package/skills/cnb-skill/scripts/modules/issues/patch-issue-comment.js +80 -0
  117. package/skills/cnb-skill/scripts/modules/issues/post-issue-assignees.js +78 -0
  118. package/skills/cnb-skill/scripts/modules/issues/post-issue-comment.js +78 -0
  119. package/skills/cnb-skill/scripts/modules/issues/post-issue-labels.js +78 -0
  120. package/skills/cnb-skill/scripts/modules/issues/put-issue-labels.js +78 -0
  121. package/skills/cnb-skill/scripts/modules/issues/update-issue-properties.js +79 -0
  122. package/skills/cnb-skill/scripts/modules/issues/update-issue.js +78 -0
  123. package/skills/cnb-skill/scripts/modules/knowledge-base/delete-knowledge-base.js +67 -0
  124. package/skills/cnb-skill/scripts/modules/knowledge-base/get-knowledge-base-info.js +67 -0
  125. package/skills/cnb-skill/scripts/modules/knowledge-base/get-models.js +67 -0
  126. package/skills/cnb-skill/scripts/modules/knowledge-base/query-knowledge-base.js +70 -0
  127. package/skills/cnb-skill/scripts/modules/members/add-members-of-group.js +78 -0
  128. package/skills/cnb-skill/scripts/modules/members/add-members-of-mission.js +78 -0
  129. package/skills/cnb-skill/scripts/modules/members/add-members-of-registry.js +78 -0
  130. package/skills/cnb-skill/scripts/modules/members/add-members-of-repo.js +78 -0
  131. package/skills/cnb-skill/scripts/modules/members/delete-members-of-group.js +75 -0
  132. package/skills/cnb-skill/scripts/modules/members/delete-members-of-repo.js +75 -0
  133. package/skills/cnb-skill/scripts/modules/members/delete-outside-collaborators.js +75 -0
  134. package/skills/cnb-skill/scripts/modules/members/get-member-access-level-of-group.js +76 -0
  135. package/skills/cnb-skill/scripts/modules/members/get-member-access-level-of-repo.js +76 -0
  136. package/skills/cnb-skill/scripts/modules/members/list-all-members.js +76 -0
  137. package/skills/cnb-skill/scripts/modules/members/list-inherit-members-of-group.js +76 -0
  138. package/skills/cnb-skill/scripts/modules/members/list-inherit-members-of-repo.js +76 -0
  139. package/skills/cnb-skill/scripts/modules/members/list-member-access-level-of-group.js +75 -0
  140. package/skills/cnb-skill/scripts/modules/members/list-member-access-level-of-repo.js +75 -0
  141. package/skills/cnb-skill/scripts/modules/members/list-members-of-group.js +76 -0
  142. package/skills/cnb-skill/scripts/modules/members/list-members-of-repo.js +76 -0
  143. package/skills/cnb-skill/scripts/modules/members/list-outside-collaborators.js +76 -0
  144. package/skills/cnb-skill/scripts/modules/members/update-members-of-group.js +78 -0
  145. package/skills/cnb-skill/scripts/modules/members/update-members-of-repo.js +78 -0
  146. package/skills/cnb-skill/scripts/modules/members/update-outside-collaborators.js +78 -0
  147. package/skills/cnb-skill/scripts/modules/missions/create-mission.js +70 -0
  148. package/skills/cnb-skill/scripts/modules/missions/delete-mission.js +67 -0
  149. package/skills/cnb-skill/scripts/modules/missions/get-group-sub-missions.js +76 -0
  150. package/skills/cnb-skill/scripts/modules/missions/get-mission-view-config.js +76 -0
  151. package/skills/cnb-skill/scripts/modules/missions/get-mission-view-list.js +67 -0
  152. package/skills/cnb-skill/scripts/modules/missions/post-mission-view-config.js +70 -0
  153. package/skills/cnb-skill/scripts/modules/missions/post-mission-view-list.js +70 -0
  154. package/skills/cnb-skill/scripts/modules/missions/put-mission-view-list.js +70 -0
  155. package/skills/cnb-skill/scripts/modules/missions/set-mission-visibility.js +76 -0
  156. package/skills/cnb-skill/scripts/modules/organizations/create-organization.js +66 -0
  157. package/skills/cnb-skill/scripts/modules/organizations/delete-organization.js +67 -0
  158. package/skills/cnb-skill/scripts/modules/organizations/get-group-setting.js +67 -0
  159. package/skills/cnb-skill/scripts/modules/organizations/get-group.js +67 -0
  160. package/skills/cnb-skill/scripts/modules/organizations/get-groups-by-user-id.js +76 -0
  161. package/skills/cnb-skill/scripts/modules/organizations/list-groups.js +76 -0
  162. package/skills/cnb-skill/scripts/modules/organizations/list-subgroups.js +76 -0
  163. package/skills/cnb-skill/scripts/modules/organizations/list-top-groups.js +72 -0
  164. package/skills/cnb-skill/scripts/modules/organizations/transfer-group.js +70 -0
  165. package/skills/cnb-skill/scripts/modules/organizations/update-group-setting.js +70 -0
  166. package/skills/cnb-skill/scripts/modules/organizations/update-organization.js +70 -0
  167. package/skills/cnb-skill/scripts/modules/organizations/upload-logos.js +70 -0
  168. package/skills/cnb-skill/scripts/modules/pulls/can-user-be-assigned-to-pull.js +77 -0
  169. package/skills/cnb-skill/scripts/modules/pulls/delete-pull-assignees.js +78 -0
  170. package/skills/cnb-skill/scripts/modules/pulls/delete-pull-label.js +77 -0
  171. package/skills/cnb-skill/scripts/modules/pulls/delete-pull-labels.js +75 -0
  172. package/skills/cnb-skill/scripts/modules/pulls/delete-repo-files.js +76 -0
  173. package/skills/cnb-skill/scripts/modules/pulls/delete-repo-imgs.js +76 -0
  174. package/skills/cnb-skill/scripts/modules/pulls/get-files.js +75 -0
  175. package/skills/cnb-skill/scripts/modules/pulls/get-imgs.js +75 -0
  176. package/skills/cnb-skill/scripts/modules/pulls/get-pull-comment.js +77 -0
  177. package/skills/cnb-skill/scripts/modules/pulls/get-pull.js +75 -0
  178. package/skills/cnb-skill/scripts/modules/pulls/list-pull-assignees.js +75 -0
  179. package/skills/cnb-skill/scripts/modules/pulls/list-pull-comments.js +78 -0
  180. package/skills/cnb-skill/scripts/modules/pulls/list-pull-commit-statuses.js +75 -0
  181. package/skills/cnb-skill/scripts/modules/pulls/list-pull-commits.js +78 -0
  182. package/skills/cnb-skill/scripts/modules/pulls/list-pull-files.js +75 -0
  183. package/skills/cnb-skill/scripts/modules/pulls/list-pull-labels.js +78 -0
  184. package/skills/cnb-skill/scripts/modules/pulls/list-pull-review-comments.js +80 -0
  185. package/skills/cnb-skill/scripts/modules/pulls/list-pull-reviews.js +78 -0
  186. package/skills/cnb-skill/scripts/modules/pulls/list-pulls-by-numbers.js +76 -0
  187. package/skills/cnb-skill/scripts/modules/pulls/list-pulls.js +76 -0
  188. package/skills/cnb-skill/scripts/modules/pulls/merge-pull.js +78 -0
  189. package/skills/cnb-skill/scripts/modules/pulls/patch-pull-comment.js +80 -0
  190. package/skills/cnb-skill/scripts/modules/pulls/patch-pull.js +78 -0
  191. package/skills/cnb-skill/scripts/modules/pulls/post-pull-assignees.js +78 -0
  192. package/skills/cnb-skill/scripts/modules/pulls/post-pull-comment.js +78 -0
  193. package/skills/cnb-skill/scripts/modules/pulls/post-pull-labels.js +78 -0
  194. package/skills/cnb-skill/scripts/modules/pulls/post-pull-request-review-reply.js +80 -0
  195. package/skills/cnb-skill/scripts/modules/pulls/post-pull-review.js +78 -0
  196. package/skills/cnb-skill/scripts/modules/pulls/post-pull.js +70 -0
  197. package/skills/cnb-skill/scripts/modules/pulls/put-pull-labels.js +78 -0
  198. package/skills/cnb-skill/scripts/modules/pulls/upload-files.js +70 -0
  199. package/skills/cnb-skill/scripts/modules/pulls/upload-imgs.js +70 -0
  200. package/skills/cnb-skill/scripts/modules/rank/get-language-list.js +72 -0
  201. package/skills/cnb-skill/scripts/modules/rank/get-repo-annual-rank.js +72 -0
  202. package/skills/cnb-skill/scripts/modules/rank/get-repo-daily-rank.js +72 -0
  203. package/skills/cnb-skill/scripts/modules/rank/get-repo-monthly-rank.js +72 -0
  204. package/skills/cnb-skill/scripts/modules/rank/get-repo-weekly-rank.js +72 -0
  205. package/skills/cnb-skill/scripts/modules/registries/delete-package-tag.js +80 -0
  206. package/skills/cnb-skill/scripts/modules/registries/delete-package.js +78 -0
  207. package/skills/cnb-skill/scripts/modules/registries/delete-registry.js +67 -0
  208. package/skills/cnb-skill/scripts/modules/registries/get-group-sub-registries.js +76 -0
  209. package/skills/cnb-skill/scripts/modules/registries/get-package-tag-detail.js +83 -0
  210. package/skills/cnb-skill/scripts/modules/registries/get-package.js +78 -0
  211. package/skills/cnb-skill/scripts/modules/registries/list-package-tags.js +81 -0
  212. package/skills/cnb-skill/scripts/modules/registries/list-packages.js +77 -0
  213. package/skills/cnb-skill/scripts/modules/registries/set-registry-visibility.js +76 -0
  214. package/skills/cnb-skill/scripts/modules/releases/delete-release-asset.js +77 -0
  215. package/skills/cnb-skill/scripts/modules/releases/delete-release.js +75 -0
  216. package/skills/cnb-skill/scripts/modules/releases/get-latest-release.js +67 -0
  217. package/skills/cnb-skill/scripts/modules/releases/get-release-asset.js +77 -0
  218. package/skills/cnb-skill/scripts/modules/releases/get-release-by-id.js +75 -0
  219. package/skills/cnb-skill/scripts/modules/releases/get-release-by-tag.js +75 -0
  220. package/skills/cnb-skill/scripts/modules/releases/get-releases-asset.js +80 -0
  221. package/skills/cnb-skill/scripts/modules/releases/list-releases.js +76 -0
  222. package/skills/cnb-skill/scripts/modules/releases/patch-release.js +78 -0
  223. package/skills/cnb-skill/scripts/modules/releases/post-release-asset-upload-confirmation.js +82 -0
  224. package/skills/cnb-skill/scripts/modules/releases/post-release-asset-upload-url.js +78 -0
  225. package/skills/cnb-skill/scripts/modules/releases/post-release.js +70 -0
  226. package/skills/cnb-skill/scripts/modules/repo-code-issue/get-code-issue-detail-open-api.js +76 -0
  227. package/skills/cnb-skill/scripts/modules/repo-code-issue/list-code-issue-open-api.js +77 -0
  228. package/skills/cnb-skill/scripts/modules/repo-contributor/get-repo-contributor-trend.js +76 -0
  229. package/skills/cnb-skill/scripts/modules/repo-labels/delete-label.js +75 -0
  230. package/skills/cnb-skill/scripts/modules/repo-labels/list-labels.js +76 -0
  231. package/skills/cnb-skill/scripts/modules/repo-labels/patch-label.js +78 -0
  232. package/skills/cnb-skill/scripts/modules/repo-labels/post-label.js +70 -0
  233. package/skills/cnb-skill/scripts/modules/repositories/archive-repo.js +67 -0
  234. package/skills/cnb-skill/scripts/modules/repositories/create-repo.js +70 -0
  235. package/skills/cnb-skill/scripts/modules/repositories/delete-repo.js +67 -0
  236. package/skills/cnb-skill/scripts/modules/repositories/get-by-id.js +67 -0
  237. package/skills/cnb-skill/scripts/modules/repositories/get-group-sub-repos.js +76 -0
  238. package/skills/cnb-skill/scripts/modules/repositories/get-pinned-repo-by-group.js +67 -0
  239. package/skills/cnb-skill/scripts/modules/repositories/get-pinned-repo-by-id.js +67 -0
  240. package/skills/cnb-skill/scripts/modules/repositories/get-repos-by-user-name.js +76 -0
  241. package/skills/cnb-skill/scripts/modules/repositories/get-repos.js +72 -0
  242. package/skills/cnb-skill/scripts/modules/repositories/list-forks-repos.js +76 -0
  243. package/skills/cnb-skill/scripts/modules/repositories/set-pinned-repo-by-group.js +70 -0
  244. package/skills/cnb-skill/scripts/modules/repositories/set-repo-visibility.js +76 -0
  245. package/skills/cnb-skill/scripts/modules/repositories/transfer-repo.js +70 -0
  246. package/skills/cnb-skill/scripts/modules/repositories/un-archive-repo.js +67 -0
  247. package/skills/cnb-skill/scripts/modules/repositories/update-repo.js +70 -0
  248. package/skills/cnb-skill/scripts/modules/search/list-public-repos.js +72 -0
  249. package/skills/cnb-skill/scripts/modules/security/get-repo-security-overview.js +76 -0
  250. package/skills/cnb-skill/scripts/modules/starring/get-user-all-stared-repos.js +72 -0
  251. package/skills/cnb-skill/scripts/modules/starring/get-user-stared-repos.js +76 -0
  252. package/skills/cnb-skill/scripts/modules/starring/list-star-users.js +76 -0
  253. package/skills/cnb-skill/scripts/modules/users/auto-complete-source.js +72 -0
  254. package/skills/cnb-skill/scripts/modules/users/get-user-info-by-name.js +67 -0
  255. package/skills/cnb-skill/scripts/modules/users/get-user-info.js +63 -0
  256. package/skills/cnb-skill/scripts/modules/users/list-email.js +63 -0
  257. package/skills/cnb-skill/scripts/modules/users/list-gpg-keys.js +72 -0
  258. package/skills/cnb-skill/scripts/modules/users/update-user-info.js +66 -0
  259. package/skills/cnb-skill/scripts/modules/workspace/delete-workspace.js +66 -0
  260. package/skills/cnb-skill/scripts/modules/workspace/get-workspace-detail.js +75 -0
  261. package/skills/cnb-skill/scripts/modules/workspace/list-workspaces.js +72 -0
  262. package/skills/cnb-skill/scripts/modules/workspace/start-workspace.js +70 -0
  263. package/skills/cnb-skill/scripts/modules/workspace/workspace-stop.js +66 -0
  264. package/skills/code-review/README.md +3 -0
  265. package/skills/code-review/SKILL.md +131 -0
  266. package/skills/code-review/hooks/hooks.json +15 -0
  267. package/skills/diagnose-pr-pipeline/README.md +3 -0
  268. package/skills/diagnose-pr-pipeline/SKILL.md +88 -0
  269. package/skills/dialog-ci-log/README.md +16 -0
  270. package/skills/dialog-ci-log/SKILL.md +41 -0
  271. package/skills/dialog-ci-log/scrips/get-failed-stage-logs.js +124 -0
  272. package/skills/pr-diff/README.md +3 -0
  273. package/skills/pr-diff/SKILL.md +97 -0
  274. package/skills/pr-summary/README.md +3 -0
  275. package/skills/pr-summary/SKILL.md +70 -0
  276. package/skills/tapd-resource-fetcher/README.md +3 -0
  277. package/skills/tapd-resource-fetcher/SKILL.md +97 -0
  278. package/skills/text-path-converter/README.md +3 -0
  279. package/skills/text-path-converter/SKILL.md +30 -0
  280. package/skills/text-path-converter/scripts/convertLink.js +148 -0
  281. package/test.js +1 -0
package/.cnb.yml ADDED
@@ -0,0 +1,37 @@
1
+ include:
2
+ # pr 评审后自动合并
3
+ - https://cnb.cool/cnb/cool/pipeline-templates/-/blob/main/.pipeline-for-pr.yml
4
+
5
+ $:
6
+ vscode:
7
+ - docker:
8
+ # 指定开发环境镜像,可以是任意可访问的镜像。
9
+ # 如果 image 指定的镜像中已安装 code-server 代码服务,将使用单容器模式启动开发环境
10
+ # 如果 image 指定的镜像中未安装 code-server 代码服务,将使用双容器模式启动开发环境
11
+ # 如下镜像为 CNB 默认开发环境镜像,已安装代码服务,将使用单容器模式启动开发环境
12
+ # 可按需替换为其他镜像
13
+ image: cnbcool/default-codebuddy-cli-env:latest
14
+ volumes:
15
+ - node_modules
16
+ services:
17
+ - vscode
18
+ - docker
19
+ stages:
20
+ - name: install
21
+ script: npm install
22
+ # tag push 时触发
23
+ tag_push:
24
+ - docker:
25
+ image: node:22
26
+ stages:
27
+ - name: Update version
28
+ # 修改 package.json 中的version为当前tag,但不会提交代码
29
+ script: npm version $CNB_BRANCH --no-git-tag-version
30
+
31
+ - name: npm publish
32
+ image: tencentcom/npm
33
+ imports: https://cnb.cool/cnb-secrets/secrets/-/blob/main/envs/npm_cnbcool.yml
34
+ settings:
35
+ token: $NPM_TOKEN
36
+ folder: ./
37
+ fail_on_version_conflict: true
package/DEVELOPMENT.md ADDED
@@ -0,0 +1,345 @@
1
+ # 本地开发指南
2
+
3
+ 本文档面向参与 CNB Skills 仓库开发的贡献者,介绍如何搭建本地开发环境、理解项目结构和进行日常开发调试。
4
+
5
+ ## 环境准备
6
+
7
+ ### 系统要求
8
+
9
+ | 依赖 | 版本要求 | 说明 |
10
+ |------|----------|------|
11
+ | Node.js | >= 20.x | 推荐使用 LTS 版本 |
12
+ | npm | >= 10.x | 随 Node.js 自带 |
13
+ | Git | >= 2.x | 代码版本管理 |
14
+ | Docker | 可选 | 部分 skill(如 cnb-code-import、artifact-migrate)需要 Docker 环境 |
15
+
16
+ ### 初始化
17
+
18
+ ```bash
19
+ # 克隆仓库
20
+ git clone https://cnb.cool/cnb/skills/cnb-skill.git
21
+ cd cnb-skill
22
+
23
+ # 安装依赖
24
+ npm install
25
+ ```
26
+
27
+ ### 环境变量
28
+
29
+ 在项目根目录创建 `.env` 文件(或者在 shell 中 export),配置以下变量:
30
+
31
+ | 变量名 | 描述 | 是否必需 | 示例值 |
32
+ |--------|------|----------|--------|
33
+ | `CNB_TOKEN` | CNB 平台访问凭证 | **必须** | 在 CNB 平台的个人设置中生成 |
34
+ | `CNB_API_ENDPOINT` | API 端点地址 | **必须** | `https://api.cnb.cool` |
35
+ | `CNB_BRANCH` | 默认分支名 | 选填 | `main` |
36
+
37
+ ```bash
38
+ export CNB_TOKEN="your-token-here"
39
+ export CNB_API_ENDPOINT="https://api.cnb.cool"
40
+ ```
41
+
42
+ ## 项目结构
43
+
44
+ ```
45
+ .
46
+ ├── skills/ # 所有 skill 的根目录
47
+ │ ├── cnb-skill/ # CNB OpenAPI 交互(核心 skill)
48
+ │ │ ├── SKILL.md # Skill 描述文件
49
+ │ │ └── scripts/ # 脚本目录
50
+ │ │ ├── core/ # 核心模块
51
+ │ │ │ ├── index.js # CLI 入口 & 主逻辑
52
+ │ │ │ ├── core.js # 核心工具函数
53
+ │ │ │ ├── shortcuts.js # 快捷命令定义
54
+ │ │ │ ├── help.json # OpenAPI 生成的帮助数据(~1.3MB)
55
+ │ │ │ ├── config/ # 配置(内含 cag.config.js)
56
+ │ │ │ └── utils/ # 工具函数
57
+ │ │ └── modules/ # API 模块(按资源类型分目录)
58
+ │ │ ├── issues/ # Issue 相关操作
59
+ │ │ ├── pulls/ # PR 相关操作
60
+ │ │ ├── git/ # Git 操作
61
+ │ │ ├── build/ # 流水线构建
62
+ │ │ ├── organizations/ # 组织管理
63
+ │ │ ├── repositories/ # 仓库管理
64
+ │ │ ├── members/ # 成员管理
65
+ │ │ ├── registries/ # 制品库
66
+ │ │ ├── releases/ # 发版管理
67
+ │ │ └── ... # 其他模块
68
+ │ ├── cnb-code-import/ # 代码仓库批量迁移
69
+ │ │ ├── SKILL.md
70
+ │ │ └── scripts/migrate.sh
71
+ │ ├── artifact-migrate/ # 制品批量迁移
72
+ │ │ └── SKILL.md
73
+ │ ├── code-review/ # PR 代码评审
74
+ │ │ ├── SKILL.md
75
+ │ │ └── hooks/hooks.json # PreToolUse 钩子
76
+ │ ├── pr-diff/ # PR diff 获取
77
+ │ │ └── SKILL.md
78
+ │ ├── pr-summary/ # PR 变更总结
79
+ │ │ └── SKILL.md
80
+ │ ├── auto-code/ # 自动编码并创建 PR
81
+ │ │ ├── SKILL.md
82
+ │ │ └── hooks/hooks.json # PreToolUse 钩子
83
+ │ ├── dialog-ci-log/ # CI 流水线日志查询
84
+ │ │ ├── SKILL.md
85
+ │ │ └── scrips/get-failed-stage-logs.js
86
+ │ ├── diagnose-pr-pipeline/ # PR 流水线故障诊断
87
+ │ │ └── SKILL.md
88
+ │ ├── tapd-resource-fetcher/ # Tapd 资源获取
89
+ │ │ └── SKILL.md
90
+ │ └── text-path-converter/ # 相对路径转绝对路径
91
+ │ ├── SKILL.md
92
+ │ └── scripts/convertLink.js
93
+ ├── bin/
94
+ │ └── cnb.js # cnb-cli 可执行入口
95
+ ├── cag.config.js # OpenAPI 代码生成配置(根目录)
96
+ ├── package.json
97
+ ├── package-lock.json
98
+ ├── test.js
99
+ ├── .cnb.yml # CNB CI/CD 配置
100
+ └── README.md
101
+ ```
102
+
103
+ ## NPM Scripts
104
+
105
+ | 命令 | 说明 |
106
+ |------|------|
107
+ | `npm run link:all` | 将 `skills/` 下所有 skill 安装到本地 CodeBuddy(`--copy` 模式) |
108
+ | `npm run link:skill` | 交互式选择 skill 安装到本地 CodeBuddy |
109
+ | `npm run gen:skill` | 基于 OpenAPI Swagger 重新生成 cnb-skill 的 scripts 代码 |
110
+
111
+ ## 开发流程
112
+
113
+ ### 1. 安装 Skill 到本地 CodeBuddy
114
+
115
+ 开发过程中,需要将 skill 安装到本地 CodeBuddy 才能测试效果:
116
+
117
+ ```bash
118
+ # 安装所有 skill
119
+ npm run link:all
120
+
121
+ # 或只安装指定 skill(交互式选择)
122
+ npm run link:skill
123
+
124
+ # 或直接用 npx 命令安装指定 skill
125
+ npx skills add ./skills --agent codebuddy --copy -y --skill cnb-skill
126
+ ```
127
+
128
+ > **说明**:`--copy` 参数会将文件拷贝到 `~/.codebuddy/skills/` 目录下,修改源代码后需要重新执行安装命令来更新。
129
+
130
+ ### 2. 修改 SKILL.md
131
+
132
+ 每个 skill 的核心是 `SKILL.md` 文件,它包含两部分:
133
+
134
+ **YAML Frontmatter**(必须):
135
+
136
+ ```yaml
137
+ ---
138
+ name: my-skill # Skill 唯一标识(必须)
139
+ description: 这个 skill 做什么 # Skill 描述(必须,用于 AI 触发匹配)
140
+ allowed-tools: Bash,Read,Write # 允许使用的工具列表(可选)
141
+ requires: # 运行依赖(可选)
142
+ bins: [node]
143
+ files: [scripts/xxx.js]
144
+ ---
145
+ ```
146
+
147
+ **Markdown 正文**:Skill 的详细行为指令,AI 会完整阅读并按照其中的步骤执行。
148
+
149
+ ### 3. 开发带脚本的 Skill
150
+
151
+ 如果 skill 需要调用自定义脚本(如 `cnb-skill`、`text-path-converter`、`dialog-ci-log`),脚本放在对应 skill 的 `scripts/` 目录中。
152
+
153
+ 在 SKILL.md 中通过以下方式引用脚本:
154
+
155
+ ```markdown
156
+ ## 执行步骤
157
+
158
+ 调用以下脚本进行处理:
159
+
160
+ \```bash
161
+ node ~/.codebuddy/skills/<skill-name>/scripts/your-script.js "$arg1" "$arg2"
162
+ \```
163
+ ```
164
+
165
+ > **注意**:安装后脚本路径为 `~/.codebuddy/skills/<skill-name>/scripts/`,编写 SKILL.md 时需使用安装后的路径。
166
+
167
+ ### 4. 开发带 Hooks 的 Skill
168
+
169
+ Hooks 用于在 AI 对话中自动触发 skill。当前支持的 hook 类型是 `PreToolUse`。
170
+
171
+ 在 skill 目录下创建 `hooks/hooks.json`:
172
+
173
+ ```json
174
+ {
175
+ "hooks": {
176
+ "PreToolUse": [
177
+ {
178
+ "matcher": "(?i)(关键词1|关键词2).*操作描述",
179
+ "hooks": [
180
+ {
181
+ "type": "prompt",
182
+ "prompt": "检测到用户意图,请使用 xxx 技能来完成任务。"
183
+ }
184
+ ]
185
+ }
186
+ ]
187
+ }
188
+ }
189
+ ```
190
+
191
+ **`matcher`** 是正则表达式,匹配用户输入。当匹配成功时,`prompt` 中的内容会被注入到 AI 的上下文中。
192
+
193
+ ### 5. 重新生成 cnb-skill(OpenAPI 代码生成)
194
+
195
+ `cnb-skill` 的 `scripts/modules/` 下的代码是基于 CNB OpenAPI Swagger 自动生成的。
196
+
197
+ 生成配置分为两个层级:
198
+
199
+ - **根目录** `cag.config.js`:开发时使用的配置,`skillsOutputDir` 指向 `./skills/cnb-skill`
200
+ - **skill 内** `scripts/core/config/cag.config.js`:安装到用户机器后使用的配置,`skillsOutputDir` 指向 `./skills`
201
+
202
+ 当 OpenAPI 有更新时,执行重新生成:
203
+
204
+ ```bash
205
+ # 使用根目录的 cag.config.js 重新生成
206
+ npm run gen:skill
207
+ ```
208
+
209
+ 生成后检查 `skills/cnb-skill/scripts/modules/` 下的变更是否正确,然后重新安装到本地测试:
210
+
211
+ ```bash
212
+ npm run link:all
213
+ ```
214
+
215
+ ### 6. 添加新的 Skill
216
+
217
+ 在 `skills/` 目录下创建新的子目录:
218
+
219
+ ```bash
220
+ mkdir -p skills/my-new-skill
221
+ ```
222
+
223
+ 创建 `SKILL.md`(必须):
224
+
225
+ ```markdown
226
+ ---
227
+ name: my-new-skill
228
+ description: 描述你的 skill 功能,要足够准确以便 AI 触发匹配
229
+ ---
230
+
231
+ # My New Skill
232
+
233
+ ## 使用场景
234
+
235
+ 描述何时应该使用这个 skill。
236
+
237
+ ## 执行步骤
238
+
239
+ ### 1. 第一步
240
+ ...
241
+
242
+ ### 2. 第二步
243
+ ...
244
+ ```
245
+
246
+ 如果需要脚本,创建 `scripts/` 目录并放入脚本文件。如果需要 hooks,创建 `hooks/hooks.json`。
247
+
248
+ 完成后安装并测试:
249
+
250
+ ```bash
251
+ npx skills add ./skills --agent codebuddy --copy -y --skill my-new-skill
252
+ ```
253
+
254
+ 最后记得更新 `README.md` 中的 skill 列表。
255
+
256
+ ## Skill 间依赖关系
257
+
258
+ 部分 skill 之间存在依赖调用关系:
259
+
260
+ ```
261
+ code-review ──依赖──▶ pr-diff ──依赖──▶ cnb-skill
262
+ pr-summary ──依赖──▶ pr-diff ──依赖──▶ cnb-skill
263
+ auto-code ──依赖──▶ cnb-skill
264
+ diagnose-pr-pipeline ──依赖──▶ cnb-skill
265
+ dialog-ci-log ──依赖──▶ cnb-skill
266
+ text-path-converter ──被──▶ cnb-skill 使用(响应转换器)
267
+ ```
268
+
269
+ > **提示**:开发涉及上下游依赖的 skill 时,确保相关 skill 都已安装到本地。
270
+
271
+ ## cnb-cli 调试
272
+
273
+ `bin/cnb.js` 是 cnb-cli 的入口文件,全局安装后可通过 `cnb` 命令使用。本地调试方式:
274
+
275
+ ```bash
276
+ # 直接运行
277
+ node bin/cnb.js --help
278
+
279
+ # 或者通过 npm link 使 cnb 命令可用
280
+ npm link
281
+ cnb --help
282
+ ```
283
+
284
+ ## CI/CD 发布
285
+
286
+ 项目通过 `.cnb.yml` 配置了自动发布流程:
287
+
288
+ - **Tag Push 触发**:当推送新的 Git tag 时,会自动将 cnb-cli 发布到 CNB NPM Registry
289
+ - 发布流程:自动更新 `package.json` 版本号 → 发布到 `https://npm.cnb.cool/cnb/skills/cnb-cli/-/packages/`
290
+
291
+ 发版步骤:
292
+
293
+ ```bash
294
+ # 创建并推送 tag
295
+ git tag v1.2.3
296
+ git push origin v1.2.3
297
+ ```
298
+
299
+ ## 常见问题
300
+
301
+ ### Q: 修改了 SKILL.md 但 CodeBuddy 没有生效?
302
+
303
+ Skill 安装使用 `--copy` 模式,修改源文件后需要重新执行安装命令:
304
+
305
+ ```bash
306
+ npm run link:all
307
+ ```
308
+
309
+ ### Q: `npm run gen:skill` 报错?
310
+
311
+ 检查 `cag.config.js` 中的 `target` URL 是否可访问。该 URL 指向 CNB OpenAPI 的 Swagger JSON:
312
+
313
+ ```
314
+ https://api.cnb.cool/swagger.json
315
+ ```
316
+
317
+ 如果在外网环境开发,可能需要配置代理或使用本地缓存的 swagger.json。
318
+
319
+ ### Q: 如何只测试单个 skill?
320
+
321
+ ```bash
322
+ npx skills add ./skills --agent codebuddy --copy -y --skill <skill-name>
323
+ ```
324
+
325
+ ### Q: Hooks 不触发怎么办?
326
+
327
+ 1. 检查 `hooks/hooks.json` 的 JSON 格式是否正确
328
+ 2. 检查 `matcher` 正则表达式是否能匹配用户输入
329
+ 3. 确保 skill 已安装到本地(`npm run link:all`)
330
+ 4. 在 CodeBuddy 中重新加载 skill(可能需要重启)
331
+
332
+ ### Q: 如何查看已安装的 skill 列表?
333
+
334
+ ```bash
335
+ ls ~/.codebuddy/skills/
336
+ ```
337
+
338
+ ### Q: Docker 相关的 skill 本地怎么测试?
339
+
340
+ `cnb-code-import` 和 `artifact-migrate` 需要 Docker 环境。确保本地安装了 Docker 并可正常运行:
341
+
342
+ ```bash
343
+ docker --version
344
+ docker run --rm hello-world
345
+ ```
package/LICENSE.md ADDED
@@ -0,0 +1,9 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2024-present, cnb.cool
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
+
7
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
+
9
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,119 @@
1
+ # CNB Skills
2
+
3
+ CNB 平台技能集合,在一个仓库中维护多个 CodeBuddy Skill,可通过 `npx skills` 便捷安装。
4
+
5
+ ## 包含的 Skills
6
+
7
+ | Skill | 描述 |
8
+ |-------|------|
9
+ | **cnb-skill** | 提供与 CNB OpenAPI 的完整交互能力,支持项目、组织、代码仓库、Issue、PR、流水线、制品库等操作 |
10
+ | **cnb-code-import** | 批量迁移代码仓库到 CNB 平台,支持 GitHub、GitLab、CODING、Gitee 等主流平台 |
11
+ | **artifact-migrate** | CNB 制品批量迁移工具,支持 Maven、NPM、Docker 等多种制品类型迁移 |
12
+ | **code-review** | PR 代码评审,提供标准化评审流程和行级评论 |
13
+ | **pr-diff** | 获取 PR 的 diff 变更信息 |
14
+ | **pr-summary** | PR 变更总结,生成结构化的变更说明 |
15
+ | **auto-code** | 自动编码并创建/更新 PR |
16
+ | **dialog-ci-log** | 查询 CI 流水线的错误日志 |
17
+ | **diagnose-pr-pipeline** | 获取 PR 触发的 CI 报错详细信息 |
18
+ | **tapd-saas-resource-fetcher-skills** | 获取 Tapd SaaS 资源(需求、缺陷、任务、迭代) |
19
+ | **CNB-Text-Relative-Path-Converter** | 将 ISSUE/PR 内容中的相对路径转换为绝对路径 |
20
+
21
+ ## 运行环境要求
22
+
23
+ - Node.js 20.x 及以上版本
24
+
25
+ ## 安装方式
26
+
27
+ ### 一键安装所有 Skill
28
+
29
+ ```bash
30
+ npx skills add https://cnb.cool/cnb/skills/cnb-skill.git --skill '*' --agent codebuddy -y
31
+ ```
32
+
33
+ ### 只安装指定的 Skill
34
+
35
+ ```bash
36
+ # 列出所有可用的 Skill
37
+ npx skills add https://cnb.cool/cnb/skills/cnb-skill.git --list
38
+
39
+ # 安装单个 Skill
40
+ npx skills add https://cnb.cool/cnb/skills/cnb-skill.git --skill cnb-skill --agent codebuddy -y
41
+
42
+ # 安装多个指定 Skill
43
+ npx skills add https://cnb.cool/cnb/skills/cnb-skill.git --skill cnb-skill --skill code-review --skill pr-diff --agent codebuddy -y
44
+ ```
45
+
46
+ ### 使用 cnb-skill 还需安装 cnb-cli
47
+
48
+ ```bash
49
+ npm install cnb-cli --registry=https://npm.cnb.cool/cnb/skills/cnb-cli/-/packages/ -g
50
+ ```
51
+
52
+ 安装完成后运行 `cnb --help` 验证是否安装成功。
53
+
54
+ ## AI 安装提示词
55
+
56
+ 将以下提示词复制后发送给 AI 智能体(如 CodeBuddy),即可自动完成所有安装:
57
+
58
+ ```
59
+ 请帮我安装 CNB Skills 的运行环境,依次执行以下步骤:
60
+
61
+ 1. 全局安装 cnb-cli:
62
+ npm install cnb-cli --registry=https://npm.cnb.cool/cnb/skills/cnb-cli/-/packages/ -g
63
+ 安装完成后运行 cnb --help 验证是否安装成功。
64
+
65
+ 2. 全局安装 skills 工具:
66
+ npm install skills -g
67
+
68
+ 3. 通过 skills 工具安装所有 skill 到当前工作目录:
69
+ npx skills add https://cnb.cool/cnb/skills/cnb-skill.git --skill '*' --agent codebuddy -y --copy
70
+
71
+ 每一步执行完后告诉我结果,如果有报错请帮我解决。
72
+ ```
73
+
74
+ ## 本地开发
75
+
76
+ ```bash
77
+ # 安装依赖
78
+ npm install
79
+
80
+ # 本地链接所有 Skill(开发调试用)
81
+ npm run link:all
82
+
83
+ # 重新生成 cnb-skill(基于 OpenAPI Swagger)
84
+ npm run gen:skill
85
+ ```
86
+
87
+ ## 目录结构
88
+
89
+ ```
90
+ .
91
+ ├── skills/
92
+ │ ├── cnb-skill/ # CNB OpenAPI 交互
93
+ │ ├── cnb-code-import/ # 代码仓库批量迁移
94
+ │ ├── artifact-migrate/ # 制品批量迁移
95
+ │ ├── code-review/ # PR 代码评审
96
+ │ ├── pr-diff/ # PR diff 获取
97
+ │ ├── pr-summary/ # PR 变更总结
98
+ │ ├── auto-code/ # 自动编码
99
+ │ ├── dialog-ci-log/ # CI 日志查询
100
+ │ ├── diagnose-pr-pipeline/ # PR 流水线诊断
101
+ │ ├── tapd-resource-fetcher/ # Tapd 资源获取
102
+ │ └── text-path-converter/ # 路径转换器
103
+ ├── bin/
104
+ │ └── cnb.js # cnb-cli 入口
105
+ ├── package.json
106
+ └── cag.config.js # OpenAPI 生成配置
107
+ ```
108
+
109
+ ## 环境变量
110
+
111
+ | 变量名 | 描述 | 是否必需 | 示例值 |
112
+ |--------|------|----------|--------|
113
+ | CNB_TOKEN | 访问凭证 | 必须 | - |
114
+ | CNB_API_ENDPOINT | API端点地址 | 必须 | https://api.cnb.cool |
115
+ | CNB_BRANCH | 默认分支 | 选填 | main |
116
+
117
+ ## 关键词
118
+
119
+ CNB、云原生构建、组织、代码仓库、Issue、PR、合并请求、流水线、制品库、代码迁移、制品迁移、代码评审、CI/CD
package/bin/cnb.js ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+
3
+ require("../skills/cnb-skill/scripts/core/index.js");
package/cag.config.js ADDED
@@ -0,0 +1,57 @@
1
+ module.exports = {
2
+ target: 'https://api.cnb.cool/swagger.json',
3
+ skillsOutputDir: `./skills/cnb-skill`,
4
+ // skillsDev: true,
5
+ skillConfig: {
6
+ fetchConfig: {
7
+ responseConverter: {
8
+ 'get@/{repo}/-/issues/{number}': {
9
+ converter: 'convert-link',
10
+ handler: (handler, fetchOriginParams, data) => {
11
+ data.body = handler(data.body, fetchOriginParams.path.repo);
12
+ return data
13
+ }
14
+ },
15
+ 'get@/{repo}/-/issues/{number}/comments/{comment_id}': {
16
+ converter: 'convert-link',
17
+ handler: (handler, fetchOriginParams, data) => {
18
+ data.body = handler(data.body, fetchOriginParams.path.repo);
19
+ return data
20
+ }
21
+ },
22
+ 'get@/{repo}/-/issues/{number}/comments': {
23
+ converter: 'convert-link',
24
+ handler: (handler, fetchOriginParams, data) => {
25
+ for (let i = 0; i < data.length; i++) {
26
+ data[i].body = handler(data[i].body, fetchOriginParams.path.repo);
27
+ }
28
+ return data
29
+ }
30
+ },
31
+ 'get@/{repo}/-/pulls/{number}': {
32
+ converter: 'convert-link',
33
+ handler: (handler, fetchOriginParams, data) => {
34
+ data.body = handler(data.body, fetchOriginParams.path.repo);
35
+ return data
36
+ }
37
+ },
38
+ 'get@/{repo}/-/pulls/{number}/comments/{comment_id}': {
39
+ converter: 'convert-link',
40
+ handler: (handler, fetchOriginParams, data) => {
41
+ data.body = handler(data.body, fetchOriginParams.path.repo);
42
+ return data
43
+ }
44
+ },
45
+ 'get@/{repo}/-/pulls/{number}/comments': {
46
+ converter: 'convert-link',
47
+ handler: (handler, fetchOriginParams, data) => {
48
+ for (let i = 0; i < data.length; i++) {
49
+ data[i].body = handler(data[i].body, fetchOriginParams.path.repo);
50
+ }
51
+ return data
52
+ }
53
+ },
54
+ }
55
+ }
56
+ }
57
+ }
package/package.json ADDED
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "@cnbcool/cnb-cli",
3
+ "version": "1.0.0",
4
+ "description": "CNB Skill",
5
+ "main": "skills/cnb-skill/scripts/index.js",
6
+ "scripts": {
7
+ "link:all": "npx skills add ./skills --agent codebuddy --copy -y --skill '*'",
8
+ "link:skill": "npx skills add ./skills --agent codebuddy --copy -y",
9
+ "gen:skill": "npx csg"
10
+ },
11
+ "bin": {
12
+ "cnb": "bin/cnb.js"
13
+ },
14
+ "author": "",
15
+ "license": "MIT",
16
+ "devDependencies": {
17
+ "@cnbcool/cnb-api-generate": "^1.0.0",
18
+ "skills": "^1.4.4"
19
+ }
20
+ }
@@ -0,0 +1,79 @@
1
+
2
+ # Skill:CNB 制品批量迁移工具
3
+
4
+ ## 📌 基本信息
5
+
6
+ | 字段 | 值 |
7
+ |------|------|
8
+ | **名称** | artifact-migrate |
9
+ | **版本** | 1.0.0 |
10
+ | **作者** | CNB Team |
11
+ | **适用平台** | OpenClaw / CoeBuddy 及其他兼容智能体平台 |
12
+ | **许可证** | MIT |
13
+
14
+ ## 🎯 Skill 目标
15
+
16
+ 该 Skill 提供一个 Docker 化的制品批量迁移工具,帮助用户将 **Maven、NPM、Docker、NuGet、Composer、PyPI、Conan、Cargo** 等多种类型的制品,从 **CODING / CNB / CodeUp / Nexus / Jfrog / TCR / 标准协议仓库**一键迁移至 **CNB 制品仓库**。
17
+
18
+ 工具内置以下高级特性:
19
+ - ✅ **断点续传**:中断后再次运行可自动从断点继续,优先重试失败制品
20
+ - ✅ **正则过滤**:通过包含/排除正则灵活控制迁移范围
21
+ - ✅ **并发迁移**:生产者-消费者模式,支持配置并发数(最大 256)
22
+ - ✅ **增量迁移**:自动跳过目标仓库已存在的版本
23
+ - ✅ **统计报告**:迁移结束自动输出总数 / 成功数 / 存在数 / 忽略数 / 错误数
24
+
25
+ ## 📋 支持矩阵
26
+
27
+ ### 制品类型 × 源仓库平台
28
+
29
+ | 制品类型 | CODING | CNB | CodeUp | Nexus | Jfrog | TCR | Other |
30
+ |----------|:------:|:---:|:------:|:-----:|:-----:|:---:|:-----:|
31
+ | Maven | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ |
32
+ | NPM | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ |
33
+ | Docker | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✓ |
34
+ | NuGet | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ |
35
+ | Composer | ✓ | ✓ | ✗ | ✗ | ✓ | ✗ | ✓ |
36
+ | PyPI | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ |
37
+ | Conan | ✓ | ✓ | ✗ | ✓ | ✓ | ✗ | ✗ |
38
+ | Cargo | ✗ | ✓ | ✗ | ✓ | ✓ | ✗ | ✓ |
39
+
40
+ ## 🔧 前置条件
41
+
42
+ | 条件 | 说明 |
43
+ |------|------|
44
+ | Docker ≥ 19.03 | 或 Podman ≥ 3.0,用于运行迁移工具容器 |
45
+ | 源仓库读取权限 | 用户名 + 密码/Token(公开仓库可不填) |
46
+ | 目标仓库写入权限 | CNB 制品仓库的访问 Token |
47
+
48
+ ## 🚀 快速开始
49
+
50
+ ```bash
51
+ docker run --rm \
52
+ -e ARTIFACT_TYPE=npm \
53
+ -e SRC_REGISTRY_TYPE=coding \
54
+ -e SRC_REGISTRY_URL="https://example-npm.pkg.coding.net/my-project/my-repo/" \
55
+ -e SRC_REGISTRY_USERNAME="my-username" \
56
+ -e SRC_REGISTRY_PASSWORD=xxx \
57
+ -e SRC_CODING_DISABLE_THIRD_PACKAGE=true \
58
+ -e TAR_REGISTRY_URL="https://npm.cnb.cool/my-project2/my-repo2/-/packages/" \
59
+ -e TAR_REGISTRY_PASSWORD=xxx \
60
+ -u root \
61
+ -v $(pwd)/log:/app/log \
62
+ docker.cnb.cool/cnb/plugins/cnbcool/artifact-migrate:latest
63
+ ```
64
+
65
+ ## 📖 详细文档
66
+
67
+ 完整的 Skill 文档请查看 [skill.md](skill/skill.md),包含:
68
+
69
+ - ⚙️ 完整参数说明(25+ 个配置参数)
70
+ - 🚀 详细使用步骤
71
+ - 📝 5 个完整示例(全量迁移 / 正则过滤 / Docker 迁移 / 断点续传 / 云原生构建)
72
+ - 🔄 迁移流程图
73
+ - 🧩 核心架构与逻辑说明
74
+ - ⚠️ 注意事项与常见错误排查
75
+ - 📊 输出结果说明与智能体总结模板
76
+
77
+ ## 🏷️ 标签
78
+
79
+ `artifact` `migration` `devops` `cicd` `docker` `maven` `npm` `nuget` `pypi` `composer` `conan` `cargo`