tapd
26
总安装量
26
周安装量
#7752
全站排名
安装命令
npx skills add https://github.com/abcfed/claude-marketplace --skill tapd
Agent 安装分布
claude-code
22
windsurf
16
codex
15
gemini-cli
14
opencode
14
cursor
12
Skill 文档
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_label |
High / Middle / Low / Nice To Have |
| 缺é·ä¼å 级 | priority_label |
urgent / high / medium / low / insignificant |
| 缺é·ä¸¥éç¨åº¦ | severity |
fatal / serious / normal / prompt / advice |
| ä»»å¡ç¶æ | status |
open / progressing / done |
| è¿ä»£ç¶æ | status |
open / done |
Claude ä½¿ç¨æ¹å¼
å½ç¨æ·éè¦ä¸ TAPD äº¤äºæ¶ï¼
- 读åèæ¬ï¼äºè§£å½ä»¤ç¨æ³
- æå»ºå½ä»¤ï¼æ ¹æ®éæ±æå»ºåæ°
- æ§è¡èæ¬ï¼ä½¿ç¨ Bash å·¥å ·è¿è¡
- å¤çç»æï¼è§£æè¾åºï¼åææ°æ®
示ä¾å·¥ä½æµï¼
ç¨æ·: "æ¥çéæ± 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"
}
]
}
]
}
å¤çæ¥éª¤ï¼
- ä»è¿åç»æä¸è¯»å
imagesæ°ç» - 使ç¨
download_urlè®¿é®æä¸è½½å¾ç - å¾ç龿¥æææçº¦ 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