mcpField
T
tapd

tapd

github.com/abcfed开发32289 次安装34 周前更新
代码仓库

关于 tapd

tapd 是通过 Python 脚本操作 TAPD 的技能,面向需要在项目流程中查询和维护工作项的团队。它覆盖需求、缺陷、迭代、测试用例、工时及 Wiki 等对象,并以 JSON 输出结果。

主要功能

  1. 01查询与维护需求和任务
  2. 02创建、更新及查询缺陷
  3. 03管理迭代、测试用例和评论
  4. 04操作 Wiki、工时与待办
  5. 05查看工作流、附件及发布计划
  6. 06发送企业微信消息

适用场景

  1. 01检索项目需求或缺陷
  2. 02创建迭代并维护测试用例
  3. 03记录工时并更新评论
  4. 04查看工作流状态或获取图片链接

安装

复制下面的命令,在终端中运行。

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

安装后在 Claude Code 中输入/tapd确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
bugs.md
fields.md
iterations.md
stories-tasks.md
testcases.md
scripts/
requirements.txt
tapd_client.py
tapd.py

详细介绍

来自项目 README

TAPD Skill

本 skill 提供与 TAPD 平台交互的 Python 脚本工具,统一通过 tapd.py 调用。

环境配置

使用前需要配置以下环境变量:

export TAPD_ACCESS_TOKEN="你的个人访问令牌"  # 推荐
# 或
export TAPD_API_USER="API账号"
export TAPD_API_PASSWORD="API密钥"

export TAPD_API_BASE_URL="https://api.tapd.cn"  # 可选,默认
export TAPD_BASE_URL="https://www.tapd.cn"      # 可选,默认
export CURRENT_USER_NICK="你的昵称"               # 可选

使用方式

python scripts/tapd.py <command> [参数]

所有命令默认输出 JSON 格式结果。

命令列表

项目与用户
命令说明
get_user_participant_projects获取用户参与的项目列表
get_workspace_info获取项目信息
get_workitem_types获取需求类别
需求/任务
命令说明
get_stories_or_tasks查询需求/任务
create_story_or_task创建需求/任务
update_story_or_task更新需求/任务
get_story_or_task_count获取数量
get_stories_fields_lable字段中英文对照
get_stories_fields_info字段及候选值
缺陷
命令说明
get_bug查询缺陷
create_bug创建缺陷
update_bug更新缺陷
get_bug_count获取数量
迭代
命令说明
get_iterations查询迭代
create_iteration创建迭代
update_iteration更新迭代
评论
命令说明
get_comments查询评论
create_comments创建评论
update_comments更新评论
附件/图片
命令说明
get_entity_attachments获取附件
get_image获取图片下载链接
自定义字段
命令说明
get_entity_custom_fields获取自定义字段配置
工作流
命令说明
get_workflows_status_map状态映射
get_workflows_all_transitions状态流转
get_workflows_last_steps结束状态
测试用例
命令说明
get_tcases查询测试用例
create_or_update_tcases创建/更新测试用例
create_tcases_batch批量创建测试用例
Wiki
命令说明
get_wiki查询 Wiki
create_wiki创建 Wiki
update_wiki更新 Wiki
工时
命令说明
get_timesheets查询工时
add_timesheets填写工时
update_timesheets更新工时
待办
命令说明
get_todo获取待办
关联
命令说明
get_related_bugs获取关联缺陷
entity_relations创建关联关系
发布计划
命令说明
get_release_info获取发布计划
源码
命令说明
get_commit_msg获取提交关键字
消息
命令说明
send_qiwei_message发送企业微信消息

使用示例

查询需求
# 查询指定需求
python scripts/tapd.py get_stories_or_tasks --workspace_id 123 --entity_type stories --id 1167459320001114969

# 模糊搜索需求
python scripts/tapd.py get_stories_or_tasks --workspace_id 123 --entity_type stories --name "%登录%" --limit 20

# 查询指定状态的需求
python scripts/tapd.py get_stories_or_tasks --workspace_id 123 --entity_type stories --v_status "已验收"
创建需求
python scripts/tapd.py create_story_or_task --workspace_id 123 \
    --name "用户登录功能" \
    --description "## 需求描述\n用户可以通过账号密码登录系统" \
    --priority_label "高" \
    --owner "zhangsan" \
    --iteration_name "Sprint 1"
更新需求状态
python scripts/tapd.py update_story_or_task --workspace_id 123 \
    --id 1167459320001114969 \
    --v_status "实现中"
查询缺陷
python scripts/tapd.py get_bug --workspace_id 123 --title "%登录失败%" --priority_label "高"
创建缺陷
python scripts/tapd.py create_bug --workspace_id 123 \
    --title "登录页面显示异常" \
    --description "输入正确密码后提示错误" \
    --priority_label "高" \
    --severity "严重"
