This is an automated email from the ASF dual-hosted git repository.

zhangliang2022 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 3ca23e5d0 fix: modity issues story_point from int64 to float64 (#4412)
3ca23e5d0 is described below

commit 3ca23e5d0eb0cf265ee8e2f2748dc83cf1936d6e
Author: abeizn <[email protected]>
AuthorDate: Wed Feb 15 13:35:52 2023 +0800

    fix: modity issues story_point from int64 to float64 (#4412)
    
    * fix: modity issues story_point from int64 to float64
    
    * fix: remove _tool_jira_issues column std_story_point
    
    * fix: jira issue e2e test
    
    * fix: remove jira models issue std_story_point
    
    * fix: remove jira models issue std_story_point
---
 backend/core/models/domainlayer/ticket/issue.go    |  5 +-
 .../20230214_issue_storypoint_to_float.go          | 66 ++++++++++++++++++++++
 backend/core/models/migrationscripts/register.go   |  1 +
 backend/plugins/jira/e2e/issue_test.go             |  1 -
 .../jira/e2e/snapshot_tables/_tool_jira_issues.csv | 62 ++++++++++----------
 backend/plugins/jira/models/issue.go               |  4 +-
 ...roject_name.go => 20221215_add_project_name.go} |  0
 ...e.go => 20230214_remove_issue_stdstorypoint.go} | 28 ++++-----
 .../jira/models/migrationscripts/register.go       |  1 +
 backend/plugins/jira/tasks/issue_convertor.go      |  2 +-
 backend/plugins/jira/tasks/issue_extractor.go      |  9 +--
 backend/plugins/tapd/tasks/story_converter.go      |  9 +--
 backend/plugins/webhook/api/issue.go               |  7 ++-
 13 files changed, 133 insertions(+), 62 deletions(-)

