1. 安装禅道
1.1  选择适合您的安装方法
1.2  使用云禅道在线项目管理服务!
1.3  (推荐)windows用一键安装包安装
1.4  (推荐)linux用一键安装包
1.5  linux下用lampp集成包安装
1.6  使用源码包安装(MAC系统)
1.7  MAC下用XAMPP安装禅道
1.8  MAC下用XAMPP-VM安装禅道
1.9  禅道一键安装包里安装渠成软件
1.10  使用源码包安装(各系统通用)
1.11  宝塔面板安装禅道
1.12  华芸NAS在线安装
1.13  Centos7.4系统下安装httpd,mariadb,php7.2环境运行禅道
1.14  Centos8系统下安装httpd,mariadb,php7.2环境运行禅道
1.15  安装ioncube扩展
1.16  安装swoole扩展
1.17  Docker方式部署禅道
2. 禅道介绍
2.1  关于禅道项目管理软件
2.2  如何获得支持
2.3  关注我们
3. 升级禅道
3.1  选择和自己环境对应的升级方式
3.2  通过源代码方式升级(通用)
3.3  windows一键安装包的升级
3.4  linux一键安装包升级
4. 创建分组和用户
4.1  建立部门结构
4.2  添加一个用户帐号
4.3  批量维护帐号
4.4  设置分组,建立权限体系
5. 最简使用
5.1  使用禅道来进行项目任务管理
5.2  只使用禅道来做bug管理
5.3  只使用禅道来进行产品管理
5.4  个人使用禅道来做事务跟踪管理
6. 基本使用
6.1  禅道使用的基本流程和产品、研发、测试之间的三权分立
6.2  敏捷开发及scrum简介
6.3  禅道和scrum的对应关系
6.4  禅道的新手教程
6.5  创建第一个产品
6.6  添加第一个需求
6.7  开始第一个项目
6.8  确定项目要完成的需求列表
6.9  为需求分解任务
6.10  提交bug
6.11  视频教程:第一个演示项目
6.12  维护联系人
6.13  禅道的自定义功能
6.14  导入excel、csv参考文档
6.15  文档管理
6.16  工作方式的切换
6.17  操作获取积分功能
6.18  自定义必填项功能
6.19  如何排查产品、项目是否有访问权限
6.20  年度总结,工作内容统计一览表说明
7. 进阶使用
7.1. 使用流程
7.1.1  禅道使用流程图解
7.2. 个人管理
7.2.1  使用待办进行个人事务管理
7.2.2  关注需要自己处理的任务、需求、bug
7.2.3  通过我的档案查看或者修改个人信息
7.2.4  视频教程:禅道使用之个人篇
7.3. 产品经理篇
7.3.1  维护产品
7.3.2  维护产品线
7.3.3  创建和评审需求
7.3.4  变更和评审需求
7.3.5  需求的状态和研发阶段
7.3.6  需求的注意事项
7.3.7  维护产品模块
7.3.8  建立发布计划
7.3.9  建立发布
7.3.10  路线图
7.3.11  文档管理
7.3.12  主持产品会议
7.3.13  参与项目管理、演示和总结
7.3.14  需求的基本统计报表
7.3.15  视频教程:禅道使用之产品经理篇
7.4. 项目经理篇
7.4.1  建立项目
7.4.2  组建项目团队
7.4.3  确定项目要完成的需求列表
7.4.4  组织进行任务分解
7.4.5  召开每天的站立会议
7.4.6  通过燃尽图了解项目的进展
7.4.7  通过各种列表的各种功能了解项目进展
7.4.8  召开演示会议和总结会议
7.4.9  项目任务基本的报表统计
7.4.10  视频教程:禅道使用之项目经理篇
7.5. 开发团队篇
7.5.1  参加项目计划会议,分解任务
7.5.2  领取任务,并每天更新任务
7.5.3  通过看板和树状图查看任务
7.5.4  创建版本
7.5.5  申请测试
7.5.6  解决bug
7.5.7  文档管理
7.5.8  确认bug
7.5.9  视频教程:禅道使用之开发团队篇
7.6. 测试团队篇
7.6.1  维护bug视图模块
7.6.2  提交bug
7.6.3  验证bug,关闭
7.6.4  激活bug
7.6.5  找到自己需要的bug
7.6.6  维护测试用例视图
7.6.7  创建测试用例
7.6.8  测试套件、报告和公共用例库的维护
7.6.9  管理测试版本
7.6.10  执行用例,提交Bug
7.6.11  查看报表统计
7.6.12  视频教程:禅道使用之测试团队篇
8. 维护配置
8.1. 维护禅道
8.1.1  初始化管理脚本
8.1.2  备份禅道
8.1.3  恢复删除的资源
8.1.4  如何更新燃尽图
8.1.5  一键安装包如何实现mysql异机连接
8.1.6  linux一键安装包配置https
8.2. 配置禅道
8.2.1  设置是否允许匿名访问
8.2.2  如何配置email发信
8.2.3  如何成为超级管理员
8.2.4  配置禅道系统为静态访问
8.2.5  去掉禅道访问地址中的zentao
8.2.6  linux一键安装包去掉禅道访问地址中的zentao
8.2.7  集成禅道和svn
8.2.8  集成禅道和git
8.2.9  在第三方应用中集成禅道
8.2.10  第三方应用配置免密登录禅道
8.2.11  第三方应用集成禅道客户端进行消息通知
8.2.12  集成webhook
8.2.13  集成ZDOO
8.2.14  客户端集成
8.2.15  禅道的翻译功能
8.2.16  浏览器通知的设置
8.2.17  集成钉钉工作消息通知
8.2.18  集成企业微信应用消息通知
8.2.19  集成飞书群机器人
8.2.20  集成飞书消息通知
8.2.21  集成版本库、集成Jenkins,并进行构建
8.2.22  解决一键安装包密码口令弱的问题
8.3. 性能优化
8.3.1  nginx反向代理禅道502或504bad gateway错误
8.3.2  linux系统中配置session使用redis
9. 定制开发
9.1  二次开发机制
9.2  禅道的目录结构
9.3  找到要修改的文件
9.4  禅道的数据库结构
9.5  公用模块--common
9.6  如何登记菜单
9.7  如何登记权限
9.8  示例:如何修改禅道的语言提示?
9.9  示例:创建bug时可以设置优先级字段
9.10  使用在线扩展编辑器
9.11  二次开发编辑器和翻译功能限制使用说明
9.12  禅道项目管理软件打包规范1.1版本
10. 其他相关
10.1  禅道所使用到的第三方代码
10.2  禅道FAQ
10.3  如何帮助禅道项目
10.4  禅道商业服务
10.5  禅道项目的贡献者
10.6  历史修改记录

