← 返回 Skills 市场
alexmayanjun-collab

Aliyun Codeup

作者 alexmayanjun-collab · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
101
总下载
0
收藏
1
当前安装
1
版本数
在 OpenClaw 中安装
/install aliyun-codeup
功能描述
阿里云云效 Codeup 代码仓库管理 - 查询项目、分支、提交记录等
使用说明 (SKILL.md)

阿里云云效 Codeup 技能

通过个人访问令牌访问阿里云云效 Codeup 代码仓库。

🔑 配置要求

1. 环境变量

~/.zshrc 或 Gateway 环境变量中配置:

export YUNXIAO_PERSONAL_TOKEN="pt-xxx"  # 云效个人访问令牌

2. 令牌获取

  1. 访问 https://codeup.aliyun.com/
  2. 右上角头像 → 个人设置 → 个人访问令牌
  3. 创建令牌,勾选权限:
    • 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:[email protected]/\x3Cpath>.git"
cd \x3Crepo> && git branch -a
cd /tmp && rm -rf \x3Crepo>

优点:

  • ✅ 稳定可靠
  • ✅ 支持所有 Git 操作
  • ✅ 无需处理 API 分页

缺点:

  • ⚠️ 需要临时克隆(小项目很快)

方式 2:HTTP API

# 查询分支
curl -s "https://codeup.aliyun.com/api/v3/projects/\x3Cid>/repository/branches" \
  -H "Private-Token: $YUNXIAO_PERSONAL_TOKEN"

# 查询项目
curl -s "https://codeup.aliyun.com/api/v3/projects?search=\x3Cname>" \
  -H "Private-Token: $YUNXIAO_PERSONAL_TOKEN"

优点:

  • ✅ 快速(无需克隆)
  • ✅ 节省带宽

缺点:

  • ⚠️ API 地址可能变化
  • ⚠️ 需要处理认证重定向

🔧 核心脚本

codeup_cli.py

