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 26f1a152f feat: convert jira label & add original_project to issues 
(#3952)
26f1a152f is described below

commit 26f1a152feb3804a8984f3c7f8cbb39545090e5a
Author: mindlesscloud <[email protected]>
AuthorDate: Fri Dec 16 20:24:09 2022 +0800

    feat: convert jira label & add original_project to issues (#3952)
    
    * feat: convert jira label & add original_project to issues
    
    * fix: fix e2e test
    
    * fix: fix zendao e2e test
    
    * fix: filter by boardId on convert issue labels
---
 models/domainlayer/ticket/issue.go                 |  1 +
 .../20221215_add_original_project_to_issues.go     | 30 ++++++--
 models/migrationscripts/register.go                |  1 +
 plugins/jira/e2e/issue_test.go                     | 12 +++
 plugins/jira/e2e/label_test.go                     | 53 ++++++++++++++
 .../jira/e2e/raw_tables/_raw_jira_api_issues.csv   | 18 ++---
 .../_tool_jira_board_issues_for_label.csv          | 31 ++++++++
 .../snapshot_tables/_tool_jira_issue_labels.csv    | 19 +++++
 .../_tool_jira_issue_labels_for_convertor.csv      | 19 +++++
 .../jira/e2e/snapshot_tables/_tool_jira_issues.csv | 62 ++++++++--------
 .../_tool_jira_issues_for_external_epics.csv       |  8 +-
 plugins/jira/e2e/snapshot_tables/issue_labels.csv  | 15 ++++
 plugins/jira/e2e/snapshot_tables/issues.csv        | 62 ++++++++--------
 plugins/jira/models/issue.go                       |  1 +
 .../{register.go => 202211215_add_project_name.go} | 30 ++++++--
 plugins/jira/models/migrationscripts/register.go   |  1 +
 plugins/jira/tasks/apiv2models/issue.go            |  1 +
 plugins/jira/tasks/issue_convertor.go              |  1 +
 plugins/jira/tasks/issue_label_convertor.go        | 85 ++++++++++++++++++++++
 plugins/pagerduty/e2e/incident_test.go             |  5 +-
 plugins/zentao/e2e/bug_test.go                     |  5 +-
 plugins/zentao/e2e/story_test.go                   |  5 +-
 plugins/zentao/e2e/task_test.go                    |  5 +-
 23 files changed, 371 insertions(+), 99 deletions(-)

diff --git a/models/domainlayer/ticket/issue.go 
b/models/domainlayer/ticket/issue.go
index 08f40b726..10c75d86e 100644
--- a/models/domainlayer/ticket/issue.go
+++ b/models/domainlayer/ticket/issue.go
@@ -50,6 +50,7 @@ type Issue struct {
        AssigneeName            string `gorm:"type:varchar(255)"`
        Severity                string `gorm:"type:varchar(255)"`
        Component               string `gorm:"type:varchar(255)"`
+       OriginalProject         string `gorm:"type:varchar(255)"`
 }
 
 func (Issue) TableName() string {
diff --git a/plugins/jira/models/migrationscripts/register.go 
b/models/migrationscripts/20221215_add_original_project_to_issues.go
similarity index 59%
copy from plugins/jira/models/migrationscripts/register.go
copy to models/migrationscripts/20221215_add_original_project_to_issues.go
index 15f990b14..a1e57d212 100644
--- a/plugins/jira/models/migrationscripts/register.go
+++ b/models/migrationscripts/20221215_add_original_project_to_issues.go
@@ -18,15 +18,29 @@ limitations under the License.
 package migrationscripts
 
 import (
+       "github.com/apache/incubator-devlake/errors"
+       "github.com/apache/incubator-devlake/helpers/migrationhelper"
        "github.com/apache/incubator-devlake/plugins/core"
 )
 
-// All return all the migration scripts
-func All() []core.MigrationScript {
-       return []core.MigrationScript{
-               new(addSourceTable20220407),
-               new(renameSourceTable20220505),
-               new(addInitTables20220716),
-               new(addTransformationRule20221116),
-       }
+type issue20221215 struct {
+       OriginalProject string `gorm:"type:varchar(255)"`
+}
+
+func (issue20221215) TableName() string {
+       return "issues"
+}
+
+type addOriginalProject struct{}
+
+func (script *addOriginalProject) Up(basicRes core.BasicRes) errors.Error {
+       return migrationhelper.AutoMigrateTables(basicRes, &issue20221215{})
+}
+
+func (*addOriginalProject) Version() uint64 {
+       return 20221215142543
+}
+
+func (*addOriginalProject) Name() string {
+       return "add original_project to issues"
 }
diff --git a/models/migrationscripts/register.go 
b/models/migrationscripts/register.go
index 5d6a86d2e..aa5da7604 100644
--- a/models/migrationscripts/register.go
+++ b/models/migrationscripts/register.go
@@ -64,5 +64,6 @@ func All() []core.MigrationScript {
                new(renameFiledsInProjectPrMetric),
                new(addEnableToProjectMetric),
                new(addCollectorMeta20221125),
+               new(addOriginalProject),
        }
 }
diff --git a/plugins/jira/e2e/issue_test.go b/plugins/jira/e2e/issue_test.go
index 3b3ceab86..ec995c27c 100644
--- a/plugins/jira/e2e/issue_test.go
+++ b/plugins/jira/e2e/issue_test.go
@@ -71,6 +71,7 @@ func TestIssueDataFlow(t *testing.T) {
        dataflowTester.FlushTabler(&models.JiraWorklog{})
        dataflowTester.FlushTabler(&models.JiraAccount{})
        dataflowTester.FlushTabler(&models.JiraIssueType{})
+       dataflowTester.FlushTabler(&models.JiraIssueLabel{})
        dataflowTester.Subtask(tasks.ExtractIssueTypesMeta, taskData)
        dataflowTester.Subtask(tasks.ExtractIssuesMeta, taskData)
        dataflowTester.VerifyTable(
@@ -97,6 +98,7 @@ func TestIssueDataFlow(t *testing.T) {
                        "connection_id",
                        "issue_id",
                        "project_id",
+                       "project_name",
                        "self",
                        "issue_key",
                        "summary",
@@ -183,6 +185,15 @@ func TestIssueDataFlow(t *testing.T) {
                },
        )
 
+       dataflowTester.VerifyTableWithRawData(
+               models.JiraIssueLabel{},
+               "./snapshot_tables/_tool_jira_issue_labels.csv",
+               []string{
+                       "connection_id",
+                       "issue_id",
+                       "label_name",
+               })
+
        // verify issue conversion
        dataflowTester.FlushTabler(&ticket.Issue{})
        dataflowTester.FlushTabler(&ticket.BoardIssue{})
@@ -217,6 +228,7 @@ func TestIssueDataFlow(t *testing.T) {
                        "assignee_name",
                        "severity",
                        "component",
+                       "original_project",
                },
        )
        dataflowTester.VerifyTable(
diff --git a/plugins/jira/e2e/label_test.go b/plugins/jira/e2e/label_test.go
new file mode 100644
index 000000000..b83bd53ff
--- /dev/null
+++ b/plugins/jira/e2e/label_test.go
@@ -0,0 +1,53 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package e2e
+
+import (
+       "testing"
+
+       "github.com/apache/incubator-devlake/helpers/e2ehelper"
+       "github.com/apache/incubator-devlake/models/domainlayer/ticket"
+       "github.com/apache/incubator-devlake/plugins/jira/impl"
+       "github.com/apache/incubator-devlake/plugins/jira/models"
+       "github.com/apache/incubator-devlake/plugins/jira/tasks"
+)
+
+func TestLabelDataFlow(t *testing.T) {
+       var plugin impl.Jira
+       dataflowTester := e2ehelper.NewDataFlowTester(t, "jira", plugin)
+
+       taskData := &tasks.JiraTaskData{
+               Options: &tasks.JiraOptions{
+                       ConnectionId: 2,
+                       BoardId:      8,
+               },
+       }
+
+       dataflowTester.FlushTabler(&ticket.IssueLabel{})
+       
dataflowTester.ImportCsvIntoTabler("./snapshot_tables/_tool_jira_board_issues_for_changelog.csv",
 &models.JiraBoardIssue{})
+       
dataflowTester.ImportCsvIntoTabler("./snapshot_tables/_tool_jira_issue_labels_for_convertor.csv",
 &models.JiraIssueLabel{})
+       dataflowTester.Subtask(tasks.ConvertIssueLabelsMeta, taskData)
+       dataflowTester.VerifyTable(
+               ticket.IssueLabel{},
+               "./snapshot_tables/issue_labels.csv",
+               e2ehelper.ColumnWithRawData(
+                       "issue_id",
+                       "label_name",
+               ),
+       )
+}
diff --git a/plugins/jira/e2e/raw_tables/_raw_jira_api_issues.csv 
b/plugins/jira/e2e/raw_tables/_raw_jira_api_issues.csv
index 80c5bedbb..347027c36 100644
--- a/plugins/jira/e2e/raw_tables/_raw_jira_api_issues.csv
+++ b/plugins/jira/e2e/raw_tables/_raw_jira_api_issues.csv
@@ -1,13 +1,13 @@
 "id","params","data","url","input","created_at"
-12441,"{""ConnectionId"":2,""BoardId"":8}","{""id"": ""10063"", ""key"": 
""EE-1"", ""self"": 
""https://merico.atlassian.net/rest/agile/1.0/issue/10063"";, ""expand"": 
""operations,versionedRepresentations,editmeta,changelog,renderedFields"", 
""fields"": {""epic"": null, ""votes"": {""self"": 
""https://merico.atlassian.net/rest/api/2/issue/EE-1/votes"";, ""votes"": 0, 
""hasVoted"": false}, ""labels"": [], ""sprint"": null, ""status"": {""id"": 
""10068"", ""name"": ""已完成"", ""self"": ""https [...]
-12442,"{""ConnectionId"":2,""BoardId"":8}","{""id"": ""10064"", ""key"": 
""EE-2"", ""self"": 
""https://merico.atlassian.net/rest/agile/1.0/issue/10064"";, ""expand"": 
""operations,versionedRepresentations,editmeta,changelog,renderedFields"", 
""fields"": {""epic"": null, ""votes"": {""self"": 
""https://merico.atlassian.net/rest/api/2/issue/EE-2/votes"";, ""votes"": 0, 
""hasVoted"": false}, ""labels"": [], ""sprint"": null, ""status"": {""id"": 
""10068"", ""name"": ""已完成"", ""self"": ""https [...]
-12443,"{""ConnectionId"":2,""BoardId"":8}","{""id"": ""10065"", ""key"": 
""EE-3"", ""self"": 
""https://merico.atlassian.net/rest/agile/1.0/issue/10065"";, ""expand"": 
""operations,versionedRepresentations,editmeta,changelog,renderedFields"", 
""fields"": {""epic"": null, ""votes"": {""self"": 
""https://merico.atlassian.net/rest/api/2/issue/EE-3/votes"";, ""votes"": 0, 
""hasVoted"": false}, ""labels"": [], ""sprint"": null, ""status"": {""id"": 
""10068"", ""name"": ""已完成"", ""self"": ""https [...]
-12444,"{""ConnectionId"":2,""BoardId"":8}","{""id"": ""10066"", ""key"": 
""EE-4"", ""self"": 
""https://merico.atlassian.net/rest/agile/1.0/issue/10066"";, ""expand"": 
""operations,versionedRepresentations,editmeta,changelog,renderedFields"", 
""fields"": {""epic"": null, ""votes"": {""self"": 
""https://merico.atlassian.net/rest/api/2/issue/EE-4/votes"";, ""votes"": 0, 
""hasVoted"": false}, ""labels"": [], ""sprint"": null, ""status"": {""id"": 
""10068"", ""name"": ""已完成"", ""self"": ""https [...]
-12445,"{""ConnectionId"":2,""BoardId"":8}","{""id"": ""10067"", ""key"": 
""EE-5"", ""self"": 
""https://merico.atlassian.net/rest/agile/1.0/issue/10067"";, ""expand"": 
""operations,versionedRepresentations,editmeta,changelog,renderedFields"", 
""fields"": {""epic"": null, ""votes"": {""self"": 
""https://merico.atlassian.net/rest/api/2/issue/EE-5/votes"";, ""votes"": 0, 
""hasVoted"": false}, ""labels"": [], ""sprint"": null, ""status"": {""id"": 
""10068"", ""name"": ""已完成"", ""self"": ""https [...]
-12446,"{""ConnectionId"":2,""BoardId"":8}","{""id"": ""10068"", ""key"": 
""EE-6"", ""self"": 
""https://merico.atlassian.net/rest/agile/1.0/issue/10068"";, ""expand"": 
""operations,versionedRepresentations,editmeta,changelog,renderedFields"", 
""fields"": {""epic"": null, ""votes"": {""self"": 
""https://merico.atlassian.net/rest/api/2/issue/EE-6/votes"";, ""votes"": 0, 
""hasVoted"": false}, ""labels"": [], ""sprint"": null, ""status"": {""id"": 
""10068"", ""name"": ""已完成"", ""self"": ""https [...]
-12447,"{""ConnectionId"":2,""BoardId"":8}","{""id"": ""10070"", ""key"": 
""EE-8"", ""self"": 
""https://merico.atlassian.net/rest/agile/1.0/issue/10070"";, ""expand"": 
""operations,versionedRepresentations,editmeta,changelog,renderedFields"", 
""fields"": {""epic"": null, ""votes"": {""self"": 
""https://merico.atlassian.net/rest/api/2/issue/EE-8/votes"";, ""votes"": 0, 
""hasVoted"": false}, ""labels"": [], ""sprint"": null, ""status"": {""id"": 
""10068"", ""name"": ""已完成"", ""self"": ""https [...]
-12448,"{""ConnectionId"":2,""BoardId"":8}","{""id"": ""10071"", ""key"": 
""EE-9"", ""self"": 
""https://merico.atlassian.net/rest/agile/1.0/issue/10071"";, ""expand"": 
""operations,versionedRepresentations,editmeta,changelog,renderedFields"", 
""fields"": {""epic"": null, ""votes"": {""self"": 
""https://merico.atlassian.net/rest/api/2/issue/EE-9/votes"";, ""votes"": 0, 
""hasVoted"": false}, ""labels"": [], ""sprint"": null, ""status"": {""id"": 
""10068"", ""name"": ""已完成"", ""self"": ""https [...]
-12449,"{""ConnectionId"":2,""BoardId"":8}","{""id"": ""10072"", ""key"": 
""EE-10"", ""self"": 
""https://merico.atlassian.net/rest/agile/1.0/issue/10072"";, ""expand"": 
""operations,versionedRepresentations,editmeta,changelog,renderedFields"", 
""fields"": {""epic"": null, ""votes"": {""self"": 
""https://merico.atlassian.net/rest/api/2/issue/EE-10/votes"";, ""votes"": 0, 
""hasVoted"": false}, ""labels"": [], ""sprint"": null, ""status"": {""id"": 
""10068"", ""name"": ""已完成"", ""self"": ""htt [...]
+12441,"{""ConnectionId"":2,""BoardId"":8}","{""id"": ""10063"", ""key"": 
""EE-1"", ""self"": 
""https://merico.atlassian.net/rest/agile/1.0/issue/10063"";, ""expand"": 
""operations,versionedRepresentations,editmeta,changelog,renderedFields"", 
""fields"": {""epic"": null, ""votes"": {""self"": 
""https://merico.atlassian.net/rest/api/2/issue/EE-1/votes"";, ""votes"": 0, 
""hasVoted"": false}, ""labels"": [""frontEnd"",""Saas""], ""sprint"": null, 
""status"": {""id"": ""10068"", ""name"": ""已完成 [...]
+12442,"{""ConnectionId"":2,""BoardId"":8}","{""id"": ""10064"", ""key"": 
""EE-2"", ""self"": 
""https://merico.atlassian.net/rest/agile/1.0/issue/10064"";, ""expand"": 
""operations,versionedRepresentations,editmeta,changelog,renderedFields"", 
""fields"": {""epic"": null, ""votes"": {""self"": 
""https://merico.atlassian.net/rest/api/2/issue/EE-2/votes"";, ""votes"": 0, 
""hasVoted"": false}, ""labels"": [""frontEnd"",""Saas""], ""sprint"": null, 
""status"": {""id"": ""10068"", ""name"": ""已完成 [...]
+12443,"{""ConnectionId"":2,""BoardId"":8}","{""id"": ""10065"", ""key"": 
""EE-3"", ""self"": 
""https://merico.atlassian.net/rest/agile/1.0/issue/10065"";, ""expand"": 
""operations,versionedRepresentations,editmeta,changelog,renderedFields"", 
""fields"": {""epic"": null, ""votes"": {""self"": 
""https://merico.atlassian.net/rest/api/2/issue/EE-3/votes"";, ""votes"": 0, 
""hasVoted"": false}, ""labels"": [""frontEnd"",""Saas""], ""sprint"": null, 
""status"": {""id"": ""10068"", ""name"": ""已完成 [...]
+12444,"{""ConnectionId"":2,""BoardId"":8}","{""id"": ""10066"", ""key"": 
""EE-4"", ""self"": 
""https://merico.atlassian.net/rest/agile/1.0/issue/10066"";, ""expand"": 
""operations,versionedRepresentations,editmeta,changelog,renderedFields"", 
""fields"": {""epic"": null, ""votes"": {""self"": 
""https://merico.atlassian.net/rest/api/2/issue/EE-4/votes"";, ""votes"": 0, 
""hasVoted"": false}, ""labels"": [""frontEnd"",""Saas""], ""sprint"": null, 
""status"": {""id"": ""10068"", ""name"": ""已完成 [...]
+12445,"{""ConnectionId"":2,""BoardId"":8}","{""id"": ""10067"", ""key"": 
""EE-5"", ""self"": 
""https://merico.atlassian.net/rest/agile/1.0/issue/10067"";, ""expand"": 
""operations,versionedRepresentations,editmeta,changelog,renderedFields"", 
""fields"": {""epic"": null, ""votes"": {""self"": 
""https://merico.atlassian.net/rest/api/2/issue/EE-5/votes"";, ""votes"": 0, 
""hasVoted"": false}, ""labels"": [""frontEnd"",""Saas""], ""sprint"": null, 
""status"": {""id"": ""10068"", ""name"": ""已完成 [...]
+12446,"{""ConnectionId"":2,""BoardId"":8}","{""id"": ""10068"", ""key"": 
""EE-6"", ""self"": 
""https://merico.atlassian.net/rest/agile/1.0/issue/10068"";, ""expand"": 
""operations,versionedRepresentations,editmeta,changelog,renderedFields"", 
""fields"": {""epic"": null, ""votes"": {""self"": 
""https://merico.atlassian.net/rest/api/2/issue/EE-6/votes"";, ""votes"": 0, 
""hasVoted"": false}, ""labels"": [""frontEnd"",""Saas""], ""sprint"": null, 
""status"": {""id"": ""10068"", ""name"": ""已完成 [...]
+12447,"{""ConnectionId"":2,""BoardId"":8}","{""id"": ""10070"", ""key"": 
""EE-8"", ""self"": 
""https://merico.atlassian.net/rest/agile/1.0/issue/10070"";, ""expand"": 
""operations,versionedRepresentations,editmeta,changelog,renderedFields"", 
""fields"": {""epic"": null, ""votes"": {""self"": 
""https://merico.atlassian.net/rest/api/2/issue/EE-8/votes"";, ""votes"": 0, 
""hasVoted"": false}, ""labels"": [""frontEnd"",""Saas""], ""sprint"": null, 
""status"": {""id"": ""10068"", ""name"": ""已完成 [...]
+12448,"{""ConnectionId"":2,""BoardId"":8}","{""id"": ""10071"", ""key"": 
""EE-9"", ""self"": 
""https://merico.atlassian.net/rest/agile/1.0/issue/10071"";, ""expand"": 
""operations,versionedRepresentations,editmeta,changelog,renderedFields"", 
""fields"": {""epic"": null, ""votes"": {""self"": 
""https://merico.atlassian.net/rest/api/2/issue/EE-9/votes"";, ""votes"": 0, 
""hasVoted"": false}, ""labels"": [""frontEnd"",""Saas""], ""sprint"": null, 
""status"": {""id"": ""10068"", ""name"": ""已完成 [...]
+12449,"{""ConnectionId"":2,""BoardId"":8}","{""id"": ""10072"", ""key"": 
""EE-10"", ""self"": 
""https://merico.atlassian.net/rest/agile/1.0/issue/10072"";, ""expand"": 
""operations,versionedRepresentations,editmeta,changelog,renderedFields"", 
""fields"": {""epic"": null, ""votes"": {""self"": 
""https://merico.atlassian.net/rest/api/2/issue/EE-10/votes"";, ""votes"": 0, 
""hasVoted"": false}, ""labels"": [""frontEnd"",""Saas""], ""sprint"": null, 
""status"": {""id"": ""10068"", ""name"": ""已 [...]
 12450,"{""ConnectionId"":2,""BoardId"":8}","{""id"": ""10076"", ""key"": 
""EE-14"", ""self"": 
""https://merico.atlassian.net/rest/agile/1.0/issue/10076"";, ""expand"": 
""operations,versionedRepresentations,editmeta,changelog,renderedFields"", 
""fields"": {""epic"": null, ""votes"": {""self"": 
""https://merico.atlassian.net/rest/api/2/issue/EE-14/votes"";, ""votes"": 0, 
""hasVoted"": false}, ""labels"": [], ""sprint"": null, ""status"": {""id"": 
""10068"", ""name"": ""已完成"", ""self"": ""htt [...]
 12451,"{""ConnectionId"":2,""BoardId"":8}","{""id"": ""10077"", ""key"": 
""EE-15"", ""self"": 
""https://merico.atlassian.net/rest/agile/1.0/issue/10077"";, ""expand"": 
""operations,versionedRepresentations,editmeta,changelog,renderedFields"", 
""fields"": {""epic"": null, ""votes"": {""self"": 
""https://merico.atlassian.net/rest/api/2/issue/EE-15/votes"";, ""votes"": 0, 
""hasVoted"": false}, ""labels"": [], ""sprint"": null, ""status"": {""id"": 
""10068"", ""name"": ""已完成"", ""self"": ""htt [...]
 12452,"{""ConnectionId"":2,""BoardId"":8}","{""id"": ""10078"", ""key"": 
""EE-16"", ""self"": 
""https://merico.atlassian.net/rest/agile/1.0/issue/10078"";, ""expand"": 
""operations,versionedRepresentations,editmeta,changelog,renderedFields"", 
""fields"": {""epic"": null, ""votes"": {""self"": 
""https://merico.atlassian.net/rest/api/2/issue/EE-16/votes"";, ""votes"": 0, 
""hasVoted"": false}, ""labels"": [], ""sprint"": null, ""status"": {""id"": 
""10068"", ""name"": ""已完成"", ""self"": ""htt [...]
diff --git 
a/plugins/jira/e2e/snapshot_tables/_tool_jira_board_issues_for_label.csv 
b/plugins/jira/e2e/snapshot_tables/_tool_jira_board_issues_for_label.csv
new file mode 100644
index 000000000..17ac61521
--- /dev/null
+++ b/plugins/jira/e2e/snapshot_tables/_tool_jira_board_issues_for_label.csv
@@ -0,0 +1,31 @@
+connection_id,board_id,issue_id,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
+1,18,10063,"{""ConnectionId"":2,""BoardId"":18}",_raw_jira_api_issues,12441,
+5,8,10064,"{""ConnectionId"":5,""BoardId"":8}",_raw_jira_api_issues,12442,
+2,28,10065,"{""ConnectionId"":2,""BoardId"":28}",_raw_jira_api_issues,12443,
+2,8,10066,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12444,
+2,8,10067,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12445,
+2,8,10068,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12446,
+2,8,10070,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12447,
+2,8,10071,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12448,
+2,8,10072,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12449,
+2,8,10076,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12450,
+2,8,10077,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12451,
+2,8,10078,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12452,
+2,8,10079,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12453,
+2,8,10081,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12454,
+2,8,10082,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12455,
+2,8,10085,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12456,
+2,8,10086,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12457,
+2,8,10087,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12458,
+2,8,10088,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12459,
+2,8,10089,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12460,
+2,8,10090,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12461,
+2,8,10091,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12462,
+2,8,10092,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12463,
+2,8,10093,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12464,
+2,8,10094,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12465,
+2,8,10095,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12466,
+2,8,10096,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12467,
+2,8,10097,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12468,
+2,8,10098,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12469,
+2,8,10099,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12470,
diff --git a/plugins/jira/e2e/snapshot_tables/_tool_jira_issue_labels.csv 
b/plugins/jira/e2e/snapshot_tables/_tool_jira_issue_labels.csv
new file mode 100644
index 000000000..523fef913
--- /dev/null
+++ b/plugins/jira/e2e/snapshot_tables/_tool_jira_issue_labels.csv
@@ -0,0 +1,19 @@
+connection_id,issue_id,label_name,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
+2,10063,Saas,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12441,
+2,10063,frontEnd,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12441,
+2,10064,Saas,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12442,
+2,10064,frontEnd,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12442,
+2,10065,Saas,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12443,
+2,10065,frontEnd,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12443,
+2,10066,Saas,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12444,
+2,10066,frontEnd,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12444,
+2,10067,Saas,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12445,
+2,10067,frontEnd,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12445,
+2,10068,Saas,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12446,
+2,10068,frontEnd,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12446,
+2,10070,Saas,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12447,
+2,10070,frontEnd,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12447,
+2,10071,Saas,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12448,
+2,10071,frontEnd,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12448,
+2,10072,Saas,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12449,
+2,10072,frontEnd,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12449,
diff --git 
a/plugins/jira/e2e/snapshot_tables/_tool_jira_issue_labels_for_convertor.csv 
b/plugins/jira/e2e/snapshot_tables/_tool_jira_issue_labels_for_convertor.csv
new file mode 100644
index 000000000..a0739de62
--- /dev/null
+++ b/plugins/jira/e2e/snapshot_tables/_tool_jira_issue_labels_for_convertor.csv
@@ -0,0 +1,19 @@
+connection_id,issue_id,label_name,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
+1,10063,Saas,"{""ConnectionId"":1,""BoardId"":18}",_raw_jira_api_issues,12441,
+1,10063,frontEnd,"{""ConnectionId"":3,""BoardId"":18}",_raw_jira_api_issues,12441,
+5,10064,Saas,"{""ConnectionId"":5,""BoardId"":8}",_raw_jira_api_issues,12442,
+5,10064,frontEnd,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12442,
+2,10065,Saas,"{""ConnectionId"":2,""BoardId"":28}",_raw_jira_api_issues,12443,
+2,10065,frontEnd,"{""ConnectionId"":2,""BoardId"":28}",_raw_jira_api_issues,12443,
+2,10066,Saas,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12444,
+2,10066,frontEnd,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12444,
+2,10067,Saas,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12445,
+2,10067,frontEnd,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12445,
+2,10068,Saas,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12446,
+2,10068,frontEnd,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12446,
+2,10070,Saas,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12447,
+2,10070,frontEnd,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12447,
+2,10071,Saas,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12448,
+2,10071,frontEnd,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12448,
+2,10072,Saas,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12449,
+2,10072,frontEnd,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12449,
diff --git a/plugins/jira/e2e/snapshot_tables/_tool_jira_issues.csv 
b/plugins/jira/e2e/snapshot_tables/_tool_jira_issues.csv
index 55b8a03e7..0f9ad85c9 100644
--- a/plugins/jira/e2e/snapshot_tables/_tool_jira_issues.csv
+++ b/plugins/jira/e2e/snapshot_tables/_tool_jira_issues.csv
@@ -1,31 +1,31 @@
-connection_id,issue_id,project_id,self,issue_key,summary,type,epic_key,status_name,status_key,story_point,original_estimate_minutes,aggregate_estimate_minutes,remaining_estimate_minutes,creator_account_id,creator_account_type,creator_display_name,assignee_account_id,assignee_account_type,assignee_display_name,priority_id,priority_name,parent_id,parent_key,sprint_id,sprint_name,resolution_date,created,updated,spent_minutes,lead_time_minutes,std_story_point,std_type,std_status,icon_url,_ra
 [...]
-2,10063,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10063,EE-1,​四个排序图:测试/注释覆盖度、复用度、模块性,故事,,已完成,new,-1,0,1260,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 Zheng,5ecfbd0c730ec90c1999cadf,,Dingding 
Zhang,3,Medium,0,,0,,2020-06-19T06:31:18.495+00:00,2020-06-12T00:13:13.360+00:00,2021-03-28T08:06:08.713+00:00,0,10458,-1,故事,TODO,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12441,
-2,10064,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10064,EE-2,​问题堆叠分布排序图,故事,,已完成,done,2,0,840,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 Zheng,5ecfbd0c730ec90c1999cadf,,Dingding 
Zhang,3,Medium,0,,0,,2020-06-23T10:20:58.999+00:00,2020-06-12T00:15:36.123+00:00,2021-03-28T08:05:55.016+00:00,0,16445,2,故事,DONE,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12442,
-2,10065,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10065,EE-3,​问题积压图率,故事,,已完成,done,0,0,600,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 Zheng,5ecfbd0c730ec90c1999cadf,,Dingding 
Zhang,3,Medium,0,,0,,2020-06-23T10:21:11.996+00:00,2020-06-12T00:15:41.600+00:00,2021-03-28T08:05:55.061+00:00,0,16445,0,故事,DONE,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12443,
-2,10066,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10066,EE-4,​问题分布的帕累托图,故事,,已完成,done,0,0,480,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 Zheng,5ecfbd0c730ec90c1999cadf,,Dingding 
Zhang,3,Medium,0,,0,,2020-06-23T10:21:23.562+00:00,2020-06-12T00:15:46.144+00:00,2021-03-28T08:06:09.535+00:00,0,16445,0,故事,DONE,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12444,
-2,10067,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10067,EE-5,​通用技术任务,任务,,已完成,done,0,0,360,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 Zheng,5ecfbd0c730ec90c1999cadf,,Dingding 
Zhang,3,Medium,0,,0,,2020-06-18T04:06:00.747+00:00,2020-06-12T00:16:44.157+00:00,2021-03-28T08:05:54.622+00:00,0,8869,0,TASK,hello
 
world,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12445,
-2,10068,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10068,EE-6,​变异系数、生产率的四象限图,故事,,已完成,done,0,0,1680,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 Zheng,5ecfbd0c2490cf0c09e2e598,,Gerile 
Tu,3,Medium,0,,0,,2020-06-16T11:56:14.433+00:00,2020-06-12T00:17:26.986+00:00,2021-03-28T08:05:56.750+00:00,0,6458,0,故事,DONE,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12446,
-2,10070,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10070,EE-8,​多团队支持,任务,,已完成,done,0,0,5400,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0ba04d9c0c220c18d8,,yanghui,3,Medium,0,,0,,2020-07-08T17:11:45.201+00:00,2020-06-12T00:18:58.050+00:00,2021-03-28T08:05:54.576+00:00,0,38452,0,TASK,hello
 
world,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12447,
-2,10071,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10071,EE-9,Common
 backend 拆分,任务,,已完成,done,0,1680,1680,1680,5e9711ba34f7b90c0fbc37d3,,Rankin 
Zheng,5ecfbd0ba04d9c0c220c18d8,,yanghui,3,Medium,0,,0,,2020-07-08T17:12:05.663+00:00,2020-06-12T00:19:17.336+00:00,2021-03-28T08:06:20.165+00:00,0,38452,0,TASK,hello
 
world,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12448,
-2,10072,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10072,EE-10,​部署SaaS版本,任务,,已完成,new,0,0,0,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0ba04d9c0c220c18d8,,yanghui,3,Medium,0,,0,,2020-07-08T17:11:55.247+00:00,2020-06-12T00:19:24.637+00:00,2021-03-28T08:05:54.472+00:00,0,38452,0,TASK,110
 100 100 116 102 46 99 111 
109,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12449,
-2,10076,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10076,EE-14,调整​文件夹结构,任务,,已完成,done,0,240,0,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0a47d31e0c2a15fd87,,yuxiang,3,Medium,0,,0,,2020-06-15T08:59:51.304+00:00,2020-06-12T00:24:25.922+00:00,2021-03-28T08:05:56.152+00:00,600,4835,0,TASK,hello
 
world,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12450,
-2,10077,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10077,EE-15,路由权限控制,任务,,已完成,done,0,240,0,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0a47d31e0c2a15fd87,,yuxiang,3,Medium,0,,0,,2020-06-15T09:00:26.956+00:00,2020-06-12T00:24:39.624+00:00,2021-03-28T08:06:01.995+00:00,480,4835,0,TASK,hello
 
world,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12451,
-2,10078,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10078,EE-16,​优化前端
 webpack 开发阶段构建速度,任务,,已完成,done,0,0,0,0,5e9711ba34f7b90c0fbc37d3,,Rankin 
Zheng,5ecfbd0a47d31e0c2a15fd87,,yuxiang,3,Medium,0,,0,,2020-06-15T09:01:44.159+00:00,2020-06-12T00:24:49.017+00:00,2021-03-28T08:05:55.863+00:00,60,4836,0,TASK,hello
 
world,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12452,
-2,10079,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10079,EE-17,​新的错误处理机制,任务,,已完成,done,0,360,240,240,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0a47d31e0c2a15fd87,,yuxiang,3,Medium,0,,0,,2020-07-22T07:25:29.104+00:00,2020-06-12T00:24:56.048+00:00,2021-03-28T08:05:54.426+00:00,120,58020,0,TASK,hello
 
world,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12453,
-2,10081,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10081,EE-19,​LDAP需要支持TLS和证书,故事,,已完成,done,0,0,0,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0aaa47a00c1997ea8e,,chao.cheng,3,Medium,0,,0,,2020-06-18T08:34:11.117+00:00,2020-06-12T00:28:00.241+00:00,2021-03-28T08:05:57.326+00:00,0,9126,0,故事,DONE,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12454,
-2,10082,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10082,EE-20,团队首页垂直化,故事,,已完成,done,0,0,0,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0984083c0c12e5af8f,,lin.hao,3,Medium,0,,0,,2020-06-17T07:25:54.370+00:00,2020-06-12T00:29:43.677+00:00,2021-08-06T06:14:54.647+00:00,0,7616,0,故事,DONE,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12455,
-2,10085,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10085,EE-23,​批量删除事故,缺陷,,已完成,done,0,0,0,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0a47d31e0c2a15fd87,,yuxiang,3,Medium,0,,0,,2020-06-15T09:07:56.798+00:00,2020-06-12T00:33:57.204+00:00,2021-03-28T08:05:57.095+00:00,60,4833,0,缺陷,DONE,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10303?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12456,
-2,10086,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10086,EE-24,​LDAP支持自定义的证书上传,故事,,已完成,done,0,0,0,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0aaa47a00c1997ea8e,,chao.cheng,3,Medium,0,,0,,2020-06-12T07:17:28.659+00:00,2020-06-12T00:35:15.489+00:00,2021-03-28T08:05:55.819+00:00,0,402,0,故事,DONE,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12457,
-2,10087,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10087,EE-25,​组件封装及Demo,子任务,,已完成,done,0,240,240,240,5e9711ba34f7b90c0fbc37d3,,Rankin
 Zheng,5ecfbd0c730ec90c1999cadf,,Dingding 
Zhang,3,Medium,10063,EE-1,0,,2020-06-18T04:02:22.350+00:00,2020-06-12T00:40:54.210+00:00,2021-03-28T08:05:57.189+00:00,0,8841,0,SUB-TASK,你好世界,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12458,
-2,10088,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10088,EE-26,​定接口,子任务,,已完成,done,0,0,0,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0a47d31e0c2a15fd87,,yuxiang,3,Medium,10063,EE-1,0,,2020-06-15T09:06:51.438+00:00,2020-06-12T00:41:01.683+00:00,2021-03-28T08:05:55.208+00:00,0,4825,0,SUB-TASK,你好世界,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12459,
-2,10089,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10089,EE-27,​提供后端接口,子任务,,已完成,done,0,660,660,660,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0ba04d9c0c220c18d8,,yanghui,3,Medium,10063,EE-1,0,,2020-06-19T06:31:31.662+00:00,2020-06-12T00:41:16.622+00:00,2021-03-28T08:05:55.498+00:00,0,10430,0,SUB-TASK,你好世界,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12460,
-2,10090,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10090,EE-28,​数据填充与联调,子任务,,已完成,done,0,360,360,360,5e9711ba34f7b90c0fbc37d3,,Rankin
 Zheng,5ecfbd0c730ec90c1999cadf,,Dingding 
Zhang,3,Medium,10063,EE-1,0,,2020-06-18T04:03:04.637+00:00,2020-06-12T00:41:36.317+00:00,2021-03-28T08:06:05.443+00:00,0,8841,0,SUB-TASK,你好世界,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12461,
-2,10091,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10091,EE-29,​组件封装及Demo,子任务,,已完成,done,0,360,360,360,5e9711ba34f7b90c0fbc37d3,,Rankin
 Zheng,5ecfbd0c730ec90c1999cadf,,Dingding 
Zhang,3,Medium,10064,EE-2,0,,2020-06-18T04:03:30.760+00:00,2020-06-12T00:48:29.035+00:00,2021-03-28T08:05:55.731+00:00,0,8835,0,SUB-TASK,你好世界,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12462,
-2,10092,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10092,EE-30,​定接口,子任务,,已完成,done,0,0,0,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0a47d31e0c2a15fd87,,yuxiang,3,Medium,10064,EE-2,0,,2020-06-15T09:06:40.206+00:00,2020-06-12T00:48:39.803+00:00,2021-03-28T08:05:55.159+00:00,0,4818,0,SUB-TASK,你好世界,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12463,
-2,10093,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10093,EE-31,​后端接口,子任务,,已完成,done,0,120,120,120,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0ba04d9c0c220c18d8,,yanghui,3,Medium,10064,EE-2,0,,2020-06-19T07:35:31.762+00:00,2020-06-12T00:48:46.751+00:00,2021-03-28T08:05:55.544+00:00,0,10486,0,SUB-TASK,你好世界,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12464,
-2,10094,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10094,EE-32,​数据填充与联调,子任务,,已完成,done,0,360,360,360,5e9711ba34f7b90c0fbc37d3,,Rankin
 Zheng,5ecfbd0c730ec90c1999cadf,,Dingding 
Zhang,3,Medium,10064,EE-2,0,,2020-06-18T04:03:48.818+00:00,2020-06-12T00:48:53.279+00:00,2021-03-28T08:05:55.592+00:00,0,8834,0,SUB-TASK,你好世界,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12465,
-2,10095,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10095,EE-33,准备测试用例,子任务,,已完成,done,0,0,0,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0984083c0c12e5af8f,,lin.hao,3,Medium,10063,EE-1,0,,2020-06-19T06:32:19.340+00:00,2020-06-12T00:50:45.674+00:00,2021-03-28T08:05:55.253+00:00,0,10421,0,SUB-TASK,你好世界,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12466,
-2,10096,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10096,EE-34,​ 
组件封装及Demo,子任务,,已完成,done,0,240,360,360,5e9711ba34f7b90c0fbc37d3,,Rankin 
Zheng,5ecfbd0c730ec90c1999cadf,,Dingding 
Zhang,3,Medium,10065,EE-3,0,,2020-06-18T04:04:05.951+00:00,2020-06-12T00:51:57.807+00:00,2021-03-28T08:05:57.232+00:00,0,8832,0,SUB-TASK,你好世界,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12467,
-2,10097,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10097,EE-35,定接口,子任务,,已完成,new,0,0,120,120,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0a47d31e0c2a15fd87,,yuxiang,3,Medium,10065,EE-3,0,,2020-06-15T09:06:30.942+00:00,2020-06-12T00:52:04.767+00:00,2021-03-28T08:05:55.353+00:00,0,4814,0,SUB-TASK,恩底滴梯欸夫典亢姆,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12468,
-2,10098,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10098,EE-36,后端接口,子任务,,已完成,new,0,120,120,120,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0ba04d9c0c220c18d8,,yanghui,3,Medium,10065,EE-3,0,,2020-06-19T07:35:44.696+00:00,2020-06-12T00:52:12.678+00:00,2021-03-28T08:05:55.685+00:00,0,10483,0,SUB-TASK,恩底滴梯欸夫典亢姆,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12469,
-2,10099,10003,https://merico.atlassian.net/rest/agile/1.0/issue/10099,EE-37,数据填充与联调
 ,Test Execution,,已完成,new,0,0,0,0,5e9711ba34f7b90c0fbc37d3,,Rankin 
Zheng,5ecfbd0c730ec90c1999cadf,,Dingding 
Zhang,3,Medium,10065,EE-3,0,,2020-06-18T04:04:31.261+00:00,2020-06-12T00:52:23.456+00:00,2021-03-28T08:05:55.638+00:00,0,8832,0,TEST
 
EXECUTION,TODO,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10564?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_
 [...]
+connection_id,issue_id,project_id,project_name,self,issue_key,summary,type,epic_key,status_name,status_key,story_point,original_estimate_minutes,aggregate_estimate_minutes,remaining_estimate_minutes,creator_account_id,creator_account_type,creator_display_name,assignee_account_id,assignee_account_type,assignee_display_name,priority_id,priority_name,parent_id,parent_key,sprint_id,sprint_name,resolution_date,created,updated,spent_minutes,lead_time_minutes,std_story_point,std_type,std_status
 [...]
+2,10063,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10063,EE-1,​四个排序图:测试/注释覆盖度、复用度、模块性,故事,,已完成,new,-1,0,1260,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 Zheng,5ecfbd0c730ec90c1999cadf,,Dingding 
Zhang,3,Medium,0,,0,,2020-06-19T06:31:18.495+00:00,2020-06-12T00:13:13.360+00:00,2021-03-28T08:06:08.713+00:00,0,10458,-1,故事,TODO,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_ji
 [...]
+2,10064,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10064,EE-2,​问题堆叠分布排序图,故事,,已完成,done,2,0,840,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 Zheng,5ecfbd0c730ec90c1999cadf,,Dingding 
Zhang,3,Medium,0,,0,,2020-06-23T10:20:58.999+00:00,2020-06-12T00:15:36.123+00:00,2021-03-28T08:05:55.016+00:00,0,16445,2,故事,DONE,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12442,
+2,10065,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10065,EE-3,​问题积压图率,故事,,已完成,done,0,0,600,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 Zheng,5ecfbd0c730ec90c1999cadf,,Dingding 
Zhang,3,Medium,0,,0,,2020-06-23T10:21:11.996+00:00,2020-06-12T00:15:41.600+00:00,2021-03-28T08:05:55.061+00:00,0,16445,0,故事,DONE,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12443,
+2,10066,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10066,EE-4,​问题分布的帕累托图,故事,,已完成,done,0,0,480,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 Zheng,5ecfbd0c730ec90c1999cadf,,Dingding 
Zhang,3,Medium,0,,0,,2020-06-23T10:21:23.562+00:00,2020-06-12T00:15:46.144+00:00,2021-03-28T08:06:09.535+00:00,0,16445,0,故事,DONE,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12444,
+2,10067,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10067,EE-5,​通用技术任务,任务,,已完成,done,0,0,360,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 Zheng,5ecfbd0c730ec90c1999cadf,,Dingding 
Zhang,3,Medium,0,,0,,2020-06-18T04:06:00.747+00:00,2020-06-12T00:16:44.157+00:00,2021-03-28T08:05:54.622+00:00,0,8869,0,TASK,hello
 
world,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_iss
 [...]
+2,10068,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10068,EE-6,​变异系数、生产率的四象限图,故事,,已完成,done,0,0,1680,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 Zheng,5ecfbd0c2490cf0c09e2e598,,Gerile 
Tu,3,Medium,0,,0,,2020-06-16T11:56:14.433+00:00,2020-06-12T00:17:26.986+00:00,2021-03-28T08:05:56.750+00:00,0,6458,0,故事,DONE,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12446,
+2,10070,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10070,EE-8,​多团队支持,任务,,已完成,done,0,0,5400,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0ba04d9c0c220c18d8,,yanghui,3,Medium,0,,0,,2020-07-08T17:11:45.201+00:00,2020-06-12T00:18:58.050+00:00,2021-03-28T08:05:54.576+00:00,0,38452,0,TASK,hello
 
world,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12447,
+2,10071,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10071,EE-9,Common 
backend 拆分,任务,,已完成,done,0,1680,1680,1680,5e9711ba34f7b90c0fbc37d3,,Rankin 
Zheng,5ecfbd0ba04d9c0c220c18d8,,yanghui,3,Medium,0,,0,,2020-07-08T17:12:05.663+00:00,2020-06-12T00:19:17.336+00:00,2021-03-28T08:06:20.165+00:00,0,38452,0,TASK,hello
 
world,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_j
 [...]
+2,10072,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10072,EE-10,​部署SaaS版本,任务,,已完成,new,0,0,0,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0ba04d9c0c220c18d8,,yanghui,3,Medium,0,,0,,2020-07-08T17:11:55.247+00:00,2020-06-12T00:19:24.637+00:00,2021-03-28T08:05:54.472+00:00,0,38452,0,TASK,110
 100 100 116 102 46 99 111 
109,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_
 [...]
+2,10076,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10076,EE-14,调整​文件夹结构,任务,,已完成,done,0,240,0,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0a47d31e0c2a15fd87,,yuxiang,3,Medium,0,,0,,2020-06-15T08:59:51.304+00:00,2020-06-12T00:24:25.922+00:00,2021-03-28T08:05:56.152+00:00,600,4835,0,TASK,hello
 
world,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12450,
+2,10077,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10077,EE-15,路由权限控制,任务,,已完成,done,0,240,0,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0a47d31e0c2a15fd87,,yuxiang,3,Medium,0,,0,,2020-06-15T09:00:26.956+00:00,2020-06-12T00:24:39.624+00:00,2021-03-28T08:06:01.995+00:00,480,4835,0,TASK,hello
 
world,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12451,
+2,10078,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10078,EE-16,​优化前端 
webpack 开发阶段构建速度,任务,,已完成,done,0,0,0,0,5e9711ba34f7b90c0fbc37d3,,Rankin 
Zheng,5ecfbd0a47d31e0c2a15fd87,,yuxiang,3,Medium,0,,0,,2020-06-15T09:01:44.159+00:00,2020-06-12T00:24:49.017+00:00,2021-03-28T08:05:55.863+00:00,60,4836,0,TASK,hello
 
world,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira
 [...]
+2,10079,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10079,EE-17,​新的错误处理机制,任务,,已完成,done,0,360,240,240,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0a47d31e0c2a15fd87,,yuxiang,3,Medium,0,,0,,2020-07-22T07:25:29.104+00:00,2020-06-12T00:24:56.048+00:00,2021-03-28T08:05:54.426+00:00,120,58020,0,TASK,hello
 
world,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_
 [...]
+2,10081,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10081,EE-19,​LDAP需要支持TLS和证书,故事,,已完成,done,0,0,0,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0aaa47a00c1997ea8e,,chao.cheng,3,Medium,0,,0,,2020-06-18T08:34:11.117+00:00,2020-06-12T00:28:00.241+00:00,2021-03-28T08:05:57.326+00:00,0,9126,0,故事,DONE,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12454,
+2,10082,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10082,EE-20,团队首页垂直化,故事,,已完成,done,0,0,0,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0984083c0c12e5af8f,,lin.hao,3,Medium,0,,0,,2020-06-17T07:25:54.370+00:00,2020-06-12T00:29:43.677+00:00,2021-08-06T06:14:54.647+00:00,0,7616,0,故事,DONE,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12455,
+2,10085,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10085,EE-23,​批量删除事故,缺陷,,已完成,done,0,0,0,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0a47d31e0c2a15fd87,,yuxiang,3,Medium,0,,0,,2020-06-15T09:07:56.798+00:00,2020-06-12T00:33:57.204+00:00,2021-03-28T08:05:57.095+00:00,60,4833,0,缺陷,DONE,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10303?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12456,
+2,10086,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10086,EE-24,​LDAP支持自定义的证书上传,故事,,已完成,done,0,0,0,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0aaa47a00c1997ea8e,,chao.cheng,3,Medium,0,,0,,2020-06-12T07:17:28.659+00:00,2020-06-12T00:35:15.489+00:00,2021-03-28T08:05:55.819+00:00,0,402,0,故事,DONE,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12457,
+2,10087,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10087,EE-25,​组件封装及Demo,子任务,,已完成,done,0,240,240,240,5e9711ba34f7b90c0fbc37d3,,Rankin
 Zheng,5ecfbd0c730ec90c1999cadf,,Dingding 
Zhang,3,Medium,10063,EE-1,0,,2020-06-18T04:02:22.350+00:00,2020-06-12T00:40:54.210+00:00,2021-03-28T08:05:57.189+00:00,0,8841,0,SUB-TASK,你好世界,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_ra
 [...]
+2,10088,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10088,EE-26,​定接口,子任务,,已完成,done,0,0,0,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0a47d31e0c2a15fd87,,yuxiang,3,Medium,10063,EE-1,0,,2020-06-15T09:06:51.438+00:00,2020-06-12T00:41:01.683+00:00,2021-03-28T08:05:55.208+00:00,0,4825,0,SUB-TASK,你好世界,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12459,
+2,10089,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10089,EE-27,​提供后端接口,子任务,,已完成,done,0,660,660,660,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0ba04d9c0c220c18d8,,yanghui,3,Medium,10063,EE-1,0,,2020-06-19T06:31:31.662+00:00,2020-06-12T00:41:16.622+00:00,2021-03-28T08:05:55.498+00:00,0,10430,0,SUB-TASK,你好世界,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_ap
 [...]
+2,10090,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10090,EE-28,​数据填充与联调,子任务,,已完成,done,0,360,360,360,5e9711ba34f7b90c0fbc37d3,,Rankin
 Zheng,5ecfbd0c730ec90c1999cadf,,Dingding 
Zhang,3,Medium,10063,EE-1,0,,2020-06-18T04:03:04.637+00:00,2020-06-12T00:41:36.317+00:00,2021-03-28T08:06:05.443+00:00,0,8841,0,SUB-TASK,你好世界,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_
 [...]
+2,10091,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10091,EE-29,​组件封装及Demo,子任务,,已完成,done,0,360,360,360,5e9711ba34f7b90c0fbc37d3,,Rankin
 Zheng,5ecfbd0c730ec90c1999cadf,,Dingding 
Zhang,3,Medium,10064,EE-2,0,,2020-06-18T04:03:30.760+00:00,2020-06-12T00:48:29.035+00:00,2021-03-28T08:05:55.731+00:00,0,8835,0,SUB-TASK,你好世界,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_ra
 [...]
+2,10092,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10092,EE-30,​定接口,子任务,,已完成,done,0,0,0,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0a47d31e0c2a15fd87,,yuxiang,3,Medium,10064,EE-2,0,,2020-06-15T09:06:40.206+00:00,2020-06-12T00:48:39.803+00:00,2021-03-28T08:05:55.159+00:00,0,4818,0,SUB-TASK,你好世界,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12463,
+2,10093,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10093,EE-31,​后端接口,子任务,,已完成,done,0,120,120,120,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0ba04d9c0c220c18d8,,yanghui,3,Medium,10064,EE-2,0,,2020-06-19T07:35:31.762+00:00,2020-06-12T00:48:46.751+00:00,2021-03-28T08:05:55.544+00:00,0,10486,0,SUB-TASK,你好世界,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_
 [...]
+2,10094,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10094,EE-32,​数据填充与联调,子任务,,已完成,done,0,360,360,360,5e9711ba34f7b90c0fbc37d3,,Rankin
 Zheng,5ecfbd0c730ec90c1999cadf,,Dingding 
Zhang,3,Medium,10064,EE-2,0,,2020-06-18T04:03:48.818+00:00,2020-06-12T00:48:53.279+00:00,2021-03-28T08:05:55.592+00:00,0,8834,0,SUB-TASK,你好世界,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_
 [...]
+2,10095,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10095,EE-33,准备测试用例,子任务,,已完成,done,0,0,0,0,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0984083c0c12e5af8f,,lin.hao,3,Medium,10063,EE-1,0,,2020-06-19T06:32:19.340+00:00,2020-06-12T00:50:45.674+00:00,2021-03-28T08:05:55.253+00:00,0,10421,0,SUB-TASK,你好世界,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issue
 [...]
+2,10096,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10096,EE-34,​ 
组件封装及Demo,子任务,,已完成,done,0,240,360,360,5e9711ba34f7b90c0fbc37d3,,Rankin 
Zheng,5ecfbd0c730ec90c1999cadf,,Dingding 
Zhang,3,Medium,10065,EE-3,0,,2020-06-18T04:04:05.951+00:00,2020-06-12T00:51:57.807+00:00,2021-03-28T08:05:57.232+00:00,0,8832,0,SUB-TASK,你好世界,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_r
 [...]
+2,10097,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10097,EE-35,定接口,子任务,,已完成,new,0,0,120,120,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0a47d31e0c2a15fd87,,yuxiang,3,Medium,10065,EE-3,0,,2020-06-15T09:06:30.942+00:00,2020-06-12T00:52:04.767+00:00,2021-03-28T08:05:55.353+00:00,0,4814,0,SUB-TASK,恩底滴梯欸夫典亢姆,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_i
 [...]
+2,10098,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10098,EE-36,后端接口,子任务,,已完成,new,0,120,120,120,5e9711ba34f7b90c0fbc37d3,,Rankin
 
Zheng,5ecfbd0ba04d9c0c220c18d8,,yanghui,3,Medium,10065,EE-3,0,,2020-06-19T07:35:44.696+00:00,2020-06-12T00:52:12.678+00:00,2021-03-28T08:05:55.685+00:00,0,10483,0,SUB-TASK,恩底滴梯欸夫典亢姆,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_a
 [...]
+2,10099,10003,Enterprise 
Edition,https://merico.atlassian.net/rest/agile/1.0/issue/10099,EE-37,数据填充与联调 
,Test Execution,,已完成,new,0,0,0,0,5e9711ba34f7b90c0fbc37d3,,Rankin 
Zheng,5ecfbd0c730ec90c1999cadf,,Dingding 
Zhang,3,Medium,10065,EE-3,0,,2020-06-18T04:04:31.261+00:00,2020-06-12T00:52:23.456+00:00,2021-03-28T08:05:55.638+00:00,0,8832,0,TEST
 
EXECUTION,TODO,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10564?size=medium,"{""ConnectionId"":2,""BoardId"";
 [...]
diff --git 
a/plugins/jira/e2e/snapshot_tables/_tool_jira_issues_for_external_epics.csv 
b/plugins/jira/e2e/snapshot_tables/_tool_jira_issues_for_external_epics.csv
index f65a76412..621db2a11 100644
--- a/plugins/jira/e2e/snapshot_tables/_tool_jira_issues_for_external_epics.csv
+++ b/plugins/jira/e2e/snapshot_tables/_tool_jira_issues_for_external_epics.csv
@@ -1,4 +1,4 @@
-connection_id,issue_id,project_id,self,icon_url,issue_key,summary,type,epic_key,status_name,status_key,story_point,original_estimate_minutes,aggregate_estimate_minutes,remaining_estimate_minutes,creator_account_id,creator_account_type,creator_display_name,assignee_account_id,assignee_account_type,assignee_display_name,priority_id,priority_name,parent_id,parent_key,sprint_id,sprint_name,resolution_date,created,updated,spent_minutes,lead_time_minutes,std_story_point,std_type,std_status,all_fields
-1,20708,10050,https://merico.atlassian.net/rest/agile/1.0/issue/20708,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,K5-2,first
 story,Story,K5-1,To Do,new,0,0,0,0,62a2d08d1be00a0068af1945,,Keon 
Amini,,,,3,Medium,20707,K5-1,175,K5 Sprint 
1,,2022-07-15T22:29:49.026+00:00,2022-07-15T22:30:23.341+00:00,0,0,0,STORY,TODO,
-1,20709,10050,https://merico.atlassian.net/rest/agile/1.0/issue/20709,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,K5-3,second
 story,Story,K5-4,To Do,new,0,0,0,0,62a2d08d1be00a0068af1945,,Keon 
Amini,,,,3,Medium,20710,K5-4,175,K5 Sprint 
1,,2022-07-15T22:30:43.178+00:00,2022-07-15T22:31:38.612+00:00,0,0,0,STORY,TODO,
-1,20710,10050,https://merico.atlassian.net/rest/agile/1.0/issue/20710,https://merico.atlassian.net/images/icons/issuetypes/epic.svg,K5-4,K5
 epic,Epic,,To Do,new,0,0,0,0,62a2d08d1be00a0068af1945,,Keon 
Amini,,,,3,Medium,0,,0,,,2022-07-15T22:31:15.981+00:00,2022-07-15T22:31:38.598+00:00,0,0,0,EPIC,TODO,
+connection_id,issue_id,project_id,project_name,self,icon_url,issue_key,summary,type,epic_key,status_name,status_key,story_point,original_estimate_minutes,aggregate_estimate_minutes,remaining_estimate_minutes,creator_account_id,creator_account_type,creator_display_name,assignee_account_id,assignee_account_type,assignee_display_name,priority_id,priority_name,parent_id,parent_key,sprint_id,sprint_name,resolution_date,created,updated,spent_minutes,lead_time_minutes,std_story_point,std_type,s
 [...]
+1,20708,10050,Keon_5,https://merico.atlassian.net/rest/agile/1.0/issue/20708,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,K5-2,first
 story,Story,K5-1,To Do,new,0,0,0,0,62a2d08d1be00a0068af1945,,Keon 
Amini,,,,3,Medium,20707,K5-1,175,K5 Sprint 
1,,2022-07-15T22:29:49.026+00:00,2022-07-15T22:30:23.341+00:00,0,0,0,STORY,TODO,
+1,20709,10050,Keon_5,https://merico.atlassian.net/rest/agile/1.0/issue/20709,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,K5-3,second
 story,Story,K5-4,To Do,new,0,0,0,0,62a2d08d1be00a0068af1945,,Keon 
Amini,,,,3,Medium,20710,K5-4,175,K5 Sprint 
1,,2022-07-15T22:30:43.178+00:00,2022-07-15T22:31:38.612+00:00,0,0,0,STORY,TODO,
+1,20710,10050,Keon_5,https://merico.atlassian.net/rest/agile/1.0/issue/20710,https://merico.atlassian.net/images/icons/issuetypes/epic.svg,K5-4,K5
 epic,Epic,,To Do,new,0,0,0,0,62a2d08d1be00a0068af1945,,Keon 
Amini,,,,3,Medium,0,,0,,,2022-07-15T22:31:15.981+00:00,2022-07-15T22:31:38.598+00:00,0,0,0,EPIC,TODO,
diff --git a/plugins/jira/e2e/snapshot_tables/issue_labels.csv 
b/plugins/jira/e2e/snapshot_tables/issue_labels.csv
new file mode 100644
index 000000000..a1b5797fd
--- /dev/null
+++ b/plugins/jira/e2e/snapshot_tables/issue_labels.csv
@@ -0,0 +1,15 @@
+issue_id,label_name,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
+jira:JiraIssue:2:10065,Saas,"{""ConnectionId"":2,""BoardId"":28}",_raw_jira_api_issues,12443,
+jira:JiraIssue:2:10065,frontEnd,"{""ConnectionId"":2,""BoardId"":28}",_raw_jira_api_issues,12443,
+jira:JiraIssue:2:10066,Saas,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12444,
+jira:JiraIssue:2:10066,frontEnd,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12444,
+jira:JiraIssue:2:10067,Saas,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12445,
+jira:JiraIssue:2:10067,frontEnd,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12445,
+jira:JiraIssue:2:10068,Saas,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12446,
+jira:JiraIssue:2:10068,frontEnd,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12446,
+jira:JiraIssue:2:10070,Saas,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12447,
+jira:JiraIssue:2:10070,frontEnd,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12447,
+jira:JiraIssue:2:10071,Saas,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12448,
+jira:JiraIssue:2:10071,frontEnd,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12448,
+jira:JiraIssue:2:10072,Saas,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12449,
+jira:JiraIssue:2:10072,frontEnd,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_api_issues,12449,
diff --git a/plugins/jira/e2e/snapshot_tables/issues.csv 
b/plugins/jira/e2e/snapshot_tables/issues.csv
index 43d76b83a..1b06cdccb 100644
--- a/plugins/jira/e2e/snapshot_tables/issues.csv
+++ b/plugins/jira/e2e/snapshot_tables/issues.csv
@@ -1,31 +1,31 @@
-id,url,icon_url,issue_key,title,description,epic_key,type,status,original_status,story_point,resolution_date,created_date,updated_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
-jira:JiraIssue:2:10063,https://merico.atlassian.net/browse/EE-1,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,EE-1,​四个排序图:测试/注释覆盖度、复用度、模块性,,,故事,TODO,已完成,-1,2020-06-19T06:31:18.495+00:00,2020-06-12T00:13:13.360+00:00,2021-03-28T08:06:08.713+00:00,10458,,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0c730ec90c1999cadf,Dingding Zhang,,
-jira:JiraIssue:2:10064,https://merico.atlassian.net/browse/EE-2,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,EE-2,​问题堆叠分布排序图,,,故事,DONE,已完成,2,2020-06-23T10:20:58.999+00:00,2020-06-12T00:15:36.123+00:00,2021-03-28T08:05:55.016+00:00,16445,,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0c730ec90c1999cadf,Dingding Zhang,,
-jira:JiraIssue:2:10065,https://merico.atlassian.net/browse/EE-3,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,EE-3,​问题积压图率,,,故事,DONE,已完成,0,2020-06-23T10:21:11.996+00:00,2020-06-12T00:15:41.600+00:00,2021-03-28T08:05:55.061+00:00,16445,,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0c730ec90c1999cadf,Dingding Zhang,,
-jira:JiraIssue:2:10066,https://merico.atlassian.net/browse/EE-4,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,EE-4,​问题分布的帕累托图,,,故事,DONE,已完成,0,2020-06-23T10:21:23.562+00:00,2020-06-12T00:15:46.144+00:00,2021-03-28T08:06:09.535+00:00,16445,,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0c730ec90c1999cadf,Dingding Zhang,,
-jira:JiraIssue:2:10067,https://merico.atlassian.net/browse/EE-5,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,EE-5,​通用技术任务,,,TASK,hello
 
world,已完成,0,2020-06-18T04:06:00.747+00:00,2020-06-12T00:16:44.157+00:00,2021-03-28T08:05:54.622+00:00,8869,,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0c730ec90c1999cadf,Dingding Zhang,,
-jira:JiraIssue:2:10068,https://merico.atlassian.net/browse/EE-6,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,EE-6,​变异系数、生产率的四象限图,,,故事,DONE,已完成,0,2020-06-16T11:56:14.433+00:00,2020-06-12T00:17:26.986+00:00,2021-03-28T08:05:56.750+00:00,6458,,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0c2490cf0c09e2e598,Gerile Tu,,
-jira:JiraIssue:2:10070,https://merico.atlassian.net/browse/EE-8,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,EE-8,​多团队支持,,,TASK,hello
 
world,已完成,0,2020-07-08T17:11:45.201+00:00,2020-06-12T00:18:58.050+00:00,2021-03-28T08:05:54.576+00:00,38452,,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0ba04d9c0c220c18d8,yanghui,,
-jira:JiraIssue:2:10071,https://merico.atlassian.net/browse/EE-9,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,EE-9,Common
 backend 拆分,,,TASK,hello 
world,已完成,0,2020-07-08T17:12:05.663+00:00,2020-06-12T00:19:17.336+00:00,2021-03-28T08:06:20.165+00:00,38452,,Medium,1680,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0ba04d9c0c220c18d8,yanghui,,
-jira:JiraIssue:2:10072,https://merico.atlassian.net/browse/EE-10,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,EE-10,​部署SaaS版本,,,TASK,110
 100 100 116 102 46 99 111 
109,已完成,0,2020-07-08T17:11:55.247+00:00,2020-06-12T00:19:24.637+00:00,2021-03-28T08:05:54.472+00:00,38452,,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0ba04d9c0c220c18d8,yanghui,,
-jira:JiraIssue:2:10076,https://merico.atlassian.net/browse/EE-14,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,EE-14,调整​文件夹结构,,,TASK,hello
 
world,已完成,0,2020-06-15T08:59:51.304+00:00,2020-06-12T00:24:25.922+00:00,2021-03-28T08:05:56.152+00:00,4835,,Medium,240,600,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0a47d31e0c2a15fd87,yuxiang,,
-jira:JiraIssue:2:10077,https://merico.atlassian.net/browse/EE-15,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,EE-15,路由权限控制,,,TASK,hello
 
world,已完成,0,2020-06-15T09:00:26.956+00:00,2020-06-12T00:24:39.624+00:00,2021-03-28T08:06:01.995+00:00,4835,,Medium,240,480,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0a47d31e0c2a15fd87,yuxiang,,
-jira:JiraIssue:2:10078,https://merico.atlassian.net/browse/EE-16,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,EE-16,​优化前端
 webpack 开发阶段构建速度,,,TASK,hello 
world,已完成,0,2020-06-15T09:01:44.159+00:00,2020-06-12T00:24:49.017+00:00,2021-03-28T08:05:55.863+00:00,4836,,Medium,0,60,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0a47d31e0c2a15fd87,yuxiang,,
-jira:JiraIssue:2:10079,https://merico.atlassian.net/browse/EE-17,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,EE-17,​新的错误处理机制,,,TASK,hello
 
world,已完成,0,2020-07-22T07:25:29.104+00:00,2020-06-12T00:24:56.048+00:00,2021-03-28T08:05:54.426+00:00,58020,,Medium,360,120,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0a47d31e0c2a15fd87,yuxiang,,
-jira:JiraIssue:2:10081,https://merico.atlassian.net/browse/EE-19,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,EE-19,​LDAP需要支持TLS和证书,,,故事,DONE,已完成,0,2020-06-18T08:34:11.117+00:00,2020-06-12T00:28:00.241+00:00,2021-03-28T08:05:57.326+00:00,9126,,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0aaa47a00c1997ea8e,chao.cheng,,
-jira:JiraIssue:2:10082,https://merico.atlassian.net/browse/EE-20,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,EE-20,团队首页垂直化,,,故事,DONE,已完成,0,2020-06-17T07:25:54.370+00:00,2020-06-12T00:29:43.677+00:00,2021-08-06T06:14:54.647+00:00,7616,,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0984083c0c12e5af8f,lin.hao,,
-jira:JiraIssue:2:10085,https://merico.atlassian.net/browse/EE-23,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10303?size=medium,EE-23,​批量删除事故,,,缺陷,DONE,已完成,0,2020-06-15T09:07:56.798+00:00,2020-06-12T00:33:57.204+00:00,2021-03-28T08:05:57.095+00:00,4833,,Medium,0,60,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0a47d31e0c2a15fd87,yuxiang,,
-jira:JiraIssue:2:10086,https://merico.atlassian.net/browse/EE-24,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,EE-24,​LDAP支持自定义的证书上传,,,故事,DONE,已完成,0,2020-06-12T07:17:28.659+00:00,2020-06-12T00:35:15.489+00:00,2021-03-28T08:05:55.819+00:00,402,,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0aaa47a00c1997ea8e,chao.cheng,,
-jira:JiraIssue:2:10087,https://merico.atlassian.net/browse/EE-25,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,EE-25,​组件封装及Demo,,,SUB-TASK,你好世界,已完成,0,2020-06-18T04:02:22.350+00:00,2020-06-12T00:40:54.210+00:00,2021-03-28T08:05:57.189+00:00,8841,jira:JiraIssue:2:10063,Medium,240,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0c730ec90c1999cadf,Dingding Zhang,,
-jira:JiraIssue:2:10088,https://merico.atlassian.net/browse/EE-26,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,EE-26,​定接口,,,SUB-TASK,你好世界,已完成,0,2020-06-15T09:06:51.438+00:00,2020-06-12T00:41:01.683+00:00,2021-03-28T08:05:55.208+00:00,4825,jira:JiraIssue:2:10063,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0a47d31e0c2a15fd87,yuxiang,,
-jira:JiraIssue:2:10089,https://merico.atlassian.net/browse/EE-27,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,EE-27,​提供后端接口,,,SUB-TASK,你好世界,已完成,0,2020-06-19T06:31:31.662+00:00,2020-06-12T00:41:16.622+00:00,2021-03-28T08:05:55.498+00:00,10430,jira:JiraIssue:2:10063,Medium,660,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0ba04d9c0c220c18d8,yanghui,,
-jira:JiraIssue:2:10090,https://merico.atlassian.net/browse/EE-28,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,EE-28,​数据填充与联调,,,SUB-TASK,你好世界,已完成,0,2020-06-18T04:03:04.637+00:00,2020-06-12T00:41:36.317+00:00,2021-03-28T08:06:05.443+00:00,8841,jira:JiraIssue:2:10063,Medium,360,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0c730ec90c1999cadf,Dingding Zhang,,
-jira:JiraIssue:2:10091,https://merico.atlassian.net/browse/EE-29,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,EE-29,​组件封装及Demo,,,SUB-TASK,你好世界,已完成,0,2020-06-18T04:03:30.760+00:00,2020-06-12T00:48:29.035+00:00,2021-03-28T08:05:55.731+00:00,8835,jira:JiraIssue:2:10064,Medium,360,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0c730ec90c1999cadf,Dingding Zhang,,
-jira:JiraIssue:2:10092,https://merico.atlassian.net/browse/EE-30,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,EE-30,​定接口,,,SUB-TASK,你好世界,已完成,0,2020-06-15T09:06:40.206+00:00,2020-06-12T00:48:39.803+00:00,2021-03-28T08:05:55.159+00:00,4818,jira:JiraIssue:2:10064,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0a47d31e0c2a15fd87,yuxiang,,
-jira:JiraIssue:2:10093,https://merico.atlassian.net/browse/EE-31,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,EE-31,​后端接口,,,SUB-TASK,你好世界,已完成,0,2020-06-19T07:35:31.762+00:00,2020-06-12T00:48:46.751+00:00,2021-03-28T08:05:55.544+00:00,10486,jira:JiraIssue:2:10064,Medium,120,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0ba04d9c0c220c18d8,yanghui,,
-jira:JiraIssue:2:10094,https://merico.atlassian.net/browse/EE-32,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,EE-32,​数据填充与联调,,,SUB-TASK,你好世界,已完成,0,2020-06-18T04:03:48.818+00:00,2020-06-12T00:48:53.279+00:00,2021-03-28T08:05:55.592+00:00,8834,jira:JiraIssue:2:10064,Medium,360,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0c730ec90c1999cadf,Dingding Zhang,,
-jira:JiraIssue:2:10095,https://merico.atlassian.net/browse/EE-33,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,EE-33,准备测试用例,,,SUB-TASK,你好世界,已完成,0,2020-06-19T06:32:19.340+00:00,2020-06-12T00:50:45.674+00:00,2021-03-28T08:05:55.253+00:00,10421,jira:JiraIssue:2:10063,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0984083c0c12e5af8f,lin.hao,,
-jira:JiraIssue:2:10096,https://merico.atlassian.net/browse/EE-34,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,EE-34,​
 
组件封装及Demo,,,SUB-TASK,你好世界,已完成,0,2020-06-18T04:04:05.951+00:00,2020-06-12T00:51:57.807+00:00,2021-03-28T08:05:57.232+00:00,8832,jira:JiraIssue:2:10065,Medium,240,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0c730ec90c1999cadf,Dingding Zhang,,
-jira:JiraIssue:2:10097,https://merico.atlassian.net/browse/EE-35,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,EE-35,定接口,,,SUB-TASK,恩底滴梯欸夫典亢姆,已完成,0,2020-06-15T09:06:30.942+00:00,2020-06-12T00:52:04.767+00:00,2021-03-28T08:05:55.353+00:00,4814,jira:JiraIssue:2:10065,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0a47d31e0c2a15fd87,yuxiang,,
-jira:JiraIssue:2:10098,https://merico.atlassian.net/browse/EE-36,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,EE-36,后端接口,,,SUB-TASK,恩底滴梯欸夫典亢姆,已完成,0,2020-06-19T07:35:44.696+00:00,2020-06-12T00:52:12.678+00:00,2021-03-28T08:05:55.685+00:00,10483,jira:JiraIssue:2:10065,Medium,120,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0ba04d9c0c220c18d8,yanghui,,
-jira:JiraIssue:2:10099,https://merico.atlassian.net/browse/EE-37,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10564?size=medium,EE-37,数据填充与联调
 ,,,TEST 
EXECUTION,TODO,已完成,0,2020-06-18T04:04:31.261+00:00,2020-06-12T00:52:23.456+00:00,2021-03-28T08:05:55.638+00:00,8832,jira:JiraIssue:2:10065,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0c730ec90c1999cadf,Dingding Zhang,,
+id,url,icon_url,issue_key,title,description,epic_key,type,status,original_status,story_point,resolution_date,created_date,updated_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,original_project
+jira:JiraIssue:2:10063,https://merico.atlassian.net/browse/EE-1,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,EE-1,​四个排序图:测试/注释覆盖度、复用度、模块性,,,故事,TODO,已完成,-1,2020-06-19T06:31:18.495+00:00,2020-06-12T00:13:13.360+00:00,2021-03-28T08:06:08.713+00:00,10458,,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0c730ec90c1999cadf,Dingding Zhang,,,Enterprise 
Edition
+jira:JiraIssue:2:10064,https://merico.atlassian.net/browse/EE-2,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,EE-2,​问题堆叠分布排序图,,,故事,DONE,已完成,2,2020-06-23T10:20:58.999+00:00,2020-06-12T00:15:36.123+00:00,2021-03-28T08:05:55.016+00:00,16445,,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0c730ec90c1999cadf,Dingding Zhang,,,Enterprise 
Edition
+jira:JiraIssue:2:10065,https://merico.atlassian.net/browse/EE-3,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,EE-3,​问题积压图率,,,故事,DONE,已完成,0,2020-06-23T10:21:11.996+00:00,2020-06-12T00:15:41.600+00:00,2021-03-28T08:05:55.061+00:00,16445,,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0c730ec90c1999cadf,Dingding Zhang,,,Enterprise 
Edition
+jira:JiraIssue:2:10066,https://merico.atlassian.net/browse/EE-4,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,EE-4,​问题分布的帕累托图,,,故事,DONE,已完成,0,2020-06-23T10:21:23.562+00:00,2020-06-12T00:15:46.144+00:00,2021-03-28T08:06:09.535+00:00,16445,,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0c730ec90c1999cadf,Dingding Zhang,,,Enterprise 
Edition
+jira:JiraIssue:2:10067,https://merico.atlassian.net/browse/EE-5,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,EE-5,​通用技术任务,,,TASK,hello
 
world,已完成,0,2020-06-18T04:06:00.747+00:00,2020-06-12T00:16:44.157+00:00,2021-03-28T08:05:54.622+00:00,8869,,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0c730ec90c1999cadf,Dingding Zhang,,,Enterprise 
Edition
+jira:JiraIssue:2:10068,https://merico.atlassian.net/browse/EE-6,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,EE-6,​变异系数、生产率的四象限图,,,故事,DONE,已完成,0,2020-06-16T11:56:14.433+00:00,2020-06-12T00:17:26.986+00:00,2021-03-28T08:05:56.750+00:00,6458,,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0c2490cf0c09e2e598,Gerile Tu,,,Enterprise 
Edition
+jira:JiraIssue:2:10070,https://merico.atlassian.net/browse/EE-8,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,EE-8,​多团队支持,,,TASK,hello
 
world,已完成,0,2020-07-08T17:11:45.201+00:00,2020-06-12T00:18:58.050+00:00,2021-03-28T08:05:54.576+00:00,38452,,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0ba04d9c0c220c18d8,yanghui,,,Enterprise Edition
+jira:JiraIssue:2:10071,https://merico.atlassian.net/browse/EE-9,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,EE-9,Common
 backend 拆分,,,TASK,hello 
world,已完成,0,2020-07-08T17:12:05.663+00:00,2020-06-12T00:19:17.336+00:00,2021-03-28T08:06:20.165+00:00,38452,,Medium,1680,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0ba04d9c0c220c18d8,yanghui,,,Enterprise Edition
+jira:JiraIssue:2:10072,https://merico.atlassian.net/browse/EE-10,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,EE-10,​部署SaaS版本,,,TASK,110
 100 100 116 102 46 99 111 
109,已完成,0,2020-07-08T17:11:55.247+00:00,2020-06-12T00:19:24.637+00:00,2021-03-28T08:05:54.472+00:00,38452,,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0ba04d9c0c220c18d8,yanghui,,,Enterprise Edition
+jira:JiraIssue:2:10076,https://merico.atlassian.net/browse/EE-14,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,EE-14,调整​文件夹结构,,,TASK,hello
 
world,已完成,0,2020-06-15T08:59:51.304+00:00,2020-06-12T00:24:25.922+00:00,2021-03-28T08:05:56.152+00:00,4835,,Medium,240,600,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0a47d31e0c2a15fd87,yuxiang,,,Enterprise Edition
+jira:JiraIssue:2:10077,https://merico.atlassian.net/browse/EE-15,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,EE-15,路由权限控制,,,TASK,hello
 
world,已完成,0,2020-06-15T09:00:26.956+00:00,2020-06-12T00:24:39.624+00:00,2021-03-28T08:06:01.995+00:00,4835,,Medium,240,480,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0a47d31e0c2a15fd87,yuxiang,,,Enterprise Edition
+jira:JiraIssue:2:10078,https://merico.atlassian.net/browse/EE-16,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,EE-16,​优化前端
 webpack 开发阶段构建速度,,,TASK,hello 
world,已完成,0,2020-06-15T09:01:44.159+00:00,2020-06-12T00:24:49.017+00:00,2021-03-28T08:05:55.863+00:00,4836,,Medium,0,60,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0a47d31e0c2a15fd87,yuxiang,,,Enterprise Edition
+jira:JiraIssue:2:10079,https://merico.atlassian.net/browse/EE-17,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,EE-17,​新的错误处理机制,,,TASK,hello
 
world,已完成,0,2020-07-22T07:25:29.104+00:00,2020-06-12T00:24:56.048+00:00,2021-03-28T08:05:54.426+00:00,58020,,Medium,360,120,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0a47d31e0c2a15fd87,yuxiang,,,Enterprise Edition
+jira:JiraIssue:2:10081,https://merico.atlassian.net/browse/EE-19,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,EE-19,​LDAP需要支持TLS和证书,,,故事,DONE,已完成,0,2020-06-18T08:34:11.117+00:00,2020-06-12T00:28:00.241+00:00,2021-03-28T08:05:57.326+00:00,9126,,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0aaa47a00c1997ea8e,chao.cheng,,,Enterprise 
Edition
+jira:JiraIssue:2:10082,https://merico.atlassian.net/browse/EE-20,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,EE-20,团队首页垂直化,,,故事,DONE,已完成,0,2020-06-17T07:25:54.370+00:00,2020-06-12T00:29:43.677+00:00,2021-08-06T06:14:54.647+00:00,7616,,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0984083c0c12e5af8f,lin.hao,,,Enterprise Edition
+jira:JiraIssue:2:10085,https://merico.atlassian.net/browse/EE-23,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10303?size=medium,EE-23,​批量删除事故,,,缺陷,DONE,已完成,0,2020-06-15T09:07:56.798+00:00,2020-06-12T00:33:57.204+00:00,2021-03-28T08:05:57.095+00:00,4833,,Medium,0,60,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0a47d31e0c2a15fd87,yuxiang,,,Enterprise Edition
+jira:JiraIssue:2:10086,https://merico.atlassian.net/browse/EE-24,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,EE-24,​LDAP支持自定义的证书上传,,,故事,DONE,已完成,0,2020-06-12T07:17:28.659+00:00,2020-06-12T00:35:15.489+00:00,2021-03-28T08:05:55.819+00:00,402,,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0aaa47a00c1997ea8e,chao.cheng,,,Enterprise 
Edition
+jira:JiraIssue:2:10087,https://merico.atlassian.net/browse/EE-25,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,EE-25,​组件封装及Demo,,,SUB-TASK,你好世界,已完成,0,2020-06-18T04:02:22.350+00:00,2020-06-12T00:40:54.210+00:00,2021-03-28T08:05:57.189+00:00,8841,jira:JiraIssue:2:10063,Medium,240,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0c730ec90c1999cadf,Dingding Zhang,,,Enterprise 
Edition
+jira:JiraIssue:2:10088,https://merico.atlassian.net/browse/EE-26,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,EE-26,​定接口,,,SUB-TASK,你好世界,已完成,0,2020-06-15T09:06:51.438+00:00,2020-06-12T00:41:01.683+00:00,2021-03-28T08:05:55.208+00:00,4825,jira:JiraIssue:2:10063,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0a47d31e0c2a15fd87,yuxiang,,,Enterprise Edition
+jira:JiraIssue:2:10089,https://merico.atlassian.net/browse/EE-27,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,EE-27,​提供后端接口,,,SUB-TASK,你好世界,已完成,0,2020-06-19T06:31:31.662+00:00,2020-06-12T00:41:16.622+00:00,2021-03-28T08:05:55.498+00:00,10430,jira:JiraIssue:2:10063,Medium,660,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0ba04d9c0c220c18d8,yanghui,,,Enterprise Edition
+jira:JiraIssue:2:10090,https://merico.atlassian.net/browse/EE-28,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,EE-28,​数据填充与联调,,,SUB-TASK,你好世界,已完成,0,2020-06-18T04:03:04.637+00:00,2020-06-12T00:41:36.317+00:00,2021-03-28T08:06:05.443+00:00,8841,jira:JiraIssue:2:10063,Medium,360,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0c730ec90c1999cadf,Dingding Zhang,,,Enterprise 
Edition
+jira:JiraIssue:2:10091,https://merico.atlassian.net/browse/EE-29,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,EE-29,​组件封装及Demo,,,SUB-TASK,你好世界,已完成,0,2020-06-18T04:03:30.760+00:00,2020-06-12T00:48:29.035+00:00,2021-03-28T08:05:55.731+00:00,8835,jira:JiraIssue:2:10064,Medium,360,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0c730ec90c1999cadf,Dingding Zhang,,,Enterprise 
Edition
+jira:JiraIssue:2:10092,https://merico.atlassian.net/browse/EE-30,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,EE-30,​定接口,,,SUB-TASK,你好世界,已完成,0,2020-06-15T09:06:40.206+00:00,2020-06-12T00:48:39.803+00:00,2021-03-28T08:05:55.159+00:00,4818,jira:JiraIssue:2:10064,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0a47d31e0c2a15fd87,yuxiang,,,Enterprise Edition
+jira:JiraIssue:2:10093,https://merico.atlassian.net/browse/EE-31,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,EE-31,​后端接口,,,SUB-TASK,你好世界,已完成,0,2020-06-19T07:35:31.762+00:00,2020-06-12T00:48:46.751+00:00,2021-03-28T08:05:55.544+00:00,10486,jira:JiraIssue:2:10064,Medium,120,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0ba04d9c0c220c18d8,yanghui,,,Enterprise Edition
+jira:JiraIssue:2:10094,https://merico.atlassian.net/browse/EE-32,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,EE-32,​数据填充与联调,,,SUB-TASK,你好世界,已完成,0,2020-06-18T04:03:48.818+00:00,2020-06-12T00:48:53.279+00:00,2021-03-28T08:05:55.592+00:00,8834,jira:JiraIssue:2:10064,Medium,360,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0c730ec90c1999cadf,Dingding Zhang,,,Enterprise 
Edition
+jira:JiraIssue:2:10095,https://merico.atlassian.net/browse/EE-33,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,EE-33,准备测试用例,,,SUB-TASK,你好世界,已完成,0,2020-06-19T06:32:19.340+00:00,2020-06-12T00:50:45.674+00:00,2021-03-28T08:05:55.253+00:00,10421,jira:JiraIssue:2:10063,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0984083c0c12e5af8f,lin.hao,,,Enterprise Edition
+jira:JiraIssue:2:10096,https://merico.atlassian.net/browse/EE-34,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,EE-34,​
 
组件封装及Demo,,,SUB-TASK,你好世界,已完成,0,2020-06-18T04:04:05.951+00:00,2020-06-12T00:51:57.807+00:00,2021-03-28T08:05:57.232+00:00,8832,jira:JiraIssue:2:10065,Medium,240,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0c730ec90c1999cadf,Dingding Zhang,,,Enterprise 
Edition
+jira:JiraIssue:2:10097,https://merico.atlassian.net/browse/EE-35,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,EE-35,定接口,,,SUB-TASK,恩底滴梯欸夫典亢姆,已完成,0,2020-06-15T09:06:30.942+00:00,2020-06-12T00:52:04.767+00:00,2021-03-28T08:05:55.353+00:00,4814,jira:JiraIssue:2:10065,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0a47d31e0c2a15fd87,yuxiang,,,Enterprise Edition
+jira:JiraIssue:2:10098,https://merico.atlassian.net/browse/EE-36,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,EE-36,后端接口,,,SUB-TASK,恩底滴梯欸夫典亢姆,已完成,0,2020-06-19T07:35:44.696+00:00,2020-06-12T00:52:12.678+00:00,2021-03-28T08:05:55.685+00:00,10483,jira:JiraIssue:2:10065,Medium,120,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0ba04d9c0c220c18d8,yanghui,,,Enterprise Edition
+jira:JiraIssue:2:10099,https://merico.atlassian.net/browse/EE-37,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10564?size=medium,EE-37,数据填充与联调
 ,,,TEST 
EXECUTION,TODO,已完成,0,2020-06-18T04:04:31.261+00:00,2020-06-12T00:52:23.456+00:00,2021-03-28T08:05:55.638+00:00,8832,jira:JiraIssue:2:10065,Medium,0,0,0,jira:JiraAccount:2:5e9711ba34f7b90c0fbc37d3,Rankin
 Zheng,jira:JiraAccount:2:5ecfbd0c730ec90c1999cadf,Dingding Zhang,,,Enterprise 
Edition
diff --git a/plugins/jira/models/issue.go b/plugins/jira/models/issue.go
index b12255db6..70d9c2fdf 100644
--- a/plugins/jira/models/issue.go
+++ b/plugins/jira/models/issue.go
@@ -29,6 +29,7 @@ type JiraIssue struct {
        ConnectionId             uint64 `gorm:"primaryKey"`
        IssueId                  uint64 `gorm:"primarykey"`
        ProjectId                uint64
+       ProjectName              string `gorm:"type:varchar(255)"`
        Self                     string `gorm:"type:varchar(255)"`
        IconURL                  string 
`gorm:"type:varchar(255);column:icon_url"`
        IssueKey                 string `gorm:"type:varchar(255)"`
diff --git a/plugins/jira/models/migrationscripts/register.go 
b/plugins/jira/models/migrationscripts/202211215_add_project_name.go
similarity index 57%
copy from plugins/jira/models/migrationscripts/register.go
copy to plugins/jira/models/migrationscripts/202211215_add_project_name.go
index 15f990b14..51e60c6ad 100644
--- a/plugins/jira/models/migrationscripts/register.go
+++ b/plugins/jira/models/migrationscripts/202211215_add_project_name.go
@@ -18,15 +18,29 @@ limitations under the License.
 package migrationscripts
 
 import (
+       "github.com/apache/incubator-devlake/errors"
+       "github.com/apache/incubator-devlake/helpers/migrationhelper"
        "github.com/apache/incubator-devlake/plugins/core"
 )
 
-// All return all the migration scripts
-func All() []core.MigrationScript {
-       return []core.MigrationScript{
-               new(addSourceTable20220407),
-               new(renameSourceTable20220505),
-               new(addInitTables20220716),
-               new(addTransformationRule20221116),
-       }
+type jiraIssue20221215 struct {
+       ProjectName string `gorm:"type:varchar(255)"`
+}
+
+func (jiraIssue20221215) TableName() string {
+       return "_tool_jira_issues"
+}
+
+type addProjectName20221215 struct{}
+
+func (script *addProjectName20221215) Up(basicRes core.BasicRes) errors.Error {
+       return migrationhelper.AutoMigrateTables(basicRes, &jiraIssue20221215{})
+}
+
+func (*addProjectName20221215) Version() uint64 {
+       return 20221215142316
+}
+
+func (*addProjectName20221215) Name() string {
+       return "add project_name to _tool_jira_issues"
 }
diff --git a/plugins/jira/models/migrationscripts/register.go 
b/plugins/jira/models/migrationscripts/register.go
index 15f990b14..9ed77d8a3 100644
--- a/plugins/jira/models/migrationscripts/register.go
+++ b/plugins/jira/models/migrationscripts/register.go
@@ -28,5 +28,6 @@ func All() []core.MigrationScript {
                new(renameSourceTable20220505),
                new(addInitTables20220716),
                new(addTransformationRule20221116),
+               new(addProjectName20221215),
        }
 }
diff --git a/plugins/jira/tasks/apiv2models/issue.go 
b/plugins/jira/tasks/apiv2models/issue.go
index e880590c1..6203bf0a7 100644
--- a/plugins/jira/tasks/apiv2models/issue.go
+++ b/plugins/jira/tasks/apiv2models/issue.go
@@ -159,6 +159,7 @@ func (i Issue) toToolLayer(connectionId uint64) 
*models.JiraIssue {
                ConnectionId:       connectionId,
                IssueId:            i.ID,
                ProjectId:          i.Fields.Project.ID,
+               ProjectName:        i.Fields.Project.Name,
                Self:               i.Self,
                IconURL:            i.Fields.Issuetype.IconURL,
                IssueKey:           i.Key,
diff --git a/plugins/jira/tasks/issue_convertor.go 
b/plugins/jira/tasks/issue_convertor.go
index 87ca8d603..019045e23 100644
--- a/plugins/jira/tasks/issue_convertor.go
+++ b/plugins/jira/tasks/issue_convertor.go
@@ -103,6 +103,7 @@ func ConvertIssues(taskCtx core.SubTaskContext) 
errors.Error {
                                UpdatedDate:             &jiraIssue.Updated,
                                LeadTimeMinutes:         
int64(jiraIssue.LeadTimeMinutes),
                                TimeSpentMinutes:        jiraIssue.SpentMinutes,
+                               OriginalProject:         jiraIssue.ProjectName,
                        }
                        if jiraIssue.CreatorAccountId != "" {
                                issue.CreatorId = 
accountIdGen.Generate(data.Options.ConnectionId, jiraIssue.CreatorAccountId)
diff --git a/plugins/jira/tasks/issue_label_convertor.go 
b/plugins/jira/tasks/issue_label_convertor.go
new file mode 100644
index 000000000..ea3ad3352
--- /dev/null
+++ b/plugins/jira/tasks/issue_label_convertor.go
@@ -0,0 +1,85 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package tasks
+
+import (
+       "reflect"
+
+       "github.com/apache/incubator-devlake/errors"
+       "github.com/apache/incubator-devlake/models/domainlayer/didgen"
+       "github.com/apache/incubator-devlake/models/domainlayer/ticket"
+       "github.com/apache/incubator-devlake/plugins/core"
+       "github.com/apache/incubator-devlake/plugins/core/dal"
+       "github.com/apache/incubator-devlake/plugins/helper"
+       "github.com/apache/incubator-devlake/plugins/jira/models"
+)
+
+var ConvertIssueLabelsMeta = core.SubTaskMeta{
+       Name:             "convertIssueLabels",
+       EntryPoint:       ConvertIssueLabels,
+       EnabledByDefault: true,
+       Description:      "Convert tool layer table jira_issue_labels into  
domain layer table issue_labels",
+       DomainTypes:      []string{core.DOMAIN_TYPE_TICKET},
+}
+
+func ConvertIssueLabels(taskCtx core.SubTaskContext) errors.Error {
+       db := taskCtx.GetDal()
+       data := taskCtx.GetData().(*JiraTaskData)
+
+       cursor, err := db.Cursor(
+               dal.Select("jil.*"),
+               dal.From("_tool_jira_issue_labels jil"),
+               dal.Join(`LEFT JOIN _tool_jira_board_issues jbi
+              ON jil.connection_id = jbi.connection_id AND jil.issue_id = 
jbi.issue_id`),
+               dal.Where("jil.connection_id = ? AND jbi.board_id = ?", 
data.Options.ConnectionId, data.Options.BoardId),
+               dal.Orderby("issue_id ASC"),
+       )
+       if err != nil {
+               return err
+       }
+       defer cursor.Close()
+       issueIdGen := didgen.NewDomainIdGenerator(&models.JiraIssue{})
+
+       converter, err := helper.NewDataConverter(helper.DataConverterArgs{
+               RawDataSubTaskArgs: helper.RawDataSubTaskArgs{
+                       Ctx: taskCtx,
+                       Params: JiraApiParams{
+                               ConnectionId: data.Options.ConnectionId,
+                               BoardId:      data.Options.BoardId,
+                       },
+                       Table: RAW_ISSUE_TABLE,
+               },
+               InputRowType: reflect.TypeOf(models.JiraIssueLabel{}),
+               Input:        cursor,
+               Convert: func(inputRow interface{}) ([]interface{}, 
errors.Error) {
+                       issueLabel := inputRow.(*models.JiraIssueLabel)
+                       domainIssueLabel := &ticket.IssueLabel{
+                               IssueId:   
issueIdGen.Generate(data.Options.ConnectionId, issueLabel.IssueId),
+                               LabelName: issueLabel.LabelName,
+                       }
+                       return []interface{}{
+                               domainIssueLabel,
+                       }, nil
+               },
+       })
+       if err != nil {
+               return err
+       }
+
+       return converter.Execute()
+}
diff --git a/plugins/pagerduty/e2e/incident_test.go 
b/plugins/pagerduty/e2e/incident_test.go
index 08c2667a4..6bf26313e 100644
--- a/plugins/pagerduty/e2e/incident_test.go
+++ b/plugins/pagerduty/e2e/incident_test.go
@@ -79,8 +79,9 @@ func TestIncidentDataFlow(t *testing.T) {
        dataflowTester.VerifyTableWithOptions(
                ticket.Issue{},
                e2ehelper.TableOptions{
-                       CSVRelPath:  "./snapshot_tables/issues.csv",
-                       IgnoreTypes: []any{common.NoPKModel{}},
+                       CSVRelPath:   "./snapshot_tables/issues.csv",
+                       IgnoreTypes:  []any{common.NoPKModel{}},
+                       IgnoreFields: []string{"original_project"},
                },
        )
 }
diff --git a/plugins/zentao/e2e/bug_test.go b/plugins/zentao/e2e/bug_test.go
index c7f9baadd..352c863a8 100644
--- a/plugins/zentao/e2e/bug_test.go
+++ b/plugins/zentao/e2e/bug_test.go
@@ -59,8 +59,9 @@ func TestZentaoBugDataFlow(t *testing.T) {
        dataflowTester.FlushTabler(&ticket.BoardIssue{})
        dataflowTester.Subtask(tasks.ConvertBugMeta, taskData)
        dataflowTester.VerifyTableWithOptions(&ticket.Issue{}, 
e2ehelper.TableOptions{
-               CSVRelPath:  "./snapshot_tables/issues_bug.csv",
-               IgnoreTypes: []interface{}{common.NoPKModel{}},
+               CSVRelPath:   "./snapshot_tables/issues_bug.csv",
+               IgnoreTypes:  []interface{}{common.NoPKModel{}},
+               IgnoreFields: []string{"original_project"},
        })
        dataflowTester.VerifyTableWithOptions(&ticket.BoardIssue{}, 
e2ehelper.TableOptions{
                CSVRelPath:  "./snapshot_tables/board_issues_bug.csv",
diff --git a/plugins/zentao/e2e/story_test.go b/plugins/zentao/e2e/story_test.go
index c4bdf01d8..91f4ad3eb 100644
--- a/plugins/zentao/e2e/story_test.go
+++ b/plugins/zentao/e2e/story_test.go
@@ -59,8 +59,9 @@ func TestZentaoStoryDataFlow(t *testing.T) {
        dataflowTester.FlushTabler(&ticket.BoardIssue{})
        dataflowTester.Subtask(tasks.ConvertStoryMeta, taskData)
        dataflowTester.VerifyTableWithOptions(&ticket.Issue{}, 
e2ehelper.TableOptions{
-               CSVRelPath:  "./snapshot_tables/issues_story.csv",
-               IgnoreTypes: []interface{}{common.NoPKModel{}},
+               CSVRelPath:   "./snapshot_tables/issues_story.csv",
+               IgnoreTypes:  []interface{}{common.NoPKModel{}},
+               IgnoreFields: []string{"original_project"},
        })
        dataflowTester.VerifyTableWithOptions(&ticket.BoardIssue{}, 
e2ehelper.TableOptions{
                CSVRelPath:  "./snapshot_tables/board_issues_story.csv",
diff --git a/plugins/zentao/e2e/task_test.go b/plugins/zentao/e2e/task_test.go
index 355635259..339e369af 100644
--- a/plugins/zentao/e2e/task_test.go
+++ b/plugins/zentao/e2e/task_test.go
@@ -58,8 +58,9 @@ func TestZentaoTaskDataFlow(t *testing.T) {
        dataflowTester.FlushTabler(&ticket.BoardIssue{})
        dataflowTester.Subtask(tasks.ConvertTaskMeta, taskData)
        dataflowTester.VerifyTableWithOptions(&ticket.Issue{}, 
e2ehelper.TableOptions{
-               CSVRelPath:  "./snapshot_tables/issues_task.csv",
-               IgnoreTypes: []interface{}{common.NoPKModel{}},
+               CSVRelPath:   "./snapshot_tables/issues_task.csv",
+               IgnoreTypes:  []interface{}{common.NoPKModel{}},
+               IgnoreFields: []string{"original_project"},
        })
        dataflowTester.VerifyTableWithOptions(&ticket.BoardIssue{}, 
e2ehelper.TableOptions{
                CSVRelPath:  "./snapshot_tables/board_issues_task.csv",

Reply via email to