禅道PHP-SDK帮助手册-第二章

2020-02-29 18:35:00
雷勇
1250
最后编辑:郑乔尹 于 2020-03-12 10:16:23
分享链接
摘要:本篇将介绍如何在PHP编程语言中集成与使用此SDK,只需要简单的进行配置和引用便可使用。本篇内容是第一章的续章。
public function addBug()
{
    include_once('../vendor/zentao/zentao.php');
    $zentao = new \zentao();
    $params = array(
        'product'        => 1,
        'module'         => 2,
        'project'        => 1,
       'openedBuild'    => array('trunk', 3, 2),
        'openedBuild[1]' => 'trunk',
        'assignedTo'     => 'lisi',
        'deadline'       => '2019-11-21',
        'type'           => 'codeerror',
        'os'             => 'windows',
        'browser'        => 'ie11',
        'title'          => '添加bug测试四',
        'color'          => '#2dbdb2',
        'severity'       => 2,
        'pri'            => 1,
        'steps'          => '重现步骤描述添加bug测试四',
        'story'          => 0,
        'task'           => 0,
        'mailto[1]'      => 'lisi',
        'keywords'       => 'bug4'
    );    // 请求参数
    $result = $zentao->addBug($params);
    return $result;
}

 4.15完成单个任务可选信息

