@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
@@ -0,0 +1,66 @@
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.woa.com/cnb/frontend-science/cnb-api-generate ##
18
+ * -------------------------------------------------------------------------
19
+ * @Version 1.0.0
20
+ * @Source /workspace/stop
21
+ */
22
+
23
+ /**
24
+ * @description Other reuqest params
25
+ */
26
+
27
+ /**
28
+ * @description WorkspaceStopRes Success Response Type
29
+ */
30
+
31
+ /**
32
+ * @description WorkspaceStopError Error Response Type
33
+ */
34
+
35
+ /**
36
+ * @description 访问令牌调用此接口需包含以下权限。Required permissions for access token.
37
+ * account-engage:rw
38
+ * @tags Workspace
39
+ * @name workspaceStop
40
+ * @summary 停止/关闭我的云原生开发环境。Stop/close my workspace.
41
+ * @request post:/workspace/stop
42
+
43
+ ----------------------------------
44
+ * @param {DtoWorkspaceStopReq} arg0
45
+ * @param {RequestConfig} arg1 - Other reuqest params
46
+ */
47
+ async function _default(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: "/workspace/stop",
57
+ _apiTag: "/workspace/stop",
58
+ method: "post",
59
+ data: request,
60
+ _originParams: {
61
+ method: "post",
62
+ _apiTag: "/workspace/stop",
63
+ body: request
64
+ }
65
+ });
66
+ }
@@ -0,0 +1,3 @@
1
+ # code-review-skill
2
+
3
+ PR 代码评审。当用户请求 review、评审、审查代码或 PR 时使用。此技能提供标准化评审流程:获取 diff、按优先级检查安全漏洞/Bug/代码质量、输出结构化 JSON 结果、通过 API 发送行级评论。
@@ -0,0 +1,131 @@
1
+ ---
2
+ name: code-review
3
+ description: PR 代码评审。当用户请求 review、评审、审查代码或 PR 时使用。此技能提供标准化评审流程:获取 diff、按优先级检查安全漏洞/Bug/代码质量、输出结构化 JSON 结果、通过 API 发送行级评论。
4
+ allowed-tools: Bash,Read,Glob,Grep
5
+ ---
6
+
7
+ # PR 代码评审
8
+
9
+ 对 PR 的代码变更进行专业评审,发现安全漏洞、Bug、代码质量和性能问题,并通过 PR Review API 发送行级评论。
10
+
11
+ ## 评审步骤
12
+
13
+ ### 1. 获取 PR 变更
14
+
15
+ 使用 pr-diff Skill 获取 PR 的代码变更。
16
+
17
+ **需过滤的非代码文件**(不评审):
18
+ - 依赖锁文件:`package-lock.json`, `yarn.lock`, `pnpm-lock.yaml`, `go.sum`, `Cargo.lock` 等
19
+ - 图片文件:`*.png`, `*.jpg`, `*.gif`, `*.svg`, `*.ico` 等
20
+ - 字体文件:`*.woff`, `*.ttf`, `*.eot` 等
21
+ - 二进制文件:`*.exe`, `*.dll`, `*.so`, `*.jar`, `*.pyc` 等
22
+ - 压缩文件:`*.zip`, `*.tar.gz`, `*.rar` 等
23
+ - 压缩的代码:`*.min.js`, `*.min.css`, `*.map`
24
+ - 构建产物目录:`dist/`, `build/`, `out/`, `target/`, `.next/`
25
+ - 依赖目录:`node_modules/`, `vendor/`, `.venv/`
26
+
27
+ **文件限制**:
28
+ - 最多评审 30 个文件
29
+ - diff 最大 100000 字符(超出则截断)
30
+
31
+ ### 2. 分析代码
32
+
33
+ **评审重点**(按优先级):
34
+
35
+ 1. **安全漏洞**:SQL 注入、XSS、CSRF、硬编码凭证、敏感信息泄露、不安全加密
36
+ 2. **潜在 Bug**:空指针、数组越界、并发问题、资源泄漏、异常处理不当
37
+ 3. **代码质量**:可读性、命名规范、代码重复
38
+ 4. **性能问题**:N+1 查询、低效算法、不必要的 I/O
39
+
40
+ **评审原则**:
41
+ - 只评审新增代码(diff 中 `+` 开头的行,不含 `+++` 文件头)
42
+ - **禁止评审**:删除的代码(`-` 开头)、上下文代码、未修改的代码
43
+ - **忽略**:EOF 换行符、行尾空格、缩进风格(应由 linter 处理)
44
+
45
+ **理解上下文**:
46
+ 当 diff 上下文不足以理解代码时(如需要看函数定义、类型、依赖关系),使用 Read 工具读取相关源文件理解上下文,并确认准确的行号。
47
+
48
+ ### 3. 输出评审结果
49
+
50
+ **必须严格输出以下 JSON 格式**:
51
+
52
+ ```json
53
+ {
54
+ "status": "passed | needs_modification | critical",
55
+ "issues": [
56
+ {
57
+ "severity": "critical | warning | info",
58
+ "file": "文件路径",
59
+ "start_line": 起始行号,
60
+ "end_line": 结束行号,
61
+ "problem": "问题:描述问题",
62
+ "suggestion": "建议:修复建议"
63
+ }
64
+ ]
65
+ }
66
+ ```
67
+
68
+ **字段说明**:
69
+ - `status`: 评审状态
70
+ - `passed`: 通过,无问题
71
+ - `needs_modification`: 需要修改
72
+ - `critical`: 存在严重问题
73
+ - `severity`: 问题严重程度
74
+ - `critical`: 严重(安全漏洞、崩溃 Bug)
75
+ - `warning`: 警告(潜在问题)
76
+ - `info`: 建议(代码质量改进)
77
+ - `start_line` / `end_line`: 问题代码的行号范围(对应新文件行号)
78
+ - `problem` / `suggestion`: 使用 Markdown 格式,提高可读性
79
+ - 使用 \`代码\` 标记变量名、函数名
80
+ - 使用代码块展示修复示例
81
+
82
+ **无问题时**:`issues` 为空数组 `[]`
83
+
84
+ ### 4. 发送评审评论
85
+
86
+ **重要**:使用 CNB API 发送评论,API 基础地址从环境变量 `CNB_API_ENDPOINT` 获取(默认 `https://api.cnb.cool`),仓库名从环境变量 `CNB_REPO_SLUG` 获取,PR 编号从环境变量 `CNB_PULL_REQUEST_IID` 获取。
87
+
88
+ **有问题时**:调用 PostPullReview 接口发送行级评审评论:
89
+
90
+ ```bash
91
+ curl -X POST \
92
+ "${CNB_API_ENDPOINT:-https://api.cnb.cool}/${CNB_REPO_SLUG}/-/pulls/${CNB_PULL_REQUEST_IID}/reviews" \
93
+ -H "Accept: application/vnd.cnb.api+json" \
94
+ -H "Authorization: Bearer $CNB_TOKEN" \
95
+ -H "Content-Type: application/json" \
96
+ -d '{
97
+ "body": "**评审结果**: 需要修改",
98
+ "event": "comment",
99
+ "comments": [
100
+ {
101
+ "body": "问题: ...\n建议: ...",
102
+ "path": "文件路径",
103
+ "start_line": 起始行号,
104
+ "start_side": "right",
105
+ "end_line": 结束行号,
106
+ "end_side": "right",
107
+ "subject_type": "line"
108
+ }
109
+ ]
110
+ }'
111
+ ```
112
+
113
+ **无问题时**:调用 PostPullComment 接口发送总结评论:
114
+
115
+ ```bash
116
+ curl -X POST \
117
+ "${CNB_API_ENDPOINT:-https://api.cnb.cool}/${CNB_REPO_SLUG}/-/pulls/${CNB_PULL_REQUEST_IID}/comments" \
118
+ -H "Accept: application/vnd.cnb.api+json" \
119
+ -H "Authorization: Bearer $CNB_TOKEN" \
120
+ -H "Content-Type: application/json" \
121
+ -d '{
122
+ "body": "**评审结果**: 通过\n\n代码质量良好,未发现明显问题。"
123
+ }'
124
+ ```
125
+
126
+ ## 注意事项
127
+
128
+ 1. **最多发送 10 条评论**,优先发送严重程度高的问题(critical > warning > info)
129
+ 2. 行号必须对应 diff 中的**新文件行号**(右侧行号),务必通过读取源文件确认
130
+ 3. 每条评论要具体说明问题原因和修复建议
131
+ 4. 评审结果必须是有效的 JSON 格式
@@ -0,0 +1,15 @@
1
+ {
2
+ "hooks": {
3
+ "PreToolUse": [
4
+ {
5
+ "matcher": "(?i)(代码评审|代码审查|code\\s*review|review\\s*(this\\s*)?PR|review\\s*(this\\s*)?MR|评审\\s*(这个)?\\s*(PR|MR|合并请求)|帮我\\s*(做)?\\s*(代码)?\\s*review|帮我\\s*评审)",
6
+ "hooks": [
7
+ {
8
+ "type": "prompt",
9
+ "prompt": "用户请求进行代码评审。请使用 code-review 技能来自动获取 PR 变更并进行逐行评审"
10
+ }
11
+ ]
12
+ }
13
+ ]
14
+ }
15
+ }
@@ -0,0 +1,3 @@
1
+ # diagnose-pr-pipeline
2
+
3
+ 用于获取合并请求(Pull Request)报错的详细信息。当合并请求触发的 CI 流水线出现失败、报错、构建异常等情况时,可使用本 Skill 逐步定位具体报错原因。执行流程包括:查询 PR 状态检查获取构建编号、查询流水线构建状态获取失败 Stage ID、查询 Stage 详情获取具体报错信息。
@@ -0,0 +1,88 @@
1
+ ---
2
+ name: diagnose-pr-pipeline
3
+ description: 用于获取 CNB 平台合并请求(Pull Request)报错的详细信息。当合并请求触发的 CI 流水线出现失败、报错、构建异常等情况时,可使用本 Skill 逐步定位具体报错原因。执行流程包括:查询 PR 状态检查获取构建编号、查询流水线构建状态获取失败 Stage ID、查询 Stage 详情获取具体报错信息。
4
+ ---
5
+
6
+ # 获取合并请求报错详情
7
+
8
+ ## 描述
9
+
10
+ 当 CNB 平台合并请求(Pull Request)触发的 CI 流水线出现报错时,通过本 Skill 可以逐步定位并获取具体的报错详情信息。
11
+
12
+ > ⚠️ **注意:以下步骤必须严格按顺序执行,每一步的输出结果是下一步的输入依据。**
13
+
14
+ ## 依赖
15
+
16
+ - [cnb-skill]: 提供与CNB(Cloud Native Build)OpenAPI的完整交互能力,支持项目、组织、代码仓库、Issue、PR、合并请求、流水线,制品库等核心功能的增删改查操作。适用于开发协作、代码管理和CI/CD流程管理场景。关键词:CNB、云原生构建、组织、代码仓库、Issue、PR、合并请求、流水线、制品库,查询、新增、修改、删除、评论、合并、审批。
17
+
18
+ ---
19
+
20
+ ## 使用步骤
21
+
22
+ ### Step 1:查询 Pull Request 的状态检查
23
+
24
+ 查询指定 Pull Request 的状态检查信息,从返回结果中找到**状态检查的详细信息链接地址**。
25
+
26
+ 链接地址格式如下:
27
+
28
+ ```
29
+ {CNB_WEB_ENDPOINT}/{CNB_REPO_SLUG}/-/build/logs/{sn}
30
+ ```
31
+
32
+ | 参数 | 说明 |
33
+ | ------------------- | ------------------------ |
34
+ | `CNB_WEB_ENDPOINT` | CNB 平台的 Web 访问地址 |
35
+ | `CNB_REPO_SLUG` | 仓库的唯一标识(slug) |
36
+ | `sn` | 流水线构建编号 |
37
+
38
+ **目标:** 从链接地址中提取 `{sn}`,即流水线构建编号,供下一步使用。
39
+
40
+ ---
41
+
42
+ ### Step 2:查询流水线构建状态
43
+
44
+ 使用上一步获取到的流水线构建编号 `{sn}`,查询该流水线的构建状态。
45
+
46
+ 从返回结果中找到**失败的 Stage ID**。
47
+
48
+ **目标:** 获取失败 Stage 的 `id`,供下一步使用。
49
+
50
+ ---
51
+
52
+ ### Step 3:查询流水线 Stage 详情
53
+
54
+ 使用上一步获取到失败 Stage 的 `id`,查询该 Stage 的详细信息。
55
+
56
+ 从返回结果中找到**具体的报错信息**。
57
+
58
+ **目标:** 获取完整的报错详情,定位问题根因。
59
+
60
+ ---
61
+
62
+ ## 执行流程图
63
+
64
+ ```
65
+ 查询 PR 状态检查
66
+
67
+
68
+ 提取详情链接中的构建编号 {sn}
69
+
70
+
71
+ 查询流水线构建状态(入参:{sn})
72
+
73
+
74
+ 提取失败的 Stage ID
75
+
76
+
77
+ 查询 Stage 详情(入参:stage_id)
78
+
79
+
80
+ 获取具体报错信息 ✅
81
+ ```
82
+
83
+ ---
84
+
85
+ ## 注意事项
86
+
87
+ - 每一步必须在上一步**成功获取到所需参数**后再执行,不可跳步。
88
+ - 若 Step 2 返回的构建中存在多个失败 Stage,可逐一查询每个失败 Stage 的详情,以获取完整的报错信息。
@@ -0,0 +1,16 @@
1
+ # dialog-ci-log
2
+
3
+ 一个 Skill,用于查询 CNB CI 流水线的失败日志,快速定位构建失败原因。
4
+
5
+ ## 能力说明
6
+
7
+ 当你提供以下任一信息时,Skill 会自动查询并分析流水线的报错日志:
8
+
9
+ - **构建编号(sn)**,如 `cnb-lf3-1jk2v2sl2`
10
+ - **构建日志链接**,如 `https://cnb.woa.com/{repo}/-/build/logs/{sn}`
11
+
12
+ Skill 会自动完成以下工作:
13
+
14
+ 1. 从输入中解析仓库标识和构建编号
15
+ 2. 查询流水线中所有失败 Stage 的详细日志
16
+ 3. 汇总失败原因,并给出修复建议
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: dialog-ci-log
3
+ description: 传入流水线的 sn ,查询 CI 流水线的错误日志。当用户提供 CI 构建链接或 sn 编号,想查看流水线报错、构建失败原因时使用。
4
+ allowed-tools: Bash,Read,Write,Edit,Glob,Grep
5
+ ---
6
+
7
+ # 查询 CI 流水线错误日志
8
+
9
+ ## 使用场景
10
+
11
+ 用户提供以下任一信息时触发:
12
+ - 流水线构建编号(sn),如 `cnb-lf3-1jk2v2sl2`
13
+ - 构建日志链接,如 `${CNB_WEB_ENDPOINT}/{repo}/-/build/logs/{sn}`
14
+
15
+ ## 执行步骤
16
+
17
+ ### Step 1:解析参数
18
+
19
+ 从用户输入中提取必要信息:
20
+
21
+ - **如果用户给了链接**:从 URL 中解析出 `CNB_REPO_SLUG` 和 `sn`
22
+ - URL 格式:`${CNB_WEB_ENDPOINT}/{CNB_REPO_SLUG}/-/build/logs/{sn}`
23
+ - `CNB_WEB_ENDPOINT` 从环境变量获取,默认为 `https://cnb.cool`
24
+ - 例:`https://cnb.cool/group/repo/-/build/logs/cnb-lf3-1jk2v2sl2` → `CNB_REPO_SLUG=group/repo`, `sn=cnb-lf3-1jk2v2sl2`
25
+
26
+ `CNB_TOKEN` 从环境变量获取,若不存在则向用户询问。
27
+
28
+ ### Step 2:运行脚本获取日志
29
+
30
+ ```bash
31
+ node ~/.codebuddy/skills/dialog-ci-log/scripts/get-failed-stage-logs.js {sn}
32
+ ```
33
+
34
+ 脚本路径:项目根目录下的 `scripts/get-failed-stage-logs.js`
35
+
36
+ ### Step 3:分析并汇报结果
37
+
38
+ 根据脚本输出:
39
+ 1. 列出所有失败的 Stage 名称
40
+ 2. 提取关键报错信息,给出简明的失败原因总结
41
+ 3. 如有可能,给出修复建议
@@ -0,0 +1,124 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * 查询流水线失败 Stage 日志
5
+ *
6
+ * 用法: node scripts/get-failed-stage-logs.js <sn>
7
+ *
8
+ * 环境变量:
9
+ * CNB_API_ENDPOINT - API 地址,默认 https://api.cnb.cool
10
+ * CNB_REPO_SLUG - 仓库标识,如 owner/repo(必填)
11
+ * PLUGIN_CNB_ACCESS_TOKEN - 访问令牌(必填)
12
+ */
13
+
14
+ const sn = process.argv[2];
15
+ if (!sn) {
16
+ console.error('用法: node scripts/get-failed-stage-logs.js <sn>');
17
+ process.exit(1);
18
+ }
19
+
20
+ const API_ENDPOINT = process.env.CNB_API_ENDPOINT;
21
+ const REPO_SLUG = process.env.CNB_REPO_SLUG;
22
+ const TOKEN = process.env.PLUGIN_CNB_ACCESS_TOKEN;
23
+
24
+ if (!REPO_SLUG) {
25
+ console.error('缺少环境变量 CNB_REPO_SLUG');
26
+ process.exit(1);
27
+ }
28
+ if (!TOKEN) {
29
+ console.error('缺少环境变量 PLUGIN_CNB_ACCESS_TOKEN');
30
+ process.exit(1);
31
+ }
32
+
33
+ const HEADERS = {
34
+ Accept: 'application/vnd.cnb.api+json',
35
+ Authorization: TOKEN,
36
+ };
37
+
38
+ async function request(path) {
39
+ const url = `${API_ENDPOINT}/${REPO_SLUG}${path}`;
40
+ const res = await fetch(url, { headers: HEADERS });
41
+ if (!res.ok) {
42
+ throw new Error(`请求失败: ${res.status} ${res.statusText} — ${url}`);
43
+ }
44
+ return res.json();
45
+ }
46
+
47
+ async function getBuildStatus(sn) {
48
+ return request(`/-/build/status/${sn}`);
49
+ }
50
+
51
+ async function getStageDetail(sn, pipelineId, stageId) {
52
+ return request(`/-/build/logs/stage/${sn}/${pipelineId}/${stageId}`);
53
+ }
54
+
55
+ async function main() {
56
+ console.log(`查询构建 sn=${sn} 的流水线状态...\n`);
57
+
58
+ const buildStatus = await getBuildStatus(sn);
59
+
60
+ if (!buildStatus.pipelinesStatus || typeof buildStatus.pipelinesStatus !== 'object') {
61
+ console.log('未找到流水线状态信息');
62
+ console.log('返回数据:', JSON.stringify(buildStatus, null, 2));
63
+ return;
64
+ }
65
+
66
+ const pipelines = Object.entries(buildStatus.pipelinesStatus);
67
+ if (pipelines.length === 0) {
68
+ console.log('该构建没有流水线');
69
+ return;
70
+ }
71
+
72
+ let hasFailure = false;
73
+
74
+ for (const [pipelineName, pipeline] of pipelines) {
75
+ const { id: pipelineId, status, stages } = pipeline;
76
+
77
+ if (!Array.isArray(stages)) continue;
78
+
79
+ const failedStages = stages.filter((s) => s.status === 'error');
80
+ if (failedStages.length === 0) continue;
81
+
82
+ hasFailure = true;
83
+ console.log(`━━━ 流水线: ${pipelineName} (status: ${status}) ━━━\n`);
84
+
85
+ for (const stage of failedStages) {
86
+ console.log(`▸ 失败 Stage: ${stage.name || stage.id} (status: ${stage.status})`);
87
+
88
+ try {
89
+ const detail = await getStageDetail(sn, pipelineId, stage.id);
90
+
91
+ if (detail.error) {
92
+ console.log(` 错误信息: ${detail.error}`);
93
+ }
94
+ if (detail.duration != null) {
95
+ console.log(` 耗时: ${detail.duration}ms`);
96
+ }
97
+
98
+ if (Array.isArray(detail.content) && detail.content.length > 0) {
99
+ console.log(' ─── 日志 ───');
100
+ for (const line of detail.content) {
101
+ console.log(` ${line}`);
102
+ }
103
+ console.log(' ─── 日志结束 ───');
104
+ } else {
105
+ console.log(' (无日志内容)');
106
+ }
107
+ } catch (e) {
108
+ console.error(` 查询 Stage 详情失败: ${e.message}`);
109
+ }
110
+
111
+ console.log();
112
+ }
113
+ }
114
+
115
+ if (!hasFailure) {
116
+ console.log('所有流水线均无失败的 Stage');
117
+ console.log(`整体构建状态: ${buildStatus.status}`);
118
+ }
119
+ }
120
+
121
+ main().catch((e) => {
122
+ console.error(`执行失败: ${e.message}`);
123
+ process.exit(1);
124
+ });
@@ -0,0 +1,3 @@
1
+ # pr-diff-skill
2
+
3
+ 获取 PR 的 diff 变更信息。当需要查看 PR 代码变更、获取文件差异时使用此技能。
@@ -0,0 +1,97 @@
1
+ ---
2
+ name: pr-diff
3
+ description: 获取 PR 的 diff 变更信息。当需要查看 PR 代码变更、获取文件差异时使用此技能。
4
+ allowed-tools: Bash
5
+ ---
6
+
7
+ # 获取 PR Diff
8
+
9
+ 获取 PR 的代码变更差异信息,用于代码评审、变更总结等场景。
10
+
11
+ ## 1. 判断场景并获取 SHA
12
+
13
+ ### 场景 A:PR 评论触发(`CNB_PULL_REQUEST_IID` 存在)
14
+
15
+ 直接从环境变量获取:
16
+ - head SHA:`CNB_PULL_REQUEST_SHA`
17
+ - target SHA:`CNB_PULL_REQUEST_TARGET_SHA`
18
+
19
+ 若环境变量不存在,通过 API 查询当前 PR 详情。
20
+
21
+ ### 场景 B:Issue 或其他场景引用 PR
22
+
23
+ 用户输入中提及了 PR 编号(如 `!45`),需要:
24
+ 1. 从用户输入中解析 PR 编号
25
+ 2. 通过 API 查询该 PR 详情获取 SHA
26
+ 3. fetch 对应的 commit(本地可能没有)
27
+
28
+ ### API 查询 PR 详情
29
+
30
+ ```bash
31
+ # 将 ${pr_iid} 替换为实际 PR 编号
32
+ pr_info=$(curl -s \
33
+ "${CNB_API_ENDPOINT:-https://api.cnb.cool}/${CNB_REPO_SLUG}/-/pulls/${pr_iid}" \
34
+ -H "Accept: application/vnd.cnb.api+json" \
35
+ -H "Authorization: Bearer $CNB_TOKEN")
36
+
37
+ head_sha=$(echo "$pr_info" | jq -r '.head.sha')
38
+ target_sha=$(echo "$pr_info" | jq -r '.base.sha')
39
+
40
+ # 场景 B 需要确保本地有这些 commit
41
+ git fetch origin "$head_sha" "$target_sha" 2>/dev/null || git fetch origin
42
+ ```
43
+
44
+ ## 2. 获取 Diff
45
+
46
+ ### 获取变更文件列表
47
+
48
+ ```bash
49
+ git diff --name-only "${target_sha}...${head_sha}"
50
+ ```
51
+
52
+ ### 获取变更统计
53
+
54
+ ```bash
55
+ git diff --stat "${target_sha}...${head_sha}"
56
+ ```
57
+
58
+ ### 获取完整 Diff
59
+
60
+ ```bash
61
+ git diff -U5 "${target_sha}...${head_sha}"
62
+ ```
63
+
64
+ ### 获取特定文件的 Diff
65
+
66
+ ```bash
67
+ git diff -U5 "${target_sha}...${head_sha}" -- path/to/file.ts
68
+ ```
69
+
70
+ ## 3. 过滤文件
71
+
72
+ 根据使用场景,可排除无需关注的文件:
73
+
74
+ ```bash
75
+ # 常见排除模式
76
+ git diff -U5 "${target_sha}...${head_sha}" -- . \
77
+ ':!package-lock.json' ':!yarn.lock' ':!pnpm-lock.yaml' ':!go.sum' ':!*.lock' \
78
+ ':!*.png' ':!*.jpg' ':!*.gif' ':!*.svg' ':!*.ico' \
79
+ ':!*.min.js' ':!*.min.css' ':!*.map' \
80
+ ':!dist/*' ':!build/*' ':!node_modules/*'
81
+ ```
82
+
83
+ **可排除的文件类型**:
84
+ - 锁文件:`package-lock.json`、`yarn.lock`、`pnpm-lock.yaml`、`go.sum`、`Cargo.lock`
85
+ - 图片/字体:`*.png`、`*.jpg`、`*.gif`、`*.svg`、`*.woff`、`*.ttf`
86
+ - 二进制:`*.exe`、`*.dll`、`*.so`、`*.jar`、`*.pyc`
87
+ - 压缩包:`*.zip`、`*.tar.gz`、`*.rar`
88
+ - 构建产物:`dist/`、`build/`、`out/`、`target/`、`.next/`
89
+ - 依赖目录:`node_modules/`、`vendor/`、`.venv/`
90
+ - 压缩文件:`*.min.js`、`*.min.css`、`*.map`
91
+
92
+ ## 4. 使用建议
93
+
94
+ 1. **diff 过大时**:先用 `--name-only` 查看文件列表,再按需获取具体文件
95
+ 2. **代码评审**:建议排除锁文件、图片、构建产物
96
+ 3. **变更总结**:可保留更多文件,但排除二进制和依赖目录
97
+ 4. **上下文行数**:`-U5` 提供 5 行上下文,可按需调整
@@ -0,0 +1,3 @@
1
+ # pr-summary-skills
2
+
3
+ PR 变更总结工具。仅用于合并请求(PR)场景。当用户请求总结 PR 变更、概述改动内容、生成变更说明时使用此技能。
@@ -0,0 +1,70 @@
1
+ ---
2
+ name: pr-summary
3
+ description: PR 变更总结工具。仅用于合并请求(PR)场景。当用户请求总结 PR 变更、概述改动内容、生成变更说明时使用此技能。
4
+ allowed-tools: Bash,Read,Glob,Grep
5
+ ---
6
+
7
+ # PR 变更总结
8
+
9
+ 对 PR 的代码变更进行分析,生成结构化的变更总结。
10
+
11
+ ## 执行步骤
12
+
13
+ ### 1. 获取变更信息
14
+
15
+ 使用 **pr-diff** Skill 获取 PR 变更:
16
+ - 先获取变更统计(`--stat`)和文件列表(`--name-only`)
17
+ - 再按需获取关键文件的具体 diff
18
+
19
+ ### 2. 过滤文件
20
+
21
+ **优先分析**(核心代码):
22
+ - 业务逻辑:`src/`、`lib/`、`app/`、`packages/`
23
+ - API/接口:`api/`、`routes/`、`controllers/`
24
+ - 配置文件:`*.config.*`、`*.yml`、`*.yaml`
25
+ - 数据库/模型:`models/`、`schema/`、`migrations/`
26
+
27
+ **跳过**(非核心文件):
28
+ - 依赖锁文件:`package-lock.json`、`yarn.lock`、`go.sum`
29
+ - 构建产物:`dist/`、`build/`、`.next/`
30
+ - 生成文件:`*.min.js`、`*.map`
31
+ - 纯测试文件(除非测试是本次变更重点)
32
+
33
+ ### 3. 分析变更
34
+
35
+ 按以下维度分析:
36
+
37
+ | 维度 | 关注点 |
38
+ |------|--------|
39
+ | **变更类型** | feat(新功能)、fix(修复)、refactor(重构)、perf(性能)、docs(文档)、chore(配置/依赖) |
40
+ | **影响范围** | 涉及哪些模块、影响哪些功能点 |
41
+ | **关键改动** | 核心逻辑变更、API 变化、数据结构变更 |
42
+ | **破坏性变更** | 不兼容改动、需要迁移的内容 |
43
+
44
+ 若上下文不足以理解代码意图,使用 Read 工具读取完整源文件。
45
+
46
+ ## 输出格式
47
+
48
+ ```markdown
49
+ **{type}**: {一句话描述}
50
+
51
+ **主要改动**
52
+ - {模块}: {变更说明}
53
+ - {模块}: {变更说明}
54
+
55
+ **注意**: {破坏性变更或风险点;如无则省略}
56
+ ```
57
+
58
+ ## 总结原则
59
+
60
+ 1. **简洁明了**:突出重点,避免逐行复述 diff
61
+ 2. **按功能分组**:按模块/功能组织,而非逐文件罗列
62
+ 3. **突出意图**:说明"为什么改"而非仅描述"改了什么"
63
+ 4. **识别风险**:主动指出破坏性变更和需要关注的点
64
+
65
+ ## 大型 PR 处理
66
+
67
+ 当文件数超过 20 个时:
68
+ 1. 先用 `--stat` 分析变更分布,按模块归类
69
+ 2. 重点分析核心模块变更(变更量大或涉及关键逻辑)
70
+ 3. 在末尾概括未详细分析的文件/模块
@@ -0,0 +1,3 @@
1
+ # tapd-saas-resource-fetcher
2
+
3
+ 获取 Tapd SaaS 环境资源。当用户提供 Tapd 链接或提及 Tapd 需求/缺陷/任务/迭代时使用。支持获取需求(story)、缺陷(bug)、任务(task)、迭代(iteration)类型资源,调用接口获取完整资源数据以供分析。