You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by zh...@apache.org on 2022/06/28 01:42:53 UTC
[incubator-devlake] branch main updated: feat: jira blueprint normal mode (#2364)
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 8ca740a1 feat: jira blueprint normal mode (#2364)
8ca740a1 is described below
commit 8ca740a125a8fb9d3279f72173af3cd5b4efd002
Author: mindlesscloud <li...@merico.dev>
AuthorDate: Tue Jun 28 09:42:49 2022 +0800
feat: jira blueprint normal mode (#2364)
* feat: jira blueprint normal mode
* refactor: remove redundant codes
---
plugins/jira/api/blueprint.go | 64 ++++++++++++++++++++++
plugins/jira/impl/impl.go | 5 ++
plugins/jira/models/migrationscripts/register.go | 1 +
.../migrationscripts/updateSchemas20220624.go | 57 +++++++++++++++++++
plugins/jira/tasks/board_collector.go | 1 +
plugins/jira/tasks/board_convertor.go | 3 +-
plugins/jira/tasks/board_extractor.go | 1 +
plugins/jira/tasks/changelog_collector.go | 1 +
plugins/jira/tasks/changelog_convertor.go | 1 +
plugins/jira/tasks/changelog_extractor.go | 1 +
plugins/jira/tasks/issue_collector.go | 1 +
plugins/jira/tasks/issue_commit_convertor.go | 1 +
plugins/jira/tasks/issue_convertor.go | 1 +
plugins/jira/tasks/issue_extractor.go | 1 +
plugins/jira/tasks/issue_repo_commit_convertor.go | 1 +
plugins/jira/tasks/project_collector.go | 1 +
plugins/jira/tasks/project_extractor.go | 1 +
plugins/jira/tasks/remotelink_collector.go | 1 +
plugins/jira/tasks/remotelink_extractor.go | 1 +
plugins/jira/tasks/sprint_collector.go | 1 +
plugins/jira/tasks/sprint_convertor.go | 1 +
plugins/jira/tasks/sprint_extractor.go | 1 +
plugins/jira/tasks/sprint_issues_convertor.go | 1 +
plugins/jira/tasks/status_collector.go | 1 +
plugins/jira/tasks/status_extractor.go | 1 +
plugins/jira/tasks/task_data.go | 22 +++++++-
plugins/jira/tasks/user_collector.go | 1 +
plugins/jira/tasks/user_convertor.go | 1 +
plugins/jira/tasks/user_extractor.go | 1 +
plugins/jira/tasks/worklog_collector.go | 1 +
plugins/jira/tasks/worklog_convertor.go | 1 +
plugins/jira/tasks/worklog_extractor.go | 1 +
32 files changed, 174 insertions(+), 4 deletions(-)
diff --git a/plugins/jira/api/blueprint.go b/plugins/jira/api/blueprint.go
new file mode 100644
index 00000000..cbf5043b
--- /dev/null
+++ b/plugins/jira/api/blueprint.go
@@ -0,0 +1,64 @@
+/*
+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 api
+
+import (
+ "encoding/json"
+
+ "github.com/apache/incubator-devlake/plugins/core"
+ "github.com/apache/incubator-devlake/plugins/helper"
+ "github.com/apache/incubator-devlake/plugins/jira/tasks"
+)
+
+func MakePipelinePlan(subtaskMetas []core.SubTaskMeta, connectionId uint64, scope []*core.BlueprintScopeV100) (core.PipelinePlan, error) {
+ var err error
+ plan := make(core.PipelinePlan, len(scope))
+ for i, scopeElem := range scope {
+ var transformationRules tasks.TransformationRules
+ if len(scopeElem.Transformation) > 0 {
+ err = json.Unmarshal(scopeElem.Transformation, &transformationRules)
+ if err != nil {
+ return nil, err
+ }
+ }
+ taskOptions := make(map[string]interface{})
+ err = json.Unmarshal(scopeElem.Options, &taskOptions)
+ if err != nil {
+ return nil, err
+ }
+ taskOptions["connectionId"] = connectionId
+ taskOptions["transformationRules"] = transformationRules
+ _, err := tasks.DecodeAndValidateTaskOptions(taskOptions)
+ if err != nil {
+ return nil, err
+ }
+ // subtasks
+ subtasks, err := helper.MakePipelinePlanSubtasks(subtaskMetas, scopeElem.Entities)
+ if err != nil {
+ return nil, err
+ }
+ plan[i] = core.PipelineStage{
+ {
+ Plugin: "jira",
+ Subtasks: subtasks,
+ Options: taskOptions,
+ },
+ }
+ }
+ return plan, nil
+}
diff --git a/plugins/jira/impl/impl.go b/plugins/jira/impl/impl.go
index ef434189..455d8ac7 100644
--- a/plugins/jira/impl/impl.go
+++ b/plugins/jira/impl/impl.go
@@ -39,6 +39,7 @@ var _ core.PluginInit = (*Jira)(nil)
var _ core.PluginTask = (*Jira)(nil)
var _ core.PluginApi = (*Jira)(nil)
var _ core.Migratable = (*Jira)(nil)
+var _ core.PluginBlueprintV100 = (*Jira)(nil)
type Jira struct{}
@@ -150,6 +151,10 @@ func (plugin Jira) PrepareTaskData(taskCtx core.TaskContext, options map[string]
return taskData, nil
}
+func (plugin Jira) MakePipelinePlan(connectionId uint64, scope []*core.BlueprintScopeV100) (core.PipelinePlan, error) {
+ return api.MakePipelinePlan(plugin.SubTaskMetas(), connectionId, scope)
+}
+
func (plugin Jira) RootPkgPath() string {
return "github.com/apache/incubator-devlake/plugins/jira"
}
diff --git a/plugins/jira/models/migrationscripts/register.go b/plugins/jira/models/migrationscripts/register.go
index e3fcd0b4..6bfd0402 100644
--- a/plugins/jira/models/migrationscripts/register.go
+++ b/plugins/jira/models/migrationscripts/register.go
@@ -36,5 +36,6 @@ func All() []migration.Script {
new(UpdateSchemas20220615),
new(UpdateSchemas20220616),
new(UpdateSchemas20220620),
+ new(UpdateSchemas20220624),
}
}
diff --git a/plugins/jira/models/migrationscripts/updateSchemas20220624.go b/plugins/jira/models/migrationscripts/updateSchemas20220624.go
new file mode 100644
index 00000000..5dc389fa
--- /dev/null
+++ b/plugins/jira/models/migrationscripts/updateSchemas20220624.go
@@ -0,0 +1,57 @@
+/*
+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 (
+ "context"
+
+ "gorm.io/gorm"
+)
+
+type JiraConnection20220624 struct {
+ EpicKeyField string `gorm:"type:varchar(50);" json:"epicKeyField"`
+ StoryPointField string `gorm:"type:varchar(50);" json:"storyPointField"`
+ RemotelinkCommitShaPattern string `gorm:"type:varchar(255);comment='golang regexp, the first group will be recognized as commit sha, ref https://github.com/google/re2/wiki/Syntax'" json:"remotelinkCommitShaPattern"`
+}
+
+func (JiraConnection20220624) TableName() string {
+ return "_tool_jira_connections"
+}
+
+type UpdateSchemas20220624 struct {
+}
+
+func (u *UpdateSchemas20220624) Up(ctx context.Context, db *gorm.DB) error {
+ err := db.Migrator().DropColumn(&JiraConnection20220624{}, "epic_key_field")
+ if err != nil {
+ return err
+ }
+ err = db.Migrator().DropColumn(&JiraConnection20220624{}, "story_point_field")
+ if err != nil {
+ return err
+ }
+ return db.Migrator().DropColumn(&JiraConnection20220624{}, "remotelink_commit_sha_pattern")
+}
+
+func (*UpdateSchemas20220624) Version() uint64 {
+ return 20220624102636
+}
+
+func (*UpdateSchemas20220624) Name() string {
+ return "remove epic_key_field, story_point_field, remotelink_commit_sha_pattern"
+}
diff --git a/plugins/jira/tasks/board_collector.go b/plugins/jira/tasks/board_collector.go
index 2642a43f..f5b438bb 100644
--- a/plugins/jira/tasks/board_collector.go
+++ b/plugins/jira/tasks/board_collector.go
@@ -35,6 +35,7 @@ var CollectBoardMeta = core.SubTaskMeta{
EntryPoint: CollectBoard,
EnabledByDefault: true,
Description: "collect Jira board",
+ DomainTypes: []string{core.DOMAIN_TYPE_TICKET},
}
func CollectBoard(taskCtx core.SubTaskContext) error {
diff --git a/plugins/jira/tasks/board_convertor.go b/plugins/jira/tasks/board_convertor.go
index 1fccfd09..4ef0a978 100644
--- a/plugins/jira/tasks/board_convertor.go
+++ b/plugins/jira/tasks/board_convertor.go
@@ -18,13 +18,13 @@ limitations under the License.
package tasks
import (
- "github.com/apache/incubator-devlake/plugins/core/dal"
"reflect"
"github.com/apache/incubator-devlake/models/domainlayer"
"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"
)
@@ -34,6 +34,7 @@ var ConvertBoardMeta = core.SubTaskMeta{
EntryPoint: ConvertBoard,
EnabledByDefault: true,
Description: "convert Jira board",
+ DomainTypes: []string{core.DOMAIN_TYPE_TICKET},
}
func ConvertBoard(taskCtx core.SubTaskContext) error {
diff --git a/plugins/jira/tasks/board_extractor.go b/plugins/jira/tasks/board_extractor.go
index cf00fec2..e0b370df 100644
--- a/plugins/jira/tasks/board_extractor.go
+++ b/plugins/jira/tasks/board_extractor.go
@@ -31,6 +31,7 @@ var ExtractBoardMeta = core.SubTaskMeta{Name: "extractBoard",
EntryPoint: ExtractBoard,
EnabledByDefault: true,
Description: "extract Jira board",
+ DomainTypes: []string{core.DOMAIN_TYPE_TICKET},
}
func ExtractBoard(taskCtx core.SubTaskContext) error {
diff --git a/plugins/jira/tasks/changelog_collector.go b/plugins/jira/tasks/changelog_collector.go
index 09a9175a..bcfb38db 100644
--- a/plugins/jira/tasks/changelog_collector.go
+++ b/plugins/jira/tasks/changelog_collector.go
@@ -40,6 +40,7 @@ var CollectChangelogsMeta = core.SubTaskMeta{
EntryPoint: CollectChangelogs,
EnabledByDefault: true,
Description: "collect Jira change logs",
+ DomainTypes: []string{core.DOMAIN_TYPE_TICKET},
}
func CollectChangelogs(taskCtx core.SubTaskContext) error {
diff --git a/plugins/jira/tasks/changelog_convertor.go b/plugins/jira/tasks/changelog_convertor.go
index 4b6fae3b..bbcbf8bb 100644
--- a/plugins/jira/tasks/changelog_convertor.go
+++ b/plugins/jira/tasks/changelog_convertor.go
@@ -37,6 +37,7 @@ var ConvertChangelogsMeta = core.SubTaskMeta{
EntryPoint: ConvertChangelogs,
EnabledByDefault: true,
Description: "convert Jira change logs",
+ DomainTypes: []string{core.DOMAIN_TYPE_TICKET},
}
type ChangelogItemResult struct {
diff --git a/plugins/jira/tasks/changelog_extractor.go b/plugins/jira/tasks/changelog_extractor.go
index f15c9be3..cadd2815 100644
--- a/plugins/jira/tasks/changelog_extractor.go
+++ b/plugins/jira/tasks/changelog_extractor.go
@@ -33,6 +33,7 @@ var ExtractChangelogsMeta = core.SubTaskMeta{
EntryPoint: ExtractChangelogs,
EnabledByDefault: true,
Description: "extract Jira change logs",
+ DomainTypes: []string{core.DOMAIN_TYPE_TICKET},
}
func ExtractChangelogs(taskCtx core.SubTaskContext) error {
diff --git a/plugins/jira/tasks/issue_collector.go b/plugins/jira/tasks/issue_collector.go
index 5b64d138..f252f940 100644
--- a/plugins/jira/tasks/issue_collector.go
+++ b/plugins/jira/tasks/issue_collector.go
@@ -46,6 +46,7 @@ var CollectIssuesMeta = core.SubTaskMeta{
EntryPoint: CollectIssues,
EnabledByDefault: true,
Description: "collect Jira issues",
+ DomainTypes: []string{core.DOMAIN_TYPE_TICKET},
}
func CollectIssues(taskCtx core.SubTaskContext) error {
diff --git a/plugins/jira/tasks/issue_commit_convertor.go b/plugins/jira/tasks/issue_commit_convertor.go
index c228859b..a1174945 100644
--- a/plugins/jira/tasks/issue_commit_convertor.go
+++ b/plugins/jira/tasks/issue_commit_convertor.go
@@ -33,6 +33,7 @@ var ConvertIssueCommitsMeta = core.SubTaskMeta{
EntryPoint: ConvertIssueCommits,
EnabledByDefault: true,
Description: "convert Jira issue commits",
+ DomainTypes: []string{core.DOMAIN_TYPE_TICKET},
}
func ConvertIssueCommits(taskCtx core.SubTaskContext) error {
diff --git a/plugins/jira/tasks/issue_convertor.go b/plugins/jira/tasks/issue_convertor.go
index 22a55dcf..0c2a4876 100644
--- a/plugins/jira/tasks/issue_convertor.go
+++ b/plugins/jira/tasks/issue_convertor.go
@@ -36,6 +36,7 @@ var ConvertIssuesMeta = core.SubTaskMeta{
EntryPoint: ConvertIssues,
EnabledByDefault: true,
Description: "convert Jira issues",
+ DomainTypes: []string{core.DOMAIN_TYPE_TICKET},
}
func ConvertIssues(taskCtx core.SubTaskContext) error {
diff --git a/plugins/jira/tasks/issue_extractor.go b/plugins/jira/tasks/issue_extractor.go
index 870fb0a1..9def3d7d 100644
--- a/plugins/jira/tasks/issue_extractor.go
+++ b/plugins/jira/tasks/issue_extractor.go
@@ -36,6 +36,7 @@ var ExtractIssuesMeta = core.SubTaskMeta{
EntryPoint: ExtractIssues,
EnabledByDefault: true,
Description: "extract Jira issues",
+ DomainTypes: []string{core.DOMAIN_TYPE_TICKET},
}
func ExtractIssues(taskCtx core.SubTaskContext) error {
diff --git a/plugins/jira/tasks/issue_repo_commit_convertor.go b/plugins/jira/tasks/issue_repo_commit_convertor.go
index 7de02746..c80d76ad 100644
--- a/plugins/jira/tasks/issue_repo_commit_convertor.go
+++ b/plugins/jira/tasks/issue_repo_commit_convertor.go
@@ -34,6 +34,7 @@ var ConvertIssueRepoCommitsMeta = core.SubTaskMeta{
EntryPoint: ConvertIssueRepoCommits,
EnabledByDefault: false,
Description: "convert Jira issue repo commits",
+ DomainTypes: []string{core.DOMAIN_TYPE_CROSS},
}
// ConvertIssueRepoCommits is to extract issue_repo_commits from jira_issue_commits, nothing difference with
diff --git a/plugins/jira/tasks/project_collector.go b/plugins/jira/tasks/project_collector.go
index 811acf90..94f33ffb 100644
--- a/plugins/jira/tasks/project_collector.go
+++ b/plugins/jira/tasks/project_collector.go
@@ -35,6 +35,7 @@ var CollectProjectsMeta = core.SubTaskMeta{
EntryPoint: CollectProjects,
EnabledByDefault: true,
Description: "collect Jira projects",
+ DomainTypes: []string{core.DOMAIN_TYPE_TICKET},
}
func CollectProjects(taskCtx core.SubTaskContext) error {
diff --git a/plugins/jira/tasks/project_extractor.go b/plugins/jira/tasks/project_extractor.go
index e37468ca..fc5a0461 100644
--- a/plugins/jira/tasks/project_extractor.go
+++ b/plugins/jira/tasks/project_extractor.go
@@ -32,6 +32,7 @@ var ExtractProjectsMeta = core.SubTaskMeta{
EntryPoint: ExtractProjects,
EnabledByDefault: true,
Description: "extract Jira projects",
+ DomainTypes: []string{core.DOMAIN_TYPE_TICKET},
}
func ExtractProjects(taskCtx core.SubTaskContext) error {
diff --git a/plugins/jira/tasks/remotelink_collector.go b/plugins/jira/tasks/remotelink_collector.go
index 77a78f23..529a0949 100644
--- a/plugins/jira/tasks/remotelink_collector.go
+++ b/plugins/jira/tasks/remotelink_collector.go
@@ -37,6 +37,7 @@ var CollectRemotelinksMeta = core.SubTaskMeta{
EntryPoint: CollectRemotelinks,
EnabledByDefault: true,
Description: "collect Jira remote links",
+ DomainTypes: []string{core.DOMAIN_TYPE_TICKET},
}
func CollectRemotelinks(taskCtx core.SubTaskContext) error {
diff --git a/plugins/jira/tasks/remotelink_extractor.go b/plugins/jira/tasks/remotelink_extractor.go
index 99ef2be5..d3027bd0 100644
--- a/plugins/jira/tasks/remotelink_extractor.go
+++ b/plugins/jira/tasks/remotelink_extractor.go
@@ -33,6 +33,7 @@ var ExtractRemotelinksMeta = core.SubTaskMeta{
EntryPoint: ExtractRemotelinks,
EnabledByDefault: true,
Description: "extract Jira remote links",
+ DomainTypes: []string{core.DOMAIN_TYPE_TICKET},
}
func ExtractRemotelinks(taskCtx core.SubTaskContext) error {
diff --git a/plugins/jira/tasks/sprint_collector.go b/plugins/jira/tasks/sprint_collector.go
index 6f10fb8b..14b366b5 100644
--- a/plugins/jira/tasks/sprint_collector.go
+++ b/plugins/jira/tasks/sprint_collector.go
@@ -36,6 +36,7 @@ var CollectSprintsMeta = core.SubTaskMeta{
EntryPoint: CollectSprints,
EnabledByDefault: true,
Description: "collect Jira sprints",
+ DomainTypes: []string{core.DOMAIN_TYPE_TICKET},
}
func CollectSprints(taskCtx core.SubTaskContext) error {
diff --git a/plugins/jira/tasks/sprint_convertor.go b/plugins/jira/tasks/sprint_convertor.go
index 54ddb3a9..13fc73e8 100644
--- a/plugins/jira/tasks/sprint_convertor.go
+++ b/plugins/jira/tasks/sprint_convertor.go
@@ -35,6 +35,7 @@ var ConvertSprintsMeta = core.SubTaskMeta{
EntryPoint: ConvertSprints,
EnabledByDefault: true,
Description: "convert Jira sprints",
+ DomainTypes: []string{core.DOMAIN_TYPE_TICKET},
}
func ConvertSprints(taskCtx core.SubTaskContext) error {
diff --git a/plugins/jira/tasks/sprint_extractor.go b/plugins/jira/tasks/sprint_extractor.go
index bc9a588a..c994352c 100644
--- a/plugins/jira/tasks/sprint_extractor.go
+++ b/plugins/jira/tasks/sprint_extractor.go
@@ -33,6 +33,7 @@ var ExtractSprintsMeta = core.SubTaskMeta{
EntryPoint: ExtractSprints,
EnabledByDefault: true,
Description: "extract Jira sprints",
+ DomainTypes: []string{core.DOMAIN_TYPE_TICKET},
}
func ExtractSprints(taskCtx core.SubTaskContext) error {
diff --git a/plugins/jira/tasks/sprint_issues_convertor.go b/plugins/jira/tasks/sprint_issues_convertor.go
index c5401bfd..182ce133 100644
--- a/plugins/jira/tasks/sprint_issues_convertor.go
+++ b/plugins/jira/tasks/sprint_issues_convertor.go
@@ -33,6 +33,7 @@ var ConvertSprintIssuesMeta = core.SubTaskMeta{
EntryPoint: ConvertSprintIssues,
EnabledByDefault: true,
Description: "convert Jira sprint_issues",
+ DomainTypes: []string{core.DOMAIN_TYPE_TICKET},
}
func ConvertSprintIssues(taskCtx core.SubTaskContext) error {
diff --git a/plugins/jira/tasks/status_collector.go b/plugins/jira/tasks/status_collector.go
index da5bd952..300cca9d 100644
--- a/plugins/jira/tasks/status_collector.go
+++ b/plugins/jira/tasks/status_collector.go
@@ -32,6 +32,7 @@ var CollectStatusMeta = core.SubTaskMeta{
EntryPoint: CollectStatus,
EnabledByDefault: true,
Description: "collect Jira status",
+ DomainTypes: []string{core.DOMAIN_TYPE_TICKET},
}
func CollectStatus(taskCtx core.SubTaskContext) error {
diff --git a/plugins/jira/tasks/status_extractor.go b/plugins/jira/tasks/status_extractor.go
index 73362814..56270a5b 100644
--- a/plugins/jira/tasks/status_extractor.go
+++ b/plugins/jira/tasks/status_extractor.go
@@ -31,6 +31,7 @@ var ExtractStatusMeta = core.SubTaskMeta{
EntryPoint: ExtractStatus,
EnabledByDefault: true,
Description: "extract Jira status",
+ DomainTypes: []string{core.DOMAIN_TYPE_TICKET},
}
func ExtractStatus(taskCtx core.SubTaskContext) error {
diff --git a/plugins/jira/tasks/task_data.go b/plugins/jira/tasks/task_data.go
index 084fc1a6..2fc28699 100644
--- a/plugins/jira/tasks/task_data.go
+++ b/plugins/jira/tasks/task_data.go
@@ -18,10 +18,12 @@ limitations under the License.
package tasks
import (
+ "fmt"
"time"
"github.com/apache/incubator-devlake/plugins/helper"
"github.com/apache/incubator-devlake/plugins/jira/models"
+ "github.com/mitchellh/mapstructure"
)
type TransformationRules struct {
@@ -34,9 +36,8 @@ type TransformationRules struct {
}
type JiraOptions struct {
- ConnectionId uint64 `json:"connectionId"`
- BoardId uint64 `json:"boardId"`
- Tasks []string `json:"tasks,omitempty"`
+ ConnectionId uint64 `json:"connectionId"`
+ BoardId uint64 `json:"boardId"`
Since string
TransformationRules TransformationRules `json:"transformationRules"`
}
@@ -47,3 +48,18 @@ type JiraTaskData struct {
Since *time.Time
JiraServerInfo models.JiraServerInfo
}
+
+func DecodeAndValidateTaskOptions(options map[string]interface{}) (*JiraOptions, error) {
+ var op JiraOptions
+ err := mapstructure.Decode(options, &op)
+ if err != nil {
+ return nil, err
+ }
+ if op.ConnectionId == 0 {
+ return nil, fmt.Errorf("invalid connectionId:%d", op.ConnectionId)
+ }
+ if op.BoardId == 0 {
+ return nil, fmt.Errorf("invalid boardId:%d", op.BoardId)
+ }
+ return &op, nil
+}
diff --git a/plugins/jira/tasks/user_collector.go b/plugins/jira/tasks/user_collector.go
index 86bf3e60..fc5dfb65 100644
--- a/plugins/jira/tasks/user_collector.go
+++ b/plugins/jira/tasks/user_collector.go
@@ -36,6 +36,7 @@ var CollectUsersMeta = core.SubTaskMeta{
EntryPoint: CollectUsers,
EnabledByDefault: true,
Description: "collect Jira users",
+ DomainTypes: []string{core.DOMAIN_TYPE_CROSS},
}
func CollectUsers(taskCtx core.SubTaskContext) error {
diff --git a/plugins/jira/tasks/user_convertor.go b/plugins/jira/tasks/user_convertor.go
index a163d20e..2d547466 100644
--- a/plugins/jira/tasks/user_convertor.go
+++ b/plugins/jira/tasks/user_convertor.go
@@ -33,6 +33,7 @@ var ConvertUsersMeta = core.SubTaskMeta{
EntryPoint: ConvertUsers,
EnabledByDefault: true,
Description: "convert Jira users",
+ DomainTypes: []string{core.DOMAIN_TYPE_CROSS},
}
func ConvertUsers(taskCtx core.SubTaskContext) error {
diff --git a/plugins/jira/tasks/user_extractor.go b/plugins/jira/tasks/user_extractor.go
index d117e827..2d5c855f 100644
--- a/plugins/jira/tasks/user_extractor.go
+++ b/plugins/jira/tasks/user_extractor.go
@@ -32,6 +32,7 @@ var ExtractUsersMeta = core.SubTaskMeta{
EntryPoint: ExtractUsers,
EnabledByDefault: true,
Description: "extract Jira users",
+ DomainTypes: []string{core.DOMAIN_TYPE_CROSS},
}
func ExtractUsers(taskCtx core.SubTaskContext) error {
diff --git a/plugins/jira/tasks/worklog_collector.go b/plugins/jira/tasks/worklog_collector.go
index cdb11eea..4d8b0e70 100644
--- a/plugins/jira/tasks/worklog_collector.go
+++ b/plugins/jira/tasks/worklog_collector.go
@@ -35,6 +35,7 @@ var CollectWorklogsMeta = core.SubTaskMeta{
EntryPoint: CollectWorklogs,
EnabledByDefault: true,
Description: "collect Jira work logs",
+ DomainTypes: []string{core.DOMAIN_TYPE_TICKET},
}
func CollectWorklogs(taskCtx core.SubTaskContext) error {
diff --git a/plugins/jira/tasks/worklog_convertor.go b/plugins/jira/tasks/worklog_convertor.go
index 2f9385d4..ded11faa 100644
--- a/plugins/jira/tasks/worklog_convertor.go
+++ b/plugins/jira/tasks/worklog_convertor.go
@@ -34,6 +34,7 @@ var ConvertWorklogsMeta = core.SubTaskMeta{
EntryPoint: ConvertWorklogs,
EnabledByDefault: true,
Description: "convert Jira work logs",
+ DomainTypes: []string{core.DOMAIN_TYPE_TICKET},
}
func ConvertWorklogs(taskCtx core.SubTaskContext) error {
diff --git a/plugins/jira/tasks/worklog_extractor.go b/plugins/jira/tasks/worklog_extractor.go
index 698c9c63..bd5e25e2 100644
--- a/plugins/jira/tasks/worklog_extractor.go
+++ b/plugins/jira/tasks/worklog_extractor.go
@@ -31,6 +31,7 @@ var ExtractWorklogsMeta = core.SubTaskMeta{
EntryPoint: ExtractWorklogs,
EnabledByDefault: true,
Description: "extract Jira work logs",
+ DomainTypes: []string{core.DOMAIN_TYPE_TICKET},
}
func ExtractWorklogs(taskCtx core.SubTaskContext) error {