方法说明

请求此方法,可以获取该任务的所属项目详情、任务详情、任务操作记录,同时获取用于指派完成的用户列表。

使用示例
public function getTaskFinishParams()
{
    include_once('../vendor/zentao/zentao.php');
    $zentao      = new \zentao();
    $params      = array('taskID' => 1);    // 请求参数
    $extraFields = array('title', 'users', 'task', 'project', 'actions');    // 自定义返回字段
    $result      = $zentao->getTaskFinishParams($params, $extraFields);
    return $result;
}
请求方式
GET
方法名称
getTaskFinishParams
请求参数
参数名称
参数类型
是否必填
参数描述
taskID
int 必填参数 任务ID
响应结果
success error
{
    "status": 1,
    "msg": "success",
    "result": {
         //当前禅道项目导航位置
        "title": "禅道系统 PHP-SDK 开发-完成",
        //可用指派用户列表
        "users": {
            "_empty_": "",
            "admin": "A:admin",
            "lisi": "L:李四",
            "niuqi": "N:牛七",
            "wangwu": "W:王五",
            "zhangsan": "Z:张三",
            "zhapliu": "Z:赵六"
        },
        //任务详情信息
        "task": {
            "id": "1",
            "parent": "0",
            "project": "1",
            "module": "1",
            "story": "1",
            "storyVersion": "1",
            "fromBug": "0",
            "name": "确认禅道PHP-SDK需求,创建PHP-SDK文件 ",
            "type": "design",
            "pri": "1",
            "estimate": "4",
            "consumed": "6",//之前消耗时长【小时】
            "left": "0",
            "deadline": "2019-11-11",
            "status": "done",
            "subStatus": "",
            "color": "",
            "mailto": "",
            "desc": "创建 zentao.sdk.class 文件,做好基本的用户认证,分析需求,开始进行功能开发。",
            "openedBy": "admin",
            "openedDate": "2019-11-11 15:29:27",
            "assignedTo": "admin",
            "assignedDate": "2019-11-20 15:30:15",
            "estStarted": "2019-11-11",
            "realStarted": "2019-11-11",
            "finishedBy": "admin",
            "finishedDate": "2019-11-20 15:30:15",
            "finishedList": "",
            "canceledBy": "",
            "canceledDate": "",
            "closedBy": "",
            "closedDate": "",
            "closedReason": "",
            "lastEditedBy": "admin",
            "lastEditedDate": "2019-11-20 15:30:15",
            "deleted": "0",
            "storyID": "1",
            "storyTitle": "确认禅道PHP-SDK需求,创建PHP-SDK文件",
            "latestStoryVersion": "1",
            "storyStatus": "active",
            "assignedToRealName": "admin",
            "children": [],
            "team": [],
            "files": [],
            "cases": [],
            "needConfirm": false,
            "progress": 100,
            "nextBy": "admin"
        },
        //所属项目详情信息
        "project": {
            "id": "1",
            "isCat": "0",
            "catID": "0",
            "type": "sprint",
            "parent": "0",
            "name": "禅道系统 PHP-SDK 开发",
            "code": "002",
            "begin": "2019-11-11",
            "end": "2019-11-23",
            "days": "10",
            "status": "doing",
            "subStatus": "",
            "statge": "1",
            "pri": "1",
            "desc": "开发禅道项目管理系统 PHP-SDK 的开发,用于 PHPer 高效便捷的进行项目管理。",
            "openedBy": "admin",
            "openedDate": "2019-11-11 15:24:14",
            "openedVersion": "11.6.4",
            "closedBy": "",
            "closedDate": "0000-00-00 00:00:00",
            "canceledBy": "",
            "canceledDate": "0000-00-00 00:00:00",
            "PO": "lisi",
            "PM": "lisi",
            "QD": "lisi",
            "RD": "lisi",
            "team": "雷勇开发",
            "acl": "custom",
            "whitelist": "1,2",
            "order": "5",
            "deleted": "0",
            "totalHours": "420.0",
            "totalEstimate": 28,
            "totalConsumed": 33,
            "totalLeft": 5
        },
        //操作记录详情列表
        "actions": {
            "14": {
                "id": "14",
                "objectType": "task",
                "objectID": "1",
                "product": ",1,",
                "project": "1",
                "actor": "wangwu",
                "action": "started",
                "date": "2019-11-11 15:30:33",
                "comment": "",
                "extra": "",
                "read": "0",
                "history": [
                    {
                        "id": "2",
                        "action": "14",
                        "field": "realStarted",
                        "old": "0000-00-00",
                        "new": "2019-11-11",
                        "diff": ""
                    },
                    {
                        "id": "3",
                        "action": "14",
                        "field": "consumed",
                        "old": "0",
                        "new": "3",
                        "diff": ""
                    },
                    {
                        "id": "4",
                        "action": "14",
                        "field": "status",
                        "old": "wait",
                        "new": "doing",
                        "diff": ""
                    }
                ]
            }
        }
    }
}
{
    "status": 0,
    "msg": "error",
    "result": []
}

 4.16完成单个任务

