mcpField
C
codeup

codeup

github.com/abcfed開発3296 回インストール34 週間前に更新
リポジトリ

codeup について

Alibaba Cloud Codeupの利用者向けに、組織、メンバー、リポジトリ関連のAPIを単一のPythonスクリプトから操作するスキルです。コマンド結果はJSON形式で、リポジトリは数値IDまたはエンコード済みパスで指定できます。

主な機能

  1. 01Pythonコマンドの共通エントリーポイント
  2. 02組織、部門、メンバーの照会
  3. 03リポジトリ、ブランチ、ファイルの管理
  4. 04マージリクエストの作成と管理
  5. 05JSON形式の結果出力
  6. 06数値IDとエンコード済みパスに対応

活用シーン

  1. 01組織のメンバーや部門を確認
  2. 02リポジトリのファイルやブランチを読み書き
  3. 03コード差分を比較しマージリクエストを管理
  4. 04CodeupのリポジトリURLからパスを取り出して操作

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/abcfed/claude-marketplace --skill codeup

インストール後、Claude Code で/codeupを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
code-management.md
organization-management.md
scripts/
codeup_client.py
codeup.py
requirements.txt
test_codeup.py

詳細

Codeup スキル

本スキルは、云効(Codeup)プラットフォームと対話するための Python スクリプトツールを提供し、すべて codeup.py を通じて呼び出します。

環境設定

使用前に以下の環境変数を設定する必要があります:

export YUNXIAO_ACCESS_TOKEN="你的个人访问令牌"

アクセストークンの取得:

  1. Alibaba Cloud コンソールにログイン
  2. 云効(Codeup)に移動
  3. 設定 -> アクセストークン管理 -> 個人アクセストークンを作成

使用方法

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 パラメータの形式(共通)

repo_id パラメータをサポートするすべてのコマンドは、2 つの形式をサポートしています:

形式例説明
数値 ID5822285リポジトリの数値 ID
URL-Encoder パスabcyun%2Fabc-fed-common%2Fabc-nestjs-libエンコードされた namespace/group/repoName

サポートされるコマンド:

  • リポジトリ操作: get_repository
  • ブランチ操作: get_branch, create_branch, delete_branch, list_branches
  • ファイル操作: get_file, create_file, update_file, delete_file, list_files
  • コード比較: compare
  • MR 操作: get_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 は以下を実行できます:

  1. パスを抽出: abcyun/abc-fed-common/abc-nestjs-lib
  2. / を %2F に URL エンコード: abcyun%2Fabc-fed-common%2Fabc-nestjs-lib
  3. 先に repo_id を照会することなく、任意のコマンドを直接呼び出す
ブランチ操作
コマンド説明
get_branchブランチの詳細を取得
create_branchブランチを作成
delete_branchブランチを削除
list_branchesブランチを一覧表示
ファイル操作
コマンド説明
get_fileファイルの内容を取得
create_fileファイルを作成
update_fileファイルを更新
delete_fileファイルを削除
list_filesファイルツリーを一覧表示
compareコードの差分を比較
マージリクエスト
コマンド説明
get_change_requestMR の詳細を取得
list_merge_requestsMR を一覧表示
create_merge_requestMR を作成
close_merge_requestMR をクローズ
merge_change_requestMR をマージ
reopen_change_requestクローズ済みの MR を再オープン
review_change_requestMR をレビュー(承認/拒否)
update_change_requestMR 情報を更新
get_change_request_treeMR の変更ファイル一覧を取得
create_merge_request_commentMR コメントを追加
list_merge_request_commentsMR コメントを一覧表示
delete_change_request_commentMR コメントを削除
update_change_request_commentMR コメントを更新
list_merge_request_patch_setsMR パッチセットを一覧表示

使用例

組織情報の照会
# 获取当前用户
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

Claude での使用方法

ユーザーが云効と対話する必要がある場合:

  1. org_id を取得:まず list_organizations を呼び出して組織一覧を取得し、対象の組織を選択します
  2. repo_id を取得:
    • 方法 1:list_repositories を呼び出してリポジトリを一覧表示し、対象のリポジトリを選択して数値 ID を取得します
    • 方法 2:ユーザーが提供した URL またはパスから namespace/group(任意)/repoName を抽出し、それを使用します。
  3. コマンドを構築:要件に応じて対応するパラメータを構築します
  4. スクリプトを実行:Bash ツールを使用して実行します
  5. 結果を処理:出力を解析し、データを分析します

ワークフロー例:

用户: "查看当前组织的成员列表"

Claude:
1. python scripts/codeup.py list_organizations  # 获取 org_id
2. python scripts/codeup.py list_members --org_id $ORG_ID  # 列出成员
3. 分析返回结果并展示

よくある質問

1. org_id と repo_id を取得するには?
# 列出用户所属组织(包含 org_id)
python scripts/codeup.py list_organizations

# 列出仓库(包含 repo_id)
python scripts/codeup.py list_repositories --org_id 62d62893487c500c27f72e36
2. 権限が不足している場合はどうすればよいですか?

アクセストークンに適切な権限があることを確認してください:

  • リポジトリ読み取り権限:リポジトリ、ブランチ、ファイルの閲覧
  • リポジトリ書き込み権限:ファイルの作成/更新/削除、ブランチの作成
  • MR 管理権限:MR の作成/更新、コメントの追加
3. マージリクエストのステータス値
ステータス説明
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

コメント