#!/usr/bin/env python3
"""
阿里云云效 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('/')
    # 移除末尾的 /branches, /commits 等
    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)
    
    try:
        # 克隆仓库
        git_url = f"https://oauth2:{token}@codeup.aliyun.com/{project_path}.git"
        subprocess.run(
            ['git', 'clone', '--quiet', '--depth=1', git_url, repo_path],
            check=True,
            capture_output=True
        )
        
        # 查询分支
        result = subprocess.run(
            ['git', 'branch', '-a'],
            cwd=repo_path,
            capture_output=True,
            text=True,
            check=True
        )
        
        # 解析分支列表
        branches = []
        for line in result.stdout.strip().split('\
'):
            if line.strip() and 'HEAD' not in line:
                branch = line.replace('*', '').replace('remotes/origin/', '').strip()
                if branch:
                    branches.append(branch)
        
        return {
            'success': True,
            'project': repo_name,
            'branches': sorted(branches),
            'total': len(branches)
        }
        
    except subprocess.CalledProcessError as e:
        return {
            'success': False,
            'error': f'Git 操作失败:{e.stderr.decode() if e.stderr else str(e)}'
        }
    finally:
        # 清理临时目录
        if os.path.exists(tmp_dir):
            shutil.rmtree(tmp_dir, ignore_errors=True)

def main():
    if len(sys.argv) \x3C 2:
        print("用法:codeup_cli.py \x3C项目 URL>")
        print("示例:codeup_cli.py https://codeup.aliyun.com/flashexpress/ard/be/tools/data-admin-api")
        sys.exit(1)
    
    url = sys.argv[1]
    result = clone_and_query(url)
    
    if result['success']:
        print(f"✅ 项目:{result['project']}")
        print(f"📊 分支总数:{result['total']}")
        print("\
分支列表:")
        for branch in result['branches']:
            print(f"  - {branch}")
    else:
        print(f"❌ 错误:{result['error']}")
        sys.exit(1)

if __name__ == '__main__':
    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:[email protected]/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 天前
...

⚠️ 注意事项

安全

  • ✅ 令牌存储在环境变量,不写入代码
  • ✅ 临时克隆后自动清理
  • ❌ 不要将令牌写入文档或日志

性能

  • 小项目(\x3C100MB):克隆约 5-10 秒
  • 中项目(100-500MB):克隆约 10-30 秒
  • 大项目(>500MB):建议使用 API 或浅克隆(--depth=1)

权限

令牌需要以下权限:

  • read_api - 读取项目信息
  • read_repository - 克隆仓库

🔗 相关资源


版本: 1.0.0
创建时间: 2026-03-06
维护者: 汉克 (Hank)

安全使用建议
要点汇总和建议: - 证书声明不一致:技能确实需要 YUNXIAO_PERSONAL_TOKEN 来访问 Codeup,但技能的 registry 元数据并未列出它。安装前确认技能来源(维护者信息)或联系维护者修正元数据。 - 凭据暴露风险:示例和脚本使用形式 https://oauth2:{$TOKEN}@codeup.aliyun.com/...,在某些系统上该 URL 可出现在进程列表、shell 历史或被写入 .git/config(尽管脚本使用临时目录并会删除,但暴露窗口仍然存在)。建议改用: - Git 凭据助手(git credential helper)或使用 git 的授权代理,而不是将 token 放在 URL 中;或 - 使用 API (Private-Token 头) 并通过 stdin/环境变量传递,而不是在命令行参数中显式包含令牌。 - 最小权限:确保为令牌只授予必要的最小范围(SKILL.md 建议的 read_api 和 read_repository 是合理的)。如果不愿意提供仓库读取权限,请不要安装或使用该技能。 - 审核与测试:在受控环境(例如隔离的临时帐户或沙箱)中先行测试,观察是否有意外的网络请求或日志记录将令牌写出。检查你本地/远程系统(如 CI/CD、shell 历史)中是否可能保存了带 token 的 URL。 - 透明性改进请求:建议技能作者在 registry 元数据中明确列出 YUNXIAO_PERSONAL_TOKEN 作为必需 env var,并在 README/SKILL.md 中注明对 token 的处理方式以减少暴露面。 总体上,代码本身看起来在功能上与描述一致且没有明显的隐蔽后门,但由于元数据不透明与示例中存在的凭据暴露模式,建议在信任并投入真实凭据前小心评估和调整使用方式。
功能分析
Type: OpenClaw Skill Name: aliyun-codeup Version: 1.0.0 The aliyun-codeup skill bundle provides a Python CLI tool and markdown instructions for managing Aliyun Codeup repositories. It uses a personal access token stored in an environment variable to perform standard Git operations such as cloning, listing branches, and viewing commit history. The code in codeup_cli.py uses subprocess with argument lists to avoid shell injection, employs temporary directories for repository cloning, and ensures cleanup after execution, showing no signs of malicious intent or data exfiltration.
能力评估
Purpose & Capability
技能的名称、描述、SKILL.md 和 codeup_cli.py 都聚焦于通过个人访问令牌查询阿里云 Codeup 项目、分支和提交记录,功能与目的相符. 然而 registry 元数据宣称“Required env vars: none / Primary credential: none”,但实际运行指令和代码均依赖 YUNXIAO_PERSONAL_TOKEN,这是不一致且值得注意的元数据遗漏。
Instruction Scope
SKILL.md 指示使用环境变量 token 并给出两种可行方法(临时 git clone 或 API 调用)。运行说明、示例命令和 codeup_cli.py 的行为都局限于访问 codeup.aliyun.com / 本地临时克隆并清理,未要求读取系统上其他敏感路径或将数据发送到非预期第三方。
Install Mechanism
没有安装脚本或外部下载;代码作为文本随技能提供(codeup_cli.py),没有在安装阶段写入或拉取远程二进制,因此安装机制风险低。
Credentials
技能运行需要 YUNXIAO_PERSONAL_TOKEN(用于 OAuth2 URL 或 HTTP Private-Token 头),这是与功能直接相关的最小权限。但注册表元数据未声明该环境变量为必需(元数据显示“无”),导致权限/凭据需求未被透明化。另有一项实现细节风险:示例和 codeup_cli.py 建议将 token 放入 HTTPS URL(https://oauth2:token@...),这在某些系统上可能导致凭据暴露(shell 历史、进程列表、.git/config 中的 remote URL)。
Persistence & Privilege
技能没有请求常驻(always)权限,也不会修改其他技能或系统范围配置。它在运行时创建临时目录并在完成后删除,未要求长期系统权限或自动启用行为。
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install aliyun-codeup
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /aliyun-codeup 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
- Initial release providing integration with 阿里云云效 Codeup for project, branch, and commit queries. - Supports querying project branches, project information, commit logs, and branch activity. - Access secured via personal access token configured in environment variables. - Provides both Git clone and HTTP API usage methods, with sample commands. - Includes a Python CLI script (codeup_cli.py) for branch listing and information extraction. - Emphasizes safe token handling and temporary resource cleanup.
元数据
Slug aliyun-codeup
版本 1.0.0
许可证 MIT-0
累计安装 1
当前安装数 1
历史版本数 1
常见问题

Aliyun Codeup 是什么?

阿里云云效 Codeup 代码仓库管理 - 查询项目、分支、提交记录等. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 101 次。

如何安装 Aliyun Codeup?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install aliyun-codeup」即可一键安装,无需额外配置。

Aliyun Codeup 是免费的吗?

是的,Aliyun Codeup 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Aliyun Codeup 支持哪些平台?

Aliyun Codeup 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Aliyun Codeup?

由 alexmayanjun-collab(@alexmayanjun-collab)开发并维护,当前版本 v1.0.0。

💬 留言讨论