方法说明

请求此方法,用于确认某一个任务完成,可指派完成任务的用户、消耗时间等信息。

使用示例
public function addTaskFinish()
{
    include_once('../vendor/zentao/zentao.php');
    $zentao = new \zentao();
    $params = array(
        'taskID'          => 16,
        'currentConsumed' => 1,
        'consumed'        => 19,
        'assignedTo'      => 'lisi',
        'finishedDate'    => '2019-11-12',
        'comment'         => '完成任务描述'
    );    // 请求参数
    $result = $zentao->addTaskFinish($params);
    return $result;
}
请求方式
POST
方法名称
addTaskFinish
请求参数
参数名称
参数类型
是否必填
参数描述
taskID
int 必填参数
任务ID
currentConsumed
int
必填参数
本次消耗【小时】
consumed
int 必填参数
之前消耗【小时,可从 完成单个任务可选信息 方法响应结果 task->consumed 获取】
assignedTo
string
必填参数
指派完成用户【示例:admin】
finishedDate
string
必填参数
实际完成时间【格式:2019-12-12】
comment
string
选填参数 完成备注
响应结果
success error
{
    "status": 1,
    "msg": "success",
    "result": []
}
{
    "status": 0,
    "msg": "error",
    "result": []
}

 4.17获取Bug列表

方法说明

请求此方法,可以根据不同产品下的不同状态获取该产品 Bug 列表。

使用示例
public function getBugList()
{
    include_once('../vendor/zentao/zentao.php');
    $zentao      = new \zentao();
    $params      = array('productID' => 1, 'branch' => 0, 'browseType' => 'unresolved');    // 请求参数
    $extraFields = array('title', 'products', 'productID', 'productName', 'product', 'moduleName', 'modules', 'browseType', 'bugs');    // 自定义返回字段
    $result      = $zentao->getBugList($params, $extraFields);
    return $result;
}
请求方式
GET
方法名称

getBugList

