@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.
- package/.cnb.yml +37 -0
- package/DEVELOPMENT.md +345 -0
- package/LICENSE.md +9 -0
- package/README.md +119 -0
- package/bin/cnb.js +3 -0
- package/cag.config.js +57 -0
- package/downloads/1773729361207-dsfgely.png +0 -0
- package/package.json +20 -0
- package/skills/artifact-migrate/README.md +79 -0
- package/skills/artifact-migrate/SKILL.md +674 -0
- package/skills/auto-code/SKILL.md +71 -0
- package/skills/auto-code/hooks/hooks.json +15 -0
- package/skills/cnb-code-import/LICENSE +20 -0
- package/skills/cnb-code-import/README.md +311 -0
- package/skills/cnb-code-import/SKILL.md +368 -0
- package/skills/cnb-code-import/scripts/migrate.sh +371 -0
- package/skills/cnb-skill/SKILL.md +100 -0
- package/skills/cnb-skill/scripts/core/config/cag.config.js +57 -0
- package/skills/cnb-skill/scripts/core/convertLink.js +140 -0
- package/skills/cnb-skill/scripts/core/core.js +97 -0
- package/skills/cnb-skill/scripts/core/fetch-response-handler.js +34 -0
- package/skills/cnb-skill/scripts/core/help.json +35199 -0
- package/skills/cnb-skill/scripts/core/index.d.js +6 -0
- package/skills/cnb-skill/scripts/core/index.js +337 -0
- package/skills/cnb-skill/scripts/core/modules.help.js +40 -0
- package/skills/cnb-skill/scripts/core/schemaToJson.d.js +5 -0
- package/skills/cnb-skill/scripts/core/schemaToJson.js +32 -0
- package/skills/cnb-skill/scripts/core/shortcuts.js +247 -0
- package/skills/cnb-skill/scripts/core/tools.help.js +116 -0
- package/skills/cnb-skill/scripts/core/utils/convert-link.js +144 -0
- package/skills/cnb-skill/scripts/core/utils/generate-unique-id.js +10 -0
- package/skills/cnb-skill/scripts/modules/activities/get-user-activities-by-date.js +76 -0
- package/skills/cnb-skill/scripts/modules/activities/get-user-repo-activity-details.js +78 -0
- package/skills/cnb-skill/scripts/modules/activities/top-contributors.js +76 -0
- package/skills/cnb-skill/scripts/modules/ai/ai-auto-pr.js +70 -0
- package/skills/cnb-skill/scripts/modules/ai/ai-chat-completions.js +70 -0
- package/skills/cnb-skill/scripts/modules/assets/delete-asset.js +76 -0
- package/skills/cnb-skill/scripts/modules/assets/get-files.js +76 -0
- package/skills/cnb-skill/scripts/modules/assets/get-imgs.js +76 -0
- package/skills/cnb-skill/scripts/modules/assets/list-assets.js +76 -0
- package/skills/cnb-skill/scripts/modules/badge/get-badge.js +80 -0
- package/skills/cnb-skill/scripts/modules/badge/list-badge.js +70 -0
- package/skills/cnb-skill/scripts/modules/badge/upload-badge.js +70 -0
- package/skills/cnb-skill/scripts/modules/build/build-crontab-sync.js +75 -0
- package/skills/cnb-skill/scripts/modules/build/build-logs-delete.js +75 -0
- package/skills/cnb-skill/scripts/modules/build/build-runner-download-log.js +75 -0
- package/skills/cnb-skill/scripts/modules/build/get-build-logs.js +76 -0
- package/skills/cnb-skill/scripts/modules/build/get-build-stage.js +79 -0
- package/skills/cnb-skill/scripts/modules/build/get-build-status.js +75 -0
- package/skills/cnb-skill/scripts/modules/build/start-build.js +70 -0
- package/skills/cnb-skill/scripts/modules/build/stop-build.js +75 -0
- package/skills/cnb-skill/scripts/modules/charge/get-special-amount.js +68 -0
- package/skills/cnb-skill/scripts/modules/event/get-events.js +74 -0
- package/skills/cnb-skill/scripts/modules/followers/get-followers-by-user-id.js +76 -0
- package/skills/cnb-skill/scripts/modules/followers/get-following-by-user-id.js +76 -0
- package/skills/cnb-skill/scripts/modules/git/create-blob.js +70 -0
- package/skills/cnb-skill/scripts/modules/git/create-branch-lock.js +75 -0
- package/skills/cnb-skill/scripts/modules/git/create-branch.js +70 -0
- package/skills/cnb-skill/scripts/modules/git/create-tag.js +70 -0
- package/skills/cnb-skill/scripts/modules/git/delete-branch-lock.js +75 -0
- package/skills/cnb-skill/scripts/modules/git/delete-branch.js +75 -0
- package/skills/cnb-skill/scripts/modules/git/delete-commit-annotation.js +77 -0
- package/skills/cnb-skill/scripts/modules/git/delete-commit-asset.js +77 -0
- package/skills/cnb-skill/scripts/modules/git/delete-tag-annotation.js +75 -0
- package/skills/cnb-skill/scripts/modules/git/delete-tag.js +75 -0
- package/skills/cnb-skill/scripts/modules/git/get-archive-commit-changed-files.js +75 -0
- package/skills/cnb-skill/scripts/modules/git/get-archive-compare-changed-files.js +75 -0
- package/skills/cnb-skill/scripts/modules/git/get-archive.js +75 -0
- package/skills/cnb-skill/scripts/modules/git/get-branch.js +75 -0
- package/skills/cnb-skill/scripts/modules/git/get-commit-annotations-in-batch.js +70 -0
- package/skills/cnb-skill/scripts/modules/git/get-commit-annotations.js +75 -0
- package/skills/cnb-skill/scripts/modules/git/get-commit-assets-by-sha.js +75 -0
- package/skills/cnb-skill/scripts/modules/git/get-commit-assets.js +80 -0
- package/skills/cnb-skill/scripts/modules/git/get-commit-statuses.js +75 -0
- package/skills/cnb-skill/scripts/modules/git/get-commit.js +75 -0
- package/skills/cnb-skill/scripts/modules/git/get-compare-commits.js +75 -0
- package/skills/cnb-skill/scripts/modules/git/get-content-without-path.js +76 -0
- package/skills/cnb-skill/scripts/modules/git/get-content.js +78 -0
- package/skills/cnb-skill/scripts/modules/git/get-head.js +67 -0
- package/skills/cnb-skill/scripts/modules/git/get-presigned-lfs-download-link.js +78 -0
- package/skills/cnb-skill/scripts/modules/git/get-raw.js +78 -0
- package/skills/cnb-skill/scripts/modules/git/get-tag-annotations.js +75 -0
- package/skills/cnb-skill/scripts/modules/git/get-tag.js +75 -0
- package/skills/cnb-skill/scripts/modules/git/list-branches.js +76 -0
- package/skills/cnb-skill/scripts/modules/git/list-commits.js +76 -0
- package/skills/cnb-skill/scripts/modules/git/list-tags.js +76 -0
- package/skills/cnb-skill/scripts/modules/git/post-commit-asset-upload-confirmation.js +82 -0
- package/skills/cnb-skill/scripts/modules/git/post-commit-asset-upload-url.js +78 -0
- package/skills/cnb-skill/scripts/modules/git/put-commit-annotations.js +78 -0
- package/skills/cnb-skill/scripts/modules/git/put-tag-annotations.js +78 -0
- package/skills/cnb-skill/scripts/modules/git-settings/delete-branch-protection.js +75 -0
- package/skills/cnb-skill/scripts/modules/git-settings/get-branch-protection.js +75 -0
- package/skills/cnb-skill/scripts/modules/git-settings/get-pipeline-settings.js +67 -0
- package/skills/cnb-skill/scripts/modules/git-settings/get-pull-request-settings.js +67 -0
- package/skills/cnb-skill/scripts/modules/git-settings/get-push-limit-settings.js +67 -0
- package/skills/cnb-skill/scripts/modules/git-settings/list-branch-protections.js +67 -0
- package/skills/cnb-skill/scripts/modules/git-settings/patch-branch-protection.js +78 -0
- package/skills/cnb-skill/scripts/modules/git-settings/post-branch-protection.js +70 -0
- package/skills/cnb-skill/scripts/modules/git-settings/put-pipeline-settings.js +70 -0
- package/skills/cnb-skill/scripts/modules/git-settings/put-pull-request-settings.js +70 -0
- package/skills/cnb-skill/scripts/modules/git-settings/put-push-limit-settings.js +70 -0
- package/skills/cnb-skill/scripts/modules/issues/can-user-be-assigned-to-issue.js +77 -0
- package/skills/cnb-skill/scripts/modules/issues/create-issue.js +70 -0
- package/skills/cnb-skill/scripts/modules/issues/delete-issue-assignees.js +78 -0
- package/skills/cnb-skill/scripts/modules/issues/delete-issue-label.js +77 -0
- package/skills/cnb-skill/scripts/modules/issues/delete-issue-labels.js +75 -0
- package/skills/cnb-skill/scripts/modules/issues/get-issue-comment.js +77 -0
- package/skills/cnb-skill/scripts/modules/issues/get-issue.js +75 -0
- package/skills/cnb-skill/scripts/modules/issues/list-issue-activities-latest.js +77 -0
- package/skills/cnb-skill/scripts/modules/issues/list-issue-activities.js +78 -0
- package/skills/cnb-skill/scripts/modules/issues/list-issue-assignees.js +75 -0
- package/skills/cnb-skill/scripts/modules/issues/list-issue-comments.js +78 -0
- package/skills/cnb-skill/scripts/modules/issues/list-issue-labels.js +78 -0
- package/skills/cnb-skill/scripts/modules/issues/list-issues.js +76 -0
- package/skills/cnb-skill/scripts/modules/issues/patch-issue-assignees.js +78 -0
- package/skills/cnb-skill/scripts/modules/issues/patch-issue-comment.js +80 -0
- package/skills/cnb-skill/scripts/modules/issues/post-issue-assignees.js +78 -0
- package/skills/cnb-skill/scripts/modules/issues/post-issue-comment.js +78 -0
- package/skills/cnb-skill/scripts/modules/issues/post-issue-labels.js +78 -0
- package/skills/cnb-skill/scripts/modules/issues/put-issue-labels.js +78 -0
- package/skills/cnb-skill/scripts/modules/issues/update-issue-properties.js +79 -0
- package/skills/cnb-skill/scripts/modules/issues/update-issue.js +78 -0
- package/skills/cnb-skill/scripts/modules/knowledge-base/delete-knowledge-base.js +67 -0
- package/skills/cnb-skill/scripts/modules/knowledge-base/get-knowledge-base-info.js +67 -0
- package/skills/cnb-skill/scripts/modules/knowledge-base/get-models.js +67 -0
- package/skills/cnb-skill/scripts/modules/knowledge-base/query-knowledge-base.js +70 -0
- package/skills/cnb-skill/scripts/modules/members/add-members-of-group.js +78 -0
- package/skills/cnb-skill/scripts/modules/members/add-members-of-mission.js +78 -0
- package/skills/cnb-skill/scripts/modules/members/add-members-of-registry.js +78 -0
- package/skills/cnb-skill/scripts/modules/members/add-members-of-repo.js +78 -0
- package/skills/cnb-skill/scripts/modules/members/delete-members-of-group.js +75 -0
- package/skills/cnb-skill/scripts/modules/members/delete-members-of-repo.js +75 -0
- package/skills/cnb-skill/scripts/modules/members/delete-outside-collaborators.js +75 -0
- package/skills/cnb-skill/scripts/modules/members/get-member-access-level-of-group.js +76 -0
- package/skills/cnb-skill/scripts/modules/members/get-member-access-level-of-repo.js +76 -0
- package/skills/cnb-skill/scripts/modules/members/list-all-members.js +76 -0
- package/skills/cnb-skill/scripts/modules/members/list-inherit-members-of-group.js +76 -0
- package/skills/cnb-skill/scripts/modules/members/list-inherit-members-of-repo.js +76 -0
- package/skills/cnb-skill/scripts/modules/members/list-member-access-level-of-group.js +75 -0
- package/skills/cnb-skill/scripts/modules/members/list-member-access-level-of-repo.js +75 -0
- package/skills/cnb-skill/scripts/modules/members/list-members-of-group.js +76 -0
- package/skills/cnb-skill/scripts/modules/members/list-members-of-repo.js +76 -0
- package/skills/cnb-skill/scripts/modules/members/list-outside-collaborators.js +76 -0
- package/skills/cnb-skill/scripts/modules/members/update-members-of-group.js +78 -0
- package/skills/cnb-skill/scripts/modules/members/update-members-of-repo.js +78 -0
- package/skills/cnb-skill/scripts/modules/members/update-outside-collaborators.js +78 -0
- package/skills/cnb-skill/scripts/modules/missions/create-mission.js +70 -0
- package/skills/cnb-skill/scripts/modules/missions/delete-mission.js +67 -0
- package/skills/cnb-skill/scripts/modules/missions/get-group-sub-missions.js +76 -0
- package/skills/cnb-skill/scripts/modules/missions/get-mission-view-config.js +76 -0
- package/skills/cnb-skill/scripts/modules/missions/get-mission-view-list.js +67 -0
- package/skills/cnb-skill/scripts/modules/missions/post-mission-view-config.js +70 -0
- package/skills/cnb-skill/scripts/modules/missions/post-mission-view-list.js +70 -0
- package/skills/cnb-skill/scripts/modules/missions/put-mission-view-list.js +70 -0
- package/skills/cnb-skill/scripts/modules/missions/set-mission-visibility.js +76 -0
- package/skills/cnb-skill/scripts/modules/organizations/create-organization.js +66 -0
- package/skills/cnb-skill/scripts/modules/organizations/delete-organization.js +67 -0
- package/skills/cnb-skill/scripts/modules/organizations/get-group-setting.js +67 -0
- package/skills/cnb-skill/scripts/modules/organizations/get-group.js +67 -0
- package/skills/cnb-skill/scripts/modules/organizations/get-groups-by-user-id.js +76 -0
- package/skills/cnb-skill/scripts/modules/organizations/list-groups.js +76 -0
- package/skills/cnb-skill/scripts/modules/organizations/list-subgroups.js +76 -0
- package/skills/cnb-skill/scripts/modules/organizations/list-top-groups.js +72 -0
- package/skills/cnb-skill/scripts/modules/organizations/transfer-group.js +70 -0
- package/skills/cnb-skill/scripts/modules/organizations/update-group-setting.js +70 -0
- package/skills/cnb-skill/scripts/modules/organizations/update-organization.js +70 -0
- package/skills/cnb-skill/scripts/modules/organizations/upload-logos.js +70 -0
- package/skills/cnb-skill/scripts/modules/pulls/can-user-be-assigned-to-pull.js +77 -0
- package/skills/cnb-skill/scripts/modules/pulls/delete-pull-assignees.js +78 -0
- package/skills/cnb-skill/scripts/modules/pulls/delete-pull-label.js +77 -0
- package/skills/cnb-skill/scripts/modules/pulls/delete-pull-labels.js +75 -0
- package/skills/cnb-skill/scripts/modules/pulls/delete-repo-files.js +76 -0
- package/skills/cnb-skill/scripts/modules/pulls/delete-repo-imgs.js +76 -0
- package/skills/cnb-skill/scripts/modules/pulls/get-files.js +75 -0
- package/skills/cnb-skill/scripts/modules/pulls/get-imgs.js +75 -0
- package/skills/cnb-skill/scripts/modules/pulls/get-pull-comment.js +77 -0
- package/skills/cnb-skill/scripts/modules/pulls/get-pull.js +75 -0
- package/skills/cnb-skill/scripts/modules/pulls/list-pull-assignees.js +75 -0
- package/skills/cnb-skill/scripts/modules/pulls/list-pull-comments.js +78 -0
- package/skills/cnb-skill/scripts/modules/pulls/list-pull-commit-statuses.js +75 -0
- package/skills/cnb-skill/scripts/modules/pulls/list-pull-commits.js +78 -0
- package/skills/cnb-skill/scripts/modules/pulls/list-pull-files.js +75 -0
- package/skills/cnb-skill/scripts/modules/pulls/list-pull-labels.js +78 -0
- package/skills/cnb-skill/scripts/modules/pulls/list-pull-review-comments.js +80 -0
- package/skills/cnb-skill/scripts/modules/pulls/list-pull-reviews.js +78 -0
- package/skills/cnb-skill/scripts/modules/pulls/list-pulls-by-numbers.js +76 -0
- package/skills/cnb-skill/scripts/modules/pulls/list-pulls.js +76 -0
- package/skills/cnb-skill/scripts/modules/pulls/merge-pull.js +78 -0
- package/skills/cnb-skill/scripts/modules/pulls/patch-pull-comment.js +80 -0
- package/skills/cnb-skill/scripts/modules/pulls/patch-pull.js +78 -0
- package/skills/cnb-skill/scripts/modules/pulls/post-pull-assignees.js +78 -0
- package/skills/cnb-skill/scripts/modules/pulls/post-pull-comment.js +78 -0
- package/skills/cnb-skill/scripts/modules/pulls/post-pull-labels.js +78 -0
- package/skills/cnb-skill/scripts/modules/pulls/post-pull-request-review-reply.js +80 -0
- package/skills/cnb-skill/scripts/modules/pulls/post-pull-review.js +78 -0
- package/skills/cnb-skill/scripts/modules/pulls/post-pull.js +70 -0
- package/skills/cnb-skill/scripts/modules/pulls/put-pull-labels.js +78 -0
- package/skills/cnb-skill/scripts/modules/pulls/upload-files.js +70 -0
- package/skills/cnb-skill/scripts/modules/pulls/upload-imgs.js +70 -0
- package/skills/cnb-skill/scripts/modules/rank/get-language-list.js +72 -0
- package/skills/cnb-skill/scripts/modules/rank/get-repo-annual-rank.js +72 -0
- package/skills/cnb-skill/scripts/modules/rank/get-repo-daily-rank.js +72 -0
- package/skills/cnb-skill/scripts/modules/rank/get-repo-monthly-rank.js +72 -0
- package/skills/cnb-skill/scripts/modules/rank/get-repo-weekly-rank.js +72 -0
- package/skills/cnb-skill/scripts/modules/registries/delete-package-tag.js +80 -0
- package/skills/cnb-skill/scripts/modules/registries/delete-package.js +78 -0
- package/skills/cnb-skill/scripts/modules/registries/delete-registry.js +67 -0
- package/skills/cnb-skill/scripts/modules/registries/get-group-sub-registries.js +76 -0
- package/skills/cnb-skill/scripts/modules/registries/get-package-tag-detail.js +83 -0
- package/skills/cnb-skill/scripts/modules/registries/get-package.js +78 -0
- package/skills/cnb-skill/scripts/modules/registries/list-package-tags.js +81 -0
- package/skills/cnb-skill/scripts/modules/registries/list-packages.js +77 -0
- package/skills/cnb-skill/scripts/modules/registries/set-registry-visibility.js +76 -0
- package/skills/cnb-skill/scripts/modules/releases/delete-release-asset.js +77 -0
- package/skills/cnb-skill/scripts/modules/releases/delete-release.js +75 -0
- package/skills/cnb-skill/scripts/modules/releases/get-latest-release.js +67 -0
- package/skills/cnb-skill/scripts/modules/releases/get-release-asset.js +77 -0
- package/skills/cnb-skill/scripts/modules/releases/get-release-by-id.js +75 -0
- package/skills/cnb-skill/scripts/modules/releases/get-release-by-tag.js +75 -0
- package/skills/cnb-skill/scripts/modules/releases/get-releases-asset.js +80 -0
- package/skills/cnb-skill/scripts/modules/releases/list-releases.js +76 -0
- package/skills/cnb-skill/scripts/modules/releases/patch-release.js +78 -0
- package/skills/cnb-skill/scripts/modules/releases/post-release-asset-upload-confirmation.js +82 -0
- package/skills/cnb-skill/scripts/modules/releases/post-release-asset-upload-url.js +78 -0
- package/skills/cnb-skill/scripts/modules/releases/post-release.js +70 -0
- package/skills/cnb-skill/scripts/modules/repo-code-issue/get-code-issue-detail-open-api.js +76 -0
- package/skills/cnb-skill/scripts/modules/repo-code-issue/list-code-issue-open-api.js +77 -0
- package/skills/cnb-skill/scripts/modules/repo-contributor/get-repo-contributor-trend.js +76 -0
- package/skills/cnb-skill/scripts/modules/repo-labels/delete-label.js +75 -0
- package/skills/cnb-skill/scripts/modules/repo-labels/list-labels.js +76 -0
- package/skills/cnb-skill/scripts/modules/repo-labels/patch-label.js +78 -0
- package/skills/cnb-skill/scripts/modules/repo-labels/post-label.js +70 -0
- package/skills/cnb-skill/scripts/modules/repositories/archive-repo.js +67 -0
- package/skills/cnb-skill/scripts/modules/repositories/create-repo.js +70 -0
- package/skills/cnb-skill/scripts/modules/repositories/delete-repo.js +67 -0
- package/skills/cnb-skill/scripts/modules/repositories/get-by-id.js +67 -0
- package/skills/cnb-skill/scripts/modules/repositories/get-group-sub-repos.js +76 -0
- package/skills/cnb-skill/scripts/modules/repositories/get-pinned-repo-by-group.js +67 -0
- package/skills/cnb-skill/scripts/modules/repositories/get-pinned-repo-by-id.js +67 -0
- package/skills/cnb-skill/scripts/modules/repositories/get-repos-by-user-name.js +76 -0
- package/skills/cnb-skill/scripts/modules/repositories/get-repos.js +72 -0
- package/skills/cnb-skill/scripts/modules/repositories/list-forks-repos.js +76 -0
- package/skills/cnb-skill/scripts/modules/repositories/set-pinned-repo-by-group.js +70 -0
- package/skills/cnb-skill/scripts/modules/repositories/set-repo-visibility.js +76 -0
- package/skills/cnb-skill/scripts/modules/repositories/transfer-repo.js +70 -0
- package/skills/cnb-skill/scripts/modules/repositories/un-archive-repo.js +67 -0
- package/skills/cnb-skill/scripts/modules/repositories/update-repo.js +70 -0
- package/skills/cnb-skill/scripts/modules/search/list-public-repos.js +72 -0
- package/skills/cnb-skill/scripts/modules/security/get-repo-security-overview.js +76 -0
- package/skills/cnb-skill/scripts/modules/starring/get-user-all-stared-repos.js +72 -0
- package/skills/cnb-skill/scripts/modules/starring/get-user-stared-repos.js +76 -0
- package/skills/cnb-skill/scripts/modules/starring/list-star-users.js +76 -0
- package/skills/cnb-skill/scripts/modules/users/auto-complete-source.js +72 -0
- package/skills/cnb-skill/scripts/modules/users/get-user-info-by-name.js +67 -0
- package/skills/cnb-skill/scripts/modules/users/get-user-info.js +63 -0
- package/skills/cnb-skill/scripts/modules/users/list-email.js +63 -0
- package/skills/cnb-skill/scripts/modules/users/list-gpg-keys.js +72 -0
- package/skills/cnb-skill/scripts/modules/users/update-user-info.js +66 -0
- package/skills/cnb-skill/scripts/modules/workspace/delete-workspace.js +66 -0
- package/skills/cnb-skill/scripts/modules/workspace/get-workspace-detail.js +75 -0
- package/skills/cnb-skill/scripts/modules/workspace/list-workspaces.js +72 -0
- package/skills/cnb-skill/scripts/modules/workspace/start-workspace.js +70 -0
- package/skills/cnb-skill/scripts/modules/workspace/workspace-stop.js +66 -0
- package/skills/code-review/README.md +3 -0
- package/skills/code-review/SKILL.md +131 -0
- package/skills/code-review/hooks/hooks.json +15 -0
- package/skills/diagnose-pr-pipeline/README.md +3 -0
- package/skills/diagnose-pr-pipeline/SKILL.md +88 -0
- package/skills/dialog-ci-log/README.md +16 -0
- package/skills/dialog-ci-log/SKILL.md +41 -0
- package/skills/dialog-ci-log/scrips/get-failed-stage-logs.js +124 -0
- package/skills/pr-diff/README.md +3 -0
- package/skills/pr-diff/SKILL.md +97 -0
- package/skills/pr-summary/README.md +3 -0
- package/skills/pr-summary/SKILL.md +70 -0
- package/skills/tapd-resource-fetcher/README.md +3 -0
- package/skills/tapd-resource-fetcher/SKILL.md +97 -0
- package/skills/text-path-converter/README.md +3 -0
- package/skills/text-path-converter/SKILL.md +30 -0
- package/skills/text-path-converter/scripts/convertLink.js +148 -0
- package/test.js +1 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tapd-saas-resource-fetcher-skills
|
|
3
|
+
description: 获取 Tapd SaaS 环境资源。当用户提供 Tapd 链接或提及 Tapd 需求/缺陷/任务/迭代时使用。支持获取需求(story)、缺陷(bug)、任务(task)、迭代(iteration)类型资源,调用接口获取完整资源数据以供分析。
|
|
4
|
+
allowed-tools: Bash,curl
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 获取 Tapd SaaS 资源
|
|
8
|
+
|
|
9
|
+
当用户提供 Tapd 链接时,识别资源类型和 ID,调用接口获取完整资源数据,供后续分析使用。
|
|
10
|
+
|
|
11
|
+
## 执行步骤
|
|
12
|
+
|
|
13
|
+
### 1. 识别 Tapd 资源链接
|
|
14
|
+
|
|
15
|
+
从用户输入中识别 Tapd 链接,支持以下格式:
|
|
16
|
+
|
|
17
|
+
`https://www.tapd.cn/tapd_fe/{workspace_id}/{resource_type}/detail/{resource_id}`
|
|
18
|
+
|
|
19
|
+
- resource_type 为资源类型。 可取值为 story、bug、task、iteration
|
|
20
|
+
- workspace_id 为项目 ID
|
|
21
|
+
- resource_id 为资源 ID
|
|
22
|
+
|
|
23
|
+
对于给出的链接,提取 workspace_id 和 resource_type,resource_id, 用于之后的请求资源。
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### 2. 调用接口获取资源数据
|
|
27
|
+
|
|
28
|
+
**重要**:请求前需替换 `{workspace_id}`, `{resource_type}`, `{resource_id}`
|
|
29
|
+
|
|
30
|
+
对每个识别到的资源,按照以下方式获取资源数据:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
curl -X GET "{$CNB_API_ENDPOINT}/tapd/reference/{workspace_id}/{resource_type}/{resource_id}" \
|
|
34
|
+
-H "Accept: application/vnd.cnb.api+json" \
|
|
35
|
+
-H "Authorization: Bearer $CNB_TOKEN" \
|
|
36
|
+
-H "Content-Type: application/json"
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**示例** https://www.tapd.cn/tapd_fe/64201929/story/detail/1164201929001000017, 其中 workspace_id 为 64201929,resource_type 为 story,id 为 1164201929001000017。
|
|
40
|
+
请求接口如下:
|
|
41
|
+
```bash
|
|
42
|
+
curl -X GET "{$CNB_API_ENDPOINT}/tapd/reference/64201929/story/1164201929001000017" \
|
|
43
|
+
-H "Accept: application/vnd.cnb.api+json" \
|
|
44
|
+
-H "Authorization: Bearer $CNB_TOKEN" \
|
|
45
|
+
-H "Content-Type: application/json"
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### 3. 结果返回
|
|
49
|
+
API 返回标准的 JSON 格式响应。请根据 HTTP 状态码判断请求是否成功:
|
|
50
|
+
|
|
51
|
+
- 200: 请求成功
|
|
52
|
+
- 400: 请求参数错误
|
|
53
|
+
- 401: 未授权
|
|
54
|
+
- 403: 禁止访问
|
|
55
|
+
- 404: 资源不存在
|
|
56
|
+
- 500: 服务器内部错误
|
|
57
|
+
|
|
58
|
+
当本地调用返回的 `status` 在 200 ~ 299 之间,需要进一步检查响应体中的 `data` 字段:
|
|
59
|
+
- 如果 `data` 包含有效数据,返回 `data` 内容给用户。
|
|
60
|
+
- 如果 `data` 为空数组 `[]`,说明 TAPD 侧未找到对应资源,按照 3.1 节中的"数据为空"场景提示用户。
|
|
61
|
+
|
|
62
|
+
只有当 `status >= 300` 时,才将 `status` 和 `trace` 返回给用户。
|
|
63
|
+
#### 3.1 错误处理与用户提示
|
|
64
|
+
|
|
65
|
+
**情况一:HTTP 状态码 >= 300**
|
|
66
|
+
|
|
67
|
+
响应体为 JSON 格式:`{"errcode": <错误码>, "errmsg": "<错误信息>"}`。
|
|
68
|
+
|
|
69
|
+
**请根据 `errcode` 给出对应的用户友好提示**:
|
|
70
|
+
|
|
71
|
+
| errcode | 含义 | 用户侧友好提示 |
|
|
72
|
+
|---------|------|----------------|
|
|
73
|
+
| `2000076` | TAPD 功能未启用 | 当前项目未启用 TAPD 集成功能,请联系项目管理员在项目设置中开启 TAPD 集成。 |
|
|
74
|
+
| `2000073` | 未找到 TAPD 绑定信息 | 你尚未绑定 TAPD 账号,请先前往个人设置页面绑定 TAPD 账号后再试。 |
|
|
75
|
+
| `2000074` | 获取 TAPD 访问令牌失败 | TAPD 授权信息已过期或无效,请重新绑定 TAPD 账号后再试。 |
|
|
76
|
+
| `2000075` | 获取 TAPD 资源详情失败 | 无法获取该 TAPD 资源,可能是你没有对应项目的访问权限,或者资源 ID 不正确,请检查链接后重试。 |
|
|
77
|
+
| `401` | 未授权 | 请先登录 CNB 平台后再使用此功能。 |
|
|
78
|
+
| `403` | 禁止访问 | 你没有权限访问该资源。 |
|
|
79
|
+
| `404` | 资源不存在 | 未找到对应的资源,请检查链接中的项目 ID 和资源 ID 是否正确。 |
|
|
80
|
+
| 其他 | 未知错误 | 请求失败,请稍后重试。如果问题持续存在,请联系管理员并提供 trace 信息。 |
|
|
81
|
+
|
|
82
|
+
**情况二:HTTP 200 但 `data` 为空数组**
|
|
83
|
+
|
|
84
|
+
当 HTTP 状态码为 200,响应体格式为 `{"status": 1, "data": [], "info": "success"}`,`data` 为空数组 `[]` 时,说明 TAPD 接口调用成功但未查询到对应资源。
|
|
85
|
+
|
|
86
|
+
此时应给出提示:**未找到该 TAPD 资源,请检查链接中的资源 ID 是否正确。**
|
|
87
|
+
|
|
88
|
+
**注意**:给出用户提示时,不要暴露内部实现细节(如具体的错误堆栈、用户 ID 等),只提供操作引导。
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
### 4. 多资源处理
|
|
92
|
+
|
|
93
|
+
若用户提供多个 Tapd 链接,**逐个**调用接口获取,每次只请求一个资源:
|
|
94
|
+
|
|
95
|
+
1. 提取所有链接中的资源 ID 列表
|
|
96
|
+
2. 按顺序逐一调用接口,每次获取一个资源
|
|
97
|
+
3. 汇总所有资源数据后统一展示
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: CNB-Text-Relative-Path-Converter
|
|
3
|
+
description: 读取 CNB (Cloud Native Build) ISSUE 或合并请求的内容时使用。将描述、评论、Review 中包含的相对路径(如 `./src/foo.ts`)转换为绝对路径,避免因路径歧义导致误读,支持纯文本与 Markdown 格式。
|
|
4
|
+
requires:
|
|
5
|
+
bins: [node]
|
|
6
|
+
files: [scripts/convertLink.js]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# CNB 文本相对路径转换器
|
|
10
|
+
|
|
11
|
+
## 使用方式
|
|
12
|
+
|
|
13
|
+
获取到 ISSUE 或合并请求的描述、评论、Review 的原始内容后,执行以下脚本进行转换。脚本会将所有相对路径替换为绝对路径,并将转换结果输出到标准输出。
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
# 执行转换,结果输出到标准输出
|
|
17
|
+
node scripts/convertLink.js <在此粘贴原始内容>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## 示例
|
|
21
|
+
|
|
22
|
+
**转换前:**
|
|
23
|
+
```
|
|
24
|
+
请参考 ./src/utils/helper.ts 中的实现,以及 ../docs/api.md 的说明。
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**转换后:**
|
|
28
|
+
```
|
|
29
|
+
请参考 https://cnb.cool/cnb/cool/default-npc-agent/-/git/raw/main/src/utils/helper.ts 中的实现,以及 https://cnb.cool/cnb/cool/default-npc-agent/-/git/raw/main/docs/api.md 的说明。
|
|
30
|
+
```
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 把文本里的相对路径转换为绝对路径
|
|
3
|
+
* 与 src/helpers/convertLink.ts 逻辑一致
|
|
4
|
+
*
|
|
5
|
+
* @param {String} text 待转换的文本
|
|
6
|
+
* @param {String} repoSlug 仓库路径
|
|
7
|
+
* @param {String} branchOrSha 可选,分支或SHA
|
|
8
|
+
* @returns {String}
|
|
9
|
+
*/
|
|
10
|
+
function convertLink(text, repoSlug, branchOrSha) {
|
|
11
|
+
// 查询所有代码块的位置
|
|
12
|
+
let codeBlockPositions = [];
|
|
13
|
+
let index = 0;
|
|
14
|
+
while (index !== -1) {
|
|
15
|
+
const nextIndex = text.indexOf('```', index);
|
|
16
|
+
if (nextIndex === -1) break;
|
|
17
|
+
codeBlockPositions.push(nextIndex);
|
|
18
|
+
index = nextIndex + 3; // 跳过已匹配的三个反引号
|
|
19
|
+
}
|
|
20
|
+
if (codeBlockPositions.length % 2 !== 0) {
|
|
21
|
+
codeBlockPositions = codeBlockPositions.slice(0, codeBlockPositions.length - 1);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// 查询所有行内代码块的位置
|
|
25
|
+
let inlineCodeBlockPositions = [];
|
|
26
|
+
index = 0;
|
|
27
|
+
while (index < text.length) {
|
|
28
|
+
const nextIndex = text.indexOf('`', index);
|
|
29
|
+
if (nextIndex === -1) break;
|
|
30
|
+
// 检查是否是单独的反引号(不是代码块的一部分)
|
|
31
|
+
if (
|
|
32
|
+
(nextIndex === 0 || text.charAt(nextIndex - 1) !== '`') &&
|
|
33
|
+
(nextIndex === text.length - 1 || text.charAt(nextIndex + 1) !== '`')
|
|
34
|
+
) {
|
|
35
|
+
inlineCodeBlockPositions.push(nextIndex);
|
|
36
|
+
}
|
|
37
|
+
index = nextIndex + 1;
|
|
38
|
+
}
|
|
39
|
+
if (inlineCodeBlockPositions.length % 2 !== 0) {
|
|
40
|
+
inlineCodeBlockPositions = inlineCodeBlockPositions.slice(0, inlineCodeBlockPositions.length - 1);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// 整理起始和结束位置
|
|
44
|
+
const excludedRanges = [...codeBlockPositions, ...inlineCodeBlockPositions].reduce((result, item, index) => {
|
|
45
|
+
if (index % 2 === 0) {
|
|
46
|
+
return result.concat([[item]]);
|
|
47
|
+
} else {
|
|
48
|
+
result[result.length - 1].push(item);
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
51
|
+
}, []);
|
|
52
|
+
|
|
53
|
+
// Helper function to check if an index is within excluded ranges
|
|
54
|
+
const isInExcludedRange = (index) => {
|
|
55
|
+
return excludedRanges.some(([start, end]) => index >= start && index < end);
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
let match;
|
|
59
|
+
|
|
60
|
+
// Collect all replacements with their positions
|
|
61
|
+
const replacements = [];
|
|
62
|
+
|
|
63
|
+
// Match markdown links and images: [alt](url), [](url),  and 
|
|
64
|
+
const markdownLinkRegex = /!?\[([^\]]*)\]\(([^)]+)\)/g;
|
|
65
|
+
while ((match = markdownLinkRegex.exec(text)) !== null) {
|
|
66
|
+
if (!isInExcludedRange(match.index)) {
|
|
67
|
+
// Calculate URL position: match.index + length of "![" + match[1] + "]("
|
|
68
|
+
const prefixLength = (match[0].startsWith('!') ? 1 : 0) + 1 + match[1].length + 2;
|
|
69
|
+
const urlStart = match.index + prefixLength;
|
|
70
|
+
const urlEnd = urlStart + match[2].length;
|
|
71
|
+
const newUrl = normaliseLink(match[2], repoSlug, branchOrSha);
|
|
72
|
+
if (newUrl !== match[2]) {
|
|
73
|
+
replacements.push({ start: urlStart, end: urlEnd, newUrl });
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Match HTML tags: <img src="..."> and <a href="...">
|
|
79
|
+
const htmlTagRegex = /\s(src|href)=["']([^"']+)["']/gi;
|
|
80
|
+
while ((match = htmlTagRegex.exec(text)) !== null) {
|
|
81
|
+
if (!isInExcludedRange(match.index)) {
|
|
82
|
+
const urlStart = match.index + match[0].indexOf(match[2]);
|
|
83
|
+
const urlEnd = urlStart + match[2].length;
|
|
84
|
+
const newUrl = normaliseLink(match[2], repoSlug, branchOrSha);
|
|
85
|
+
if (newUrl !== match[2]) {
|
|
86
|
+
replacements.push({ start: urlStart, end: urlEnd, newUrl });
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// Sort replacements by start position in descending order
|
|
92
|
+
replacements.sort((a, b) => b.start - a.start);
|
|
93
|
+
|
|
94
|
+
// Apply replacements from end to start to maintain correct indices
|
|
95
|
+
let result = text;
|
|
96
|
+
for (const { start, end, newUrl } of replacements) {
|
|
97
|
+
result = result.substring(0, start) + newUrl + result.substring(end);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return result;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* 相对路径转换为绝对路径
|
|
105
|
+
* 与 src/helpers/convertLink.ts 逻辑一致
|
|
106
|
+
*
|
|
107
|
+
* @param {String} link 待转换的链接
|
|
108
|
+
* @param {String} repoSlug 仓库路径
|
|
109
|
+
* @param {String} branchOrSha 分支或SHA,默认为 HEAD
|
|
110
|
+
* @returns {String}
|
|
111
|
+
*/
|
|
112
|
+
function normaliseLink(link, repoSlug, branchOrSha = 'HEAD') {
|
|
113
|
+
const { CNB_WEB_ENDPOINT } = process.env;
|
|
114
|
+
const baseURL = `${CNB_WEB_ENDPOINT}/${repoSlug}`;
|
|
115
|
+
|
|
116
|
+
if (link.startsWith('/-/')) {
|
|
117
|
+
return `${baseURL}${link}`;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
if (
|
|
121
|
+
link.indexOf('/-/') === -1 &&
|
|
122
|
+
(
|
|
123
|
+
link.startsWith('../') ||
|
|
124
|
+
link.startsWith('./') ||
|
|
125
|
+
(link.startsWith('/') && !link.startsWith('//'))
|
|
126
|
+
)
|
|
127
|
+
) {
|
|
128
|
+
let chunks = link.split('/');
|
|
129
|
+
// 过滤掉空字符串和 . .. 这些无效路径
|
|
130
|
+
chunks = chunks.filter((chunk) => !!chunk && chunk !== '.' && chunk !== '..');
|
|
131
|
+
if (chunks.length === 0) {
|
|
132
|
+
return link;
|
|
133
|
+
}
|
|
134
|
+
chunks.unshift(branchOrSha);
|
|
135
|
+
return `${baseURL}/-/git/raw/${chunks.join('/')}`;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
return link;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// =======
|
|
142
|
+
// 开始执行
|
|
143
|
+
// =======
|
|
144
|
+
|
|
145
|
+
const args = process.argv.slice(2);
|
|
146
|
+
const text = args[0] ?? '';
|
|
147
|
+
const content = convertLink(args[0], process.env.CNB_REPO_SLUG, process.env.CNB_BRANCH);
|
|
148
|
+
console.log(content);
|
package/test.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
console.log(123)
|