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
+}