请求参数
参数名称
参数类型
是否必填
参数描述
productID
int 必填参数 产品ID
branch
int 必填参数 分支ID【默认为0】
browseType
string
选填参数 选填参数|Bug状态【all所有|unclosed未关闭|openedbyme由我创建|assigntome指派给我|resolvedbyme由我解决|toclosed待关闭|unresolved未解决|unconfirmed未确认|longlifebugs久未处理|postponedbugs被延期|overduebugs过期BUG|needconfirm需求变动】
响应结果
success error
{
    "status": 1,
    "msg": "success",
    "result": {
        //当前禅道项目导航位置
        "title": "禅道项目管理系统-PHP-SDK-Bug",
        //已有产品名称列表
        "products": {
            "1": "禅道项目管理系统-PHP-SDK",
            "2": "产品二",
            "3": "产品三",
            "4": "产品四",
            "5": "产品五",
            "6": "产品六",
            "9": "产品100"
        },
        //当前产品ID
        "productID": 1,
        //当前产品名称
        "productName": "禅道项目管理系统-PHP-SDK",
        //当前产品详情
        "product": {
            "id": "1",
            "name": "禅道项目管理系统-PHP-SDK",
            "code": "001",
            "line": "0",
            "type": "normal",
            "status": "normal",
            "subStatus": "",
            "desc": "开发禅道PHP开发语言的SDK,以方便开发人员能快速来创建和使用禅道系统所提供的服务,同时减少开发者的学习成本和时间。",
            "PO": "admin",
            "QD": "admin",
            "RD": "admin",
            "acl": "open",
            "whitelist": "",
            "createdBy": "admin",
            "createdDate": "2019-11-11 12:22:29",
            "createdVersion": "11.6.4",
            "order": "5",
            "deleted": "0"
        },
        //当前产品模块
        "moduleName": "所有模块",
        //当前产品模块列表
        "modules": [
            "/",
            "/设计",
            "/开发",
            "/变更",
            "/测试"
        ],
        //当前 BUG 状态
        "browseType": "unclosed",
        //当前状态下的 BUG 列表
        "bugs": [
            {
                "id": "7",//BUG ID
                "product": "1",//所属产品ID
                "branch": "0",//所属分支ID
                "module": "2",//所属模块ID
                "project": "1",//所属项目ID
                "plan": "0",//j所属计划ID
                "story": "0",
                "storyVersion": "1",
                "task": "0",
                "toTask": "0",
                "toStory": "0",
                "title": "添加bug测试三",//BUG 标题
                "keywords": "修改bug",//BUG 关键词
                "severity": "2",//严重程度
                "pri": "1",//优先程度
                "type": "codeerror",//BUG 类型
                "os": "windows",//操作系统
                "browser": "ie11",//浏览器
                "hardware": "",
                "found": "",
                "steps": "重现步骤描述添加bug测试三",//重现步骤描述
                "status": "active",//BUG 状态【active激活|resolved已解决|closed已关闭】
                "subStatus": "",
                "color": "#2dbdb2",//BUG颜色
                "confirmed": "0",//是否确认
                "activatedCount": "0",
                "activatedDate": "0000-00-00 00:00:00",
                "mailto": "zhangsan",
                "openedBy": "admin",
                "openedDate": "2019-11-21 16:45:58",
                "openedBuild": "主干",
                "assignedTo": "zhangsan",
                "assignedDate": "2019-11-21 16:45:58",
                "deadline": "2019-11-21",
                "resolvedBy": "",
                "resolution": "",
                "resolvedBuild": "",
                "resolvedDate": "0000-00-00 00:00:00",
                "closedBy": "",
                "closedDate": "0000-00-00 00:00:00",
                "duplicateBug": "0",
                "linkBug": "",
                "case": "0",
                "caseVersion": "1",
                "result": "0",
                "testtask": "0",
                "lastEditedBy": "",
                "lastEditedDate": "0000-00-00 00:00:00",
                "deleted": "0",
                "delay": 1,
                "needconfirm": false
            }
        ]
    }
}
{
    "status": 0,
    "msg": "error",
    "result": []
}

 4.18添加单个Bug可选信息

方法说明

请求此方法,用于为指定产品添加 Bug 之前,获取添加 Bug 时可能需要用到的一些相关信息。

