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

abeizn 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 4ade7a892 fix: missing board for tapd (#5160)
4ade7a892 is described below

commit 4ade7a8928d5a80e8bdf408c3a215b01f7931c60
Author: Liang Zhang <[email protected]>
AuthorDate: Thu May 11 21:26:43 2023 +0800

    fix: missing board for tapd (#5160)
---
 backend/plugins/tapd/impl/impl.go                 |  1 +
 backend/plugins/tapd/tasks/workspace_converter.go | 57 +++++++++++++++++++++++
 2 files changed, 58 insertions(+)

diff --git a/backend/plugins/tapd/impl/impl.go 
b/backend/plugins/tapd/impl/impl.go
index 03f862067..97ed805af 100644
--- a/backend/plugins/tapd/impl/impl.go
+++ b/backend/plugins/tapd/impl/impl.go
@@ -95,6 +95,7 @@ func (p Tapd) Description() string {
 
 func (p Tapd) SubTaskMetas() []plugin.SubTaskMeta {
        return []plugin.SubTaskMeta{
+               tasks.ConvertWorkspaceMeta,
                tasks.CollectWorkitemTypesMeta,
                tasks.ExtractWorkitemTypesMeta,
                tasks.CollectStoryCustomFieldsMeta,
diff --git a/backend/plugins/tapd/tasks/workspace_converter.go 
b/backend/plugins/tapd/tasks/workspace_converter.go
new file mode 100644
index 000000000..b6f616c0f
--- /dev/null
+++ b/backend/plugins/tapd/tasks/workspace_converter.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 tasks
+
+import (
+       "fmt"
+       "github.com/apache/incubator-devlake/core/dal"
+       "github.com/apache/incubator-devlake/core/errors"
+       "github.com/apache/incubator-devlake/core/models/domainlayer"
+       "github.com/apache/incubator-devlake/core/models/domainlayer/ticket"
+       "github.com/apache/incubator-devlake/core/plugin"
+       "github.com/apache/incubator-devlake/plugins/tapd/models"
+)
+
+func ConvertWorkspace(taskCtx plugin.SubTaskContext) errors.Error {
+       logger := taskCtx.GetLogger()
+       db := taskCtx.GetDal()
+       data := taskCtx.GetData().(*TapdTaskData)
+       logger.Info("convert workspace:%d", data.Options.WorkspaceId)
+       var workspace models.TapdWorkspace
+       err := db.First(&workspace, dal.Where("connection_id = ? AND id = ?", 
data.Options.ConnectionId, data.Options.WorkspaceId))
+       if err != nil {
+               return err
+       }
+       board := &ticket.Board{
+               DomainEntity: domainlayer.DomainEntity{
+                       Id: 
getWorkspaceIdGen().Generate(workspace.ConnectionId, workspace.Id),
+               },
+               Name: workspace.Name,
+               Url:  fmt.Sprintf("%s/%d", "https://tapd.cn";, workspace.Id),
+       }
+
+       return db.CreateOrUpdate(board)
+}
+
+var ConvertWorkspaceMeta = plugin.SubTaskMeta{
+       Name:             "convertWorkspace",
+       EntryPoint:       ConvertWorkspace,
+       EnabledByDefault: true,
+       Description:      "convert Tapd workspace",
+       DomainTypes:      []string{plugin.DOMAIN_TYPE_TICKET},
+}

Reply via email to