返回顶部
t

tapd-apiTAPD API集成

TAPD API 完整集成。实现 18 个模块、70+ API 方法,支持 OAuth 和 Basic Auth 认证。涵盖需求、任务、缺陷、迭代、测试、Wiki、工时等所有 TAPD 功能。

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.3
安全检测
已通过
364
下载量
免费
免费
1
收藏
概述
安装方式
版本历史

tapd-api

TAPD API 技能

完整的 TAPD 开放平台集成,实现所有 TAPD API 模块。基于 TAPD PHP SDK 用 Python 重新实现。

📋 功能特性

  • - ✅ 从 tapd.json 读取 OAuth 配置
  • ✅ 自动换取和刷新 access_token
  • ✅ 支持多工作空间切换
  • ✅ 完整的 API 封装(18 个模块,70+ 方法)
  • ✅ 命令行工具 + Python SDK
  • ✅ 详细的使用文档和示例

🔧 配置

配置文件 (tapd.json)

所有配置存储在 tapd.json 文件中,支持多工作空间:

json
{
oauth: {
clientId: your-client-id,
clientSecret: your-client-secret
},
workspaces: [
{
id: 12345678,
name: 项目A,
default: true
},
{
id: 87654321,
name: 项目B
}
]
}

配置项说明

参数必需说明
oauth.clientIdTAPD OAuth 应用 ID
oauth.clientSecret
是 | TAPD OAuth 应用密钥 | | workspaces | 是 | 工作空间列表 | | workspaces[].id | 是 | 工作空间 ID | | workspaces[].name | 否 | 工作空间名称(便于识别) | | workspaces[].default | 否 | 是否为默认工作空间 |

获取 OAuth 凭证

  1. 1. 登录 TAPD 开放平台: https://open.tapd.cn
  2. 创建开放应用
  3. 获取 应用ID (clientId) 和 应用密钥 (clientSecret)
  4. 配置应用权限(需求、任务、缺陷等)
  5. 将应用安装到目标项目

获取工作空间 ID

  • - 打开 TAPD 项目
  • URL 中的数字即为 workspaceid
  • 例如: https://www.tapd.cn/12345678/ → workspaceid 是 12345678

🚀 快速开始

1. 创建配置文件

bash

创建 tapd.json


cat > tapd.json << EOF
{
oauth: {
clientId: your-client-id,
clientSecret: your-client-secret
},
workspaces: [
{
id: 12345678,
name: 我的项目,
default: true
}
]
}
EOF

设置权限

chmod 600 tapd.json

2. Python SDK 使用

python
from scripts.tapd_client import TapdClient
import json

读取配置

with open(tapd.json) as f: config = json.load(f)

获取默认工作空间

default_workspace = next( (ws for ws in config[workspaces] if ws.get(default)), config[workspaces][0] )

初始化客户端

client = TapdClient( auth_type=oauth, client_id=config[oauth][clientId], client_secret=config[oauth][clientSecret], workspaceid=defaultworkspace[id] )

获取需求列表

stories = client.story.list( workspaceid=defaultworkspace[id], limit=10 )

print(f获取到 {len(stories)} 条需求)

3. 多工作空间切换

python

遍历所有工作空间


for workspace in config[workspaces]:
print(f工作空间: {workspace[name]})

client = TapdClient(
auth_type=oauth,
client_id=config[oauth][clientId],
client_secret=config[oauth][clientSecret],
workspace_id=workspace[id]
)

stories = client.story.list(workspace_id=workspace[id], limit=5)
print(f 需求数: {len(stories)})

3. Shell 命令行使用

bash

设置环境变量(从配置文件读取)


export TAPDCLIENTID=$(cat tapd.json | jq -r .oauth.clientId)
export TAPDCLIENTSECRET=$(cat tapd.json | jq -r .oauth.clientSecret)
export TAPDWORKSPACEID=$(cat tapd.json | jq -r .workspace_id)

使用命令行工具

./scripts/tapd-api.sh story list --limit 10 ./scripts/tapd-api.sh story count ./scripts/tapd-api.sh bug list --status new

获取需求列表

stories = client.get_stories(limit=10) for story in stories: print(f{story[id]}: {story[name]})

获取需求详情

storydetail = client.getstory(story_id=1112345678001000001)

获取任务列表

tasks = client.get_tasks(limit=5)

获取缺陷列表

bugs = client.get_bugs(limit=5)

📖 API 认证流程

OAuth 流程图

┌─────────────────────────────────────────────────────────┐
│ 1. 从 tapd.json 读取 clientId + clientSecret │
└─────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│ 2. POST /tokens/request_token │
│ granttype=clientcredentials │
│ Authorization: Basic base64(clientId:clientSecret) │
└─────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│ 3. 获取 access_token (有效期 7200 秒 / 2 小时) │
└─────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────┐
│ 4. 调用 TAPD API │
│ Authorization: Bearer
└─────────────────────────────────────────────────────────┘

认证代码示例

bash

Shell 方式


CLIENT_ID=your-client-id
CLIENT_SECRET=your-client-secret

获取 access_token

ACCESSTOKEN=$(curl -s -u $CLIENTID:$CLIENT_SECRET \ -d granttype=clientcredentials \ https://api.tapd.cn/tokens/request_token \ | python3 -c import json, sys; print(json.load(sys.stdin)[data][access_token]))

调用 API

curl -H Authorization: Bearer $ACCESS_TOKEN \ https://api.tapd.cn/stories?workspace_id=12345678&limit=10

🔌 API 端点

需求 (Stories)

方法端点参数说明
GET/storiesworkspaceid, limit, page, status获取需求列表
GET
/stories/count | workspaceid, status | 获取需求数量 | | POST | /stories | workspace_id, name, description | 创建需求 | | POST | /stories | workspace_id, id, ... | 更新需求 |

任务 (Tasks)

方法端点参数说明
GET/tasksworkspaceid, limit, page获取任务列表
POST
/tasks | workspaceid, name, ... | 创建/更新任务 |

缺陷 (Bugs)

方法端点参数说明
GET/bugsworkspaceid, limit, page, status获取缺陷列表
POST
/bugs | workspaceid, title, ... | 创建/更新缺陷 |

迭代 (Iterations)

方法端点参数说明
GET/iterationsworkspace_id, limit, page获取迭代列表

其他

  • - /workspaces/projects - 获取项目列表
  • /releases - 发布计划
  • /tcases - 测试用例
  • /comments - 评论

📝 使用示例

示例 1: 获取高优先级需求

bash

使用命令行工具(自动过滤)


./scripts/tapd-api.sh stories 50 | python3 -c
import json, sys
data = json.load(sys.stdin)
for item in data[data]:
story = item[Story]
if story.get(priority) == 4: # High priority
print(f\{story[id]}: {story[name]

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 tapd-api-1776206028 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 tapd-api-1776206028 技能

通过命令行安装

skillhub install tapd-api-1776206028

下载

⬇ 下载 tapd-api v1.0.3(免费)

文件大小: 22.14 KB | 发布时间: 2026-4-15 11:22

v1.0.3 最新 2026-4-15 11:22
Version 1.0.3 of tapd-api

- No code or documentation changes were detected in this version.
- Version and content remain consistent with previous release.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部