使用示例
public function getBugCreateParams()
{
    include_once('../vendor/zentao/zentao.php');
    $zentao      = new \zentao();
    $params      = array('productID' => 1);    // 请求参数
    $extraFields = array('title', 'productID', 'productName', 'projects', 'moduleOptionMenu', 'users', 'stories', 'builds');    // 自定义返回字段
    $result      = $zentao->getBugCreateParams($params, $extraFields);
    return $result;
}
请求方式
GET
方法名称
getBugCreateParams
请求参数
参数名称
参数类型
是否必填
参数描述
productID
int 必填参数 所属产品ID
响应结果
success error
{
    "status": 1,
    "msg": "success",
    "result": {
        //当前禅道项目导航位置
        "title": "禅道项目管理系统-PHP-SDK-提Bug",
        //当前产品ID
        "productID": 1, 
        //当前产品名称
        "productName": "禅道项目管理系统-PHP-SDK",
        //当前产品下的项目列表
        "projects": {
            "1": "禅道系统 PHP-SDK 开发",
            "_empty_": ""
        },
        //当前产品的模块列表
        "moduleOptionMenu": [
            "/",
            "/设计",
            "/开发",
            "/变更",
            "/测试"
        ],
        //可指派用户列表
        "users": {
            "_empty_": "",
            "lisi": "L:李四",
            "wangwu": "W:王五",
            "zhapliu": "Z:赵六",
            "admin": "A:admin",
            "niuqi": "N:牛七",
            "zhangsan": "Z:张三"
        },
        //当前产品需求列表
        "stories": {
            "1": "1:确认禅道PHP-SDK需求,创建PHP-SDK文件 (优先级:1,预计工时:4)",
            "2": "2:开发禅道SDK功能接口 (优先级:1,预计工时:24)",
            "_empty_": ""
        },
        //当前产品影响版本列表
        "builds": {
            "trunk": "主干"
        }
    }
}
{
    "status": 0,
    "msg": "error",
    "result": []
}

 4.19添加单个Bug

方法说明

请求此方法,用于新增 Bug 反馈,新增 Bug 时可以绑定所属产品、项目、优先级等相关设置,并指派给某个用户。

使用示例
public function addBug()
{
    include_once('../vendor/zentao/zentao.php');
    $zentao = new \zentao();
    $params = array(
        'product'        => 1,
        'module'         => 2,
        'project'        => 1,
        'openedBuild'    => array('trunk', 3, 2),
        'assignedTo'     => 'lisi',
        'deadline'       => '2019-11-21',
        'type'           => 'codeerror',
        'os'             => 'windows',
        'browser'        => 'ie11',
        'title'          => '添加bug测试四',
        'color'          => '#2dbdb2',
        'severity'       => 2,
        'pri'            => 1,
        'steps'          => '重现步骤描述添加bug测试四',
        'story'          => 0,
        'task'           => 0,
        'mailto'         => array('lisi', '张三'),
        'keywords'       => 'bug4'
    );    // 请求参数
    $result = $zentao->addBug($params);
    return $result;
}

请求方式
POST
方法名称
addBug
请求参数
参数名称
参数类型
是否必填
参数描述
product
int 必填参数
所属产品ID
module
int
选填参数
所属模块ID
project
int
选填参数
所属项目ID
openedBuild
array 选填参数
影响版本ID【添加单个 Bug 可选信息结果中 builds 记录的 key 值】
assignedTo
string 选填参数
当前指派【用户账号】
deadline
string
选填参数
截止日期【格式示例:2019-11-11】
type
string
选填参数
BUG类型【codeerror代码错误|config配置相关|install安装部署|security安全相关|performance性能问题|standard标准规范|automation测试脚本|designdefect设计缺陷|others其他】
os string
选填参数
选填参数|操作系统【all-全部|windows-Windows|win10-Windows 10|win8-Windows 8|win7-Windows 7|vista-Windows Vista|winxp-Windows XP|win2012-Windows 2012|win2008-Windows 2008|win2003-Windows 2003|win2000-Windows 2000|android-Android|ios-IOS|wp8-WP8|wp7-WP7|symbian-Symbian|linux-Linux|freebsd-FreeBSD|osx-OS X|unix-Unix|others-其他】
browser
string
选填参数
选填参数|浏览器【all-全部|ie-IE系列|ie11-IE11|ie10-IE10|ie9-IE9|ie8-IE8|ie7-IE7|ie6-IE6|chrome-Chrome|firefox-firefox系列|firefox4-firefox4|firefox3-firefox3|firefox2-firefox2|opera-opera系列|oprea11-oprea11|oprea10-opera10|opera9-opera9|safari-safari|maxthon-傲游|us-UC|other-其他】
title
string
必填参数
BUG标题
browser
string
选填参数
BUG颜色【示例:#2dbdb2】
severity
int
选填参数
严重程度【1~4】
pri
int
选填参数
优先级【1~4】
steps
string
选填参数
重现步骤描述
story
int
选填参数
相关需求ID
task
int
选填参数
相关任务ID
keywords
string
选填参数
BUG关键词
响应结果
success error
{
    "status": 1,
    "msg": "success",
    "result": "保存成功"
}
{
    "status": 0,
    "msg": "error",
    "result": {
        "title": [
            "『Bug标题』不能为空。"
        ]
    }
}

 4.20解决单个Bug可选信息

