| name | aliyun-codeup |
| description | 阿里云云效 Codeup 代码仓库管理 - 查询项目、分支、提交记录等 |
| metadata | {"version":"1.0.0","author":"Hank"} |
阿里云云效 Codeup 技能
通过个人访问令牌访问阿里云云效 Codeup 代码仓库。
🔑 配置要求
1. 环境变量
在 ~/.zshrc 或 Gateway 环境变量中配置:
export YUNXIAO_PERSONAL_TOKEN="pt-xxx"
2. 令牌获取
- 访问 https://codeup.aliyun.com/
- 右上角头像 → 个人设置 → 个人访问令牌
- 创建令牌,勾选权限:
read_api - 读取代码库
read_repository - 读取仓库
🛠️ 功能
查询项目分支
输入: 项目 URL 或路径
输出: 分支列表、统计信息
示例:
查看云效项目 https://codeup.aliyun.com/flashexpress/ard/be/tools/data-admin-api 的分支
查询项目信息
输入: 项目 URL
输出: 项目名称、描述、成员数、最近活动
查询提交记录
输入: 项目 URL + 分支名
输出: 最近提交记录、提交者、时间
分析分支活跃度
输入: 项目 URL
输出: 各分支最后提交时间、活跃度排名
📋 使用方式
方式 1:Git Clone(推荐)
git clone --quiet "https://oauth2:$YUNXIAO_PERSONAL_TOKEN@codeup.aliyun.com/<path>.git"
cd <repo> && git branch -a
cd /tmp && rm -rf <repo>
优点:
- ✅ 稳定可靠
- ✅ 支持所有 Git 操作
- ✅ 无需处理 API 分页
缺点:
方式 2:HTTP API
curl -s "https://codeup.aliyun.com/api/v3/projects/<id>/repository/branches" \
-H "Private-Token: $YUNXIAO_PERSONAL_TOKEN"
curl -s "https://codeup.aliyun.com/api/v3/projects?search=<name>" \
-H "Private-Token: $YUNXIAO_PERSONAL_TOKEN"
优点:
缺点:
- ⚠️ API 地址可能变化
- ⚠️ 需要处理认证重定向
🔧 核心脚本
codeup_cli.py
"""
阿里云云效 Codeup CLI 工具
"""
import subprocess
import sys
import os
import tempfile
import shutil
from urllib.parse import urlparse
def get_token():
"""从环境变量获取令牌"""
token = os.getenv('YUNXIAO_PERSONAL_TOKEN')
if not token:
print("❌ 错误:未配置 YUNXIAO_PERSONAL_TOKEN 环境变量")
sys.exit(1)
return token
def parse_project_url(url):
"""解析项目 URL"""
parsed = urlparse(url)
path = parsed.path.strip('/')
if '/' in path:
parts = path.split('/')
if parts[-1] in ['branches', 'commits', 'tree', 'blob']:
path = '/'.join(parts[:-1])
return path
def clone_and_query(url):
"""临时克隆并查询分支"""
token = get_token()
project_path = parse_project_url(url)
tmp_dir = tempfile.mkdtemp(prefix='codeup_')
repo_name = project_path.split('/')[-1]
repo_path = os.path.join(tmp_dir, repo_name)
:
git_url =
subprocess.run(
[, , , , git_url, repo_path],
check=,
capture_output=
)
result = subprocess.run(
[, , ],
cwd=repo_path,
capture_output=,
text=,
check=
)
branches = []
line result.stdout.strip().split():
line.strip() line:
branch = line.replace(, ).replace(, ).strip()
branch:
branches.append(branch)
{
: ,
: repo_name,
: (branches),
: (branches)
}
subprocess.CalledProcessError e:
{
: ,
:
}
:
os.path.exists(tmp_dir):
shutil.rmtree(tmp_dir, ignore_errors=)
():
(sys.argv) < :
()
()
sys.exit()
url = sys.argv[]
result = clone_and_query(url)
result[]:
()
()
()
branch result[]:
()
:
()
sys.exit()
__name__ == :
main()
📖 使用示例
示例 1:查询分支
用户: 查看云效项目 https://codeup.aliyun.com/flashexpress/ard/be/tools/data-admin-api 的分支
执行:
cd /tmp && rm -rf data-admin-api
git clone --quiet "https://oauth2:$YUNXIAO_PERSONAL_TOKEN@codeup.aliyun.com/flashexpress/ard/be/tools/data-admin-api.git"
cd data-admin-api && git branch -a | grep -v HEAD | sed 's/remotes\/origin\///' | sort
cd /tmp && rm -rf data-admin-api
输出:
📊 项目:data-admin-api
📊 分支总数:62
主分支:
- master
功能分支 (45):
- feature/common.20251211
- feature/common.20251105
- feature/20250730.geminifile
...
热修复分支 (15):
- hotfix/myj.250723
- hotfix/myj.batch
...
示例 2:分析分支活跃度
用户: 分析这个项目哪些分支最近有更新
执行:
cd /tmp/data-admin-api
git branch -a --sort=-committerdate | head -20
输出:
📈 最近活跃的分支(按最后提交时间):
1. master - 2 小时前
2. feature/common.20251211 - 1 天前
3. hotfix/myj.250723 - 3 天前
...
⚠️ 注意事项
安全
- ✅ 令牌存储在环境变量,不写入代码
- ✅ 临时克隆后自动清理
- ❌ 不要将令牌写入文档或日志
性能
- 小项目(<100MB):克隆约 5-10 秒
- 中项目(100-500MB):克隆约 10-30 秒
- 大项目(>500MB):建议使用 API 或浅克隆(--depth=1)
权限
令牌需要以下权限:
read_api - 读取项目信息
read_repository - 克隆仓库
🔗 相关资源
版本: 1.0.0
创建时间: 2026-03-06
维护者: 汉克 (Hank)