Skip to main content

缺陷管理使用指引

缺陷管理旨在将平台的Issue与您项目所使用的缺陷跟踪系统(如TAPD、Jira、Mantis等)进行关联。创建项目后,平台可通过项目的Webhook来创建缺陷工单。此外,您也能调用平台提供的OpenAPI来同步缺陷状态。

工作流程如下图所示:

  1. 管理员在「Bugly平台」创建缺陷管理项目,配置Webhook地址。
  2. 项目成员在「Bugly平台」为指定Issue创建缺陷。
  3. 项目成员确认缺陷信息符合预期后,Bugly平台会调用项目中配置的Webhook地址,通知业务需要创建缺陷工单。
  4. 项目成员在「缺陷跟踪系统」更新缺陷单的状态,业务主动监控状态变化,通过OpenAPI通知Bugly缺陷单最新的状态。
缺陷管理

缺陷管理的核心包含两点:

  1. 业务提供Webhook,这样用户在管理台创建缺陷时,Bugly平台会将缺陷信息通过这个Webhook提供给业务。这样业务可以跟内部的缺陷跟踪系统对接。
  2. 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'>&gt;&gt;&gt;点击查看详情&lt;&lt;&lt;</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&timestamp={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与缺陷工单解绑。

取消关联