Manages Alibaba Cloud Codeup repositories via Python CLI: branches, files, diffs, merge requests, organizations, departments, members. Useful for automating Codeup operations.
From abc-development-pluginnpx claudepluginhub abcfed/claude-marketplace --plugin abc-development-pluginThis skill uses the workspace's default tool permissions.
references/code-management.mdreferences/organization-management.mdscripts/codeup.pyscripts/codeup_client.pyscripts/requirements.txtscripts/test_codeup.pySearches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides slash command development for Claude Code: structure, YAML frontmatter, dynamic arguments, bash execution, user interactions, organization, and best practices.
本 skill 提供与云效(Codeup)平台交互的 Python 脚本工具,统一通过 codeup.py 调用。
使用前需要配置以下环境变量:
export YUNXIAO_ACCESS_TOKEN="你的个人访问令牌"
获取访问令牌:
python scripts/codeup.py <command> [参数]
所有命令默认输出 JSON 格式结果。
| 命令 | 说明 |
|---|---|
get_current_user | 获取当前用户信息 |
list_organizations | 列出用户所属组织(获取 org_id) |
| 命令 | 说明 |
|---|---|
list_departments | 列出部门 |
get_department | 获取部门详情 |
list_members | 列出组织成员 |
get_organization_member | 获取成员详情 |
search_members | 搜索成员 |
list_roles | 列出角色 |
| 命令 | 说明 |
|---|---|
get_repository | 获取仓库详情 |
list_repositories | 列出仓库 |
所有支持 repo_id 参数的命令都支持两种格式:
| 格式 | 示例 | 说明 |
|---|---|---|
| 数字 ID | 5822285 | 仓库的数字 ID |
| URL-Encoder 路径 | abcyun%2Fabc-fed-common%2Fabc-nestjs-lib | 编码后的 namespace/group/repoName |
支持的命令:
get_repositoryget_branch, create_branch, delete_branch, list_branchesget_file, create_file, update_file, delete_file, list_filescompareget_change_request, create_merge_request, close_merge_request, merge_change_request, reopen_change_request, review_change_request, update_change_request, get_change_request_tree, create_merge_request_comment, list_merge_request_comments, delete_change_request_comment, update_change_request_comment, list_merge_request_patch_sets使用示例:
# 方式1: 使用数字 ID
python scripts/codeup.py get_repository --org_id 62d62893487c500c27f72e36 --repo_id 5822285
# 方式2: 使用 URL-Encoder 编码路径
python scripts/codeup.py get_repository \
--org_id 62d62893487c500c27f72e36 \
--repo_id abcyun%2Fabc-fed-common%2Fabc-nestjs-lib
# 分支操作也支持
python scripts/codeup.py list_branches \
--org_id 62d62893487c500c27f72e36 \
--repo_id abcyun%2Fabc-fed-common%2Fabc-nestjs-lib
# 文件操作也支持
python scripts/codeup.py get_file \
--org_id 62d62893487c500c27f72e36 \
--repo_id abcyun%2Fabc-fed-common%2Fabc-nestjs-lib \
--file_path README.md \
--branch master
使用场景: 当用户提供仓库 URL 时(如 https://codeup.aliyun.com/abcyun/abc-fed-common/abc-nestjs-lib/change/1),LLM 可以:
abcyun/abc-fed-common/abc-nestjs-lib/ 为 %2F: abcyun%2Fabc-fed-common%2Fabc-nestjs-lib| 命令 | 说明 |
|---|---|
get_branch | 获取分支详情 |
create_branch | 创建分支 |
delete_branch | 删除分支 |
list_branches | 列出分支 |
| 命令 | 说明 |
|---|---|
get_file | 获取文件内容 |
create_file | 创建文件 |
update_file | 更新文件 |
delete_file | 删除文件 |
list_files | 列出文件树 |
compare | 对比代码差异 |
| 命令 | 说明 |
|---|---|
get_change_request | 获取 MR 详情 |
list_merge_requests | 列出 MR |
create_merge_request | 创建 MR |
close_merge_request | 关闭 MR |
merge_change_request | 合并 MR |
reopen_change_request | 重新打开已关闭的 MR |
review_change_request | 审查 MR(批准/拒绝) |
update_change_request | 更新 MR 信息 |
get_change_request_tree | 获取 MR 变更文件列表 |
create_merge_request_comment | 添加 MR 评论 |
list_merge_request_comments | 列出 MR 评论 |
delete_change_request_comment | 删除 MR 评论 |
update_change_request_comment | 更新 MR 评论 |
list_merge_request_patch_sets | 列出 MR 补丁集 |
# 获取当前用户
python scripts/codeup.py get_current_user
# 列出用户所属组织(获取 org_id)
python scripts/codeup.py list_organizations
# 列出部门
python scripts/codeup.py list_departments --org_id 62d62893487c500c27f72e36
# 获取部门详情
python scripts/codeup.py get_department --org_id 62d62893487c500c27f72e36 --dept_id 68d910db15dfc6c8604fccb4
# 列出所有成员
python scripts/codeup.py list_members --org_id 62d62893487c500c27f72e36
# 获取成员详情
python scripts/codeup.py get_organization_member --org_id 62d62893487c500c27f72e36 --member_id 639fe0e38d9a873a30aad3df
# 搜索成员
python scripts/codeup.py search_members --org_id 62d62893487c500c27f72e36 --query "姓名"
# 列出角色
python scripts/codeup.py list_roles --org_id 62d62893487c500c27f72e36
# 列出仓库
python scripts/codeup.py list_repositories --org_id 62d62893487c500c27f72e36
# 获取仓库详情
python scripts/codeup.py get_repository --org_id 62d62893487c500c27f72e36 --repo_id 5822285
# 列出分支
python scripts/codeup.py list_branches --org_id 62d62893487c500c27f72e36 --repo_id 5822285
# 创建分支
python scripts/codeup.py create_branch \
--org_id 62d62893487c500c27f72e36 \
--repo_id 5822285 \
--branch_name feature/new-feature \
--source_branch master
# 删除分支
python scripts/codeup.py delete_branch \
--org_id 62d62893487c500c27f72e36 \
--repo_id 5822285 \
--branch_name feature/old-feature
# 获取文件内容
python scripts/codeup.py get_file \
--org_id 62d62893487c500c27f72e36 \
--repo_id 5822285 \
--file_path README.md \
--branch master
# 创建文件
python scripts/codeup.py create_file \
--org_id 62d62893487c500c27f72e36 \
--repo_id 5822285 \
--file_path docs/new-doc.md \
--content "# 新文档\n\n这是内容" \
--branch feature/new-feature \
--message "Add new documentation"
# 更新文件
python scripts/codeup.py update_file \
--org_id 62d62893487c500c27f72e36 \
--repo_id 5822285 \
--file_path README.md \
--content "# 更新后的内容" \
--message "Update README"
# 列出文件
python scripts/codeup.py list_files \
--org_id 62d62893487c500c27f72e36 \
--repo_id 5822285 \
--path src \
--branch master
# 对比代码
python scripts/codeup.py compare \
--org_id 62d62893487c500c27f72e36 \
--repo_id 5822285 \
--from feature/new-feature \
--to master
# 列出 MR
python scripts/codeup.py list_merge_requests \
--org_id 62d62893487c500c27f72e36 \
--repo_id 5822285
# 列出打开的 MR
python scripts/codeup.py list_merge_requests \
--org_id 62d62893487c500c27f72e36 \
--repo_id 5822285 \
--state opened
# 获取 MR 详情
python scripts/codeup.py get_change_request \
--org_id 62d62893487c500c27f72e36 \
--repo_id 5822285 \
--local_id 584
# 创建 MR
python scripts/codeup.py create_merge_request \
--org_id 62d62893487c500c27f72e36 \
--repo_id 5822285 \
--title "Feature: 新功能" \
--source_branch feature/new-feature \
--target_branch master \
--description "实现用户登录功能"
# 关闭 MR
python scripts/codeup.py close_merge_request \
--org_id 62d62893487c500c27f72e36 \
--repo_id 5822285 \
--local_id 584
# 添加 MR 评论
python scripts/codeup.py create_merge_request_comment \
--org_id 62d62893487c500c27f72e36 \
--repo_id 5822285 \
--local_id 584 \
--content "代码审查通过"
# 列出 MR 评论
python scripts/codeup.py list_merge_request_comments \
--org_id 62d62893487c500c27f72e36 \
--repo_id 5822285 \
--local_id 584
# 列出 MR 补丁集(提交)
python scripts/codeup.py list_merge_request_patch_sets \
--org_id 62d62893487c500c27f72e36 \
--repo_id 5822285 \
--local_id 584
# 合并 MR
python scripts/codeup.py merge_change_request \
--org_id 62d62893487c500c27f72e36 \
--repo_id 5822285 \
--local_id 584 \
--merge_type "no-fast-forward" \
--remove_source_branch
# 重新打开已关闭的 MR
python scripts/codeup.py reopen_change_request \
--org_id 62d62893487c500c27f72e36 \
--repo_id 5822285 \
--local_id 584
# 审查 MR(批准)
python scripts/codeup.py review_change_request \
--org_id 62d62893487c500c27f72e36 \
--repo_id 5822285 \
--local_id 584 \
--review_opinion PASS \
--review_comment "代码审查通过"
# 审查 MR(拒绝)
python scripts/codeup.py review_change_request \
--org_id 62d62893487c500c27f72e36 \
--repo_id 5822285 \
--local_id 584 \
--review_opinion NOT_PASS \
--review_comment "需要修复单元测试"
# 更新 MR 标题
python scripts/codeup.py update_change_request \
--org_id 62d62893487c500c27f72e36 \
--repo_id 5822285 \
--local_id 584 \
--title "新的 MR 标题"
# 获取 MR 变更文件列表
python scripts/codeup.py get_change_request_tree \
--org_id 62d62893487c500c27f72e36 \
--repo_id 5822285 \
--local_id 584 \
--from_patch_set_id patch_set_1 \
--to_patch_set_id patch_set_2
# 删除 MR 评论
python scripts/codeup.py delete_change_request_comment \
--org_id 62d62893487c500c27f72e36 \
--repo_id 5822285 \
--local_id 584 \
--comment_biz_id 682d5c6d8a3b400a8c4b1234
# 更新 MR 评论
python scripts/codeup.py update_change_request_comment \
--org_id 62d62893487c500c27f72e36 \
--repo_id 5822285 \
--local_id 584 \
--comment_biz_id 682d5c6d8a3b400a8c4b1234 \
--content "更新后的评论内容"
# 组织成员
python scripts/codeup.py list_members --org_id 62d62893487c500c27f72e36
python scripts/codeup.py search_members --org_id 62d62893487c500c27f72e36 --query "姓名"
# 仓库操作
python scripts/codeup.py list_repositories --org_id 62d62893487c500c27f72e36
python scripts/codeup.py list_branches --org_id 62d62893487c500c27f72e36 --repo_id 5822285
# 文件操作
python scripts/codeup.py get_file --org_id 62d62893487c500c27f72e36 --repo_id 5822285 --file_path README.md
# MR 操作
python scripts/codeup.py list_merge_requests --org_id 62d62893487c500c27f72e36 --repo_id 5822285 --state opened
python scripts/codeup.py get_change_request --org_id 62d62893487c500c27f72e36 --repo_id 5822285 --local_id 584
当用户需要与云效交互时:
list_organizations 获取组织列表,选择目标组织list_repositories 列出仓库,选择目标仓库获取数字 IDnamespace/group(可选)/repoName,然后使用,示例工作流:
用户: "查看当前组织的成员列表"
Claude:
1. python scripts/codeup.py list_organizations # 获取 org_id
2. python scripts/codeup.py list_members --org_id $ORG_ID # 列出成员
3. 分析返回结果并展示
# 列出用户所属组织(包含 org_id)
python scripts/codeup.py list_organizations
# 列出仓库(包含 repo_id)
python scripts/codeup.py list_repositories --org_id 62d62893487c500c27f72e36
确保访问令牌有相应权限:
| 状态 | 说明 |
|---|---|
opened | 打开中 |
closed | 已关闭 |
merged | 已合并 |
codeup/
├── SKILL.md
├── references/
│ ├── code-management.md # 代码管理 API 参考
│ └── organization-management.md # 组织管理 API 参考
└── scripts/
├── codeup.py # 统一入口脚本(34个子命令)
├── codeup_client.py # Codeup API 客户端
└── requirements.txt # 依赖:requests>=2.28.0