方法说明

请求此方法,可以获取当前 Bug 详细信息以及确认 Bug 解决时可能用到的信息。

使用示例
public function getBugResolveParams()
{
    include_once('../vendor/zentao/zentao.php');
    $zentao      = new \zentao();
    $params      = array('bugID' => 14);    // 请求参数
    $extraFields = array('title', 'products', 'bug', 'users', 'builds', 'actions');    // 自定义返回字段
    $result      = $zentao->getBugResolveParams($params, $extraFields);
    return $result;
}
请求方式
GET
方法名称

getBugResolveParams

请求参数
参数名称
参数类型
是否必填
参数描述
bugID
int 必填参数 Bug ID
响应结果
success error
{
    "status": 1,
    "msg": "success",
    "result": {
         //当前禅道项目导航位置
        "title": "禅道项目管理系统-PHP-SDK-解决",
        //已存在产品列表
        "products": {
            "1": "禅道项目管理系统-PHP-SDK"
        },
        //BUG详情【相关描述可参考 2.12 获取 BUG 列表】
        "bug": {
            "id": "5",
            "product": "1",
            "branch": "0",
            "module": "2",
            "project": "1",
            "plan": "0",
            "story": "0",
            "storyVersion": "1",
            "task": "0",
            "toTask": "0",
            "toStory": "0",
            "title": "添加bug测试二",
            "keywords": "修改bug",
            "severity": "2",
            "pri": "1",
            "type": "codeerror",
            "os": "windows",
            "browser": "ie11",
            "hardware": "",
            "found": "",
            "steps": "重现步骤描述添加bug测试二",
            "status": "active",
            "subStatus": "",
            "color": "#2dbdb2",
            "confirmed": "1",
            "activatedCount": "0",
            "activatedDate": "",
            "mailto": "lisi",
            "openedBy": "admin",
            "openedDate": "2019-11-21 16:45:13",
            "openedBuild": "trunk",
            "assignedTo": "lisi",
            "assignedDate": "2019-11-22 15:22:21",
            "deadline": "2019-11-21",
            "resolvedBy": "",
            "resolution": "",
            "resolvedBuild": "",
            "resolvedDate": "",
            "closedBy": "",
            "closedDate": "",
            "duplicateBug": "0",
            "linkBug": "",
            "case": "0",
            "caseVersion": "1",
            "result": "0",
            "testtask": "0",
            "lastEditedBy": "admin",
            "lastEditedDate": "2019-11-22 15:22:21",
            "deleted": "0",
            "projectName": "禅道系统 PHP-SDK 开发",
            "storyTitle": null,
            "storyStatus": null,
            "latestStoryVersion": null,
            "taskName": null,
            "planName": null,
            "toCases": [],
            "files": [],
            "delay": 1
        },
        //可用用户列表【用于指派】
        "users": {
            "_empty_": "",
            "admin": "A:admin",
            "lisi": "L:李四",
            "niuqi": "N:牛七",
            "wangwu": "W:王五",
            "zhangsan": "Z:张三",
            "zhapliu": "Z:赵六"
        },
        //当前可用版本【用于解决版本】
        "builds": {
            "_empty_": "",
            "trunk": "主干"
        },
        //当前 BUG 的操作记录
        "actions": {
            "791": {
                "id": "791",
                "objectType": "bug",
                "objectID": "5",
                "product": ",1,",
                "project": "1",
                "actor": "admin",
                "action": "bugconfirmed",
                "date": "2019-11-22 15:22:21",
                "comment": "",
                "extra": "",
                "read": "0",
                "history": [
                    {
                        "id": "216",
                        "action": "791",
                        "field": "confirmed",
                        "old": "0",
                        "new": "1",
                        "diff": ""
                    }
                ]
            }
        }
    }
}
{
    "status": 0,
    "msg": "error",
    "result": []
}

 4.21解决单个Bug