diff --git a/backend/core/models/domainlayer/ticket/issue.go 
b/backend/core/models/domainlayer/ticket/issue.go
index 9022cb463..71852b738 100644
--- a/backend/core/models/domainlayer/ticket/issue.go
+++ b/backend/core/models/domainlayer/ticket/issue.go
@@ -18,8 +18,9 @@ limitations under the License.
 package ticket
 
 import (
-       "github.com/apache/incubator-devlake/core/models/domainlayer"
        "time"
+
+       "github.com/apache/incubator-devlake/core/models/domainlayer"
 )
 
 type Issue struct {
@@ -34,7 +35,7 @@ type Issue struct {
        OriginalType            string `gorm:"type:varchar(100)"`
        Status                  string `gorm:"type:varchar(100)"`
        OriginalStatus          string `gorm:"type:varchar(100)"`
-       StoryPoint              int64
+       StoryPoint              float64
        ResolutionDate          *time.Time
        CreatedDate             *time.Time
        UpdatedDate             *time.Time
diff --git 
a/backend/core/models/migrationscripts/20230214_issue_storypoint_to_float.go 
b/backend/core/models/migrationscripts/20230214_issue_storypoint_to_float.go
new file mode 100644
index 000000000..439422fad
--- /dev/null
+++ b/backend/core/models/migrationscripts/20230214_issue_storypoint_to_float.go
@@ -0,0 +1,66 @@
+/*
+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 migrationscripts
+
+import (
+       "github.com/apache/incubator-devlake/core/context"
+       "github.com/apache/incubator-devlake/core/dal"
+       "github.com/apache/incubator-devlake/core/errors"
+       "github.com/apache/incubator-devlake/core/plugin"
+       "github.com/apache/incubator-devlake/helpers/migrationhelper"
+)
+
+var _ plugin.MigrationScript = (*modifyIssueStorypointToFloat64)(nil)
+
+type modifyIssueStorypointToFloat64 struct{}
+
+type issues20230214 struct {
+       StoryPoint float64
+}
+
+func (issues20230214) TableName() string {
+       return "issues"
+}
+
+func (script *modifyIssueStorypointToFloat64) Up(basicRes context.BasicRes) 
errors.Error {
+       // issues.story_point might be float, we ought to change the type
+       // for the column from `int64` to `float64`
+       db := basicRes.GetDal()
+       return migrationhelper.ChangeColumnsType[issues20230214](
+               basicRes,
+               script,
+               issues20230214{}.TableName(),
+               []string{"story_point"},
+               func(tmpColumnParams []interface{}) errors.Error {
+                       return db.UpdateColumn(
+                               &issues20230214{},
+                               "story_point",
+                               dal.DalClause{Expr: " ? ", Params: 
tmpColumnParams},
+                               dal.Where("? is not null ", tmpColumnParams...),
+                       )
+               },
+       )
+}
+
+func (*modifyIssueStorypointToFloat64) Version() uint64 {
+       return 20230214145125
+}
+
+func (*modifyIssueStorypointToFloat64) Name() string {
+       return "modify issues story_point from int64 to float64"
+}
diff --git a/backend/core/models/migrationscripts/register.go 
b/backend/core/models/migrationscripts/register.go
index 8a1575335..ad81a52d1 100644
--- a/backend/core/models/migrationscripts/register.go
+++ b/backend/core/models/migrationscripts/register.go
@@ -70,5 +70,6 @@ func All() []plugin.MigrationScript {
                new(renameProjectMetrics),
                new(addOriginalTypeToIssue221230),
                new(addCodeQuality),
+               new(modifyIssueStorypointToFloat64),
        }
 }
diff --git a/backend/plugins/jira/e2e/issue_test.go 
b/backend/plugins/jira/e2e/issue_test.go
index 4915e3de7..ad9ea225b 100644
--- a/backend/plugins/jira/e2e/issue_test.go
+++ b/backend/plugins/jira/e2e/issue_test.go
@@ -126,7 +126,6 @@ func TestIssueDataFlow(t *testing.T) {
                        "updated",
                        "spent_minutes",
                        "lead_time_minutes",
-                       "std_story_point",
                        "std_type",
                        "std_status",
                        "icon_url",
diff --git a/backend/plugins/jira/e2e/snapshot_tables/_tool_jira_issues.csv 
b/backend/plugins/jira/e2e/snapshot_tables/_tool_jira_issues.csv
index 0f9ad85c9..0cf9c38c8 100644
--- a/backend/plugins/jira/e2e/snapshot_tables/_tool_jira_issues.csv
+++ b/backend/plugins/jira/e2e/snapshot_tables/_tool_jira_issues.csv
@@ -1,31 +1,31 @@
-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"";
 [...]
+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_type,std_status,icon_url,_raw_d
 [...]
+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,故事,TODO,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10315?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jira_
 [...]
+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,故事,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,故事,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,故事,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,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_issue
 [...]
+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,故事,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,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,TASK,hello
 
world,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_jir
 [...]
+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,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}",_ra
 [...]
+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,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,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,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_a
 [...]
+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,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_is
 [...]
+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,故事,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,故事,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,缺陷,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,故事,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,SUB-TASK,你好世界,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_
 [...]
+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,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,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,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,SUB-TASK,你好世界,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_ji
 [...]
+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,SUB-TASK,你好世界,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_
 [...]
+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,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,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_is
 [...]
+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,SUB-TASK,你好世界,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw_ji
 [...]
+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,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,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,SUB-TASK,你好世界,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10316?size=medium,"{""ConnectionId"":2,""BoardId"":8}",_raw
 [...]
+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,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_iss
 [...]
+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,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,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,TEST
 
EXECUTION,TODO,https://merico.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10564?size=medium,"{""ConnectionId"":2,""BoardId"":8
 [...]
diff --git a/backend/plugins/jira/models/issue.go 
b/backend/plugins/jira/models/issue.go
index 69794c7b4..5c4732347 100644
--- a/backend/plugins/jira/models/issue.go
+++ b/backend/plugins/jira/models/issue.go
@@ -18,9 +18,10 @@ limitations under the License.
 package models
 
 import (
-       "github.com/apache/incubator-devlake/core/models/common"
        "time"
 
+       "github.com/apache/incubator-devlake/core/models/common"
+
        "gorm.io/datatypes"
 )
 
@@ -59,7 +60,6 @@ type JiraIssue struct {
        Updated                  time.Time `gorm:"index"`
        SpentMinutes             int64
        LeadTimeMinutes          uint
-       StdStoryPoint            int64
        StdType                  string `gorm:"type:varchar(255)"`
        StdStatus                string `gorm:"type:varchar(255)"`
        AllFields                datatypes.JSONMap
diff --git 
a/backend/plugins/jira/models/migrationscripts/202211215_add_project_name.go 
b/backend/plugins/jira/models/migrationscripts/20221215_add_project_name.go
similarity index 100%
copy from 
backend/plugins/jira/models/migrationscripts/202211215_add_project_name.go
copy to 
backend/plugins/jira/models/migrationscripts/20221215_add_project_name.go
diff --git 
a/backend/plugins/jira/models/migrationscripts/202211215_add_project_name.go 
b/backend/plugins/jira/models/migrationscripts/20230214_remove_issue_stdstorypoint.go
similarity index 61%
rename from 
backend/plugins/jira/models/migrationscripts/202211215_add_project_name.go
rename to 
backend/plugins/jira/models/migrationscripts/20230214_remove_issue_stdstorypoint.go
index b46b25bb5..8f6b91443 100644
--- a/backend/plugins/jira/models/migrationscripts/202211215_add_project_name.go
+++ 
b/backend/plugins/jira/models/migrationscripts/20230214_remove_issue_stdstorypoint.go
@@ -20,27 +20,27 @@ package migrationscripts
 import (
        "github.com/apache/incubator-devlake/core/context"
        "github.com/apache/incubator-devlake/core/errors"
-       "github.com/apache/incubator-devlake/helpers/migrationhelper"
+       "github.com/apache/incubator-devlake/core/plugin"
 )
 
-type jiraIssue20221215 struct {
-       ProjectName string `gorm:"type:varchar(255)"`
-}
+var _ plugin.MigrationScript = (*removeIssueStdStoryPoint)(nil)
 
-func (jiraIssue20221215) TableName() string {
-       return "_tool_jira_issues"
-}
+type removeIssueStdStoryPoint struct{}
 
-type addProjectName20221215 struct{}
+func (*removeIssueStdStoryPoint) Up(basicRes context.BasicRes) errors.Error {
+       db := basicRes.GetDal()
+       err := db.DropColumns("_tool_jira_issues", "std_story_point")
+       if err != nil {
+               return err
+       }
 
-func (script *addProjectName20221215) Up(basicRes context.BasicRes) 
errors.Error {
-       return migrationhelper.AutoMigrateTables(basicRes, &jiraIssue20221215{})
+       return nil
 }
 
-func (*addProjectName20221215) Version() uint64 {
-       return 20221215142316
+func (*removeIssueStdStoryPoint) Version() uint64 {
+       return 20230214232735
 }
 
-func (*addProjectName20221215) Name() string {
-       return "add project_name to _tool_jira_issues"
+func (*removeIssueStdStoryPoint) Name() string {
+       return "remove _tool_jira_issues column std_story_point"
 }
diff --git a/backend/plugins/jira/models/migrationscripts/register.go 
b/backend/plugins/jira/models/migrationscripts/register.go
index 18b1994e6..be622cf81 100644
--- a/backend/plugins/jira/models/migrationscripts/register.go
+++ b/backend/plugins/jira/models/migrationscripts/register.go
@@ -30,5 +30,6 @@ func All() []plugin.MigrationScript {
                new(addTransformationRule20221116),
                new(addProjectName20221215),
                new(addJiraMultiAuth20230129),
+               new(removeIssueStdStoryPoint),
        }
 }
diff --git a/backend/plugins/jira/tasks/issue_convertor.go 
b/backend/plugins/jira/tasks/issue_convertor.go
index 143503a29..fb2052954 100644
--- a/backend/plugins/jira/tasks/issue_convertor.go
+++ b/backend/plugins/jira/tasks/issue_convertor.go
@@ -96,7 +96,7 @@ func ConvertIssues(taskCtx plugin.SubTaskContext) 
errors.Error {
                                OriginalType:            jiraIssue.Type,
                                Status:                  jiraIssue.StdStatus,
                                OriginalStatus:          jiraIssue.StatusName,
-                               StoryPoint:              
jiraIssue.StdStoryPoint,
+                               StoryPoint:              jiraIssue.StoryPoint,
                                OriginalEstimateMinutes: 
jiraIssue.OriginalEstimateMinutes,
                                ResolutionDate:          
jiraIssue.ResolutionDate,
                                Priority:                jiraIssue.PriorityName,
diff --git a/backend/plugins/jira/tasks/issue_extractor.go 
b/backend/plugins/jira/tasks/issue_extractor.go
index d590947cd..363960121 100644
--- a/backend/plugins/jira/tasks/issue_extractor.go
+++ b/backend/plugins/jira/tasks/issue_extractor.go
@@ -19,15 +19,16 @@ package tasks
 
 import (
        "encoding/json"
+       "strconv"
+       "strings"
+       "time"
+
        "github.com/apache/incubator-devlake/core/dal"
        "github.com/apache/incubator-devlake/core/errors"
        "github.com/apache/incubator-devlake/core/plugin"
        "github.com/apache/incubator-devlake/helpers/pluginhelper/api"
        "github.com/apache/incubator-devlake/plugins/jira/models"
        "github.com/apache/incubator-devlake/plugins/jira/tasks/apiv2models"
-       "strconv"
-       "strings"
-       "time"
 )
 
 var _ plugin.SubTaskEntryPoint = ExtractIssues
@@ -121,7 +122,7 @@ func extractIssues(data *JiraTaskData, mappings 
*typeMappings, ignoreBoard bool,
                }
 
        }
-       issue.StdStoryPoint = int64(issue.StoryPoint)
+
        // code in next line will set issue.Type to issueType.Name
        issue.Type = mappings.typeIdMappings[issue.Type]
        issue.StdType = mappings.stdTypeMappings[issue.Type]
diff --git a/backend/plugins/tapd/tasks/story_converter.go 
b/backend/plugins/tapd/tasks/story_converter.go
index d6d624a85..f5a8a9eb8 100644
--- a/backend/plugins/tapd/tasks/story_converter.go
+++ b/backend/plugins/tapd/tasks/story_converter.go
@@ -18,6 +18,10 @@ limitations under the License.
 package tasks
 
 import (
+       "reflect"
+       "strconv"
+       "time"
+
        "github.com/apache/incubator-devlake/core/dal"
        "github.com/apache/incubator-devlake/core/errors"
        "github.com/apache/incubator-devlake/core/models/domainlayer"
@@ -26,9 +30,6 @@ import (
        "github.com/apache/incubator-devlake/core/plugin"
        helper "github.com/apache/incubator-devlake/helpers/pluginhelper/api"
        "github.com/apache/incubator-devlake/plugins/tapd/models"
-       "reflect"
-       "strconv"
-       "time"
 )
 
 func ConvertStory(taskCtx plugin.SubTaskContext) errors.Error {
@@ -64,7 +65,7 @@ func ConvertStory(taskCtx plugin.SubTaskContext) errors.Error 
{
                                Type:                 toolL.StdType,
                                OriginalType:         toolL.Type,
                                Status:               toolL.StdStatus,
-                               StoryPoint:           int64(toolL.Size),
+                               StoryPoint:           float64(toolL.Size),
                                OriginalStatus:       toolL.Status,
                                ResolutionDate:       
(*time.Time)(toolL.Completed),
                                CreatedDate:          
(*time.Time)(toolL.Created),
diff --git a/backend/plugins/webhook/api/issue.go 
b/backend/plugins/webhook/api/issue.go
index 642a36a4e..024e0088c 100644
--- a/backend/plugins/webhook/api/issue.go
+++ b/backend/plugins/webhook/api/issue.go
@@ -19,6 +19,9 @@ package api
 
 import (
        "fmt"
+       "net/http"
+       "time"
+
        "github.com/apache/incubator-devlake/core/dal"
        "github.com/apache/incubator-devlake/core/errors"
        "github.com/apache/incubator-devlake/core/models/domainlayer"
@@ -26,8 +29,6 @@ import (
        "github.com/apache/incubator-devlake/core/plugin"
        helper "github.com/apache/incubator-devlake/helpers/pluginhelper/api"
        "github.com/apache/incubator-devlake/plugins/webhook/models"
-       "net/http"
-       "time"
 
        "github.com/go-playground/validator/v10"
 )
@@ -42,7 +43,7 @@ type WebhookIssueRequest struct {
        Type                    string     `mapstructure:"type"`
        Status                  string     `mapstructure:"status" 
validate:"oneof=TODO DONE IN_PROGRESS"`
        OriginalStatus          string     `mapstructure:"original_status" 
validate:"required"`
-       StoryPoint              int64      `mapstructure:"story_point"`
+       StoryPoint              float64    `mapstructure:"story_point"`
        ResolutionDate          *time.Time `mapstructure:"resolution_date"`
        CreatedDate             *time.Time `mapstructure:"created_date" 
validate:"required"`
        UpdatedDate             *time.Time `mapstructure:"updated_date"`


Reply via email to