缺陷管理使用指引
缺陷管理旨在将平台的Issue与您项目所使用的缺陷跟踪系统(如TAPD、Jira、Mantis等)进行关联。创建项目后,平台可通过项目的Webhook来创建缺陷工单。此外,您也能调用平台提供的OpenAPI来同步缺陷状态。
工作流程如下图所示:
- 管理员在「Bugly平台」创建缺陷管理项目,配置Webhook地址。
- 项目成员在「Bugly平台」为指定Issue创建缺陷。
- 项目成员确认缺陷信息符合预期后,Bugly平台会调用项目中配置的Webhook地址,通知业务需要创建缺陷工单。
- 项目成员在「缺陷跟踪系统」更新缺陷单的状态,业务主动监控状态变化,通过OpenAPI通知Bugly缺陷单最新的状态。

缺陷管理的核心包含两点:
- 业务提供Webhook,这样用户在管理台创建缺陷时,Bugly平台会将缺陷信息通过这个Webhook提供给业务。这样业务可以跟内部的缺陷跟踪系统对接。
- Bugly平台提供OpenAPI,这样业务可以监控缺陷跟踪系统,监听缺陷的状态变化,并且同步到Bugly平台。
对接完成后,Bugly平台的Issue可以跟业务的缺陷跟踪系统实现自动化信息同步。
1. 创建项目
入口:设置 --> 产品配置 --> 缺陷管理
项目核心要素:
- 项目名称:用来区分不同项目。
- Webhook:Bugly平台用来创建缺陷。
- 缺陷模板:用于规范缺陷报告的字段填写要求,确保关键信息完整、统一。例如,强制包含「发现版本」「处理人」等必要字段,提升缺陷跟踪效率与沟通清晰度。

2. 创建缺陷
入口一:异常问题列表,Issue的提单状态

入口二:问题详情,Issue的提单状态

确认创建缺陷工单的内容,如下所示,自动根据模板填写部分字段,用户可以手动调整。

用户确认缺陷内容符合预期后,Bugly平台调用Webhook,通知业务创建缺陷。通知的内容如下:
{
"ProductID":"p1",
"IssueKey":"FEB456D39F4A55375703D44873DBED01",
"ProjectName":"test_webhook",
"IssueType":"crash",
"FieldValues":{
"bugtype":"Crash类",
"current_owner":"test",
"deadline":"1天",
"description":"测试描述",
"estimate":"1天",
"priority":"urgent",
"reporter":"test",
"title":"【Bugly-性能监控】【CRASH问题】测试提单",
"workspace_id":"1040c8ea-1a7a-4307-8a3e-2f6d3a3daa05",
"description":"java.lang.OutOfMemoryError<br>#00 pc 0000000000073898 /apex/com.android.runtime/lib64/bionic/libc.so (abort+160) [arm64-v8a::06bff8f604b0d37dc8b11a90d9c3cea0]<br> ... <br>Issue ID:E782741C483A2EC8DBFC77962011DEE5<br><a href='https://bugly.woa.com/v2/exception/crash/issues/detail?productId=a278f01047&pid=1&token=c13dd43889cd62c7231cbac79a4be093&feature=E782741C483A2EC8DBFC77962011DEE5&tapd=true'>>>>点击查看详情<<<</a>",
},
}
关键字段说明如下:
- ProductID,String,产品ID
- IssueKey, String,bugly issue id
- IssueType,String,监控项类型:crash、error、anr等
- ProjectName,String,提单对应的项目名
- FieldValues,map,用户配置的缺陷模版,发起请求的时候,传给业务实际的值。
Webhook返回给Bugly的字段如下:
{
code:0,
message:"success",
url:"https://tapd.qq.com/tapd_fe/20428989/bug/detail/1020428989149773491" // 返回示例:提单系统返回的业务自己的异常管理系统,方便后面用户查看
}
关键字段说明如下:
- code, int,状态码
- message, string, 返回的消息: 成功或失败,以及用户可以自定义返回其他信息。
- url, string, 业务缺陷系统返回的链接地址,业务同学可以通过此链接跳转到业务自己的缺陷管理平台。
3. 同步状态
业务在自己的缺陷管理做了修改,比如修复了此issue,需要将状态同步到bugly平台,保持两边的状态一致。
OpenAPI:/v1/issue/modify_issue_status
入参说明

请求实例
curl -X POST 'https://api.bugly.tds.qq.com/v1/issue/modify_issue_status' \
-H 'Authorization: apiID={apiID}&hashedPayload={计算的hashedPayload}&nonce={nonce}&signMethod=HmacSHA256×tamp={timestamp}&version=202100&signature={计算的signature}' \
-H 'Content-Type: application/json' \
-H 'X-ProductId: {ProductId}' \
-H 'X-ProductKey: {ProductKey}' \
-d '{
"product_id":"a278f01047",
"issue_key":"FEB456D39F4A55375703D44873DBED01",
"issue_type":"crash",
"operator":"test",
"issue_status":"repairing",
"issue_ticket_handler": "test",
"issue_ticket_status": "Rejected",
}'
4. 其他功能
4.1 查询数据
在问题列表中,通过「提单状态」搜索指定状态的缺陷。

4.2 关联缺陷
除了创建新缺陷工单外,还可以将一个已经存在的缺陷工单跟Issue关联。

4.3 取消关联
用户可以通过「取消关联」将一个Issue与缺陷工单解绑。
