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 73026bec [Refactor][Gitee] use GetDal instead of deprecated GetDb 
(#2340)
73026bec is described below

commit 73026becbe4ee37181a0233adfc6728e22ad5ce3
Author: Mr.An <[email protected]>
AuthorDate: Fri Jun 24 19:59:32 2022 +0800

    [Refactor][Gitee] use GetDal instead of deprecated GetDb (#2340)
    
    * update commit collector.go
    
    * fix#bug g.pkTypes list is not fully traversed
    
    * update migrationscripts
    
    * update models
    
    * Refactor commit db to dal
    
    * Refactor commit_stat db to dal
    
    * Refactor issue db to dal
    
    * Refactor issue_comment db to dal
    
    * Refactor issue_label db to dal
    
    * Refactor pr  db to dal
    
    * Refactor pr commit  db to dal
    
    * Refactor pr commit  db to dal
    
    * Refactor pr review  db to dal
    
    * Refactor pr issue and pr label  db to dal
    
    * Refactor repo  db to dal
    
    * Refactor db to dal
    
    * Generate domain repoId, authorId, committerId through connectionId
    
    * Refactor db to dal
    
    * fix golint error
    
    * fix golint error info
---
 plugins/gitee/models/commit_stats.go               |  1 +
 plugins/gitee/models/connection.go                 |  3 +-
 plugins/gitee/models/issue.go                      |  1 +
 plugins/gitee/models/issue_comment.go              |  5 +--
 plugins/gitee/models/issue_label.go                |  5 +--
 .../migrationscripts/archived/commit_stat.go       |  1 +
 .../models/migrationscripts/archived/connection.go |  1 +
 .../models/migrationscripts/archived/issue.go      |  1 +
 .../migrationscripts/archived/issue_comment.go     |  5 +--
 .../migrationscripts/archived/issue_label.go       |  5 +--
 .../migrationscripts/archived/pull_request.go      |  1 +
 .../archived/pull_request_comment.go               |  5 +--
 .../archived/pull_request_commit.go                |  1 +
 .../archived/pull_request_issue.go                 |  5 +--
 .../archived/pull_request_label.go                 |  5 +--
 .../gitee/models/migrationscripts/archived/repo.go |  3 +-
 .../migrationscripts/archived/repo_commit.go       |  5 +--
 .../models/migrationscripts/archived/reviewer.go   |  1 +
 .../gitee/models/migrationscripts/archived/user.go |  3 +-
 .../gitee/models/migrationscripts/init_schema.go   |  2 +-
 plugins/gitee/models/pull_request.go               |  1 +
 plugins/gitee/models/pull_request_comment.go       |  5 +--
 plugins/gitee/models/pull_request_commit.go        |  1 +
 plugins/gitee/models/pull_request_issue.go         |  5 +--
 plugins/gitee/models/pull_request_label.go         |  5 +--
 plugins/gitee/models/repo.go                       |  3 +-
 plugins/gitee/models/repo_commit.go                |  5 +--
 plugins/gitee/models/reviewer.go                   |  1 +
 plugins/gitee/models/user.go                       |  3 +-
 plugins/gitee/tasks/commit_collector.go            | 33 ++++++++++++++++--
 plugins/gitee/tasks/commit_convertor.go            | 29 ++++++++--------
 plugins/gitee/tasks/commit_extractor.go            |  5 +--
 plugins/gitee/tasks/commit_stats_collector.go      | 29 ++++++++++------
 plugins/gitee/tasks/commit_stats_extractor.go      |  9 +++--
 plugins/gitee/tasks/issue_collector.go             | 13 ++++---
 plugins/gitee/tasks/issue_comment_collector.go     | 27 ++++++++++-----
 plugins/gitee/tasks/issue_comment_convertor.go     | 20 ++++++-----
 plugins/gitee/tasks/issue_comment_extractor.go     |  8 +++--
 plugins/gitee/tasks/issue_convertor.go             | 17 +++++----
 plugins/gitee/tasks/issue_extractor.go             | 40 +++++++---------------
 plugins/gitee/tasks/issue_label_convertor.go       | 18 ++++++----
 plugins/gitee/tasks/pr_collector.go                | 15 +++++---
 plugins/gitee/tasks/pr_comment_convertor.go        | 20 ++++++-----
 plugins/gitee/tasks/pr_commit_collector.go         | 14 +++++---
 plugins/gitee/tasks/pr_commit_convertor.go         | 17 +++++----
 plugins/gitee/tasks/pr_commit_extractor.go         |  3 +-
 plugins/gitee/tasks/pr_convertor.go                | 15 +++++---
 plugins/gitee/tasks/pr_extractor.go                | 20 +++++------
 plugins/gitee/tasks/pr_issue_convertor.go          | 20 ++++++-----
 plugins/gitee/tasks/pr_issue_enricher.go           | 18 ++++++----
 plugins/gitee/tasks/pr_label_convertor.go          | 18 ++++++----
 plugins/gitee/tasks/pr_review_collector.go         | 15 +++++---
 plugins/gitee/tasks/pr_review_extractor.go         |  3 +-
 plugins/gitee/tasks/repo_collector.go              |  2 +-
 plugins/gitee/tasks/repo_convertor.go              | 15 ++++----
 plugins/gitee/tasks/repo_extractor.go              | 19 +++++-----
 plugins/gitee/tasks/shared.go                      | 10 +++---
 plugins/gitee/tasks/task_data.go                   | 14 ++++----
 plugins/gitee/tasks/user_convertor.go              | 11 +++---
 59 files changed, 358 insertions(+), 227 deletions(-)

diff --git a/plugins/gitee/models/commit_stats.go 
b/plugins/gitee/models/commit_stats.go
index d4992490..829eaefe 100644
--- a/plugins/gitee/models/commit_stats.go
+++ b/plugins/gitee/models/commit_stats.go
@@ -24,6 +24,7 @@ import (
 )
 
 type GiteeCommitStat struct {
+       ConnectionId  uint64    `gorm:"primaryKey"`
        Sha           string    `gorm:"primaryKey;type:varchar(40)"`
        Additions     int       `gorm:"comment:Added lines of code"`
        Deletions     int       `gorm:"comment:Deleted lines of code"`
diff --git a/plugins/gitee/models/connection.go 
b/plugins/gitee/models/connection.go
index a5360449..7129654d 100644
--- a/plugins/gitee/models/connection.go
+++ b/plugins/gitee/models/connection.go
@@ -41,9 +41,10 @@ type TestConnectionRequest struct {
        helper.AccessToken `mapstructure:",squash"`
 }
 
-type Config struct {
+type TransformationRules struct {
        PrType               string `mapstructure:"prType" env:"GITEE_PR_TYPE" 
json:"prType"`
        PrComponent          string `mapstructure:"prComponent" 
env:"GITEE_PR_COMPONENT" json:"prComponent"`
+       PrBodyClosePattern   string `mapstructure:"prBodyClosePattern" 
json:"prBodyClosePattern"`
        IssueSeverity        string `mapstructure:"issueSeverity" 
env:"GITEE_ISSUE_SEVERITY" json:"issueSeverity"`
        IssuePriority        string `mapstructure:"issuePriority" 
env:"GITEE_ISSUE_PRIORITY" json:"issuePriority"`
        IssueComponent       string `mapstructure:"issueComponent" 
env:"GITEE_ISSUE_COMPONENT" json:"issueComponent"`
diff --git a/plugins/gitee/models/issue.go b/plugins/gitee/models/issue.go
index aa2ea170..b4103ef0 100644
--- a/plugins/gitee/models/issue.go
+++ b/plugins/gitee/models/issue.go
@@ -24,6 +24,7 @@ import (
 )
 
 type GiteeIssue struct {
+       ConnectionId    uint64 `gorm:"primaryKey"`
        GiteeId         int    `gorm:"primaryKey"`
        RepoId          int    `gorm:"index"`
        Number          string `gorm:"index;comment:Used in API requests ex. 
api/repo/1/issue/<THIS_NUMBER>"`
diff --git a/plugins/gitee/models/issue_comment.go 
b/plugins/gitee/models/issue_comment.go
index 9d170040..861b660e 100644
--- a/plugins/gitee/models/issue_comment.go
+++ b/plugins/gitee/models/issue_comment.go
@@ -24,8 +24,9 @@ import (
 )
 
 type GiteeIssueComment struct {
-       GiteeId        int `gorm:"primaryKey"`
-       IssueId        int `gorm:"index;comment:References the Issue"`
+       ConnectionId   uint64 `gorm:"primaryKey"`
+       GiteeId        int    `gorm:"primaryKey"`
+       IssueId        int    `gorm:"index;comment:References the Issue"`
        Body           string
        AuthorUsername string `gorm:"type:varchar(255)"`
        AuthorUserId   int
diff --git a/plugins/gitee/models/issue_label.go 
b/plugins/gitee/models/issue_label.go
index 77f910f9..408b0f39 100644
--- a/plugins/gitee/models/issue_label.go
+++ b/plugins/gitee/models/issue_label.go
@@ -25,8 +25,9 @@ import (
 // Pull Requests are considered Issues in Gitee.
 
 type GiteeIssueLabel struct {
-       IssueId   int    `gorm:"primaryKey;autoIncrement:false"`
-       LabelName string `gorm:"primaryKey;type:varchar(255)"`
+       ConnectionId uint64 `gorm:"primaryKey"`
+       IssueId      int    `gorm:"primaryKey;autoIncrement:false"`
+       LabelName    string `gorm:"primaryKey;type:varchar(255)"`
        common.NoPKModel
 }
 
diff --git a/plugins/gitee/models/migrationscripts/archived/commit_stat.go 
b/plugins/gitee/models/migrationscripts/archived/commit_stat.go
index 77a9e0a4..5a70ddd5 100644
--- a/plugins/gitee/models/migrationscripts/archived/commit_stat.go
+++ b/plugins/gitee/models/migrationscripts/archived/commit_stat.go
@@ -24,6 +24,7 @@ import (
 )
 
 type GiteeCommitStat struct {
+       ConnectionId  uint64    `gorm:"primaryKey"`
        Sha           string    `gorm:"primaryKey;type:varchar(40)"`
        Additions     int       `gorm:"comment:Added lines of code"`
        Deletions     int       `gorm:"comment:Deleted lines of code"`
diff --git a/plugins/gitee/models/migrationscripts/archived/connection.go 
b/plugins/gitee/models/migrationscripts/archived/connection.go
index c1fc5daf..96188971 100644
--- a/plugins/gitee/models/migrationscripts/archived/connection.go
+++ b/plugins/gitee/models/migrationscripts/archived/connection.go
@@ -58,6 +58,7 @@ type ApiUserResponse struct {
 type Config struct {
        PrType               string `mapstructure:"prType" env:"GITEE_PR_TYPE" 
json:"prType"`
        PrComponent          string `mapstructure:"prComponent" 
env:"GITEE_PR_COMPONENT" json:"prComponent"`
+       PrBodyClosePattern   string `mapstructure:"prBodyClosePattern" 
json:"prBodyClosePattern"`
        IssueSeverity        string `mapstructure:"issueSeverity" 
env:"GITEE_ISSUE_SEVERITY" json:"issueSeverity"`
        IssuePriority        string `mapstructure:"issuePriority" 
env:"GITEE_ISSUE_PRIORITY" json:"issuePriority"`
        IssueComponent       string `mapstructure:"issueComponent" 
env:"GITEE_ISSUE_COMPONENT" json:"issueComponent"`
diff --git a/plugins/gitee/models/migrationscripts/archived/issue.go 
b/plugins/gitee/models/migrationscripts/archived/issue.go
index 5d9e6240..4dd0b381 100644
--- a/plugins/gitee/models/migrationscripts/archived/issue.go
+++ b/plugins/gitee/models/migrationscripts/archived/issue.go
@@ -24,6 +24,7 @@ import (
 )
 
 type GiteeIssue struct {
+       ConnectionId    uint64 `gorm:"primaryKey"`
        GiteeId         int    `gorm:"primaryKey"`
        RepoId          int    `gorm:"index"`
        Number          string `gorm:"index;comment:Used in API requests ex. 
api/repo/1/issue/<THIS_NUMBER>"`
diff --git a/plugins/gitee/models/migrationscripts/archived/issue_comment.go 
b/plugins/gitee/models/migrationscripts/archived/issue_comment.go
index ea40c2d9..58fa0fbf 100644
--- a/plugins/gitee/models/migrationscripts/archived/issue_comment.go
+++ b/plugins/gitee/models/migrationscripts/archived/issue_comment.go
@@ -24,8 +24,9 @@ import (
 )
 
 type GiteeIssueComment struct {
-       GiteeId        int `gorm:"primaryKey"`
-       IssueId        int `gorm:"index;comment:References the Issue"`
+       ConnectionId   uint64 `gorm:"primaryKey"`
+       GiteeId        int    `gorm:"primaryKey"`
+       IssueId        int    `gorm:"index;comment:References the Issue"`
        Body           string
        AuthorUsername string `gorm:"type:varchar(255)"`
        AuthorUserId   int
diff --git a/plugins/gitee/models/migrationscripts/archived/issue_label.go 
b/plugins/gitee/models/migrationscripts/archived/issue_label.go
index 9db73278..add179b5 100644
--- a/plugins/gitee/models/migrationscripts/archived/issue_label.go
+++ b/plugins/gitee/models/migrationscripts/archived/issue_label.go
@@ -23,8 +23,9 @@ import 
"github.com/apache/incubator-devlake/models/migrationscripts/archived"
 // Pull Requests are considered Issues in Gitee.
 
 type GiteeIssueLabel struct {
-       IssueId   int    `gorm:"primaryKey;autoIncrement:false"`
-       LabelName string `gorm:"primaryKey;type:varchar(255)"`
+       ConnectionId uint64 `gorm:"primaryKey"`
+       IssueId      int    `gorm:"primaryKey;autoIncrement:false"`
+       LabelName    string `gorm:"primaryKey;type:varchar(255)"`
        archived.NoPKModel
 }
 
diff --git a/plugins/gitee/models/migrationscripts/archived/pull_request.go 
b/plugins/gitee/models/migrationscripts/archived/pull_request.go
index 39ced959..90e22e26 100644
--- a/plugins/gitee/models/migrationscripts/archived/pull_request.go
+++ b/plugins/gitee/models/migrationscripts/archived/pull_request.go
@@ -24,6 +24,7 @@ import (
 )
 
 type GiteePullRequest struct {
+       ConnectionId   uint64 `gorm:"primaryKey"`
        GiteeId        int    `gorm:"primaryKey"`
        RepoId         int    `gorm:"index"`
        Number         int    `gorm:"index"` // This number is used in GET 
requests to the API associated to reviewers / comments / etc.
diff --git 
a/plugins/gitee/models/migrationscripts/archived/pull_request_comment.go 
b/plugins/gitee/models/migrationscripts/archived/pull_request_comment.go
index 79bf54be..16864b7a 100644
--- a/plugins/gitee/models/migrationscripts/archived/pull_request_comment.go
+++ b/plugins/gitee/models/migrationscripts/archived/pull_request_comment.go
@@ -24,8 +24,9 @@ import (
 )
 
 type GiteePullRequestComment struct {
-       GiteeId        int `gorm:"primaryKey"`
-       PullRequestId  int `gorm:"index"`
+       ConnectionId   uint64 `gorm:"primaryKey"`
+       GiteeId        int    `gorm:"primaryKey"`
+       PullRequestId  int    `gorm:"index"`
        Body           string
        AuthorUsername string `gorm:"type:varchar(255)"`
        AuthorUserId   int
diff --git 
a/plugins/gitee/models/migrationscripts/archived/pull_request_commit.go 
b/plugins/gitee/models/migrationscripts/archived/pull_request_commit.go
index 54b3617f..5249387b 100644
--- a/plugins/gitee/models/migrationscripts/archived/pull_request_commit.go
+++ b/plugins/gitee/models/migrationscripts/archived/pull_request_commit.go
@@ -20,6 +20,7 @@ package archived
 import "github.com/apache/incubator-devlake/models/migrationscripts/archived"
 
 type GiteePullRequestCommit struct {
+       ConnectionId  uint64 `gorm:"primaryKey"`
        CommitSha     string `gorm:"primaryKey;type:varchar(40)"`
        PullRequestId int    `gorm:"primaryKey;autoIncrement:false"`
        archived.NoPKModel
diff --git 
a/plugins/gitee/models/migrationscripts/archived/pull_request_issue.go 
b/plugins/gitee/models/migrationscripts/archived/pull_request_issue.go
index 20e3d13e..416efb84 100644
--- a/plugins/gitee/models/migrationscripts/archived/pull_request_issue.go
+++ b/plugins/gitee/models/migrationscripts/archived/pull_request_issue.go
@@ -20,8 +20,9 @@ package archived
 import "github.com/apache/incubator-devlake/models/migrationscripts/archived"
 
 type GiteePullRequestIssue struct {
-       PullRequestId     int `gorm:"primaryKey"`
-       IssueId           int `gorm:"primaryKey"`
+       ConnectionId      uint64 `gorm:"primaryKey"`
+       PullRequestId     int    `gorm:"primaryKey"`
+       IssueId           int    `gorm:"primaryKey"`
        PullRequestNumber int
        IssueNumber       int
        archived.NoPKModel
diff --git 
a/plugins/gitee/models/migrationscripts/archived/pull_request_label.go 
b/plugins/gitee/models/migrationscripts/archived/pull_request_label.go
index 69f25c7e..84a52f23 100644
--- a/plugins/gitee/models/migrationscripts/archived/pull_request_label.go
+++ b/plugins/gitee/models/migrationscripts/archived/pull_request_label.go
@@ -20,8 +20,9 @@ package archived
 import "github.com/apache/incubator-devlake/models/migrationscripts/archived"
 
 type GiteePullRequestLabel struct {
-       PullId    int    `gorm:"primaryKey;autoIncrement:false"`
-       LabelName string `gorm:"primaryKey;type:varchar(255)"`
+       ConnectionId uint64 `gorm:"primaryKey"`
+       PullId       int    `gorm:"primaryKey;autoIncrement:false"`
+       LabelName    string `gorm:"primaryKey;type:varchar(255)"`
        archived.NoPKModel
 }
 
diff --git a/plugins/gitee/models/migrationscripts/archived/repo.go 
b/plugins/gitee/models/migrationscripts/archived/repo.go
index 989aeae2..06dbec68 100644
--- a/plugins/gitee/models/migrationscripts/archived/repo.go
+++ b/plugins/gitee/models/migrationscripts/archived/repo.go
@@ -24,6 +24,7 @@ import (
 )
 
 type GiteeRepo struct {
+       ConnectionId  uint64 `gorm:"primaryKey"`
        GiteeId       int    `gorm:"primaryKey"`
        Name          string `gorm:"type:varchar(255)"`
        HTMLUrl       string `gorm:"type:varchar(255)"`
@@ -39,5 +40,5 @@ type GiteeRepo struct {
 }
 
 func (GiteeRepo) TableName() string {
-       return "_tool_gitee_repo"
+       return "_tool_gitee_repos"
 }
diff --git a/plugins/gitee/models/migrationscripts/archived/repo_commit.go 
b/plugins/gitee/models/migrationscripts/archived/repo_commit.go
index fa70dfb2..b35636b8 100644
--- a/plugins/gitee/models/migrationscripts/archived/repo_commit.go
+++ b/plugins/gitee/models/migrationscripts/archived/repo_commit.go
@@ -22,8 +22,9 @@ import (
 )
 
 type GiteeRepoCommit struct {
-       RepoId    int    `gorm:"primaryKey"`
-       CommitSha string `gorm:"primaryKey;type:varchar(40)"`
+       ConnectionId uint64 `gorm:"primaryKey"`
+       RepoId       int    `gorm:"primaryKey"`
+       CommitSha    string `gorm:"primaryKey;type:varchar(40)"`
        archived.NoPKModel
 }
 
diff --git a/plugins/gitee/models/migrationscripts/archived/reviewer.go 
b/plugins/gitee/models/migrationscripts/archived/reviewer.go
index 69aeee6b..d7549879 100644
--- a/plugins/gitee/models/migrationscripts/archived/reviewer.go
+++ b/plugins/gitee/models/migrationscripts/archived/reviewer.go
@@ -20,6 +20,7 @@ package archived
 import "github.com/apache/incubator-devlake/models/migrationscripts/archived"
 
 type GiteeReviewer struct {
+       ConnectionId  uint64 `gorm:"primaryKey"`
        GiteeId       int    `gorm:"primaryKey"`
        Login         string `gorm:"type:varchar(255)"`
        PullRequestId int    `gorm:"primaryKey"`
diff --git a/plugins/gitee/models/migrationscripts/archived/user.go 
b/plugins/gitee/models/migrationscripts/archived/user.go
index 729b484d..8a78d62c 100644
--- a/plugins/gitee/models/migrationscripts/archived/user.go
+++ b/plugins/gitee/models/migrationscripts/archived/user.go
@@ -22,7 +22,8 @@ import (
 )
 
 type GiteeUser struct {
-       Id                int    `json:"id" gorm:"primaryKey"`
+       ConnectionId      uint64 `gorm:"primaryKey"`
+       Id                int    `json:"id" 
gorm:"primaryKey;autoIncrement:false"`
        Login             string `json:"login" gorm:"type:varchar(255)"`
        Name              string `json:"name" gorm:"type:varchar(255)"`
        AvatarUrl         string `json:"avatar_url" gorm:"type:varchar(255)"`
diff --git a/plugins/gitee/models/migrationscripts/init_schema.go 
b/plugins/gitee/models/migrationscripts/init_schema.go
index 305d4702..7666edae 100644
--- a/plugins/gitee/models/migrationscripts/init_schema.go
+++ b/plugins/gitee/models/migrationscripts/init_schema.go
@@ -118,7 +118,7 @@ func (*InitSchemas) Up(ctx context.Context, db *gorm.DB) 
error {
 }
 
 func (*InitSchemas) Version() uint64 {
-       return 20220617231243
+       return 20220617231268
 }
 
 func (*InitSchemas) Name() string {
diff --git a/plugins/gitee/models/pull_request.go 
b/plugins/gitee/models/pull_request.go
index 7fb1caaf..a6cd2c6b 100644
--- a/plugins/gitee/models/pull_request.go
+++ b/plugins/gitee/models/pull_request.go
@@ -24,6 +24,7 @@ import (
 )
 
 type GiteePullRequest struct {
+       ConnectionId   uint64 `gorm:"primaryKey"`
        GiteeId        int    `gorm:"primaryKey"`
        RepoId         int    `gorm:"index"`
        Number         int    `gorm:"index"` // This number is used in GET 
requests to the API associated to reviewers / comments / etc.
diff --git a/plugins/gitee/models/pull_request_comment.go 
b/plugins/gitee/models/pull_request_comment.go
index 6e0b804a..27adb7c5 100644
--- a/plugins/gitee/models/pull_request_comment.go
+++ b/plugins/gitee/models/pull_request_comment.go
@@ -24,8 +24,9 @@ import (
 )
 
 type GiteePullRequestComment struct {
-       GiteeId        int `gorm:"primaryKey"`
-       PullRequestId  int `gorm:"index"`
+       ConnectionId   uint64 `gorm:"primaryKey"`
+       GiteeId        int    `gorm:"primaryKey"`
+       PullRequestId  int    `gorm:"index"`
        Body           string
        AuthorUsername string `gorm:"type:varchar(255)"`
        AuthorUserId   int
diff --git a/plugins/gitee/models/pull_request_commit.go 
b/plugins/gitee/models/pull_request_commit.go
index 6705b665..d5a0ea74 100644
--- a/plugins/gitee/models/pull_request_commit.go
+++ b/plugins/gitee/models/pull_request_commit.go
@@ -22,6 +22,7 @@ import (
 )
 
 type GiteePullRequestCommit struct {
+       ConnectionId  uint64 `gorm:"primaryKey"`
        CommitSha     string `gorm:"primaryKey;type:varchar(40)"`
        PullRequestId int    `gorm:"primaryKey;autoIncrement:false"`
        common.NoPKModel
diff --git a/plugins/gitee/models/pull_request_issue.go 
b/plugins/gitee/models/pull_request_issue.go
index 8527ff4d..fb0a817b 100644
--- a/plugins/gitee/models/pull_request_issue.go
+++ b/plugins/gitee/models/pull_request_issue.go
@@ -20,8 +20,9 @@ package models
 import "github.com/apache/incubator-devlake/models/common"
 
 type GiteePullRequestIssue struct {
-       PullRequestId     int `gorm:"primaryKey"`
-       IssueId           int `gorm:"primaryKey"`
+       ConnectionId      uint64 `gorm:"primaryKey"`
+       PullRequestId     int    `gorm:"primaryKey"`
+       IssueId           int    `gorm:"primaryKey"`
        PullRequestNumber int
        IssueNumber       string
        common.NoPKModel
diff --git a/plugins/gitee/models/pull_request_label.go 
b/plugins/gitee/models/pull_request_label.go
index 619eeb0d..280e5542 100644
--- a/plugins/gitee/models/pull_request_label.go
+++ b/plugins/gitee/models/pull_request_label.go
@@ -22,8 +22,9 @@ import (
 )
 
 type GiteePullRequestLabel struct {
-       PullId    int    `gorm:"primaryKey;autoIncrement:false"`
-       LabelName string `gorm:"primaryKey;type:varchar(255)"`
+       ConnectionId uint64 `gorm:"primaryKey"`
+       PullId       int    `gorm:"primaryKey;autoIncrement:false"`
+       LabelName    string `gorm:"primaryKey;type:varchar(255)"`
        common.NoPKModel
 }
 
diff --git a/plugins/gitee/models/repo.go b/plugins/gitee/models/repo.go
index 84a4b493..d538aa5d 100644
--- a/plugins/gitee/models/repo.go
+++ b/plugins/gitee/models/repo.go
@@ -24,6 +24,7 @@ import (
 )
 
 type GiteeRepo struct {
+       ConnectionId  uint64 `gorm:"primaryKey"`
        GiteeId       int    `gorm:"primaryKey"`
        Name          string `gorm:"type:varchar(255)"`
        HTMLUrl       string `gorm:"type:varchar(255)"`
@@ -39,5 +40,5 @@ type GiteeRepo struct {
 }
 
 func (GiteeRepo) TableName() string {
-       return "_tool_gitee_repo"
+       return "_tool_gitee_repos"
 }
diff --git a/plugins/gitee/models/repo_commit.go 
b/plugins/gitee/models/repo_commit.go
index 7e66077e..f3c6ffbe 100644
--- a/plugins/gitee/models/repo_commit.go
+++ b/plugins/gitee/models/repo_commit.go
@@ -22,8 +22,9 @@ import (
 )
 
 type GiteeRepoCommit struct {
-       RepoId    int    `gorm:"primaryKey"`
-       CommitSha string `gorm:"primaryKey;type:varchar(40)"`
+       ConnectionId uint64 `gorm:"primaryKey"`
+       RepoId       int    `gorm:"primaryKey"`
+       CommitSha    string `gorm:"primaryKey;type:varchar(40)"`
        common.NoPKModel
 }
 
diff --git a/plugins/gitee/models/reviewer.go b/plugins/gitee/models/reviewer.go
index fc2c6a1d..251493ad 100644
--- a/plugins/gitee/models/reviewer.go
+++ b/plugins/gitee/models/reviewer.go
@@ -22,6 +22,7 @@ import (
 )
 
 type GiteeReviewer struct {
+       ConnectionId  uint64 `gorm:"primaryKey"`
        GiteeId       int    `gorm:"primaryKey"`
        Login         string `gorm:"type:varchar(255)"`
        PullRequestId int    `gorm:"primaryKey"`
diff --git a/plugins/gitee/models/user.go b/plugins/gitee/models/user.go
index acf6309e..935b863f 100644
--- a/plugins/gitee/models/user.go
+++ b/plugins/gitee/models/user.go
@@ -20,7 +20,8 @@ package models
 import "github.com/apache/incubator-devlake/models/common"
 
 type GiteeUser struct {
-       Id                int    `json:"id" gorm:"primaryKey"`
+       ConnectionId      uint64 `gorm:"primaryKey"`
+       Id                int    `json:"id" 
gorm:"primaryKey;autoIncrement:false"`
        Login             string `json:"login" gorm:"type:varchar(255)"`
        Name              string `json:"name" gorm:"type:varchar(255)"`
        AvatarUrl         string `json:"avatar_url" gorm:"type:varchar(255)"`
diff --git a/plugins/gitee/tasks/commit_collector.go 
b/plugins/gitee/tasks/commit_collector.go
index 0d37a632..cded9309 100644
--- a/plugins/gitee/tasks/commit_collector.go
+++ b/plugins/gitee/tasks/commit_collector.go
@@ -18,9 +18,13 @@ limitations under the License.
 package tasks
 
 import (
+       "fmt"
        "net/url"
        "strconv"
 
+       "github.com/apache/incubator-devlake/plugins/core/dal"
+       "github.com/apache/incubator-devlake/plugins/gitee/models"
+
        "github.com/apache/incubator-devlake/plugins/core"
        "github.com/apache/incubator-devlake/plugins/helper"
 )
@@ -35,18 +39,41 @@ var CollectCommitsMeta = core.SubTaskMeta{
 }
 
 func CollectApiCommits(taskCtx core.SubTaskContext) error {
+       db := taskCtx.GetDal()
        rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, 
RAW_COMMIT_TABLE)
+       since := data.Since
+       incremental := false
+       if since == nil {
+               latestUpdated := &models.GiteeCommit{}
+               err := db.All(
+                       &latestUpdated,
+                       dal.Join("left join _tool_gitee_repo_commits on 
_tool_gitee_commits.sha = _tool_gitee_repo_commits.commit_sha"),
+                       dal.Join("left join _tool_gitee_repos on 
_tool_gitee_repo_commits.repo_id = _tool_gitee_repos.gitee_id"),
+                       dal.Where("_tool_gitee_repo_commits.repo_id = ? AND 
_tool_gitee_repo_commits.connection_id = ?", data.Repo.GiteeId, 
data.Repo.ConnectionId),
+                       dal.Orderby("committed_date DESC"),
+                       dal.Limit(1),
+               )
+
+               if err != nil {
+                       return fmt.Errorf("failed to get latest gitee commit 
record: %w", err)
+               }
+               if latestUpdated.Sha != "" {
+                       since = &latestUpdated.CommittedDate
+                       incremental = true
+               }
+       }
 
        collector, err := helper.NewApiCollector(helper.ApiCollectorArgs{
                RawDataSubTaskArgs: *rawDataSubTaskArgs,
                ApiClient:          data.ApiClient,
                PageSize:           100,
-               Incremental:        false,
+               Incremental:        incremental,
                UrlTemplate:        "repos/{{ .Params.Owner }}/{{ .Params.Repo 
}}/commits",
                Query: func(reqData *helper.RequestData) (url.Values, error) {
                        query := url.Values{}
-                       query.Set("with_stats", "true")
-                       query.Set("sort", "asc")
+                       if since != nil {
+                               query.Set("since", since.String())
+                       }
                        query.Set("page", strconv.Itoa(reqData.Pager.Page))
                        query.Set("per_page", strconv.Itoa(reqData.Pager.Size))
                        return query, nil
diff --git a/plugins/gitee/tasks/commit_convertor.go 
b/plugins/gitee/tasks/commit_convertor.go
index d9405edc..1565d534 100644
--- a/plugins/gitee/tasks/commit_convertor.go
+++ b/plugins/gitee/tasks/commit_convertor.go
@@ -20,11 +20,12 @@ package tasks
 import (
        "reflect"
 
+       "github.com/apache/incubator-devlake/plugins/core/dal"
+
        "github.com/apache/incubator-devlake/models/domainlayer/code"
        "github.com/apache/incubator-devlake/models/domainlayer/didgen"
        "github.com/apache/incubator-devlake/plugins/core"
        "github.com/apache/incubator-devlake/plugins/gitee/models"
-       giteeModels "github.com/apache/incubator-devlake/plugins/gitee/models"
        "github.com/apache/incubator-devlake/plugins/helper"
 )
 
@@ -38,26 +39,26 @@ var ConvertCommitsMeta = core.SubTaskMeta{
 func ConvertCommits(taskCtx core.SubTaskContext) error {
 
        rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, 
RAW_COMMIT_TABLE)
-       db := taskCtx.GetDb()
+       db := taskCtx.GetDal()
        repoId := data.Repo.GiteeId
 
        // select all commits belongs to the project
-       cursor, err := db.Table("_tool_gitee_commits gc").
-               Joins(`left join _tool_gitee_repo_commits gpc on (
-                       gpc.commit_sha = gc.sha
-               )`).
-               Select("gc.*").
-               Where("gpc.repo_id = ?", repoId).
-               Rows()
+       cursor, err := db.Cursor(
+               dal.Select("gc.*"),
+               dal.From("_tool_gitee_commits gc"),
+               dal.Join(`left join _tool_gitee_repo_commits grc on (
+                       grc.commit_sha = gc.sha
+               )`),
+               dal.Where("grc.repo_id = ? AND grc.connection_id = ?", repoId, 
data.Options.ConnectionId),
+       )
        if err != nil {
                return err
        }
        defer cursor.Close()
 
-       // TODO: adopt batch indate operation
        userDidGen := didgen.NewDomainIdGenerator(&models.GiteeUser{})
-       repoDidGen := didgen.NewDomainIdGenerator(&giteeModels.GiteeRepo{})
-       domainRepoId := repoDidGen.Generate(repoId)
+       repoDidGen := didgen.NewDomainIdGenerator(&models.GiteeRepo{})
+       domainRepoId := repoDidGen.Generate(data.Options.ConnectionId, repoId)
 
        converter, err := helper.NewDataConverter(helper.DataConverterArgs{
                RawDataSubTaskArgs: *rawDataSubTaskArgs,
@@ -73,14 +74,14 @@ func ConvertCommits(taskCtx core.SubTaskContext) error {
                        commit.Message = giteeCommit.Message
                        commit.Additions = giteeCommit.Additions
                        commit.Deletions = giteeCommit.Deletions
-                       commit.AuthorId = 
userDidGen.Generate(giteeCommit.AuthorId)
+                       commit.AuthorId = 
userDidGen.Generate(data.Options.ConnectionId, giteeCommit.AuthorId)
                        commit.AuthorName = giteeCommit.AuthorName
                        commit.AuthorEmail = giteeCommit.AuthorEmail
                        commit.AuthoredDate = giteeCommit.AuthoredDate
                        commit.CommitterName = giteeCommit.CommitterName
                        commit.CommitterEmail = giteeCommit.CommitterEmail
                        commit.CommittedDate = giteeCommit.CommittedDate
-                       commit.CommitterId = 
userDidGen.Generate(giteeCommit.CommitterId)
+                       commit.CommitterId = 
userDidGen.Generate(data.Options.ConnectionId, giteeCommit.CommitterId)
 
                        // convert repo / commits relationship
                        repoCommit := &code.RepoCommit{
diff --git a/plugins/gitee/tasks/commit_extractor.go 
b/plugins/gitee/tasks/commit_extractor.go
index 1ebeb81e..7635afa4 100644
--- a/plugins/gitee/tasks/commit_extractor.go
+++ b/plugins/gitee/tasks/commit_extractor.go
@@ -93,8 +93,9 @@ func ExtractApiCommits(taskCtx core.SubTaskContext) error {
                        }
 
                        giteeRepoCommit := &models.GiteeRepoCommit{
-                               RepoId:    data.Repo.GiteeId,
-                               CommitSha: commit.Sha,
+                               ConnectionId: data.Options.ConnectionId,
+                               RepoId:       data.Repo.GiteeId,
+                               CommitSha:    commit.Sha,
                        }
                        results = append(results, giteeCommit)
                        results = append(results, giteeRepoCommit)
diff --git a/plugins/gitee/tasks/commit_stats_collector.go 
b/plugins/gitee/tasks/commit_stats_collector.go
index 83902bf4..29e4b61b 100644
--- a/plugins/gitee/tasks/commit_stats_collector.go
+++ b/plugins/gitee/tasks/commit_stats_collector.go
@@ -25,6 +25,8 @@ import (
        "net/url"
        "reflect"
 
+       "github.com/apache/incubator-devlake/plugins/core/dal"
+
        "github.com/apache/incubator-devlake/plugins/helper"
 
        "github.com/apache/incubator-devlake/plugins/core"
@@ -41,26 +43,33 @@ var CollectApiCommitStatsMeta = core.SubTaskMeta{
 }
 
 func CollectApiCommitStats(taskCtx core.SubTaskContext) error {
-       db := taskCtx.GetDb()
+       db := taskCtx.GetDal()
        rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, 
RAW_COMMIT_STATS_TABLE)
 
        var latestUpdated models.GiteeCommitStat
-       err := db.Model(&latestUpdated).Joins("left join 
_tool_gitee_repo_commits on _tool_gitee_commit_stats.sha = 
_tool_gitee_repo_commits.commit_sha").
-               Where("_tool_gitee_repo_commits.repo_id = ?", 
data.Repo.GiteeId).
-               Order("committed_date DESC").Limit(1).Find(&latestUpdated).Error
+
+       err := db.First(
+               &latestUpdated,
+               dal.Join("left join _tool_gitee_repo_commits on 
_tool_gitee_commit_stats.sha = _tool_gitee_repo_commits.commit_sha"),
+               dal.Where("_tool_gitee_repo_commits.repo_id = ? and 
_tool_gitee_repo_commits.connection_id = ?", data.Repo.GiteeId, 
data.Repo.ConnectionId),
+               dal.Orderby("committed_date DESC"),
+               dal.Limit(1),
+       )
+
        if err != nil {
                return fmt.Errorf("failed to get latest gitee commit record: 
%w", err)
        }
 
-       cursor, err := db.Model(&models.GiteeCommit{}).
-               Joins("left join _tool_gitee_repo_commits on 
_tool_gitee_commits.sha = _tool_gitee_repo_commits.commit_sha").
-               Where("_tool_gitee_repo_commits.repo_id = ? and 
_tool_gitee_commits.committed_date >= ?",
-                       data.Repo.GiteeId, 
latestUpdated.CommittedDate.String()).
-               Rows()
+       cursor, err := db.Cursor(
+               dal.Join("left join _tool_gitee_repo_commits on 
_tool_gitee_commits.sha = _tool_gitee_repo_commits.commit_sha"),
+               dal.From(models.GiteeCommit{}.TableName()),
+               dal.Where("_tool_gitee_repo_commits.repo_id = ? and 
_tool_gitee_repo_commits.connection_id = ? and 
_tool_gitee_commits.committed_date >= ?",
+                       data.Repo.GiteeId, data.Repo.ConnectionId, 
latestUpdated.CommittedDate.String()),
+       )
        if err != nil {
                return err
        }
-       iterator, err := helper.NewCursorIterator(db, cursor, 
reflect.TypeOf(models.GiteeCommit{}))
+       iterator, err := helper.NewDalCursorIterator(db, cursor, 
reflect.TypeOf(models.GiteeCommit{}))
        if err != nil {
                return err
        }
diff --git a/plugins/gitee/tasks/commit_stats_extractor.go 
b/plugins/gitee/tasks/commit_stats_extractor.go
index 680b01a6..9c5f2b55 100644
--- a/plugins/gitee/tasks/commit_stats_extractor.go
+++ b/plugins/gitee/tasks/commit_stats_extractor.go
@@ -20,6 +20,8 @@ package tasks
 import (
        "encoding/json"
 
+       "github.com/apache/incubator-devlake/plugins/core/dal"
+
        "github.com/apache/incubator-devlake/plugins/core"
        "github.com/apache/incubator-devlake/plugins/gitee/models"
        "github.com/apache/incubator-devlake/plugins/helper"
@@ -50,7 +52,7 @@ type ApiSingleCommitResponse struct {
 }
 
 func ExtractApiCommitStats(taskCtx core.SubTaskContext) error {
-       rawDataSubTaskArgs, _ := CreateRawDataSubTaskArgs(taskCtx, 
RAW_COMMIT_STATS_TABLE)
+       rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, 
RAW_COMMIT_STATS_TABLE)
 
        extractor, err := helper.NewApiExtractor(helper.ApiExtractorArgs{
                RawDataSubTaskArgs: *rawDataSubTaskArgs,
@@ -64,9 +66,9 @@ func ExtractApiCommitStats(taskCtx core.SubTaskContext) error 
{
                                return nil, nil
                        }
 
-                       db := taskCtx.GetDb()
+                       db := taskCtx.GetDal()
                        commit := &models.GiteeCommit{}
-                       err = db.Model(commit).Where("sha = ?", 
body.Sha).Limit(1).Find(commit).Error
+                       err = db.First(commit, dal.Where("sha = ?", body.Sha), 
dal.Limit(1))
                        if err != nil {
                                return nil, err
                        }
@@ -75,6 +77,7 @@ func ExtractApiCommitStats(taskCtx core.SubTaskContext) error 
{
                        commit.Deletions = body.Stats.Deletions
 
                        commitStat := &models.GiteeCommitStat{
+                               ConnectionId:  data.Options.ConnectionId,
                                Additions:     body.Stats.Additions,
                                Deletions:     body.Stats.Deletions,
                                CommittedDate: 
body.Commit.Committer.Date.ToTime(),
diff --git a/plugins/gitee/tasks/issue_collector.go 
b/plugins/gitee/tasks/issue_collector.go
index 5b325084..83c821f0 100644
--- a/plugins/gitee/tasks/issue_collector.go
+++ b/plugins/gitee/tasks/issue_collector.go
@@ -23,6 +23,8 @@ import (
        "net/http"
        "net/url"
 
+       "github.com/apache/incubator-devlake/plugins/core/dal"
+
        "github.com/apache/incubator-devlake/plugins/helper"
 
        "github.com/apache/incubator-devlake/plugins/core"
@@ -39,7 +41,7 @@ var CollectApiIssuesMeta = core.SubTaskMeta{
 }
 
 func CollectApiIssues(taskCtx core.SubTaskContext) error {
-       db := taskCtx.GetDb()
+       db := taskCtx.GetDal()
        rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, 
RAW_ISSUE_TABLE)
 
        since := data.Since
@@ -47,9 +49,12 @@ func CollectApiIssues(taskCtx core.SubTaskContext) error {
        // user didn't specify a time range to sync, try load from database
        if since == nil {
                var latestUpdated models.GiteeIssue
-               err := db.Model(&latestUpdated).
-                       Where("repo_id = ?", data.Repo.GiteeId).
-                       Order("gitee_updated_at 
DESC").Limit(1).Find(&latestUpdated).Error
+               err := db.All(
+                       &latestUpdated,
+                       dal.Where("repo_id = ? and connection_id = ?", 
data.Repo.GiteeId, data.Repo.ConnectionId),
+                       dal.Orderby("gitee_updated_at DESC"),
+                       dal.Limit(1),
+               )
                if err != nil {
                        return fmt.Errorf("failed to get latest gitee issue 
record: %w", err)
                }
diff --git a/plugins/gitee/tasks/issue_comment_collector.go 
b/plugins/gitee/tasks/issue_comment_collector.go
index df0d6364..38a1c22d 100644
--- a/plugins/gitee/tasks/issue_comment_collector.go
+++ b/plugins/gitee/tasks/issue_comment_collector.go
@@ -21,6 +21,7 @@ import (
        "fmt"
        "net/url"
 
+       . "github.com/apache/incubator-devlake/plugins/core/dal"
        "github.com/apache/incubator-devlake/plugins/helper"
 
        "github.com/apache/incubator-devlake/plugins/core"
@@ -37,7 +38,7 @@ var CollectApiIssueCommentsMeta = core.SubTaskMeta{
 }
 
 func CollectApiIssueComments(taskCtx core.SubTaskContext) error {
-       db := taskCtx.GetDb()
+       db := taskCtx.GetDal()
        rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, 
RAW_COMMENTS_TABLE)
 
        since := data.Since
@@ -46,18 +47,26 @@ func CollectApiIssueComments(taskCtx core.SubTaskContext) 
error {
        // actually, for gitee pull, since doesn't make any sense, gitee pull 
api doesn't support it
        if since == nil {
                var latestUpdatedIssueComment models.GiteeIssueComment
-               err := db.Model(&latestUpdatedIssueComment).
-                       Joins("left join _tool_gitee_issues on 
_tool_gitee_issues.gitee_id = _tool_gitee_issue_comments.issue_id").
-                       Where("_tool_gitee_issues.repo_id = ?", 
data.Repo.GiteeId).
-                       Order("gitee_updated_at 
DESC").Limit(1).Find(&latestUpdatedIssueComment).Error
+               err := db.All(
+                       &latestUpdatedIssueComment,
+                       Join("left join _tool_gitee_issues on 
_tool_gitee_issues.gitee_id = _tool_gitee_issue_comments.issue_id"),
+                       Where(
+                               "_tool_gitee_issues.repo_id = ? AND 
_tool_gitee_issues.connection_id = ?", data.Repo.GiteeId, 
data.Repo.ConnectionId,
+                       ),
+                       Orderby("gitee_updated_at DESC"),
+                       Limit(1),
+               )
                if err != nil {
                        return fmt.Errorf("failed to get latest gitee issue 
record: %w", err)
                }
                var latestUpdatedPrComt models.GiteePullRequestComment
-               err = db.Model(&latestUpdatedPrComt).
-                       Joins("left join _tool_gitee_pull_requests on 
_tool_gitee_pull_requests.gitee_id = 
_tool_gitee_pull_request_comments.pull_request_id").
-                       Where("_tool_gitee_pull_requests.repo_id = ?", 
data.Repo.GiteeId).
-                       Order("gitee_updated_at 
DESC").Limit(1).Find(&latestUpdatedPrComt).Error
+               err = db.All(
+                       &latestUpdatedPrComt,
+                       Join("left join _tool_gitee_pull_requests on 
_tool_gitee_pull_requests.gitee_id = 
_tool_gitee_pull_request_comments.pull_request_id"),
+                       Where("_tool_gitee_pull_requests.repo_id = ? AND 
_tool_gitee_pull_requests.connection_id = ?", data.Repo.GiteeId, 
data.Repo.ConnectionId),
+                       Orderby("gitee_updated_at DESC"),
+                       Limit(1),
+               )
                if err != nil {
                        return fmt.Errorf("failed to get latest gitee issue 
record: %w", err)
                }
diff --git a/plugins/gitee/tasks/issue_comment_convertor.go 
b/plugins/gitee/tasks/issue_comment_convertor.go
index 279d6846..a2453fc8 100644
--- a/plugins/gitee/tasks/issue_comment_convertor.go
+++ b/plugins/gitee/tasks/issue_comment_convertor.go
@@ -20,6 +20,8 @@ package tasks
 import (
        "reflect"
 
+       "github.com/apache/incubator-devlake/plugins/core/dal"
+
        "github.com/apache/incubator-devlake/models/domainlayer"
        "github.com/apache/incubator-devlake/models/domainlayer/didgen"
        "github.com/apache/incubator-devlake/models/domainlayer/ticket"
@@ -36,14 +38,16 @@ var ConvertIssueCommentsMeta = core.SubTaskMeta{
 }
 
 func ConvertIssueComments(taskCtx core.SubTaskContext) error {
-       db := taskCtx.GetDb()
+       db := taskCtx.GetDal()
        rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, 
RAW_COMMENTS_TABLE)
        repoId := data.Repo.GiteeId
 
-       cursor, err := db.Model(&models.GiteeIssueComment{}).
-               Joins("left join _tool_gitee_issues "+
-                       "on _tool_gitee_issues.gitee_id = 
_tool_gitee_issue_comments.issue_id").
-               Where("repo_id = ?", repoId).Rows()
+       cursor, err := db.Cursor(
+               dal.From(&models.GiteeIssueComment{}),
+               dal.Join("left join _tool_gitee_issues "+
+                       "on _tool_gitee_issues.gitee_id = 
_tool_gitee_issue_comments.issue_id"),
+               dal.Where("repo_id = ? and _tool_gitee_issues.connection_id = 
?", repoId, data.Options.ConnectionId),
+       )
        if err != nil {
                return err
        }
@@ -60,11 +64,11 @@ func ConvertIssueComments(taskCtx core.SubTaskContext) 
error {
                        giteeIssueComment := 
inputRow.(*models.GiteeIssueComment)
                        domainIssueComment := &ticket.IssueComment{
                                DomainEntity: domainlayer.DomainEntity{
-                                       Id: 
issueIdGen.Generate(giteeIssueComment.GiteeId),
+                                       Id: 
issueIdGen.Generate(data.Options.ConnectionId, giteeIssueComment.GiteeId),
                                },
-                               IssueId:     
issueIdGen.Generate(giteeIssueComment.IssueId),
+                               IssueId:     
issueIdGen.Generate(data.Options.ConnectionId, giteeIssueComment.IssueId),
                                Body:        giteeIssueComment.Body,
-                               UserId:      
userIdGen.Generate(giteeIssueComment.AuthorUserId),
+                               UserId:      
userIdGen.Generate(data.Options.ConnectionId, giteeIssueComment.AuthorUserId),
                                CreatedDate: giteeIssueComment.GiteeCreatedAt,
                        }
                        return []interface{}{
diff --git a/plugins/gitee/tasks/issue_comment_extractor.go 
b/plugins/gitee/tasks/issue_comment_extractor.go
index 2fcfb76c..3caa6a46 100644
--- a/plugins/gitee/tasks/issue_comment_extractor.go
+++ b/plugins/gitee/tasks/issue_comment_extractor.go
@@ -20,6 +20,8 @@ package tasks
 import (
        "encoding/json"
 
+       "github.com/apache/incubator-devlake/plugins/core/dal"
+
        "github.com/apache/incubator-devlake/plugins/core"
        "github.com/apache/incubator-devlake/plugins/gitee/models"
        "github.com/apache/incubator-devlake/plugins/helper"
@@ -84,18 +86,19 @@ func ExtractApiIssueComments(taskCtx core.SubTaskContext) 
error {
                                return nil, err
                        }
                        issue := &models.GiteeIssue{}
-                       err = taskCtx.GetDb().Where("number = ? and repo_id = 
?", issueINumber, data.Repo.GiteeId).Limit(1).Find(issue).Error
+                       err = taskCtx.GetDal().All(issue, 
dal.Where("connection_id = ? and number = ? and repo_id = ?", 
data.Options.ConnectionId, issueINumber, data.Repo.GiteeId))
                        if err != nil {
                                return nil, err
                        }
                        //if we can not find issues with issue number above, 
move the comments to gitee_pull_request_comments
                        if issue.GiteeId == 0 {
                                pr := &models.GiteePullRequest{}
-                               err = taskCtx.GetDb().Where("number = ? and 
repo_id = ?", issueINumber, data.Repo.GiteeId).Limit(1).Find(pr).Error
+                               err = taskCtx.GetDal().All(issue, 
dal.Where("connection_id = ? and number = ? and repo_id = ?", 
data.Options.ConnectionId, issueINumber, data.Repo.GiteeId))
                                if err != nil {
                                        return nil, err
                                }
                                giteePrComment := 
&models.GiteePullRequestComment{
+                                       ConnectionId:   
data.Options.ConnectionId,
                                        GiteeId:        apiComment.GiteeId,
                                        PullRequestId:  pr.GiteeId,
                                        Body:           apiComment.Body,
@@ -107,6 +110,7 @@ func ExtractApiIssueComments(taskCtx core.SubTaskContext) 
error {
                                results = append(results, giteePrComment)
                        } else {
                                giteeIssueComment := &models.GiteeIssueComment{
+                                       ConnectionId:   
data.Options.ConnectionId,
                                        GiteeId:        apiComment.GiteeId,
                                        IssueId:        issue.GiteeId,
                                        Body:           apiComment.Body,
diff --git a/plugins/gitee/tasks/issue_convertor.go 
b/plugins/gitee/tasks/issue_convertor.go
index 0fe2d3a1..5ebd2467 100644
--- a/plugins/gitee/tasks/issue_convertor.go
+++ b/plugins/gitee/tasks/issue_convertor.go
@@ -20,6 +20,8 @@ package tasks
 import (
        "reflect"
 
+       "github.com/apache/incubator-devlake/plugins/core/dal"
+
        "github.com/apache/incubator-devlake/plugins/core"
        "github.com/apache/incubator-devlake/plugins/helper"
 
@@ -37,12 +39,15 @@ var ConvertIssuesMeta = core.SubTaskMeta{
 }
 
 func ConvertIssues(taskCtx core.SubTaskContext) error {
-       db := taskCtx.GetDb()
+       db := taskCtx.GetDal()
        rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, 
RAW_ISSUE_TABLE)
        repoId := data.Repo.GiteeId
 
        issue := &giteeModels.GiteeIssue{}
-       cursor, err := db.Model(issue).Where("repo_id = ?", repoId).Rows()
+       cursor, err := db.Cursor(
+               dal.From(issue),
+               dal.Where("repo_id = ? and connection_id=?", repoId, 
data.Options.ConnectionId),
+       )
 
        if err != nil {
                return err
@@ -60,15 +65,15 @@ func ConvertIssues(taskCtx core.SubTaskContext) error {
                Convert: func(inputRow interface{}) ([]interface{}, error) {
                        issue := inputRow.(*giteeModels.GiteeIssue)
                        domainIssue := &ticket.Issue{
-                               DomainEntity:    domainlayer.DomainEntity{Id: 
issueIdGen.Generate(issue.GiteeId)},
+                               DomainEntity:    domainlayer.DomainEntity{Id: 
issueIdGen.Generate(data.Options.ConnectionId, issue.GiteeId)},
                                IssueKey:        issue.Number,
                                Title:           issue.Title,
                                Description:     issue.Body,
                                Priority:        issue.Priority,
                                Type:            issue.Type,
-                               AssigneeId:      
userIdGen.Generate(issue.AssigneeId),
+                               AssigneeId:      
userIdGen.Generate(data.Options.ConnectionId, issue.AssigneeId),
                                AssigneeName:    issue.AssigneeName,
-                               CreatorId:       
userIdGen.Generate(issue.AuthorId),
+                               CreatorId:       
userIdGen.Generate(data.Options.ConnectionId, issue.AuthorId),
                                CreatorName:     issue.AuthorName,
                                LeadTimeMinutes: issue.LeadTimeMinutes,
                                Url:             issue.Url,
@@ -84,7 +89,7 @@ func ConvertIssues(taskCtx core.SubTaskContext) error {
                                domainIssue.Status = ticket.TODO
                        }
                        boardIssue := &ticket.BoardIssue{
-                               BoardId: boardIdGen.Generate(repoId),
+                               BoardId: 
boardIdGen.Generate(data.Options.ConnectionId, repoId),
                                IssueId: domainIssue.Id,
                        }
                        return []interface{}{
diff --git a/plugins/gitee/tasks/issue_extractor.go 
b/plugins/gitee/tasks/issue_extractor.go
index 69cb7a57..c37476ec 100644
--- a/plugins/gitee/tasks/issue_extractor.go
+++ b/plugins/gitee/tasks/issue_extractor.go
@@ -96,7 +96,7 @@ type IssuesResponse struct {
 
 func ExtractApiIssues(taskCtx core.SubTaskContext) error {
        rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, 
RAW_ISSUE_TABLE)
-       config := data.Options.Config
+       config := data.Options.TransformationRules
        var issueSeverityRegex *regexp.Regexp
        var issueComponentRegex *regexp.Regexp
        var issuePriorityRegex *regexp.Regexp
@@ -104,44 +104,26 @@ func ExtractApiIssues(taskCtx core.SubTaskContext) error {
        var issueTypeRequirementRegex *regexp.Regexp
        var issueTypeIncidentRegex *regexp.Regexp
        var issueSeverity = config.IssueSeverity
-       if issueSeverity == "" {
-               issueSeverity = taskCtx.GetConfig("GITEE_ISSUE_SEVERITY")
-       }
-       var issueComponent = config.IssueComponent
-       if issueComponent == "" {
-               issueComponent = taskCtx.GetConfig("GITEE_ISSUE_COMPONENT")
-       }
-       var issuePriority = config.IssuePriority
-       if issuePriority == "" {
-               issuePriority = taskCtx.GetConfig("GITEE_ISSUE_PRIORITY")
-       }
-       var issueTypeBug = config.IssueTypeBug
-       if issueTypeBug == "" {
-               issueTypeBug = taskCtx.GetConfig("GITEE_ISSUE_TYPE_BUG")
-       }
-       var issueTypeRequirement = config.IssueTypeRequirement
-       if issueTypeRequirement == "" {
-               issueTypeRequirement = 
taskCtx.GetConfig("GITEE_ISSUE_TYPE_REQUIREMENT")
-       }
-       var issueTypeIncident = config.IssueTypeIncident
-       if issueTypeIncident == "" {
-               issueTypeIncident = 
taskCtx.GetConfig("GITEE_ISSUE_TYPE_INCIDENT")
-       }
        if len(issueSeverity) > 0 {
                issueSeverityRegex = regexp.MustCompile(issueSeverity)
        }
+       var issueComponent = config.IssueComponent
        if len(issueComponent) > 0 {
                issueComponentRegex = regexp.MustCompile(issueComponent)
        }
+       var issuePriority = config.IssuePriority
        if len(issuePriority) > 0 {
                issuePriorityRegex = regexp.MustCompile(issuePriority)
        }
+       var issueTypeBug = config.IssueTypeBug
        if len(issueTypeBug) > 0 {
                issueTypeBugRegex = regexp.MustCompile(issueTypeBug)
        }
+       var issueTypeRequirement = config.IssueTypeRequirement
        if len(issueTypeRequirement) > 0 {
                issueTypeRequirementRegex = 
regexp.MustCompile(issueTypeRequirement)
        }
+       var issueTypeIncident = config.IssueTypeIncident
        if len(issueTypeIncident) > 0 {
                issueTypeIncidentRegex = regexp.MustCompile(issueTypeIncident)
        }
@@ -163,14 +145,15 @@ func ExtractApiIssues(taskCtx core.SubTaskContext) error {
                                return nil, nil
                        }
                        results := make([]interface{}, 0, 2)
-                       giteeIssue, err := convertGiteeIssue(body, 
data.Repo.GiteeId)
+                       giteeIssue, err := convertGiteeIssue(body, 
data.Options.ConnectionId, data.Repo.GiteeId)
                        if err != nil {
                                return nil, err
                        }
                        for _, label := range body.Labels {
                                results = append(results, 
&models.GiteeIssueLabel{
-                                       IssueId:   giteeIssue.GiteeId,
-                                       LabelName: label.Name,
+                                       ConnectionId: data.Options.ConnectionId,
+                                       IssueId:      giteeIssue.GiteeId,
+                                       LabelName:    label.Name,
                                })
                                if issueSeverityRegex != nil {
                                        groups := 
issueSeverityRegex.FindStringSubmatch(label.Name)
@@ -223,8 +206,9 @@ func ExtractApiIssues(taskCtx core.SubTaskContext) error {
 
        return extractor.Execute()
 }
-func convertGiteeIssue(issue *IssuesResponse, repositoryId int) 
(*models.GiteeIssue, error) {
+func convertGiteeIssue(issue *IssuesResponse, connectionId uint64, 
repositoryId int) (*models.GiteeIssue, error) {
        giteeIssue := &models.GiteeIssue{
+               ConnectionId:   connectionId,
                GiteeId:        issue.GiteeId,
                RepoId:         repositoryId,
                Number:         issue.Number,
diff --git a/plugins/gitee/tasks/issue_label_convertor.go 
b/plugins/gitee/tasks/issue_label_convertor.go
index d017cffa..95ba664d 100644
--- a/plugins/gitee/tasks/issue_label_convertor.go
+++ b/plugins/gitee/tasks/issue_label_convertor.go
@@ -20,6 +20,8 @@ package tasks
 import (
        "reflect"
 
+       "github.com/apache/incubator-devlake/plugins/core/dal"
+
        "github.com/apache/incubator-devlake/models/domainlayer/didgen"
        "github.com/apache/incubator-devlake/models/domainlayer/ticket"
        "github.com/apache/incubator-devlake/plugins/core"
@@ -35,15 +37,17 @@ var ConvertIssueLabelsMeta = core.SubTaskMeta{
 }
 
 func ConvertIssueLabels(taskCtx core.SubTaskContext) error {
-       db := taskCtx.GetDb()
+       db := taskCtx.GetDal()
        rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, 
RAW_ISSUE_TABLE)
        repoId := data.Repo.GiteeId
 
-       cursor, err := db.Model(&models.GiteeIssueLabel{}).
-               Joins(`left join _tool_gitee_issues on 
_tool_gitee_issues.gitee_id = _tool_gitee_issue_labels.issue_id`).
-               Where("_tool_gitee_issues.repo_id = ?", repoId).
-               Order("issue_id ASC").
-               Rows()
+       cursor, err := db.Cursor(
+               dal.From(&models.GiteeIssueLabel{}),
+               dal.Join(`left join _tool_gitee_issues on 
_tool_gitee_issues.gitee_id = _tool_gitee_issue_labels.issue_id`),
+               dal.Where("_tool_gitee_issues.repo_id = ? and 
_tool_gitee_issues.connection_id = ?", repoId, data.Options.ConnectionId),
+               dal.Orderby("issue_id ASC"),
+       )
+
        if err != nil {
                return err
        }
@@ -57,7 +61,7 @@ func ConvertIssueLabels(taskCtx core.SubTaskContext) error {
                Convert: func(inputRow interface{}) ([]interface{}, error) {
                        issueLabel := inputRow.(*models.GiteeIssueLabel)
                        domainIssueLabel := &ticket.IssueLabel{
-                               IssueId:   
issueIdGen.Generate(issueLabel.IssueId),
+                               IssueId:   
issueIdGen.Generate(data.Options.ConnectionId, issueLabel.IssueId),
                                LabelName: issueLabel.LabelName,
                        }
                        return []interface{}{
diff --git a/plugins/gitee/tasks/pr_collector.go 
b/plugins/gitee/tasks/pr_collector.go
index c20a308d..f22eb1f8 100644
--- a/plugins/gitee/tasks/pr_collector.go
+++ b/plugins/gitee/tasks/pr_collector.go
@@ -23,6 +23,8 @@ import (
        "net/http"
        "net/url"
 
+       "github.com/apache/incubator-devlake/plugins/core/dal"
+
        "github.com/apache/incubator-devlake/plugins/gitee/models"
 
        "github.com/apache/incubator-devlake/plugins/helper"
@@ -40,15 +42,20 @@ var CollectApiPullRequestsMeta = core.SubTaskMeta{
 }
 
 func CollectApiPullRequests(taskCtx core.SubTaskContext) error {
-       db := taskCtx.GetDb()
+       db := taskCtx.GetDal()
        rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, 
RAW_PULL_REQUEST_TABLE)
        since := data.Since
        incremental := false
        if since == nil {
                var latestUpdated models.GiteePullRequest
-               err := db.Model(&latestUpdated).
-                       Where("repo_id = ?", data.Repo.GiteeId).
-                       Order("gitee_updated_at 
DESC").Limit(1).Find(&latestUpdated).Error
+
+               err := db.All(
+                       &latestUpdated,
+                       dal.Where("repo_id = ? and connection_id=?", 
data.Repo.GiteeId, data.Options.ConnectionId),
+                       dal.Orderby("gitee_updated_at DESC"),
+                       dal.Limit(1),
+               )
+
                if err != nil {
                        return fmt.Errorf("failed to get latest gitee issue 
record: %w", err)
                }
diff --git a/plugins/gitee/tasks/pr_comment_convertor.go 
b/plugins/gitee/tasks/pr_comment_convertor.go
index 03aff955..8a8c1312 100644
--- a/plugins/gitee/tasks/pr_comment_convertor.go
+++ b/plugins/gitee/tasks/pr_comment_convertor.go
@@ -20,6 +20,8 @@ package tasks
 import (
        "reflect"
 
+       "github.com/apache/incubator-devlake/plugins/core/dal"
+
        "github.com/apache/incubator-devlake/models/domainlayer"
        "github.com/apache/incubator-devlake/models/domainlayer/code"
        "github.com/apache/incubator-devlake/models/domainlayer/didgen"
@@ -36,14 +38,16 @@ var ConvertPullRequestCommentsMeta = core.SubTaskMeta{
 }
 
 func ConvertPullRequestComments(taskCtx core.SubTaskContext) error {
-       db := taskCtx.GetDb()
+       db := taskCtx.GetDal()
        rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, 
RAW_COMMENTS_TABLE)
        repoId := data.Repo.GiteeId
 
-       cursor, err := db.Model(&models.GiteePullRequestComment{}).
-               Joins("left join _tool_gitee_pull_requests "+
-                       "on _tool_gitee_pull_requests.gitee_id = 
_tool_gitee_pull_request_comments.pull_request_id").
-               Where("repo_id = ?", repoId).Rows()
+       cursor, err := db.Cursor(
+               dal.From(&models.GiteePullRequestComment{}),
+               dal.Join("left join _tool_gitee_pull_requests "+
+                       "on _tool_gitee_pull_requests.gitee_id = 
_tool_gitee_pull_request_comments.pull_request_id"),
+               dal.Where("repo_id = ? and 
_tool_gitee_pull_requests.connection_id = ?", repoId, 
data.Options.ConnectionId),
+       )
        if err != nil {
                return err
        }
@@ -60,11 +64,11 @@ func ConvertPullRequestComments(taskCtx 
core.SubTaskContext) error {
                        giteePullRequestComment := 
inputRow.(*models.GiteePullRequestComment)
                        domainPrComment := &code.PullRequestComment{
                                DomainEntity: domainlayer.DomainEntity{
-                                       Id: 
prIdGen.Generate(giteePullRequestComment.GiteeId),
+                                       Id: 
prIdGen.Generate(data.Options.ConnectionId, giteePullRequestComment.GiteeId),
                                },
-                               PullRequestId: 
prIdGen.Generate(giteePullRequestComment.PullRequestId),
+                               PullRequestId: 
prIdGen.Generate(data.Options.ConnectionId, 
giteePullRequestComment.PullRequestId),
                                Body:          giteePullRequestComment.Body,
-                               UserId:        
userIdGen.Generate(giteePullRequestComment.AuthorUserId),
+                               UserId:        
userIdGen.Generate(data.Options.ConnectionId, 
giteePullRequestComment.AuthorUserId),
                                CreatedDate:   
giteePullRequestComment.GiteeCreatedAt,
                                CommitSha:     "",
                                Position:      0,
diff --git a/plugins/gitee/tasks/pr_commit_collector.go 
b/plugins/gitee/tasks/pr_commit_collector.go
index 5cdd8e3e..b82d5949 100644
--- a/plugins/gitee/tasks/pr_commit_collector.go
+++ b/plugins/gitee/tasks/pr_commit_collector.go
@@ -24,6 +24,8 @@ import (
        "net/url"
        "reflect"
 
+       "github.com/apache/incubator-devlake/plugins/core/dal"
+
        "github.com/apache/incubator-devlake/plugins/helper"
 
        "github.com/apache/incubator-devlake/plugins/core"
@@ -45,18 +47,20 @@ type SimplePr struct {
 }
 
 func CollectApiPullRequestCommits(taskCtx core.SubTaskContext) error {
-       db := taskCtx.GetDb()
+       db := taskCtx.GetDal()
        rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, 
RAW_PULL_REQUEST_COMMIT_TABLE)
 
        incremental := false
 
-       cursor, err := db.Model(&models.GiteePullRequest{}).Select("number, 
gitee_id").
-               Where("repo_id = ?", data.Repo.GiteeId).
-               Rows()
+       cursor, err := db.Cursor(
+               dal.Select("number, gitee_id"),
+               dal.From(models.GiteePullRequest{}.TableName()),
+               dal.Where("repo_id = ? and connection_id=?", data.Repo.GiteeId, 
data.Options.ConnectionId),
+       )
        if err != nil {
                return err
        }
-       iterator, err := helper.NewCursorIterator(db, cursor, 
reflect.TypeOf(SimplePr{}))
+       iterator, err := helper.NewDalCursorIterator(db, cursor, 
reflect.TypeOf(SimplePr{}))
        if err != nil {
                return err
        }
diff --git a/plugins/gitee/tasks/pr_commit_convertor.go 
b/plugins/gitee/tasks/pr_commit_convertor.go
index e0370135..2a38b97b 100644
--- a/plugins/gitee/tasks/pr_commit_convertor.go
+++ b/plugins/gitee/tasks/pr_commit_convertor.go
@@ -20,6 +20,8 @@ package tasks
 import (
        "reflect"
 
+       "github.com/apache/incubator-devlake/plugins/core/dal"
+
        "github.com/apache/incubator-devlake/models/domainlayer/code"
        "github.com/apache/incubator-devlake/models/domainlayer/didgen"
        "github.com/apache/incubator-devlake/plugins/core"
@@ -35,16 +37,19 @@ var ConvertPullRequestCommitsMeta = core.SubTaskMeta{
 }
 
 func ConvertPullRequestCommits(taskCtx core.SubTaskContext) (err error) {
-       db := taskCtx.GetDb()
+       db := taskCtx.GetDal()
        rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, 
RAW_PULL_REQUEST_COMMIT_TABLE)
        repoId := data.Repo.GiteeId
 
        pullIdGen := didgen.NewDomainIdGenerator(&models.GiteePullRequest{})
 
-       cursor, err := db.Model(&models.GiteePullRequestCommit{}).
-               Joins(`left join _tool_gitee_pull_requests on 
_tool_gitee_pull_requests.gitee_id = 
_tool_gitee_pull_request_commits.pull_request_id`).
-               Where("_tool_gitee_pull_requests.repo_id = ?", repoId).
-               Order("pull_request_id ASC").Rows()
+       cursor, err := db.Cursor(
+               dal.From(&models.GiteePullRequestCommit{}),
+               dal.Join(`left join _tool_gitee_pull_requests on 
_tool_gitee_pull_requests.gitee_id = 
_tool_gitee_pull_request_commits.pull_request_id`),
+               dal.Where("_tool_gitee_pull_requests.repo_id = ? and 
_tool_gitee_pull_requests.connection_id = ?", repoId, 
data.Options.ConnectionId),
+               dal.Orderby("pull_request_id ASC"),
+       )
+
        if err != nil {
                return err
        }
@@ -58,7 +63,7 @@ func ConvertPullRequestCommits(taskCtx core.SubTaskContext) 
(err error) {
                        giteePullRequestCommit := 
inputRow.(*models.GiteePullRequestCommit)
                        domainPrCommit := &code.PullRequestCommit{
                                CommitSha:     giteePullRequestCommit.CommitSha,
-                               PullRequestId: 
pullIdGen.Generate(giteePullRequestCommit.PullRequestId),
+                               PullRequestId: 
pullIdGen.Generate(data.Options.ConnectionId, 
giteePullRequestCommit.PullRequestId),
                        }
                        return []interface{}{
                                domainPrCommit,
diff --git a/plugins/gitee/tasks/pr_commit_extractor.go 
b/plugins/gitee/tasks/pr_commit_extractor.go
index 30befb6e..0e7b8b68 100644
--- a/plugins/gitee/tasks/pr_commit_extractor.go
+++ b/plugins/gitee/tasks/pr_commit_extractor.go
@@ -65,7 +65,7 @@ type PullRequestCommit struct {
 }
 
 func ExtractApiPullRequestCommits(taskCtx core.SubTaskContext) error {
-       rawDataSubTaskArgs, _ := CreateRawDataSubTaskArgs(taskCtx, 
RAW_PULL_REQUEST_COMMIT_TABLE)
+       rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, 
RAW_PULL_REQUEST_COMMIT_TABLE)
        extractor, err := helper.NewApiExtractor(helper.ApiExtractorArgs{
                RawDataSubTaskArgs: *rawDataSubTaskArgs,
                Extract: func(row *helper.RawData) ([]interface{}, error) {
@@ -92,6 +92,7 @@ func ExtractApiPullRequestCommits(taskCtx 
core.SubTaskContext) error {
                        results = append(results, giteeCommit)
 
                        giteePullRequestCommit := 
&models.GiteePullRequestCommit{
+                               ConnectionId:  data.Options.ConnectionId,
                                CommitSha:     apiPullRequestCommit.Sha,
                                PullRequestId: pull.GiteeId,
                        }
diff --git a/plugins/gitee/tasks/pr_convertor.go 
b/plugins/gitee/tasks/pr_convertor.go
index 28d4d4de..4b245f66 100644
--- a/plugins/gitee/tasks/pr_convertor.go
+++ b/plugins/gitee/tasks/pr_convertor.go
@@ -20,6 +20,8 @@ package tasks
 import (
        "reflect"
 
+       "github.com/apache/incubator-devlake/plugins/core/dal"
+
        "github.com/apache/incubator-devlake/models/domainlayer"
        "github.com/apache/incubator-devlake/models/domainlayer/code"
        "github.com/apache/incubator-devlake/models/domainlayer/didgen"
@@ -36,11 +38,14 @@ var ConvertPullRequestsMeta = core.SubTaskMeta{
 }
 
 func ConvertPullRequests(taskCtx core.SubTaskContext) error {
-       db := taskCtx.GetDb()
+       db := taskCtx.GetDal()
        rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, 
RAW_PULL_REQUEST_TABLE)
        repoId := data.Repo.GiteeId
 
-       cursor, err := db.Model(&models.GiteePullRequest{}).Where("repo_id = 
?", repoId).Rows()
+       cursor, err := db.Cursor(
+               dal.From(&models.GiteePullRequest{}),
+               dal.Where("repo_id = ? and connection_id = ?", repoId, 
data.Options.ConnectionId),
+       )
        if err != nil {
                return err
        }
@@ -58,13 +63,13 @@ func ConvertPullRequests(taskCtx core.SubTaskContext) error 
{
                        pr := inputRow.(*models.GiteePullRequest)
                        domainPr := &code.PullRequest{
                                DomainEntity: domainlayer.DomainEntity{
-                                       Id: prIdGen.Generate(pr.GiteeId),
+                                       Id: 
prIdGen.Generate(data.Options.ConnectionId, pr.GiteeId),
                                },
-                               BaseRepoId:     repoIdGen.Generate(pr.RepoId),
+                               BaseRepoId:     
repoIdGen.Generate(data.Options.ConnectionId, pr.RepoId),
                                Status:         pr.State,
                                Title:          pr.Title,
                                Url:            pr.Url,
-                               AuthorId:       userIdGen.Generate(pr.AuthorId),
+                               AuthorId:       
userIdGen.Generate(data.Options.ConnectionId, pr.AuthorId),
                                AuthorName:     pr.AuthorName,
                                Description:    pr.Body,
                                CreatedDate:    pr.GiteeCreatedAt,
diff --git a/plugins/gitee/tasks/pr_extractor.go 
b/plugins/gitee/tasks/pr_extractor.go
index 3a8f0540..ffd2bd08 100644
--- a/plugins/gitee/tasks/pr_extractor.go
+++ b/plugins/gitee/tasks/pr_extractor.go
@@ -77,20 +77,14 @@ type GiteeApiPullResponse struct {
 
 func ExtractApiPullRequests(taskCtx core.SubTaskContext) error {
        rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, 
RAW_PULL_REQUEST_TABLE)
-       config := data.Options.Config
+       config := data.Options.TransformationRules
        var labelTypeRegex *regexp.Regexp
        var labelComponentRegex *regexp.Regexp
        var prType = config.PrType
-       if prType == "" {
-               prType = taskCtx.GetConfig("GITEE_PR_TYPE")
-       }
-       var prComponent = config.PrComponent
-       if prComponent == "" {
-               prComponent = taskCtx.GetConfig("GITEE_PR_COMPONENT")
-       }
        if len(prType) > 0 {
                labelTypeRegex = regexp.MustCompile(prType)
        }
+       var prComponent = config.PrComponent
        if len(prComponent) > 0 {
                labelComponentRegex = regexp.MustCompile(prComponent)
        }
@@ -109,14 +103,15 @@ func ExtractApiPullRequests(taskCtx core.SubTaskContext) 
error {
                        if pullResponse.GiteeId == 0 {
                                return nil, nil
                        }
-                       giteePr, err := convertGiteePullRequest(pullResponse, 
data.Repo.GiteeId)
+                       giteePr, err := convertGiteePullRequest(pullResponse, 
data.Options.ConnectionId, data.Repo.GiteeId)
                        if err != nil {
                                return nil, err
                        }
                        for _, label := range pullResponse.Labels {
                                results = append(results, 
&models.GiteePullRequestLabel{
-                                       PullId:    giteePr.GiteeId,
-                                       LabelName: label.Name,
+                                       ConnectionId: data.Options.ConnectionId,
+                                       PullId:       giteePr.GiteeId,
+                                       LabelName:    label.Name,
                                })
                                // if pr.Type has not been set and prType is 
set in .env, process the below
                                if labelTypeRegex != nil {
@@ -146,8 +141,9 @@ func ExtractApiPullRequests(taskCtx core.SubTaskContext) 
error {
 
        return extractor.Execute()
 }
-func convertGiteePullRequest(pull *GiteeApiPullResponse, repoId int) 
(*models.GiteePullRequest, error) {
+func convertGiteePullRequest(pull *GiteeApiPullResponse, connId uint64, repoId 
int) (*models.GiteePullRequest, error) {
        giteePull := &models.GiteePullRequest{
+               ConnectionId:   connId,
                GiteeId:        pull.GiteeId,
                RepoId:         repoId,
                Number:         pull.Number,
diff --git a/plugins/gitee/tasks/pr_issue_convertor.go 
b/plugins/gitee/tasks/pr_issue_convertor.go
index 07a24300..eab4bae8 100644
--- a/plugins/gitee/tasks/pr_issue_convertor.go
+++ b/plugins/gitee/tasks/pr_issue_convertor.go
@@ -21,6 +21,8 @@ import (
        "reflect"
        "strconv"
 
+       "github.com/apache/incubator-devlake/plugins/core/dal"
+
        "github.com/apache/incubator-devlake/models/domainlayer/crossdomain"
        "github.com/apache/incubator-devlake/models/domainlayer/didgen"
        "github.com/apache/incubator-devlake/plugins/core"
@@ -36,15 +38,17 @@ var ConvertPullRequestIssuesMeta = core.SubTaskMeta{
 }
 
 func ConvertPullRequestIssues(taskCtx core.SubTaskContext) error {
-       db := taskCtx.GetDb()
+       db := taskCtx.GetDal()
        rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, 
RAW_PULL_REQUEST_TABLE)
        repoId := data.Repo.GiteeId
 
-       cursor, err := db.Model(&models.GiteePullRequestIssue{}).
-               Joins(`left join _tool_gitee_pull_requests on 
_tool_gitee_pull_requests.gitee_id = 
_tool_gitee_pull_request_issues.pull_request_id`).
-               Where("_tool_gitee_pull_requests.repo_id = ?", repoId).
-               Order("pull_request_id ASC").
-               Rows()
+       cursor, err := db.Cursor(
+               dal.From(&models.GiteePullRequestIssue{}),
+               dal.Join(`left join _tool_gitee_pull_requests on 
_tool_gitee_pull_requests.gitee_id = 
_tool_gitee_pull_request_issues.pull_request_id`),
+               dal.Where("_tool_gitee_pull_requests.repo_id = ? and 
_tool_gitee_pull_requests.connection_id = ?", repoId, 
data.Options.ConnectionId),
+               dal.Orderby("pull_request_id ASC"),
+       )
+
        if err != nil {
                return err
        }
@@ -60,8 +64,8 @@ func ConvertPullRequestIssues(taskCtx core.SubTaskContext) 
error {
                        giteePrIssue := inputRow.(*models.GiteePullRequestIssue)
                        issueNum, _ := strconv.Atoi(giteePrIssue.IssueNumber)
                        pullRequestIssue := &crossdomain.PullRequestIssue{
-                               PullRequestId:     
prIdGen.Generate(giteePrIssue.PullRequestId),
-                               IssueId:           
issueIdGen.Generate(giteePrIssue.IssueId),
+                               PullRequestId:     
prIdGen.Generate(data.Options.ConnectionId, giteePrIssue.PullRequestId),
+                               IssueId:           
issueIdGen.Generate(data.Options.ConnectionId, giteePrIssue.IssueId),
                                IssueNumber:       issueNum,
                                PullRequestNumber: 
giteePrIssue.PullRequestNumber,
                        }
diff --git a/plugins/gitee/tasks/pr_issue_enricher.go 
b/plugins/gitee/tasks/pr_issue_enricher.go
index 3fa136cf..dff9ab5d 100644
--- a/plugins/gitee/tasks/pr_issue_enricher.go
+++ b/plugins/gitee/tasks/pr_issue_enricher.go
@@ -23,6 +23,8 @@ import (
        "strconv"
        "strings"
 
+       "github.com/apache/incubator-devlake/plugins/core/dal"
+
        "github.com/apache/incubator-devlake/plugins/core"
        "github.com/apache/incubator-devlake/plugins/gitee/models"
        "github.com/apache/incubator-devlake/plugins/helper"
@@ -36,12 +38,12 @@ var EnrichPullRequestIssuesMeta = core.SubTaskMeta{
 }
 
 func EnrichPullRequestIssues(taskCtx core.SubTaskContext) (err error) {
-       db := taskCtx.GetDb()
+       db := taskCtx.GetDal()
        rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, 
RAW_PULL_REQUEST_TABLE)
        repoId := data.Repo.GiteeId
 
        var prBodyCloseRegex *regexp.Regexp
-       prBodyClosePattern := taskCtx.GetConfig("GITEE_PR_BODY_CLOSE_PATTERN")
+       prBodyClosePattern := data.Options.PrBodyClosePattern
        //the pattern before the issue number, sometimes, the issue number is 
#1098, sometimes it is https://xxx/#1098
        prBodyClosePattern = strings.Replace(prBodyClosePattern, "%s", 
data.Options.Owner, 1)
        prBodyClosePattern = strings.Replace(prBodyClosePattern, "%s", 
data.Options.Repo, 1)
@@ -49,9 +51,7 @@ func EnrichPullRequestIssues(taskCtx core.SubTaskContext) 
(err error) {
                prBodyCloseRegex = regexp.MustCompile(prBodyClosePattern)
        }
        charPattern := regexp.MustCompile(`[a-zA-Z\s,]+`)
-       cursor, err := db.Model(&models.GiteePullRequest{}).
-               Where("repo_id = ?", repoId).
-               Rows()
+       cursor, err := db.Cursor(dal.From(&models.GiteePullRequest{}), 
dal.Where("repo_id = ?", repoId))
        if err != nil {
                return err
        }
@@ -89,8 +89,11 @@ func EnrichPullRequestIssues(taskCtx core.SubTaskContext) 
(err error) {
                                if numFormatErr != nil {
                                        continue
                                }
-                               err = db.Where("number = ? and repo_id = ?", 
issueNumber, repoId).
-                                       Limit(1).Find(issue).Error
+                               err = db.All(
+                                       issue,
+                                       dal.Where("number = ? and repo_id = ? 
and connection_id = ?", issueNumber, repoId, data.Options.ConnectionId),
+                                       dal.Limit(1),
+                               )
                                if err != nil {
                                        return nil, err
                                }
@@ -98,6 +101,7 @@ func EnrichPullRequestIssues(taskCtx core.SubTaskContext) 
(err error) {
                                        continue
                                }
                                giteePullRequstIssue := 
&models.GiteePullRequestIssue{
+                                       ConnectionId:      
data.Options.ConnectionId,
                                        PullRequestId:     
giteePullRequst.GiteeId,
                                        IssueId:           issue.GiteeId,
                                        PullRequestNumber: 
giteePullRequst.Number,
diff --git a/plugins/gitee/tasks/pr_label_convertor.go 
b/plugins/gitee/tasks/pr_label_convertor.go
index 14b87161..c4fbdb39 100644
--- a/plugins/gitee/tasks/pr_label_convertor.go
+++ b/plugins/gitee/tasks/pr_label_convertor.go
@@ -20,6 +20,8 @@ package tasks
 import (
        "reflect"
 
+       "github.com/apache/incubator-devlake/plugins/core/dal"
+
        "github.com/apache/incubator-devlake/models/domainlayer/code"
        "github.com/apache/incubator-devlake/models/domainlayer/didgen"
        "github.com/apache/incubator-devlake/plugins/core"
@@ -35,15 +37,17 @@ var ConvertPullRequestLabelsMeta = core.SubTaskMeta{
 }
 
 func ConvertPullRequestLabels(taskCtx core.SubTaskContext) error {
-       db := taskCtx.GetDb()
+       db := taskCtx.GetDal()
        rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, 
RAW_PULL_REQUEST_TABLE)
        repoId := data.Repo.GiteeId
 
-       cursor, err := db.Model(&models.GiteePullRequestLabel{}).
-               Joins(`left join _tool_gitee_pull_requests on 
_tool_gitee_pull_requests.gitee_id = _tool_gitee_pull_request_labels.pull_id`).
-               Where("_tool_gitee_pull_requests.repo_id = ?", repoId).
-               Order("pull_id ASC").
-               Rows()
+       cursor, err := db.Cursor(
+               dal.From(&models.GiteePullRequestLabel{}),
+               dal.Join(`left join _tool_gitee_pull_requests on 
_tool_gitee_pull_requests.gitee_id = _tool_gitee_pull_request_labels.pull_id`),
+               dal.Where("_tool_gitee_pull_requests.repo_id = ? and 
_tool_gitee_pull_requests.connection_id = ?", repoId, 
data.Options.ConnectionId),
+               dal.Orderby("pull_id ASC"),
+       )
+
        if err != nil {
                return err
        }
@@ -57,7 +61,7 @@ func ConvertPullRequestLabels(taskCtx core.SubTaskContext) 
error {
                Convert: func(inputRow interface{}) ([]interface{}, error) {
                        prLabel := inputRow.(*models.GiteePullRequestLabel)
                        domainPrLabel := &code.PullRequestLabel{
-                               PullRequestId: prIdGen.Generate(prLabel.PullId),
+                               PullRequestId: 
prIdGen.Generate(data.Options.ConnectionId, prLabel.PullId),
                                LabelName:     prLabel.LabelName,
                        }
                        return []interface{}{
diff --git a/plugins/gitee/tasks/pr_review_collector.go 
b/plugins/gitee/tasks/pr_review_collector.go
index bfc21cec..88be6d02 100644
--- a/plugins/gitee/tasks/pr_review_collector.go
+++ b/plugins/gitee/tasks/pr_review_collector.go
@@ -24,6 +24,8 @@ import (
        "net/url"
        "reflect"
 
+       "github.com/apache/incubator-devlake/plugins/core/dal"
+
        "github.com/apache/incubator-devlake/plugins/helper"
 
        "github.com/apache/incubator-devlake/plugins/core"
@@ -41,18 +43,21 @@ var CollectApiPullRequestReviewsMeta = core.SubTaskMeta{
 }
 
 func CollectApiPullRequestReviews(taskCtx core.SubTaskContext) error {
-       db := taskCtx.GetDb()
+       db := taskCtx.GetDal()
        rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, 
RAW_PULL_REQUEST_REVIEW_TABLE)
 
        incremental := false
 
-       cursor, err := db.Model(&models.GiteePullRequest{}).Select("number, 
gitee_id").
-               Where("repo_id = ?", data.Repo.GiteeId).
-               Rows()
+       cursor, err := db.Cursor(
+               dal.Select("number, gitee_id"),
+               dal.From(models.GiteePullRequest{}.TableName()),
+               dal.Where("repo_id = ? and connection_id=?", data.Repo.GiteeId, 
data.Options.ConnectionId),
+       )
+
        if err != nil {
                return err
        }
-       iterator, err := helper.NewCursorIterator(db, cursor, 
reflect.TypeOf(SimplePr{}))
+       iterator, err := helper.NewDalCursorIterator(db, cursor, 
reflect.TypeOf(SimplePr{}))
        if err != nil {
                return err
        }
diff --git a/plugins/gitee/tasks/pr_review_extractor.go 
b/plugins/gitee/tasks/pr_review_extractor.go
index 5fa79c38..8b863a20 100644
--- a/plugins/gitee/tasks/pr_review_extractor.go
+++ b/plugins/gitee/tasks/pr_review_extractor.go
@@ -46,7 +46,7 @@ type PullRequestReview struct {
 }
 
 func ExtractApiPullRequestReviews(taskCtx core.SubTaskContext) error {
-       rawDataSubTaskArgs, _ := CreateRawDataSubTaskArgs(taskCtx, 
RAW_PULL_REQUEST_REVIEW_TABLE)
+       rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, 
RAW_PULL_REQUEST_REVIEW_TABLE)
        extractor, err := helper.NewApiExtractor(helper.ApiExtractorArgs{
                RawDataSubTaskArgs: *rawDataSubTaskArgs,
                Extract: func(row *helper.RawData) ([]interface{}, error) {
@@ -66,6 +66,7 @@ func ExtractApiPullRequestReviews(taskCtx 
core.SubTaskContext) error {
                        results := make([]interface{}, 0, 1)
 
                        giteeReviewer := &models.GiteeReviewer{
+                               ConnectionId:  data.Options.ConnectionId,
                                GiteeId:       apiPullRequestReview.User.Id,
                                Login:         apiPullRequestReview.User.Login,
                                PullRequestId: pull.GiteeId,
diff --git a/plugins/gitee/tasks/repo_collector.go 
b/plugins/gitee/tasks/repo_collector.go
index ad2670c1..4fcc4af0 100644
--- a/plugins/gitee/tasks/repo_collector.go
+++ b/plugins/gitee/tasks/repo_collector.go
@@ -29,7 +29,7 @@ import (
        "github.com/apache/incubator-devlake/plugins/core"
 )
 
-const RAW_REPOSITORIES_TABLE = "gitee_api_repo"
+const RAW_REPOSITORIES_TABLE = "gitee_api_repos"
 
 var CollectApiRepoMeta = core.SubTaskMeta{
        Name:        "collectApiRepo",
diff --git a/plugins/gitee/tasks/repo_convertor.go 
b/plugins/gitee/tasks/repo_convertor.go
index 21cc8b82..a47ec9fe 100644
--- a/plugins/gitee/tasks/repo_convertor.go
+++ b/plugins/gitee/tasks/repo_convertor.go
@@ -21,6 +21,8 @@ import (
        "fmt"
        "reflect"
 
+       "github.com/apache/incubator-devlake/plugins/core/dal"
+
        "github.com/apache/incubator-devlake/models/domainlayer"
        "github.com/apache/incubator-devlake/models/domainlayer/code"
        "github.com/apache/incubator-devlake/models/domainlayer/didgen"
@@ -39,12 +41,13 @@ var ConvertRepoMeta = core.SubTaskMeta{
 
 func ConvertRepo(taskCtx core.SubTaskContext) error {
        rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, 
RAW_REPOSITORIES_TABLE)
-       db := taskCtx.GetDb()
+       db := taskCtx.GetDal()
        repoId := data.Repo.GiteeId
 
-       cursor, err := db.Model(&models.GiteeRepo{}).
-               Where("gitee_id = ?", repoId).
-               Rows()
+       cursor, err := db.Cursor(
+               dal.From(&models.GiteeRepo{}),
+               dal.Where("gitee_id = ?", repoId),
+       )
        if err != nil {
                return err
        }
@@ -60,7 +63,7 @@ func ConvertRepo(taskCtx core.SubTaskContext) error {
                        repository := inputRow.(*models.GiteeRepo)
                        domainRepository := &code.Repo{
                                DomainEntity: domainlayer.DomainEntity{
-                                       Id: 
repoIdGen.Generate(repository.GiteeId),
+                                       Id: 
repoIdGen.Generate(data.Options.ConnectionId, repository.GiteeId),
                                },
                                Name:        fmt.Sprintf("%s/%s", 
repository.OwnerLogin, repository.Name),
                                Url:         repository.HTMLUrl,
@@ -73,7 +76,7 @@ func ConvertRepo(taskCtx core.SubTaskContext) error {
 
                        domainBoard := &ticket.Board{
                                DomainEntity: domainlayer.DomainEntity{
-                                       Id: 
repoIdGen.Generate(repository.GiteeId),
+                                       Id: 
repoIdGen.Generate(data.Options.ConnectionId, repository.GiteeId),
                                },
                                Name:        fmt.Sprintf("%s/%s", 
repository.OwnerLogin, repository.Name),
                                Url:         fmt.Sprintf("%s/%s", 
repository.HTMLUrl, "issues"),
diff --git a/plugins/gitee/tasks/repo_extractor.go 
b/plugins/gitee/tasks/repo_extractor.go
index 02ce4a7c..68f95ecc 100644
--- a/plugins/gitee/tasks/repo_extractor.go
+++ b/plugins/gitee/tasks/repo_extractor.go
@@ -60,15 +60,16 @@ func ExtractApiRepositories(taskCtx core.SubTaskContext) 
error {
                        }
                        results := make([]interface{}, 0, 1)
                        giteeRepository := &models.GiteeRepo{
-                               GiteeId:     repo.GiteeId,
-                               Name:        repo.Name,
-                               HTMLUrl:     repo.HTMLUrl,
-                               Description: repo.Description,
-                               OwnerId:     repo.Owner.Id,
-                               OwnerLogin:  repo.Owner.Login,
-                               Language:    repo.Language,
-                               CreatedDate: repo.CreatedAt.ToTime(),
-                               UpdatedDate: 
helper.Iso8601TimeToTime(repo.UpdatedAt),
+                               ConnectionId: data.Options.ConnectionId,
+                               GiteeId:      repo.GiteeId,
+                               Name:         repo.Name,
+                               HTMLUrl:      repo.HTMLUrl,
+                               Description:  repo.Description,
+                               OwnerId:      repo.Owner.Id,
+                               OwnerLogin:   repo.Owner.Login,
+                               Language:     repo.Language,
+                               CreatedDate:  repo.CreatedAt.ToTime(),
+                               UpdatedDate:  
helper.Iso8601TimeToTime(repo.UpdatedAt),
                        }
                        data.Repo = giteeRepository
 
diff --git a/plugins/gitee/tasks/shared.go b/plugins/gitee/tasks/shared.go
index 76b2de18..2e704ccc 100644
--- a/plugins/gitee/tasks/shared.go
+++ b/plugins/gitee/tasks/shared.go
@@ -46,8 +46,9 @@ type RateLimitInfo struct {
 }
 
 type GiteeApiParams struct {
-       Repo  string
-       Owner string
+       ConnectionId uint64
+       Repo         string
+       Owner        string
 }
 
 type GiteeInput struct {
@@ -93,8 +94,9 @@ func CreateRawDataSubTaskArgs(taskCtx core.SubTaskContext, 
Table string) (*helpe
        RawDataSubTaskArgs := &helper.RawDataSubTaskArgs{
                Ctx: taskCtx,
                Params: GiteeApiParams{
-                       Repo:  data.Options.Repo,
-                       Owner: data.Options.Owner,
+                       ConnectionId: data.Options.ConnectionId,
+                       Repo:         data.Options.Repo,
+                       Owner:        data.Options.Owner,
                },
                Table: Table,
        }
diff --git a/plugins/gitee/tasks/task_data.go b/plugins/gitee/tasks/task_data.go
index c990378b..b8faca57 100644
--- a/plugins/gitee/tasks/task_data.go
+++ b/plugins/gitee/tasks/task_data.go
@@ -25,13 +25,13 @@ import (
 )
 
 type GiteeOptions struct {
-       ConnectionId  uint64   `json:"connectionId"`
-       Tasks         []string `json:"tasks,omitempty"`
-       Since         string
-       Owner         string
-       Repo          string
-       Token         string
-       models.Config `mapstructure:",squash"`
+       ConnectionId               uint64   `json:"connectionId"`
+       Tasks                      []string `json:"tasks,omitempty"`
+       Since                      string
+       Owner                      string
+       Repo                       string
+       Token                      string
+       models.TransformationRules `mapstructure:"transformationRules" 
json:"transformationRules"`
 }
 
 type GiteeTaskData struct {
diff --git a/plugins/gitee/tasks/user_convertor.go 
b/plugins/gitee/tasks/user_convertor.go
index 4c149f4e..dcbb732b 100644
--- a/plugins/gitee/tasks/user_convertor.go
+++ b/plugins/gitee/tasks/user_convertor.go
@@ -20,6 +20,8 @@ package tasks
 import (
        "reflect"
 
+       "github.com/apache/incubator-devlake/plugins/core/dal"
+
        "github.com/apache/incubator-devlake/models/domainlayer"
        "github.com/apache/incubator-devlake/models/domainlayer/didgen"
        "github.com/apache/incubator-devlake/models/domainlayer/user"
@@ -36,11 +38,10 @@ var ConvertUsersMeta = core.SubTaskMeta{
 }
 
 func ConvertUsers(taskCtx core.SubTaskContext) error {
-       db := taskCtx.GetDb()
-       rawDataSubTaskArgs, _ := CreateRawDataSubTaskArgs(taskCtx, 
RAW_COMMIT_TABLE)
+       db := taskCtx.GetDal()
+       rawDataSubTaskArgs, data := CreateRawDataSubTaskArgs(taskCtx, 
RAW_COMMIT_TABLE)
 
-       cursor, err := db.Model(&models.GiteeUser{}).
-               Rows()
+       cursor, err := db.Cursor(dal.From(&models.GiteeUser{}))
        if err != nil {
                return err
        }
@@ -55,7 +56,7 @@ func ConvertUsers(taskCtx core.SubTaskContext) error {
                Convert: func(inputRow interface{}) ([]interface{}, error) {
                        GiteeUser := inputRow.(*models.GiteeUser)
                        domainUser := &user.User{
-                               DomainEntity: domainlayer.DomainEntity{Id: 
userIdGen.Generate(GiteeUser.Id)},
+                               DomainEntity: domainlayer.DomainEntity{Id: 
userIdGen.Generate(data.Options.ConnectionId, GiteeUser.Id)},
                                Name:         GiteeUser.Login,
                                AvatarUrl:    GiteeUser.AvatarUrl,
                        }

Reply via email to