You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by kl...@apache.org on 2022/10/26 09:49:44 UTC
[incubator-devlake] branch main updated: fix: add bitbucket transformationrules (#3579)
This is an automated email from the ASF dual-hosted git repository.
klesh pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git
The following commit(s) were added to refs/heads/main by this push:
new ccbe60cd fix: add bitbucket transformationrules (#3579)
ccbe60cd is described below
commit ccbe60cd13c46ff553264005d40d4be8e90a5d15
Author: tsoc <47...@users.noreply.github.com>
AuthorDate: Wed Oct 26 17:49:38 2022 +0800
fix: add bitbucket transformationrules (#3579)
* fix: add bitbucket transformationrules
* fix: add issue status transformation
* fix: fix json struct tag
* fix: e2e test data change and deal with err in bitbucket issue_extractor
---
plugins/bitbucket/e2e/comment_test.go | 12 ++---
plugins/bitbucket/e2e/issue_test.go | 12 ++---
plugins/bitbucket/e2e/pr_test.go | 12 ++---
plugins/bitbucket/e2e/repo_test.go | 11 ++--
.../e2e/snapshot_tables/_tool_bitbucket_issues.csv | 60 +++++++++++-----------
plugins/bitbucket/e2e/snapshot_tables/issues.csv | 60 +++++++++++-----------
plugins/bitbucket/models/connection.go | 12 ++---
plugins/bitbucket/tasks/issue_extractor.go | 24 ++++++++-
8 files changed, 100 insertions(+), 103 deletions(-)
diff --git a/plugins/bitbucket/e2e/comment_test.go b/plugins/bitbucket/e2e/comment_test.go
index 1753ad94..21c39338 100644
--- a/plugins/bitbucket/e2e/comment_test.go
+++ b/plugins/bitbucket/e2e/comment_test.go
@@ -42,15 +42,9 @@ func TestCommentDataFlow(t *testing.T) {
Owner: "panjf2000",
Repo: "ants",
TransformationRules: models.TransformationRules{
- PrType: "type/(.*)$",
- PrComponent: "component/(.*)$",
- PrBodyClosePattern: "(?mi)(fix|close|resolve|fixes|closes|resolves|fixed|closed|resolved)[\\s]*.*(((and )?(#|https:\\/\\/api.bitbucket.org\\/2.0\\/%s\\/%s\\/issues\\/)\\d+[ ]*)+)",
- IssueSeverity: "severity/(.*)$",
- IssuePriority: "^(highest|high|medium|low)$",
- IssueComponent: "component/(.*)$",
- IssueTypeBug: "^(bug|failure|error)$",
- IssueTypeIncident: "",
- IssueTypeRequirement: "^(feat|feature|proposal|requirement)$",
+ IssueStatusTODO: []string{"new", "open"},
+ IssueStatusINPROGRESS: []string{"on hold"},
+ IssueStatusDONE: []string{"closed"},
},
},
Repo: bitbucketRepository,
diff --git a/plugins/bitbucket/e2e/issue_test.go b/plugins/bitbucket/e2e/issue_test.go
index eb80fdb8..d7b6999a 100644
--- a/plugins/bitbucket/e2e/issue_test.go
+++ b/plugins/bitbucket/e2e/issue_test.go
@@ -41,15 +41,9 @@ func TestIssueDataFlow(t *testing.T) {
Owner: "panjf2000",
Repo: "ants",
TransformationRules: models.TransformationRules{
- PrType: "type/(.*)$",
- PrComponent: "component/(.*)$",
- PrBodyClosePattern: "(?mi)(fix|close|resolve|fixes|closes|resolves|fixed|closed|resolved)[\\s]*.*(((and )?(#|https:\\/\\/api.bitbucket.org\\/2.0\\/%s\\/%s\\/issues\\/)\\d+[ ]*)+)",
- IssueSeverity: "severity/(.*)$",
- IssuePriority: "^(highest|high|medium|low)$",
- IssueComponent: "component/(.*)$",
- IssueTypeBug: "^(bug|failure|error)$",
- IssueTypeIncident: "",
- IssueTypeRequirement: "^(feat|feature|proposal|requirement)$",
+ IssueStatusTODO: []string{"new", "open", "wantfix"},
+ IssueStatusINPROGRESS: []string{"on hold", "resolved"},
+ IssueStatusDONE: []string{"closed", "invalid"},
},
},
Repo: bitbucketRepository,
diff --git a/plugins/bitbucket/e2e/pr_test.go b/plugins/bitbucket/e2e/pr_test.go
index 7599c49c..001b0c1d 100644
--- a/plugins/bitbucket/e2e/pr_test.go
+++ b/plugins/bitbucket/e2e/pr_test.go
@@ -37,14 +37,10 @@ func TestPrDataFlow(t *testing.T) {
}
taskData := &tasks.BitbucketTaskData{
Options: &tasks.BitbucketOptions{
- ConnectionId: 1,
- Owner: "panjf2000",
- Repo: "ants",
- TransformationRules: models.TransformationRules{
- PrType: "type/(.*)$",
- PrComponent: "component/(.*)$",
- PrBodyClosePattern: "(?mi)(fix|close|resolve|fixes|closes|resolves|fixed|closed|resolved)[\\s]*.*(((and )?(#|https:\\/\\/api.bitbucket.org\\/2.0\\/%s\\/%s\\/issues\\/)\\d+[ ]*)+)",
- },
+ ConnectionId: 1,
+ Owner: "panjf2000",
+ Repo: "ants",
+ TransformationRules: models.TransformationRules{},
},
Repo: bitbucketRepository,
}
diff --git a/plugins/bitbucket/e2e/repo_test.go b/plugins/bitbucket/e2e/repo_test.go
index 146570b8..104cf0fd 100644
--- a/plugins/bitbucket/e2e/repo_test.go
+++ b/plugins/bitbucket/e2e/repo_test.go
@@ -38,13 +38,10 @@ func TestRepoDataFlow(t *testing.T) {
}
taskData := &tasks.BitbucketTaskData{
Options: &tasks.BitbucketOptions{
- ConnectionId: 1,
- Owner: "panjf2000",
- Repo: "ants",
- TransformationRules: models.TransformationRules{
- PrType: "type/(.*)$",
- PrComponent: "component/(.*)$",
- },
+ ConnectionId: 1,
+ Owner: "panjf2000",
+ Repo: "ants",
+ TransformationRules: models.TransformationRules{},
},
Repo: bitbucketRepository,
}
diff --git a/plugins/bitbucket/e2e/snapshot_tables/_tool_bitbucket_issues.csv b/plugins/bitbucket/e2e/snapshot_tables/_tool_bitbucket_issues.csv
index d8517031..a9610f96 100644
--- a/plugins/bitbucket/e2e/snapshot_tables/_tool_bitbucket_issues.csv
+++ b/plugins/bitbucket/e2e/snapshot_tables/_tool_bitbucket_issues.csv
@@ -1,35 +1,35 @@
connection_id,bitbucket_id,repo_id,number,state,title,body,priority,type,author_id,author_name,assignee_id,assignee_name,milestone_id,lead_time_minutes,url,closed_at,severity,component,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
-1,1,panjf2000/ants,1,new,issue test,bitbucket issues test for devants,major,issue,62abf394192edb006fa0e8cf,teoiaoe,62abf394192edb006fa0e8cf,teoiaoe,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/1,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,60,
-1,2,panjf2000/ants,2,new,add bitbucket issue,feafejo,major,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/2,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,59,
-1,3,panjf2000/ants,3,new,bitbucket test,"efaegjeoaijefioaegrjoeior,af enfaoiee vioea.,,.wew",major,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/3,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,58,
-1,4,panjf2000/ants,4,new,issue test001,Bitbucket issue test001,major,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/4,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,57,
-1,5,panjf2000/ants,5,new,issue test002,issue test002,major,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/5,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,56,
-1,6,panjf2000/ants,6,new,issue test003,issue test 003,major,issue,62abf394192edb006fa0e8cf,teoiaoe,62abf394192edb006fa0e8cf,teoiaoe,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/6,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,37,
-1,7,panjf2000/ants,7,new,issue test004,issue test004,major,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/7,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,55,
-1,8,panjf2000/ants,8,new,issue test005,issue test005,critical,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/8,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,54,
-1,9,panjf2000/ants,9,new,issue test006,issue test006,blocker,issue,62abf394192edb006fa0e8cf,teoiaoe,62abf394192edb006fa0e8cf,teoiaoe,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/9,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,53,
-1,10,panjf2000/ants,10,new,issue test007,issue test007,trivial,issue,62abf394192edb006fa0e8cf,teoiaoe,62abf394192edb006fa0e8cf,teoiaoe,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/10,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,52,
-1,11,panjf2000/ants,11,new,issue test008,issue test008,major,issue,62abf394192edb006fa0e8cf,teoiaoe,62abf394192edb006fa0e8cf,teoiaoe,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/11,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,51,
-1,12,panjf2000/ants,12,new,issue test009,issue test009,minor,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/12,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,50,
-1,13,panjf2000/ants,13,new,issue test010,issue test010,critical,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/13,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,49,
-1,14,panjf2000/ants,14,new,issue test011,issue test011,blocker,issue,62abf394192edb006fa0e8cf,teoiaoe,62abf394192edb006fa0e8cf,teoiaoe,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/14,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,48,
-1,15,panjf2000/ants,15,new,issue test012,issue test012,minor,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/15,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,47,
-1,16,panjf2000/ants,16,new,issue test013,issue test013,trivial,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/16,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,46,
-1,17,panjf2000/ants,17,new,issue test014,issue test014,trivial,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/17,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,45,
-1,18,panjf2000/ants,18,new,issue test015,issue test015,minor,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/18,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,44,
-1,19,panjf2000/ants,19,new,issue test016,issue test016,critical,issue,62abf394192edb006fa0e8cf,teoiaoe,62abf394192edb006fa0e8cf,teoiaoe,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/19,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,43,
-1,20,panjf2000/ants,20,new,issue test017,issue test017,blocker,issue,62abf394192edb006fa0e8cf,teoiaoe,62abf394192edb006fa0e8cf,teoiaoe,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/20,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,42,
-1,21,panjf2000/ants,21,new,issue test018,issue test018,trivial,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/21,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,41,
-1,22,panjf2000/ants,22,new,issue test019,issue test019,minor,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/22,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,40,
-1,23,panjf2000/ants,23,new,issue test020,issue test020,critical,issue,62abf394192edb006fa0e8cf,teoiaoe,62abf394192edb006fa0e8cf,teoiaoe,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/23,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,39,
-1,24,panjf2000/ants,24,new,issue test021,"issue test021 ijeiawgoeive/faveevaeviaevfejaofejfioejaiofe_veavejiovajgiorejoifjrogiorejieafajejaojoejvgioriovioraivjairobnrnoivaiorjbiorjiojaeiorjvioejroivjaoijeriojiaojioeefjafioejfiojeiofawefwefoiwefiwoiefweefwoefuwhufirfrw._
+1,1,panjf2000/ants,1,TODO,issue test,bitbucket issues test for devants,major,issue,62abf394192edb006fa0e8cf,teoiaoe,62abf394192edb006fa0e8cf,teoiaoe,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/1,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,60,
+1,2,panjf2000/ants,2,TODO,add bitbucket issue,feafejo,major,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/2,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,59,
+1,3,panjf2000/ants,3,TODO,bitbucket test,"efaegjeoaijefioaegrjoeior,af enfaoiee vioea.,,.wew",major,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/3,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,58,
+1,4,panjf2000/ants,4,TODO,issue test001,Bitbucket issue test001,major,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/4,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,57,
+1,5,panjf2000/ants,5,TODO,issue test002,issue test002,major,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/5,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,56,
+1,6,panjf2000/ants,6,TODO,issue test003,issue test 003,major,issue,62abf394192edb006fa0e8cf,teoiaoe,62abf394192edb006fa0e8cf,teoiaoe,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/6,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,37,
+1,7,panjf2000/ants,7,TODO,issue test004,issue test004,major,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/7,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,55,
+1,8,panjf2000/ants,8,TODO,issue test005,issue test005,critical,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/8,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,54,
+1,9,panjf2000/ants,9,TODO,issue test006,issue test006,blocker,issue,62abf394192edb006fa0e8cf,teoiaoe,62abf394192edb006fa0e8cf,teoiaoe,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/9,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,53,
+1,10,panjf2000/ants,10,TODO,issue test007,issue test007,trivial,issue,62abf394192edb006fa0e8cf,teoiaoe,62abf394192edb006fa0e8cf,teoiaoe,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/10,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,52,
+1,11,panjf2000/ants,11,TODO,issue test008,issue test008,major,issue,62abf394192edb006fa0e8cf,teoiaoe,62abf394192edb006fa0e8cf,teoiaoe,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/11,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,51,
+1,12,panjf2000/ants,12,TODO,issue test009,issue test009,minor,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/12,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,50,
+1,13,panjf2000/ants,13,TODO,issue test010,issue test010,critical,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/13,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,49,
+1,14,panjf2000/ants,14,TODO,issue test011,issue test011,blocker,issue,62abf394192edb006fa0e8cf,teoiaoe,62abf394192edb006fa0e8cf,teoiaoe,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/14,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,48,
+1,15,panjf2000/ants,15,TODO,issue test012,issue test012,minor,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/15,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,47,
+1,16,panjf2000/ants,16,TODO,issue test013,issue test013,trivial,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/16,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,46,
+1,17,panjf2000/ants,17,TODO,issue test014,issue test014,trivial,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/17,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,45,
+1,18,panjf2000/ants,18,TODO,issue test015,issue test015,minor,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/18,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,44,
+1,19,panjf2000/ants,19,TODO,issue test016,issue test016,critical,issue,62abf394192edb006fa0e8cf,teoiaoe,62abf394192edb006fa0e8cf,teoiaoe,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/19,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,43,
+1,20,panjf2000/ants,20,TODO,issue test017,issue test017,blocker,issue,62abf394192edb006fa0e8cf,teoiaoe,62abf394192edb006fa0e8cf,teoiaoe,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/20,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,42,
+1,21,panjf2000/ants,21,TODO,issue test018,issue test018,trivial,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/21,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,41,
+1,22,panjf2000/ants,22,TODO,issue test019,issue test019,minor,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/22,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,40,
+1,23,panjf2000/ants,23,TODO,issue test020,issue test020,critical,issue,62abf394192edb006fa0e8cf,teoiaoe,62abf394192edb006fa0e8cf,teoiaoe,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/23,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,39,
+1,24,panjf2000/ants,24,TODO,issue test021,"issue test021 ijeiawgoeive/faveevaeviaevfejaofejfioejaiofe_veavejiovajgiorejoifjrogiorejieafajejaojoejvgioriovioraivjairobnrnoivaiorjbiorjiojaeiorjvioejroivjaoijeriojiaojioeefjafioejfiojeiofawefwefoiwefiwoiefweefwoefuwhufirfrw._
```
``eveaeaeae`jiovjeiojoa oi2j3oij23jovnw3
```
",trivial,issue,62abf394192edb006fa0e8cf,teoiaoe,62abf394192edb006fa0e8cf,teoiaoe,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/24,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,38,
-1,25,panjf2000/ants,25,new,issue 023,"issue test023 ejoafehoafe
+1,25,panjf2000/ants,25,TODO,issue 023,"issue test023 ejoafehoafe
q
@@ -46,10 +46,10 @@ feaofe
| | | |
",critical,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/25,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,36,
-1,26,panjf2000/ants,26,new,issue test022,issue test022,blocker,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/26,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,35,
-1,27,panjf2000/ants,27,new,issue test024,"issue test024v aejnoafoeiogoiae
+1,26,panjf2000/ants,26,TODO,issue test022,issue test022,blocker,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/26,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,35,
+1,27,panjf2000/ants,27,TODO,issue test024,"issue test024v aejnoafoeiogoiae
qwofjeoiwjf",trivial,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/27,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,31,
-1,28,panjf2000/ants,28,new,issue test025,issue test025,minor,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/28,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,34,
-1,29,panjf2000/ants,29,new,issue test026,issue test026,critical,issue,62abf394192edb006fa0e8cf,teoiaoe,62abf394192edb006fa0e8cf,teoiaoe,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/29,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,33,
-1,30,panjf2000/ants,30,new,issue test027,issue test027,critical,issue,62abf394192edb006fa0e8cf,teoiaoe,62abf394192edb006fa0e8cf,teoiaoe,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/30,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,32,
+1,28,panjf2000/ants,28,TODO,issue test025,issue test025,minor,issue,62abf394192edb006fa0e8cf,teoiaoe,,,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/28,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,34,
+1,29,panjf2000/ants,29,TODO,issue test026,issue test026,critical,issue,62abf394192edb006fa0e8cf,teoiaoe,62abf394192edb006fa0e8cf,teoiaoe,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/29,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,33,
+1,30,panjf2000/ants,30,TODO,issue test027,issue test027,critical,issue,62abf394192edb006fa0e8cf,teoiaoe,62abf394192edb006fa0e8cf,teoiaoe,0,0,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/30,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,32,
diff --git a/plugins/bitbucket/e2e/snapshot_tables/issues.csv b/plugins/bitbucket/e2e/snapshot_tables/issues.csv
index 499fb383..80730dec 100644
--- a/plugins/bitbucket/e2e/snapshot_tables/issues.csv
+++ b/plugins/bitbucket/e2e/snapshot_tables/issues.csv
@@ -1,27 +1,27 @@
id,url,icon_url,issue_key,title,description,epic_key,type,status,original_status,story_point,resolution_date,lead_time_minutes,parent_issue_id,priority,original_estimate_minutes,time_spent_minutes,time_remaining_minutes,creator_id,creator_name,assignee_id,assignee_name,severity,component,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
-bitbucket:BitbucketIssue:1:1,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/1,,1,issue test,bitbucket issues test for devants,,issue,TODO,new,0,,0,,major,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,60,
-bitbucket:BitbucketIssue:1:10,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/10,,10,issue test007,issue test007,,issue,TODO,new,0,,0,,trivial,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,52,
-bitbucket:BitbucketIssue:1:11,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/11,,11,issue test008,issue test008,,issue,TODO,new,0,,0,,major,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,51,
-bitbucket:BitbucketIssue:1:12,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/12,,12,issue test009,issue test009,,issue,TODO,new,0,,0,,minor,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,50,
-bitbucket:BitbucketIssue:1:13,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/13,,13,issue test010,issue test010,,issue,TODO,new,0,,0,,critical,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,49,
-bitbucket:BitbucketIssue:1:14,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/14,,14,issue test011,issue test011,,issue,TODO,new,0,,0,,blocker,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,48,
-bitbucket:BitbucketIssue:1:15,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/15,,15,issue test012,issue test012,,issue,TODO,new,0,,0,,minor,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,47,
-bitbucket:BitbucketIssue:1:16,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/16,,16,issue test013,issue test013,,issue,TODO,new,0,,0,,trivial,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,46,
-bitbucket:BitbucketIssue:1:17,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/17,,17,issue test014,issue test014,,issue,TODO,new,0,,0,,trivial,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,45,
-bitbucket:BitbucketIssue:1:18,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/18,,18,issue test015,issue test015,,issue,TODO,new,0,,0,,minor,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,44,
-bitbucket:BitbucketIssue:1:19,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/19,,19,issue test016,issue test016,,issue,TODO,new,0,,0,,critical,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,43,
-bitbucket:BitbucketIssue:1:2,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/2,,2,add bitbucket issue,feafejo,,issue,TODO,new,0,,0,,major,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,59,
-bitbucket:BitbucketIssue:1:20,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/20,,20,issue test017,issue test017,,issue,TODO,new,0,,0,,blocker,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,42,
-bitbucket:BitbucketIssue:1:21,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/21,,21,issue test018,issue test018,,issue,TODO,new,0,,0,,trivial,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,41,
-bitbucket:BitbucketIssue:1:22,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/22,,22,issue test019,issue test019,,issue,TODO,new,0,,0,,minor,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,40,
-bitbucket:BitbucketIssue:1:23,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/23,,23,issue test020,issue test020,,issue,TODO,new,0,,0,,critical,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,39,
+bitbucket:BitbucketIssue:1:1,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/1,,1,issue test,bitbucket issues test for devants,,issue,TODO,TODO,0,,0,,major,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,60,
+bitbucket:BitbucketIssue:1:10,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/10,,10,issue test007,issue test007,,issue,TODO,TODO,0,,0,,trivial,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,52,
+bitbucket:BitbucketIssue:1:11,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/11,,11,issue test008,issue test008,,issue,TODO,TODO,0,,0,,major,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,51,
+bitbucket:BitbucketIssue:1:12,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/12,,12,issue test009,issue test009,,issue,TODO,TODO,0,,0,,minor,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,50,
+bitbucket:BitbucketIssue:1:13,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/13,,13,issue test010,issue test010,,issue,TODO,TODO,0,,0,,critical,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,49,
+bitbucket:BitbucketIssue:1:14,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/14,,14,issue test011,issue test011,,issue,TODO,TODO,0,,0,,blocker,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,48,
+bitbucket:BitbucketIssue:1:15,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/15,,15,issue test012,issue test012,,issue,TODO,TODO,0,,0,,minor,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,47,
+bitbucket:BitbucketIssue:1:16,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/16,,16,issue test013,issue test013,,issue,TODO,TODO,0,,0,,trivial,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,46,
+bitbucket:BitbucketIssue:1:17,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/17,,17,issue test014,issue test014,,issue,TODO,TODO,0,,0,,trivial,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,45,
+bitbucket:BitbucketIssue:1:18,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/18,,18,issue test015,issue test015,,issue,TODO,TODO,0,,0,,minor,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,44,
+bitbucket:BitbucketIssue:1:19,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/19,,19,issue test016,issue test016,,issue,TODO,TODO,0,,0,,critical,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,43,
+bitbucket:BitbucketIssue:1:2,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/2,,2,add bitbucket issue,feafejo,,issue,TODO,TODO,0,,0,,major,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,59,
+bitbucket:BitbucketIssue:1:20,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/20,,20,issue test017,issue test017,,issue,TODO,TODO,0,,0,,blocker,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,42,
+bitbucket:BitbucketIssue:1:21,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/21,,21,issue test018,issue test018,,issue,TODO,TODO,0,,0,,trivial,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,41,
+bitbucket:BitbucketIssue:1:22,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/22,,22,issue test019,issue test019,,issue,TODO,TODO,0,,0,,minor,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,40,
+bitbucket:BitbucketIssue:1:23,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/23,,23,issue test020,issue test020,,issue,TODO,TODO,0,,0,,critical,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,39,
bitbucket:BitbucketIssue:1:24,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/24,,24,issue test021,"issue test021 ijeiawgoeive/faveevaeviaevfejaofejfioejaiofe_veavejiovajgiorejoifjrogiorejieafajejaojoejvgioriovioraivjairobnrnoivaiorjbiorjiojaeiorjvioejroivjaoijeriojiaojioeefjafioejfiojeiofawefwefoiwefiwoiefweefwoefuwhufirfrw._
```
``eveaeaeae`jiovjeiojoa oi2j3oij23jovnw3
```
-",,issue,TODO,new,0,,0,,trivial,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,38,
+",,issue,TODO,TODO,0,,0,,trivial,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,38,
bitbucket:BitbucketIssue:1:25,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/25,,25,issue 023,"issue test023 ejoafehoafe
q
@@ -38,18 +38,18 @@ feaofe
| | | |
| | | |
-",,issue,TODO,new,0,,0,,critical,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,36,
-bitbucket:BitbucketIssue:1:26,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/26,,26,issue test022,issue test022,,issue,TODO,new,0,,0,,blocker,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,35,
+",,issue,TODO,TODO,0,,0,,critical,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,36,
+bitbucket:BitbucketIssue:1:26,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/26,,26,issue test022,issue test022,,issue,TODO,TODO,0,,0,,blocker,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,35,
bitbucket:BitbucketIssue:1:27,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/27,,27,issue test024,"issue test024v aejnoafoeiogoiae
-qwofjeoiwjf",,issue,TODO,new,0,,0,,trivial,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,31,
-bitbucket:BitbucketIssue:1:28,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/28,,28,issue test025,issue test025,,issue,TODO,new,0,,0,,minor,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,34,
-bitbucket:BitbucketIssue:1:29,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/29,,29,issue test026,issue test026,,issue,TODO,new,0,,0,,critical,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,33,
-bitbucket:BitbucketIssue:1:3,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/3,,3,bitbucket test,"efaegjeoaijefioaegrjoeior,af enfaoiee vioea.,,.wew",,issue,TODO,new,0,,0,,major,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,58,
-bitbucket:BitbucketIssue:1:30,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/30,,30,issue test027,issue test027,,issue,TODO,new,0,,0,,critical,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,32,
-bitbucket:BitbucketIssue:1:4,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/4,,4,issue test001,Bitbucket issue test001,,issue,TODO,new,0,,0,,major,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,57,
-bitbucket:BitbucketIssue:1:5,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/5,,5,issue test002,issue test002,,issue,TODO,new,0,,0,,major,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,56,
-bitbucket:BitbucketIssue:1:6,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/6,,6,issue test003,issue test 003,,issue,TODO,new,0,,0,,major,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,37,
-bitbucket:BitbucketIssue:1:7,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/7,,7,issue test004,issue test004,,issue,TODO,new,0,,0,,major,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,55,
-bitbucket:BitbucketIssue:1:8,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/8,,8,issue test005,issue test005,,issue,TODO,new,0,,0,,critical,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,54,
-bitbucket:BitbucketIssue:1:9,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/9,,9,issue test006,issue test006,,issue,TODO,new,0,,0,,blocker,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,53,
+qwofjeoiwjf",,issue,TODO,TODO,0,,0,,trivial,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,31,
+bitbucket:BitbucketIssue:1:28,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/28,,28,issue test025,issue test025,,issue,TODO,TODO,0,,0,,minor,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,34,
+bitbucket:BitbucketIssue:1:29,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/29,,29,issue test026,issue test026,,issue,TODO,TODO,0,,0,,critical,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,33,
+bitbucket:BitbucketIssue:1:3,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/3,,3,bitbucket test,"efaegjeoaijefioaegrjoeior,af enfaoiee vioea.,,.wew",,issue,TODO,TODO,0,,0,,major,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,58,
+bitbucket:BitbucketIssue:1:30,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/30,,30,issue test027,issue test027,,issue,TODO,TODO,0,,0,,critical,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,32,
+bitbucket:BitbucketIssue:1:4,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/4,,4,issue test001,Bitbucket issue test001,,issue,TODO,TODO,0,,0,,major,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,57,
+bitbucket:BitbucketIssue:1:5,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/5,,5,issue test002,issue test002,,issue,TODO,TODO,0,,0,,major,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,56,
+bitbucket:BitbucketIssue:1:6,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/6,,6,issue test003,issue test 003,,issue,TODO,TODO,0,,0,,major,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,37,
+bitbucket:BitbucketIssue:1:7,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/7,,7,issue test004,issue test004,,issue,TODO,TODO,0,,0,,major,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,55,
+bitbucket:BitbucketIssue:1:8,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/8,,8,issue test005,issue test005,,issue,TODO,TODO,0,,0,,critical,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,54,
+bitbucket:BitbucketIssue:1:9,https://api.bitbucket.org/2.0/repositories/panjf2000/ants/issues/9,,9,issue test006,issue test006,,issue,TODO,TODO,0,,0,,blocker,0,0,0,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,bitbucket:BitbucketAccount:1:62abf394192edb006fa0e8cf,teoiaoe,,,"{""ConnectionId"":1,""Owner"":""panjf2000"",""Repo"":""ants""}",_raw_bitbucket_api_issues,53,
diff --git a/plugins/bitbucket/models/connection.go b/plugins/bitbucket/models/connection.go
index 4becd33b..79d361f0 100644
--- a/plugins/bitbucket/models/connection.go
+++ b/plugins/bitbucket/models/connection.go
@@ -39,15 +39,9 @@ type BoardResponse struct {
Value string
}
type TransformationRules struct {
- PrType string `mapstructure:"prType" json:"prType"`
- PrComponent string `mapstructure:"prComponent" json:"prComponent"`
- PrBodyClosePattern string `mapstructure:"prBodyClosePattern" json:"prBodyClosePattern"`
- IssueSeverity string `mapstructure:"issueSeverity" json:"issueSeverity"`
- IssuePriority string `mapstructure:"issuePriority" json:"issuePriority"`
- IssueComponent string `mapstructure:"issueComponent" json:"issueComponent"`
- IssueTypeBug string `mapstructure:"issueTypeBug" json:"issueTypeBug"`
- IssueTypeIncident string `mapstructure:"issueTypeIncident" json:"issueTypeIncident"`
- IssueTypeRequirement string `mapstructure:"issueTypeRequirement" json:"issueTypeRequirement"`
+ IssueStatusTODO []string `mapstructure:"issueStatusTodo" json:"issueStatusTodo"`
+ IssueStatusINPROGRESS []string `mapstructure:"issueStatusInProgress" json:"issueStatusInProgress"`
+ IssueStatusDONE []string `mapstructure:"issueStatusDone" json:"issueStatusDone"`
}
type BitbucketConnection struct {
diff --git a/plugins/bitbucket/tasks/issue_extractor.go b/plugins/bitbucket/tasks/issue_extractor.go
index 1bda1b6f..f704cf87 100644
--- a/plugins/bitbucket/tasks/issue_extractor.go
+++ b/plugins/bitbucket/tasks/issue_extractor.go
@@ -19,6 +19,7 @@ package tasks
import (
"encoding/json"
+ "github.com/apache/incubator-devlake/models/domainlayer/ticket"
"time"
"github.com/apache/incubator-devlake/errors"
@@ -69,7 +70,11 @@ var ExtractApiIssuesMeta = core.SubTaskMeta{
func ExtractApiIssues(taskCtx core.SubTaskContext) errors.Error {
data := taskCtx.GetData().(*BitbucketTaskData)
-
+ config := data.Options.TransformationRules
+ issueStatusMap, err := newIssueStatusMap(config)
+ if err != nil {
+ return nil
+ }
extractor, err := helper.NewApiExtractor(helper.ApiExtractorArgs{
RawDataSubTaskArgs: helper.RawDataSubTaskArgs{
Ctx: taskCtx,
@@ -127,6 +132,9 @@ func ExtractApiIssues(taskCtx core.SubTaskContext) errors.Error {
}
results = append(results, relatedUser)
}
+ if status, ok := issueStatusMap[bitbucketIssue.State]; ok {
+ bitbucketIssue.State = status
+ }
return results, nil
},
})
@@ -168,3 +176,17 @@ func convertBitbucketIssue(issue *IssuesResponse, connectionId uint64, repositor
return bitbucketIssue, nil
}
+
+func newIssueStatusMap(config models.TransformationRules) (map[string]string, errors.Error) {
+ issueStatusMap := make(map[string]string, 3)
+ for _, state := range config.IssueStatusTODO {
+ issueStatusMap[state] = ticket.TODO
+ }
+ for _, state := range config.IssueStatusINPROGRESS {
+ issueStatusMap[state] = ticket.IN_PROGRESS
+ }
+ for _, state := range config.IssueStatusDONE {
+ issueStatusMap[state] = ticket.DONE
+ }
+ return issueStatusMap, nil
+}