迭代管理
# 查询迭代
python scripts/tapd.py get_iterations --workspace_id 123

# 创建迭代
python scripts/tapd.py create_iteration --workspace_id 123 \
    --name "Sprint 1" \
    --startdate "2024-01-01" \
    --enddate "2024-01-14" \
    --creator "zhangsan"
工时管理
# 查询工时
python scripts/tapd.py get_timesheets --workspace_id 123 --entity_type story --entity_id 1167459320001114969

# 填写工时
python scripts/tapd.py add_timesheets --workspace_id 123 \
    --entity_type story \
    --entity_id 1167459320001114969 \
    --timespent "4" \
    --spentdate "2024-01-08" \
    --memo "开发登录功能"
评论管理
# 查询评论
python scripts/tapd.py get_comments --workspace_id 123 \
    --entry_type stories \
    --entry_id 1167459320001114969

# 创建评论
python scripts/tapd.py create_comments --workspace_id 123 \
    --entry_type stories \
    --entry_id 1167459320001114969 \
    --description "看起来不错,可以继续完善"
关联需求与缺陷
# 查询需求关联的缺陷
python scripts/tapd.py get_related_bugs --workspace_id 123 --story_id 1167459320001114969

# 创建关联
python scripts/tapd.py entity_relations --workspace_id 123 \
    --source_type story \
    --target_type bug \
    --source_id 1167459320001114969 \
    --target_id 1167459320001114970
工作流
# 获取状态映射
python scripts/tapd.py get_workflows_status_map --workspace_id 123 --system story

# 获取可流转状态
python scripts/tapd.py get_workflows_all_transitions --workspace_id 123 --system story

常用命令速查

# 需求
python scripts/tapd.py get_stories_or_tasks --workspace_id $WS_ID --entity_type stories
python scripts/tapd.py create_story_or_task --workspace_id $WS_ID --name "标题"
python scripts/tapd.py update_story_or_task --workspace_id $WS_ID --id $ID --v_status "状态"

# 缺陷
python scripts/tapd.py get_bug --workspace_id $WS_ID
python scripts/tapd.py create_bug --workspace_id $WS_ID --title "标题"

# 迭代
python scripts/tapd.py get_iterations --workspace_id $WS_ID
python scripts/tapd.py create_iteration --workspace_id $WS_ID --name "Sprint X" --startdate "2024-01-01" --enddate "2024-01-14"

# 工时
python scripts/tapd.py add_timesheets --workspace_id $WS_ID --entity_type story --entity_id $ID --timespent 4 --spentdate "2024-01-08"

# 评论
python scripts/tapd.py create_comments --workspace_id $WS_ID --entry_type stories --entry_id $ID --description "评论内容"

状态值说明

类型字段可用值
需求优先级priority_labelHigh / Middle / Low / Nice To Have
缺陷优先级priority_labelurgent / high / medium / low / insignificant
缺陷严重程度severityfatal / serious / normal / prompt / advice
任务状态statusopen / progressing / done
迭代状态statusopen / done

Claude 使用方式

当用户需要与 TAPD 交互时:

  1. 读取脚本:了解命令用法
  2. 构建命令:根据需求构建参数
  3. 执行脚本:使用 Bash 工具运行
  4. 处理结果:解析输出,分析数据

示例工作流:

用户: "查看需求 1167459320001114969 的详情"

Claude:
1. python scripts/tapd.py get_stories_or_tasks --workspace_id 67459320 --entity_type stories --id 1167459320001114969
2. 分析返回的需求信息
图片处理

当获取需求详情时,get_stories_or_tasks 命令会自动解析 description 中的图片并获取下载链接。

返回结果包含 images 字段:

{
  "data": [
    {
      "Story": { "id": "1167459320001114969", "name": "需求标题", ... },
      "images": [
        {
          "path": "/tfl/captures/2026-01/tapd_67459320_base64_1767668922_121.png",
          "download_url": "https://file.tapd.cn/attachments/tmp_download/...?salt=...&time=...",
          "filename": "tapd_67459320_base64_1767668922_121.png"
        }
      ]
    }
  ]
}

处理步骤:

  1. 从返回结果中读取 images 数组
  2. 使用 download_url 访问或下载图片
  3. 图片链接有效期约 300 秒

手动获取图片(备用方式):

# 如果需要单独获取某张图片
python scripts/tapd.py get_image --workspace_id 67459320 --image_path "/tfl/captures/2026-01/tapd_xxx.png"

文件结构

scripts/
├── tapd.py           # 统一入口脚本(43个子命令)
├── tapd_client.py    # TAPD API 客户端
└── requirements.txt

评论

支持 Markdown