Loading...
Loading...
Call ZenTao RESTful API v2.0 to fulfill user requests, covering add, delete, modify, query and status flow operations for 20 modules including program, product, project, execution, requirement (Story/Epic/Requirement), Bug, task, test case, test task, product plan, build, release, feedback, ticket, application, user, file, etc. This skill is used when users mention project management related operations such as ZenTao, querying project progress, obtaining Bug list, updating requirement status, creating tasks, etc.
npx skill4agent add easysoft/zentao-skills zentao-api| Variable | Description |
|---|---|
| Server address, e.g. |
| Specify token directly, skip login and cache (highest priority), server address is still required |
| Login account, optional when token is provided, but providing it can better answer questions related to the current user |
| Login password, no need to provide when token is available |
ZENTAO_URLZENTAO_TOKENZENTAO_ACCOUNT~/.zentao-token.jsonexporttokenscripts/get-token.sheval "$(bash scripts/get-token.sh)"
# After execution, you can directly use $ZENTAO_URL, $ZENTAO_TOKEN, $ZENTAO_ACCOUNTcurlnodetoken: $ZENTAO_TOKENeval "$(bash scripts/get-token.sh)"$ZENTAO_URL/api.php/v2| Module | Resource Path | Supported Operations |
|---|---|---|
| Program | | CRUD + associated product/project list |
| Product | | CRUD + associated requirements/Bugs/test cases/plans/releases/feedback/tickets/test tasks/applications |
| Project | | CUD + associated executions/requirements/Bugs/test cases/builds/test tasks |
| Execution | | CRUD + associated requirements/tasks/Bugs/test cases/builds/test tasks |
| Story | | CRUD + change/close/activate |
| Epic | | CRUD + change/close/activate |
| Requirement | | CRUD + change/close/activate |
| Bug | | CRUD + resolve/close/activate |
| Task | | CRUD + start/finish/close/activate |
| Testcase | | CRUD |
| Productplan | | CUD + query list by product |
| Build | | CUD + query list by project/execution |
| Release | | CUD + query list by product |
| Testtask | | CUD + query list by product/project/execution |
| Feedback | | CRUD + close/activate |
| Ticket | | CRUD + close/activate |
| System | | CU + query list by product |
| User | | CRUD |
| File | | Edit name + Delete |
CRUD = Create(POST) + Read(GET) + Update(PUT) + Delete(DELETE); CUD = No independent global list interface
| Parameter | Description |
|---|---|
| Filter status, e.g. |
| Sort, format |
| Number of items per page, maximum 1000 |
| Page number, starting from 1 |
statusbrowseTypecurl -s "$ZENTAO_URL/api.php/v2/projects?browseType=doing&recPerPage=100" -H "token: $ZENTAO_TOKEN"
curl -s "$ZENTAO_URL/api.php/v2/projects/{projectID}/executions?browseType=doing" -H "token: $ZENTAO_TOKEN"curl -s -X POST "$ZENTAO_URL/api.php/v2/stories" \
-H "token: $ZENTAO_TOKEN" -H "Content-Type: application/json" \
-d '{"productID": 1, "title": "Requirement title", "pri": 3, "assignedTo": "admin", "spec": "Requirement description"}'curl -s -X POST "$ZENTAO_URL/api.php/v2/bugs" \
-H "token: $ZENTAO_TOKEN" -H "Content-Type: application/json" \
-d '{"productID": 1, "title": "Bug title", "openedBuild": ["trunk"], "severity": 2, "type": "codeerror"}'curl -s -X PUT "$ZENTAO_URL/api.php/v2/bugs/{bugID}/resolve" \
-H "token: $ZENTAO_TOKEN" -H "Content-Type: application/json" \
-d '{"resolution": "fixed"}'curl -s -X POST "$ZENTAO_URL/api.php/v2/tasks" \
-H "token: $ZENTAO_TOKEN" -H "Content-Type: application/json" \
-d '{"executionID": 1, "name": "Task name", "type": "devel", "assignedTo": "admin", "estimate": 4}'curl -s -X PUT "$ZENTAO_URL/api.php/v2/tasks/{taskID}/finish" \
-H "token: $ZENTAO_TOKEN" -H "Content-Type: application/json" \
-d '{"currentConsumed": 4, "realStarted": "2026-03-25", "finishedDate": "2026-03-25"}'curl -s -X PUT "$ZENTAO_URL/api.php/v2/stories/{storyID}/close" \
-H "token: $ZENTAO_TOKEN" -H "Content-Type: application/json" \
-d '{"closedReason": "done"}'| Field | Optional Values |
|---|---|
Project mode | |
Bug type | |
Bug resolution | |
Requirement closing reason | |
Requirement source | |
Requirement category | |
Test case type | |
Test task type | |
Release status | |
Feedback closing reason | |
Ticket type | |
Product type | |
Product access control | |
Execution type | |
| User intent keywords | Corresponding operation |
|---|---|
| Ongoing execution/iteration/Sprint | GET /projects?browseType=doing → GET /projects/{id}/executions |
| Get all products/projects/programs | GET /products, /projects, /programs |
| Bugs of a product/project/execution | GET /products/{id}/bugs, /projects/{id}/bugs, /executions/{id}/bugs |
| Create/add Bug | POST /bugs (Required: productID, title, openedBuild) |
| Update/modify Bug | PUT /bugs/{id} |
| Resolve Bug | PUT /bugs/{id}/resolve (Required: resolution) |
| Close Bug | PUT /bugs/{id}/close |
| Activate Bug | PUT /bugs/{id}/activate |
| Create requirement | POST /stories (Required: productID, title) |
| Close/activate/change requirement | PUT /stories/{id}/close, /activate, /change |
| Epic | /epics (same structure as stories) |
| Requirement | /requirements (same structure as stories) |
| Create task | POST /tasks (Required: name, executionID) |
| Start task | PUT /tasks/{id}/start (Required: realStarted) |
| Finish task | PUT /tasks/{id}/finish (Required: currentConsumed, realStarted, finishedDate) |
| Close task | PUT /tasks/{id}/close |
| Test case | /testcases (CRUD) |
| Test task | /testtasks (CUD + query list by product/project/execution) |
| Product plan | /productplans (CUD + query list by product) |
| Build | /builds (CUD + query list by project/execution) |
| Release | /releases (CUD + query list by product) |
| Feedback | /feedbacks (CRUD + close/activate) |
| Ticket | /tickets (CRUD + close/activate) |
| Application/system | /systems (CU + query list by product) |
| Get user list | GET /users |
{id}rm ~/.zentao-token.jsonexecutionIDexecutionmoudule