方法说明

请求此方法,用于确认一个 Bug 已解决,同时为其绑定解决方案、解决版本、解决日期等相关信息。

  • 注意点一:如果需要新增所属版本,需要额外添加三个参数,示例:'buildProject' => 1,'buildName' => '版本7.2.4', createBuild' => 1,分别代表选择哪个项目( 项目ID )、新增版本名称、确认创建。
  • 注意点二:如果解决方案是【 duplicate 重复 Bug 】 时,需要输入重复 Bug 的 ID,额外添加参数,示例:'duplicateBug' => 5,代表和 ID 等于 5 的 Bug 重复。
使用示例
public function addBugResolve()
{
    include_once('../vendor/zentao/zentao.php');
    $zentao = new \zentao();
    $params = array(
        'bugID'         => 9,
        'resolution'    => '
duplicate',
        'resolvedBuild' => '2',
        'resolvedDate'  => '2019-11-22',
        'assignedTo'    => 'lisi',
        'comment'       => '解决bug描述',
        'buildProject'  => 1,
        'buildName'     => '版本7.2.5',
        'createBuild'   => 1,
        'duplicateBug'  => 2
    );    // 请求参数
    $result = $zentao->addBugResolve($params);
    return $result;
}

请求方式
POST
方法名称

addBugResolve

请求参数
参数名称
参数类型
是否必填
参数描述
bugID
int 必填参数 Bug ID
resolution
string
必填参数
解决方案【bydesign设计如此|duplicate重复 Bug|external外部原因|fixed已解决|notrepro无法重现|postponed延期处理|willnotfix不予解决】
resolvedBuild
string
选填参数
解决版本【如需新增版本,参考注意点一】
resolvedDate
string
选填参数
解决日期【格式:2019-11-11】
assignedTo
string
选填参数
指派用户【用户账号】
comment
string
选填参数
备注描述
buildProject int 选填参数
新增版本所属项目ID
buildName string 选填参数
新增版本名称

createBuild

int
选填参数
是否创建【1是0否】

duplicateBug

int
选填参数
重复Bug的ID
响应结果
success error
{
    "status": 1,
    "msg": "success",
    "result": []
}
{
    "status": 0,
    "msg": "error",
    "result": []
}

五、常见问题?

 5.1调用禅道 SDK 类中方法,出现错误提示 "Trying to get property of non-object" ?

通常由以下情况造成,开发者可以打印输出 SDK 中请求结果 $result 查看返回信息以此查看原因。

  • 第一种情况,需要修改密码。 解决方案: 登录后台管理系统,找到 后台->安全->密码安全设置 关闭密码检查、关闭强制修改弱密码、关闭强制首次登录修改密码
<html><meta charset='utf-8'/>
<style>body{background:white}</style>
<script>self.location='/index.php?m=my&f=changepassword&t=json';</script>
  • 第二种情况,没有操作权限。 解决方案:  登录后台管理系统,给该账号设置相关权限。
<html><meta charset='utf-8'/>
<style>body{background:white}</style>
<script>self.location='/index.php?m=user&f=deny&t=json&module=dept&method=browse';</script>
  • 第三种情况,缺失参数。 解决方案:  在 API 列表  中找到对应方法,检查所传参数是否与文档列表中的参数相符。


发表评论
评论通过审核后显示。