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

abeizn pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git

commit 4fe95b9da737a63cf38a35dab66e994c8a7eb88d
Author: Yingchu Chen <[email protected]>
AuthorDate: Fri Sep 16 17:48:51 2022 +0800

    fix(jenkins): use didgen instead of fmt
---
 plugins/jenkins/e2e/builds_test.go                 |  8 +--
 ...d_repos.csv => _tool_jenkins_build_commits.csv} |  0
 .../e2e/snapshot_tables/_tool_jenkins_builds.csv   | 76 +++++++++++-----------
 .../e2e/snapshot_tables/cicd_pipeline_commits.csv  | 16 ++---
 .../jenkins/e2e/snapshot_tables/cicd_pipelines.csv | 74 ++++++++++-----------
 plugins/jenkins/e2e/snapshot_tables/cicd_tasks.csv | 74 ++++++++++-----------
 .../snapshot_tables/cicd_tasks_after_stages.csv    |  6 +-
 plugins/jenkins/e2e/stages_test.go                 |  2 +-
 plugins/jenkins/impl/impl.go                       |  2 +-
 .../models/{build_repo.go => build_commit.go}      |  6 +-
 .../20220916_modify_jenkins_build.go               | 11 ++++
 .../jenkins/models/migrationscripts/register.go    |  1 +
 plugins/jenkins/tasks/build_cicd_convertor.go      |  5 +-
 ...repo_convertor.go => build_commit_convertor.go} | 15 +++--
 plugins/jenkins/tasks/build_extractor.go           |  2 +-
 plugins/jenkins/tasks/stage_convertor.go           | 11 ++--
 16 files changed, 160 insertions(+), 149 deletions(-)

diff --git a/plugins/jenkins/e2e/builds_test.go 
b/plugins/jenkins/e2e/builds_test.go
index 40112595..bd6fb662 100644
--- a/plugins/jenkins/e2e/builds_test.go
+++ b/plugins/jenkins/e2e/builds_test.go
@@ -44,7 +44,7 @@ func TestJenkinsBuildsDataFlow(t *testing.T) {
 
        // verify extraction
        dataflowTester.FlushTabler(&models.JenkinsBuild{})
-       dataflowTester.FlushTabler(&models.JenkinsBuildRepo{})
+       dataflowTester.FlushTabler(&models.JenkinsBuildCommit{})
        dataflowTester.FlushTabler(&models.JenkinsStage{})
 
        dataflowTester.Subtask(tasks.ExtractApiBuildsMeta, taskData)
@@ -61,8 +61,6 @@ func TestJenkinsBuildsDataFlow(t *testing.T) {
                        "result",
                        "timestamp",
                        "start_time",
-                       "commit_sha",
-
                        "_raw_data_params",
                        "_raw_data_table",
                        "_raw_data_id",
@@ -71,8 +69,8 @@ func TestJenkinsBuildsDataFlow(t *testing.T) {
        )
 
        dataflowTester.VerifyTable(
-               models.JenkinsBuildRepo{},
-               "./snapshot_tables/_tool_jenkins_build_repos.csv",
+               models.JenkinsBuildCommit{},
+               "./snapshot_tables/_tool_jenkins_build_commits.csv",
                []string{
                        "connection_id",
                        "build_name",
diff --git a/plugins/jenkins/e2e/snapshot_tables/_tool_jenkins_build_repos.csv 
b/plugins/jenkins/e2e/snapshot_tables/_tool_jenkins_build_commits.csv
similarity index 100%
rename from plugins/jenkins/e2e/snapshot_tables/_tool_jenkins_build_repos.csv
rename to plugins/jenkins/e2e/snapshot_tables/_tool_jenkins_build_commits.csv
diff --git a/plugins/jenkins/e2e/snapshot_tables/_tool_jenkins_builds.csv 
b/plugins/jenkins/e2e/snapshot_tables/_tool_jenkins_builds.csv
index 5b2dd31a..0d18889c 100644
--- a/plugins/jenkins/e2e/snapshot_tables/_tool_jenkins_builds.csv
+++ b/plugins/jenkins/e2e/snapshot_tables/_tool_jenkins_builds.csv
@@ -1,38 +1,38 @@
-connection_id,job_name,number,duration,display_name,estimated_duration,result,timestamp,start_time,commit_sha,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
-1,devlake,1,14820,devlake 
#1,1457,SUCCESS,1650017416514,2022-04-15T10:10:16.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,95,
-1,devlake,2,2121,devlake 
#2,1457,SUCCESS,1650022548450,2022-04-15T11:35:48.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,94,
-1,devlake,3,1587,devlake 
#3,1457,SUCCESS,1650024049161,2022-04-15T12:00:49.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,93,
-1,devlake,4,13952,devlake 
#4,1457,SUCCESS,1662647203905,2022-09-08T14:26:43.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,92,
-1,devlake,5,1274,devlake 
#5,1457,SUCCESS,1662647231332,2022-09-08T14:27:11.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,91,
-1,devlake,6,1202,devlake 
#6,1457,SUCCESS,1662647242809,2022-09-08T14:27:22.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,90,
-1,devlake,7,1988,devlake 
#7,1457,SUCCESS,1662651625889,2022-09-08T15:40:25.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,89,
-1,devlake,8,1180,devlake 
#8,1457,SUCCESS,1662651640536,2022-09-08T15:40:40.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,88,
-1,free,1,70,dir-test » dir-test-2 » free 
#1,27,SUCCESS,1658385566471,2022-07-21T06:39:26.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,105,
-1,free,2,6,dir-test » dir-test-2 » free 
#2,27,SUCCESS,1658385576367,2022-07-21T06:39:36.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,104,
-1,free,3,4,dir-test » dir-test-2 » free 
#3,27,SUCCESS,1662647217041,2022-09-08T14:26:57.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,103,
-1,free1,1,4,dir-test » dir-test-2 » free1 
#1,9,SUCCESS,1658386240842,2022-07-21T06:50:40.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,112,
-1,free1,2,11,dir-test » dir-test-2 » free1 
#2,9,SUCCESS,1658386250446,2022-07-21T06:50:50.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,111,
-1,free1,3,4,dir-test » dir-test-2 » free1 
#3,9,SUCCESS,1658386255052,2022-07-21T06:50:55.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,110,
-1,free1,4,11,dir-test » dir-test-2 » free1 
#4,9,SUCCESS,1662647217746,2022-09-08T14:26:57.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,109,
-1,pipeline-test,1,1429,dir-test » pipeline-test 
#1,745,SUCCESS,1658385602419,2022-07-21T06:40:02.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,97,
-1,pipeline-test,2,61,dir-test » pipeline-test 
#2,745,SUCCESS,1662647211512,2022-09-08T14:26:51.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,96,
-1,pipeline-test2,1,4564,pipeline-test2 
#1,1972,SUCCESS,1662651613681,2022-09-08T15:40:13.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,100,
-1,pipeline-test2,2,551,pipeline-test2 
#2,1972,SUCCESS,1662651633991,2022-09-08T15:40:33.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,99,
-1,pipeline-test2,3,802,pipeline-test2 
#3,1972,SUCCESS,1662651648992,2022-09-08T15:40:48.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,98,
-1,testfile,1,4,dir-test » testfile 
#1,8,SUCCESS,1658385600801,2022-07-21T06:40:00.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,102,
-1,testfile,2,11,dir-test » testfile 
#2,8,SUCCESS,1662647212436,2022-09-08T14:26:52.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,101,
-1,测试流水线,1,1539,测试流水线 
#1,568,SUCCESS,1662647205888,2022-09-08T14:26:45.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,108,
-1,测试流水线,2,74,测试流水线 
#2,568,SUCCESS,1662647232072,2022-09-08T14:27:12.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,107,
-1,测试流水线,3,90,测试流水线 
#3,568,SUCCESS,1662651649571,2022-09-08T15:40:49.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,106,
-1,这是一个改了名字的测试任务,1,57,这是一个改了名字的测试任务 
#1,6,SUCCESS,1650017153775,2022-04-15T10:05:53.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,124,
-1,这是一个改了名字的测试任务,2,4,这是一个改了名字的测试任务 
#2,6,SUCCESS,1650017177939,2022-04-15T10:06:17.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,123,
-1,这是一个改了名字的测试任务,3,3,这是一个改了名字的测试任务 
#3,6,SUCCESS,1650017186253,2022-04-15T10:06:26.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,122,
-1,这是一个改了名字的测试任务,4,6,这是一个改了名字的测试任务 
#4,6,SUCCESS,1650022556910,2022-04-15T11:35:56.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,121,
-1,这是一个改了名字的测试任务,5,6,这是一个改了名字的测试任务 
#5,6,SUCCESS,1650022558491,2022-04-15T11:35:58.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,120,
-1,这是一个改了名字的测试任务,6,10,这是一个改了名字的测试任务 
#6,6,SUCCESS,1650022560954,2022-04-15T11:36:00.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,119,
-1,这是一个改了名字的测试任务,7,8,这是一个改了名字的测试任务 
#7,6,SUCCESS,1650023883294,2022-04-15T11:58:03.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,118,
-1,这是一个改了名字的测试任务,8,11,这是一个改了名字的测试任务 
#8,6,SUCCESS,1650023894336,2022-04-15T11:58:14.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,117,
-1,这是一个改了名字的测试任务,9,78,这是一个改了名字的测试任务 
#9,6,SUCCESS,1662647207972,2022-09-08T14:26:47.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,116,
-1,这是一个改了名字的测试任务,10,12,这是一个改了名字的测试任务 
#10,6,SUCCESS,1662647233074,2022-09-08T14:27:13.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,115,
-1,这是一个改了名字的测试任务,11,4,这是一个改了名字的测试任务 
#11,6,SUCCESS,1662651656567,2022-09-08T15:40:56.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,114,
-1,这是一个改了名字的测试任务,12,2,这是一个改了名字的测试任务 
#12,6,SUCCESS,1662651657893,2022-09-08T15:40:57.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_builds,113,
+connection_id,full_display_name,job_name,duration,estimated_duration,number,result,timestamp,start_time,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
+1,devlake 
#1,devlake,14820,1457,1,SUCCESS,1650017416514,2022-04-15T10:10:16.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,95,
+1,devlake 
#2,devlake,2121,1457,2,SUCCESS,1650022548450,2022-04-15T11:35:48.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,94,
+1,devlake 
#3,devlake,1587,1457,3,SUCCESS,1650024049161,2022-04-15T12:00:49.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,93,
+1,devlake 
#4,devlake,13952,1457,4,SUCCESS,1662647203905,2022-09-08T14:26:43.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,92,
+1,devlake 
#5,devlake,1274,1457,5,SUCCESS,1662647231332,2022-09-08T14:27:11.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,91,
+1,devlake 
#6,devlake,1202,1457,6,SUCCESS,1662647242809,2022-09-08T14:27:22.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,90,
+1,devlake 
#7,devlake,1988,1457,7,SUCCESS,1662651625889,2022-09-08T15:40:25.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,89,
+1,devlake 
#8,devlake,1180,1457,8,SUCCESS,1662651640536,2022-09-08T15:40:40.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,88,
+1,dir-test » dir-test-2 » free 
#1,free,70,27,1,SUCCESS,1658385566471,2022-07-21T06:39:26.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,105,
+1,dir-test » dir-test-2 » free 
#2,free,6,27,2,SUCCESS,1658385576367,2022-07-21T06:39:36.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,104,
+1,dir-test » dir-test-2 » free 
#3,free,4,27,3,SUCCESS,1662647217041,2022-09-08T14:26:57.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,103,
+1,dir-test » dir-test-2 » free1 
#1,free1,4,9,1,SUCCESS,1658386240842,2022-07-21T06:50:40.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,112,
+1,dir-test » dir-test-2 » free1 
#2,free1,11,9,2,SUCCESS,1658386250446,2022-07-21T06:50:50.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,111,
+1,dir-test » dir-test-2 » free1 
#3,free1,4,9,3,SUCCESS,1658386255052,2022-07-21T06:50:55.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,110,
+1,dir-test » dir-test-2 » free1 
#4,free1,11,9,4,SUCCESS,1662647217746,2022-09-08T14:26:57.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,109,
+1,dir-test » pipeline-test 
#1,pipeline-test,1429,745,1,SUCCESS,1658385602419,2022-07-21T06:40:02.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,97,
+1,dir-test » pipeline-test 
#2,pipeline-test,61,745,2,SUCCESS,1662647211512,2022-09-08T14:26:51.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,96,
+1,dir-test » testfile 
#1,testfile,4,8,1,SUCCESS,1658385600801,2022-07-21T06:40:00.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,102,
+1,dir-test » testfile 
#2,testfile,11,8,2,SUCCESS,1662647212436,2022-09-08T14:26:52.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,101,
+1,pipeline-test2 
#1,pipeline-test2,4564,1972,1,SUCCESS,1662651613681,2022-09-08T15:40:13.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,100,
+1,pipeline-test2 
#2,pipeline-test2,551,1972,2,SUCCESS,1662651633991,2022-09-08T15:40:33.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,99,
+1,pipeline-test2 
#3,pipeline-test2,802,1972,3,SUCCESS,1662651648992,2022-09-08T15:40:48.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,98,
+1,测试流水线 
#1,测试流水线,1539,568,1,SUCCESS,1662647205888,2022-09-08T14:26:45.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,108,
+1,测试流水线 
#2,测试流水线,74,568,2,SUCCESS,1662647232072,2022-09-08T14:27:12.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,107,
+1,测试流水线 
#3,测试流水线,90,568,3,SUCCESS,1662651649571,2022-09-08T15:40:49.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,106,
+1,这是一个改了名字的测试任务 
#1,这是一个改了名字的测试任务,57,6,1,SUCCESS,1650017153775,2022-04-15T10:05:53.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,124,
+1,这是一个改了名字的测试任务 
#10,这是一个改了名字的测试任务,12,6,10,SUCCESS,1662647233074,2022-09-08T14:27:13.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,115,
+1,这是一个改了名字的测试任务 
#11,这是一个改了名字的测试任务,4,6,11,SUCCESS,1662651656567,2022-09-08T15:40:56.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,114,
+1,这是一个改了名字的测试任务 
#12,这是一个改了名字的测试任务,2,6,12,SUCCESS,1662651657893,2022-09-08T15:40:57.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,113,
+1,这是一个改了名字的测试任务 
#2,这是一个改了名字的测试任务,4,6,2,SUCCESS,1650017177939,2022-04-15T10:06:17.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,123,
+1,这是一个改了名字的测试任务 
#3,这是一个改了名字的测试任务,3,6,3,SUCCESS,1650017186253,2022-04-15T10:06:26.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,122,
+1,这是一个改了名字的测试任务 
#4,这是一个改了名字的测试任务,6,6,4,SUCCESS,1650022556910,2022-04-15T11:35:56.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,121,
+1,这是一个改了名字的测试任务 
#5,这是一个改了名字的测试任务,6,6,5,SUCCESS,1650022558491,2022-04-15T11:35:58.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,120,
+1,这是一个改了名字的测试任务 
#6,这是一个改了名字的测试任务,10,6,6,SUCCESS,1650022560954,2022-04-15T11:36:00.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,119,
+1,这是一个改了名字的测试任务 
#7,这是一个改了名字的测试任务,8,6,7,SUCCESS,1650023883294,2022-04-15T11:58:03.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,118,
+1,这是一个改了名字的测试任务 
#8,这是一个改了名字的测试任务,11,6,8,SUCCESS,1650023894336,2022-04-15T11:58:14.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,117,
+1,这是一个改了名字的测试任务 
#9,这是一个改了名字的测试任务,78,6,9,SUCCESS,1662647207972,2022-09-08T14:26:47.000+00:00,"{""ConnectionId"":1}",_raw_jenkins_api_builds,116,
diff --git a/plugins/jenkins/e2e/snapshot_tables/cicd_pipeline_commits.csv 
b/plugins/jenkins/e2e/snapshot_tables/cicd_pipeline_commits.csv
index 71dd0034..5286fcd7 100644
--- a/plugins/jenkins/e2e/snapshot_tables/cicd_pipeline_commits.csv
+++ b/plugins/jenkins/e2e/snapshot_tables/cicd_pipeline_commits.csv
@@ -1,9 +1,9 @@
 pipeline_id,commit_sha,repo_id,repo_url,branch
-jenkins:JenkinsTask:1:devlake 
#1,ceeffdfdd06bce232f9adb3a656265bad13a8473,,https://github.com/merico-dev/lake.git,refs/remotes/origin/main
-jenkins:JenkinsTask:1:devlake 
#2,0f886c74949c3ee7e489188911c7dc0c1d547418,,https://github.com/merico-dev/lake.git,refs/remotes/origin/main
-jenkins:JenkinsTask:1:devlake 
#3,0f886c74949c3ee7e489188911c7dc0c1d547418,,https://github.com/merico-dev/lake.git,refs/remotes/origin/main
-jenkins:JenkinsTask:1:devlake 
#4,20139afef3c6ec9f3ebffcb06e243b145cbef8c6,,https://github.com/merico-dev/lake.git,refs/remotes/origin/main
-jenkins:JenkinsTask:1:devlake 
#5,20139afef3c6ec9f3ebffcb06e243b145cbef8c6,,https://github.com/merico-dev/lake.git,refs/remotes/origin/main
-jenkins:JenkinsTask:1:devlake 
#6,20139afef3c6ec9f3ebffcb06e243b145cbef8c6,,https://github.com/merico-dev/lake.git,refs/remotes/origin/main
-jenkins:JenkinsTask:1:devlake 
#7,0006e8105d70318aff5eeee38d405fa181a32aa0,,https://github.com/merico-dev/lake.git,refs/remotes/origin/main
-jenkins:JenkinsTask:1:devlake 
#8,0006e8105d70318aff5eeee38d405fa181a32aa0,,https://github.com/merico-dev/lake.git,refs/remotes/origin/main
+jenkins:JenkinsBuild:1:devlake 
#1,ceeffdfdd06bce232f9adb3a656265bad13a8473,,https://github.com/merico-dev/lake.git,refs/remotes/origin/main
+jenkins:JenkinsBuild:1:devlake 
#2,0f886c74949c3ee7e489188911c7dc0c1d547418,,https://github.com/merico-dev/lake.git,refs/remotes/origin/main
+jenkins:JenkinsBuild:1:devlake 
#3,0f886c74949c3ee7e489188911c7dc0c1d547418,,https://github.com/merico-dev/lake.git,refs/remotes/origin/main
+jenkins:JenkinsBuild:1:devlake 
#4,20139afef3c6ec9f3ebffcb06e243b145cbef8c6,,https://github.com/merico-dev/lake.git,refs/remotes/origin/main
+jenkins:JenkinsBuild:1:devlake 
#5,20139afef3c6ec9f3ebffcb06e243b145cbef8c6,,https://github.com/merico-dev/lake.git,refs/remotes/origin/main
+jenkins:JenkinsBuild:1:devlake 
#6,20139afef3c6ec9f3ebffcb06e243b145cbef8c6,,https://github.com/merico-dev/lake.git,refs/remotes/origin/main
+jenkins:JenkinsBuild:1:devlake 
#7,0006e8105d70318aff5eeee38d405fa181a32aa0,,https://github.com/merico-dev/lake.git,refs/remotes/origin/main
+jenkins:JenkinsBuild:1:devlake 
#8,0006e8105d70318aff5eeee38d405fa181a32aa0,,https://github.com/merico-dev/lake.git,refs/remotes/origin/main
diff --git a/plugins/jenkins/e2e/snapshot_tables/cicd_pipelines.csv 
b/plugins/jenkins/e2e/snapshot_tables/cicd_pipelines.csv
index 3b3c105a..0964ffd4 100644
--- a/plugins/jenkins/e2e/snapshot_tables/cicd_pipelines.csv
+++ b/plugins/jenkins/e2e/snapshot_tables/cicd_pipelines.csv
@@ -1,38 +1,38 @@
 id,name,result,status,type,duration_sec,environment,created_date,finished_date
-jenkins:JenkinsPipeline:1:devlake 
#1,devlake,SUCCESS,DONE,,14,,2022-04-15T10:10:16.000+00:00,2022-04-15T10:10:30.000+00:00
-jenkins:JenkinsPipeline:1:devlake 
#2,devlake,SUCCESS,DONE,,2,,2022-04-15T11:35:48.000+00:00,2022-04-15T11:35:50.000+00:00
-jenkins:JenkinsPipeline:1:devlake 
#3,devlake,SUCCESS,DONE,,1,,2022-04-15T12:00:49.000+00:00,2022-04-15T12:00:50.000+00:00
-jenkins:JenkinsPipeline:1:devlake 
#4,devlake,SUCCESS,DONE,,13,,2022-09-08T14:26:43.000+00:00,2022-09-08T14:26:56.000+00:00
-jenkins:JenkinsPipeline:1:devlake 
#5,devlake,SUCCESS,DONE,,1,,2022-09-08T14:27:11.000+00:00,2022-09-08T14:27:12.000+00:00
-jenkins:JenkinsPipeline:1:devlake 
#6,devlake,SUCCESS,DONE,,1,,2022-09-08T14:27:22.000+00:00,2022-09-08T14:27:23.000+00:00
-jenkins:JenkinsPipeline:1:devlake 
#7,devlake,SUCCESS,DONE,,1,,2022-09-08T15:40:25.000+00:00,2022-09-08T15:40:26.000+00:00
-jenkins:JenkinsPipeline:1:devlake 
#8,devlake,SUCCESS,DONE,,1,,2022-09-08T15:40:40.000+00:00,2022-09-08T15:40:41.000+00:00
-jenkins:JenkinsPipeline:1:dir-test » dir-test-2 » free 
#1,free,SUCCESS,DONE,,0,,2022-07-21T06:39:26.000+00:00,2022-07-21T06:39:26.000+00:00
-jenkins:JenkinsPipeline:1:dir-test » dir-test-2 » free 
#2,free,SUCCESS,DONE,,0,,2022-07-21T06:39:36.000+00:00,2022-07-21T06:39:36.000+00:00
-jenkins:JenkinsPipeline:1:dir-test » dir-test-2 » free 
#3,free,SUCCESS,DONE,,0,,2022-09-08T14:26:57.000+00:00,2022-09-08T14:26:57.000+00:00
-jenkins:JenkinsPipeline:1:dir-test » dir-test-2 » free1 
#1,free1,SUCCESS,DONE,,0,,2022-07-21T06:50:40.000+00:00,2022-07-21T06:50:40.000+00:00
-jenkins:JenkinsPipeline:1:dir-test » dir-test-2 » free1 
#2,free1,SUCCESS,DONE,,0,,2022-07-21T06:50:50.000+00:00,2022-07-21T06:50:50.000+00:00
-jenkins:JenkinsPipeline:1:dir-test » dir-test-2 » free1 
#3,free1,SUCCESS,DONE,,0,,2022-07-21T06:50:55.000+00:00,2022-07-21T06:50:55.000+00:00
-jenkins:JenkinsPipeline:1:dir-test » dir-test-2 » free1 
#4,free1,SUCCESS,DONE,,0,,2022-09-08T14:26:57.000+00:00,2022-09-08T14:26:57.000+00:00
-jenkins:JenkinsPipeline:1:dir-test » pipeline-test 
#1,pipeline-test,SUCCESS,DONE,,1,,2022-07-21T06:40:02.000+00:00,2022-07-21T06:40:03.000+00:00
-jenkins:JenkinsPipeline:1:dir-test » pipeline-test 
#2,pipeline-test,SUCCESS,DONE,,0,,2022-09-08T14:26:51.000+00:00,2022-09-08T14:26:51.000+00:00
-jenkins:JenkinsPipeline:1:dir-test » testfile 
#1,testfile,SUCCESS,DONE,,0,,2022-07-21T06:40:00.000+00:00,2022-07-21T06:40:00.000+00:00
-jenkins:JenkinsPipeline:1:dir-test » testfile 
#2,testfile,SUCCESS,DONE,,0,,2022-09-08T14:26:52.000+00:00,2022-09-08T14:26:52.000+00:00
-jenkins:JenkinsPipeline:1:pipeline-test2 
#1,pipeline-test2,SUCCESS,DONE,,4,,2022-09-08T15:40:13.000+00:00,2022-09-08T15:40:17.000+00:00
-jenkins:JenkinsPipeline:1:pipeline-test2 
#2,pipeline-test2,SUCCESS,DONE,,0,,2022-09-08T15:40:33.000+00:00,2022-09-08T15:40:33.000+00:00
-jenkins:JenkinsPipeline:1:pipeline-test2 
#3,pipeline-test2,SUCCESS,DONE,,0,,2022-09-08T15:40:48.000+00:00,2022-09-08T15:40:48.000+00:00
-jenkins:JenkinsPipeline:1:测试流水线 
#1,测试流水线,SUCCESS,DONE,,1,,2022-09-08T14:26:45.000+00:00,2022-09-08T14:26:46.000+00:00
-jenkins:JenkinsPipeline:1:测试流水线 
#2,测试流水线,SUCCESS,DONE,,0,,2022-09-08T14:27:12.000+00:00,2022-09-08T14:27:12.000+00:00
-jenkins:JenkinsPipeline:1:测试流水线 
#3,测试流水线,SUCCESS,DONE,,0,,2022-09-08T15:40:49.000+00:00,2022-09-08T15:40:49.000+00:00
-jenkins:JenkinsPipeline:1:这是一个改了名字的测试任务 
#1,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-04-15T10:05:53.000+00:00,2022-04-15T10:05:53.000+00:00
-jenkins:JenkinsPipeline:1:这是一个改了名字的测试任务 
#10,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-09-08T14:27:13.000+00:00,2022-09-08T14:27:13.000+00:00
-jenkins:JenkinsPipeline:1:这是一个改了名字的测试任务 
#11,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-09-08T15:40:56.000+00:00,2022-09-08T15:40:56.000+00:00
-jenkins:JenkinsPipeline:1:这是一个改了名字的测试任务 
#12,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-09-08T15:40:57.000+00:00,2022-09-08T15:40:57.000+00:00
-jenkins:JenkinsPipeline:1:这是一个改了名字的测试任务 
#2,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-04-15T10:06:17.000+00:00,2022-04-15T10:06:17.000+00:00
-jenkins:JenkinsPipeline:1:这是一个改了名字的测试任务 
#3,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-04-15T10:06:26.000+00:00,2022-04-15T10:06:26.000+00:00
-jenkins:JenkinsPipeline:1:这是一个改了名字的测试任务 
#4,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-04-15T11:35:56.000+00:00,2022-04-15T11:35:56.000+00:00
-jenkins:JenkinsPipeline:1:这是一个改了名字的测试任务 
#5,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-04-15T11:35:58.000+00:00,2022-04-15T11:35:58.000+00:00
-jenkins:JenkinsPipeline:1:这是一个改了名字的测试任务 
#6,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-04-15T11:36:00.000+00:00,2022-04-15T11:36:00.000+00:00
-jenkins:JenkinsPipeline:1:这是一个改了名字的测试任务 
#7,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-04-15T11:58:03.000+00:00,2022-04-15T11:58:03.000+00:00
-jenkins:JenkinsPipeline:1:这是一个改了名字的测试任务 
#8,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-04-15T11:58:14.000+00:00,2022-04-15T11:58:14.000+00:00
-jenkins:JenkinsPipeline:1:这是一个改了名字的测试任务 
#9,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-09-08T14:26:47.000+00:00,2022-09-08T14:26:47.000+00:00
+jenkins:JenkinsBuild:1:devlake 
#1,devlake,SUCCESS,DONE,,14,,2022-04-15T10:10:16.000+00:00,2022-04-15T10:10:30.000+00:00
+jenkins:JenkinsBuild:1:devlake 
#2,devlake,SUCCESS,DONE,,2,,2022-04-15T11:35:48.000+00:00,2022-04-15T11:35:50.000+00:00
+jenkins:JenkinsBuild:1:devlake 
#3,devlake,SUCCESS,DONE,,1,,2022-04-15T12:00:49.000+00:00,2022-04-15T12:00:50.000+00:00
+jenkins:JenkinsBuild:1:devlake 
#4,devlake,SUCCESS,DONE,,13,,2022-09-08T14:26:43.000+00:00,2022-09-08T14:26:56.000+00:00
+jenkins:JenkinsBuild:1:devlake 
#5,devlake,SUCCESS,DONE,,1,,2022-09-08T14:27:11.000+00:00,2022-09-08T14:27:12.000+00:00
+jenkins:JenkinsBuild:1:devlake 
#6,devlake,SUCCESS,DONE,,1,,2022-09-08T14:27:22.000+00:00,2022-09-08T14:27:23.000+00:00
+jenkins:JenkinsBuild:1:devlake 
#7,devlake,SUCCESS,DONE,,1,,2022-09-08T15:40:25.000+00:00,2022-09-08T15:40:26.000+00:00
+jenkins:JenkinsBuild:1:devlake 
#8,devlake,SUCCESS,DONE,,1,,2022-09-08T15:40:40.000+00:00,2022-09-08T15:40:41.000+00:00
+jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free 
#1,free,SUCCESS,DONE,,0,,2022-07-21T06:39:26.000+00:00,2022-07-21T06:39:26.000+00:00
+jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free 
#2,free,SUCCESS,DONE,,0,,2022-07-21T06:39:36.000+00:00,2022-07-21T06:39:36.000+00:00
+jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free 
#3,free,SUCCESS,DONE,,0,,2022-09-08T14:26:57.000+00:00,2022-09-08T14:26:57.000+00:00
+jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free1 
#1,free1,SUCCESS,DONE,,0,,2022-07-21T06:50:40.000+00:00,2022-07-21T06:50:40.000+00:00
+jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free1 
#2,free1,SUCCESS,DONE,,0,,2022-07-21T06:50:50.000+00:00,2022-07-21T06:50:50.000+00:00
+jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free1 
#3,free1,SUCCESS,DONE,,0,,2022-07-21T06:50:55.000+00:00,2022-07-21T06:50:55.000+00:00
+jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free1 
#4,free1,SUCCESS,DONE,,0,,2022-09-08T14:26:57.000+00:00,2022-09-08T14:26:57.000+00:00
+jenkins:JenkinsBuild:1:dir-test » pipeline-test 
#1,pipeline-test,SUCCESS,DONE,,1,,2022-07-21T06:40:02.000+00:00,2022-07-21T06:40:03.000+00:00
+jenkins:JenkinsBuild:1:dir-test » pipeline-test 
#2,pipeline-test,SUCCESS,DONE,,0,,2022-09-08T14:26:51.000+00:00,2022-09-08T14:26:51.000+00:00
+jenkins:JenkinsBuild:1:dir-test » testfile 
#1,testfile,SUCCESS,DONE,,0,,2022-07-21T06:40:00.000+00:00,2022-07-21T06:40:00.000+00:00
+jenkins:JenkinsBuild:1:dir-test » testfile 
#2,testfile,SUCCESS,DONE,,0,,2022-09-08T14:26:52.000+00:00,2022-09-08T14:26:52.000+00:00
+jenkins:JenkinsBuild:1:pipeline-test2 
#1,pipeline-test2,SUCCESS,DONE,,4,,2022-09-08T15:40:13.000+00:00,2022-09-08T15:40:17.000+00:00
+jenkins:JenkinsBuild:1:pipeline-test2 
#2,pipeline-test2,SUCCESS,DONE,,0,,2022-09-08T15:40:33.000+00:00,2022-09-08T15:40:33.000+00:00
+jenkins:JenkinsBuild:1:pipeline-test2 
#3,pipeline-test2,SUCCESS,DONE,,0,,2022-09-08T15:40:48.000+00:00,2022-09-08T15:40:48.000+00:00
+jenkins:JenkinsBuild:1:测试流水线 
#1,测试流水线,SUCCESS,DONE,,1,,2022-09-08T14:26:45.000+00:00,2022-09-08T14:26:46.000+00:00
+jenkins:JenkinsBuild:1:测试流水线 
#2,测试流水线,SUCCESS,DONE,,0,,2022-09-08T14:27:12.000+00:00,2022-09-08T14:27:12.000+00:00
+jenkins:JenkinsBuild:1:测试流水线 
#3,测试流水线,SUCCESS,DONE,,0,,2022-09-08T15:40:49.000+00:00,2022-09-08T15:40:49.000+00:00
+jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#1,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-04-15T10:05:53.000+00:00,2022-04-15T10:05:53.000+00:00
+jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#10,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-09-08T14:27:13.000+00:00,2022-09-08T14:27:13.000+00:00
+jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#11,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-09-08T15:40:56.000+00:00,2022-09-08T15:40:56.000+00:00
+jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#12,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-09-08T15:40:57.000+00:00,2022-09-08T15:40:57.000+00:00
+jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#2,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-04-15T10:06:17.000+00:00,2022-04-15T10:06:17.000+00:00
+jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#3,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-04-15T10:06:26.000+00:00,2022-04-15T10:06:26.000+00:00
+jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#4,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-04-15T11:35:56.000+00:00,2022-04-15T11:35:56.000+00:00
+jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#5,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-04-15T11:35:58.000+00:00,2022-04-15T11:35:58.000+00:00
+jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#6,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-04-15T11:36:00.000+00:00,2022-04-15T11:36:00.000+00:00
+jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#7,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-04-15T11:58:03.000+00:00,2022-04-15T11:58:03.000+00:00
+jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#8,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-04-15T11:58:14.000+00:00,2022-04-15T11:58:14.000+00:00
+jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#9,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-09-08T14:26:47.000+00:00,2022-09-08T14:26:47.000+00:00
diff --git a/plugins/jenkins/e2e/snapshot_tables/cicd_tasks.csv 
b/plugins/jenkins/e2e/snapshot_tables/cicd_tasks.csv
index bad13e28..1e41b084 100644
--- a/plugins/jenkins/e2e/snapshot_tables/cicd_tasks.csv
+++ b/plugins/jenkins/e2e/snapshot_tables/cicd_tasks.csv
@@ -1,38 +1,38 @@
 
id,name,pipeline_id,result,status,type,environment,duration_sec,started_date,finished_date
-jenkins:JenkinsTask:1:devlake #1,devlake,jenkins:JenkinsPipeline:1:devlake 
#1,SUCCESS,DONE,,,14,2022-04-15T10:10:16.000+00:00,2022-04-15T10:10:30.000+00:00
-jenkins:JenkinsTask:1:devlake #2,devlake,jenkins:JenkinsPipeline:1:devlake 
#2,SUCCESS,DONE,,,2,2022-04-15T11:35:48.000+00:00,2022-04-15T11:35:50.000+00:00
-jenkins:JenkinsTask:1:devlake #3,devlake,jenkins:JenkinsPipeline:1:devlake 
#3,SUCCESS,DONE,,,1,2022-04-15T12:00:49.000+00:00,2022-04-15T12:00:50.000+00:00
-jenkins:JenkinsTask:1:devlake #4,devlake,jenkins:JenkinsPipeline:1:devlake 
#4,SUCCESS,DONE,,,13,2022-09-08T14:26:43.000+00:00,2022-09-08T14:26:56.000+00:00
-jenkins:JenkinsTask:1:devlake #5,devlake,jenkins:JenkinsPipeline:1:devlake 
#5,SUCCESS,DONE,,,1,2022-09-08T14:27:11.000+00:00,2022-09-08T14:27:12.000+00:00
-jenkins:JenkinsTask:1:devlake #6,devlake,jenkins:JenkinsPipeline:1:devlake 
#6,SUCCESS,DONE,,,1,2022-09-08T14:27:22.000+00:00,2022-09-08T14:27:23.000+00:00
-jenkins:JenkinsTask:1:devlake #7,devlake,jenkins:JenkinsPipeline:1:devlake 
#7,SUCCESS,DONE,,,1,2022-09-08T15:40:25.000+00:00,2022-09-08T15:40:26.000+00:00
-jenkins:JenkinsTask:1:devlake #8,devlake,jenkins:JenkinsPipeline:1:devlake 
#8,SUCCESS,DONE,,,1,2022-09-08T15:40:40.000+00:00,2022-09-08T15:40:41.000+00:00
-jenkins:JenkinsTask:1:dir-test » dir-test-2 » free 
#1,free,jenkins:JenkinsPipeline:1:dir-test » dir-test-2 » free 
#1,SUCCESS,DONE,,,0,2022-07-21T06:39:26.000+00:00,2022-07-21T06:39:26.000+00:00
-jenkins:JenkinsTask:1:dir-test » dir-test-2 » free 
#2,free,jenkins:JenkinsPipeline:1:dir-test » dir-test-2 » free 
#2,SUCCESS,DONE,,,0,2022-07-21T06:39:36.000+00:00,2022-07-21T06:39:36.000+00:00
-jenkins:JenkinsTask:1:dir-test » dir-test-2 » free 
#3,free,jenkins:JenkinsPipeline:1:dir-test » dir-test-2 » free 
#3,SUCCESS,DONE,,,0,2022-09-08T14:26:57.000+00:00,2022-09-08T14:26:57.000+00:00
-jenkins:JenkinsTask:1:dir-test » dir-test-2 » free1 
#1,free1,jenkins:JenkinsPipeline:1:dir-test » dir-test-2 » free1 
#1,SUCCESS,DONE,,,0,2022-07-21T06:50:40.000+00:00,2022-07-21T06:50:40.000+00:00
-jenkins:JenkinsTask:1:dir-test » dir-test-2 » free1 
#2,free1,jenkins:JenkinsPipeline:1:dir-test » dir-test-2 » free1 
#2,SUCCESS,DONE,,,0,2022-07-21T06:50:50.000+00:00,2022-07-21T06:50:50.000+00:00
-jenkins:JenkinsTask:1:dir-test » dir-test-2 » free1 
#3,free1,jenkins:JenkinsPipeline:1:dir-test » dir-test-2 » free1 
#3,SUCCESS,DONE,,,0,2022-07-21T06:50:55.000+00:00,2022-07-21T06:50:55.000+00:00
-jenkins:JenkinsTask:1:dir-test » dir-test-2 » free1 
#4,free1,jenkins:JenkinsPipeline:1:dir-test » dir-test-2 » free1 
#4,SUCCESS,DONE,,,0,2022-09-08T14:26:57.000+00:00,2022-09-08T14:26:57.000+00:00
-jenkins:JenkinsTask:1:dir-test » pipeline-test 
#1,pipeline-test,jenkins:JenkinsPipeline:1:dir-test » pipeline-test 
#1,SUCCESS,DONE,,,1,2022-07-21T06:40:02.000+00:00,2022-07-21T06:40:03.000+00:00
-jenkins:JenkinsTask:1:dir-test » pipeline-test 
#2,pipeline-test,jenkins:JenkinsPipeline:1:dir-test » pipeline-test 
#2,SUCCESS,DONE,,,0,2022-09-08T14:26:51.000+00:00,2022-09-08T14:26:51.000+00:00
-jenkins:JenkinsTask:1:dir-test » testfile 
#1,testfile,jenkins:JenkinsPipeline:1:dir-test » testfile 
#1,SUCCESS,DONE,,,0,2022-07-21T06:40:00.000+00:00,2022-07-21T06:40:00.000+00:00
-jenkins:JenkinsTask:1:dir-test » testfile 
#2,testfile,jenkins:JenkinsPipeline:1:dir-test » testfile 
#2,SUCCESS,DONE,,,0,2022-09-08T14:26:52.000+00:00,2022-09-08T14:26:52.000+00:00
-jenkins:JenkinsTask:1:pipeline-test2 
#1,pipeline-test2,jenkins:JenkinsPipeline:1:pipeline-test2 
#1,SUCCESS,DONE,,,4,2022-09-08T15:40:13.000+00:00,2022-09-08T15:40:17.000+00:00
-jenkins:JenkinsTask:1:pipeline-test2 
#2,pipeline-test2,jenkins:JenkinsPipeline:1:pipeline-test2 
#2,SUCCESS,DONE,,,0,2022-09-08T15:40:33.000+00:00,2022-09-08T15:40:33.000+00:00
-jenkins:JenkinsTask:1:pipeline-test2 
#3,pipeline-test2,jenkins:JenkinsPipeline:1:pipeline-test2 
#3,SUCCESS,DONE,,,0,2022-09-08T15:40:48.000+00:00,2022-09-08T15:40:48.000+00:00
-jenkins:JenkinsTask:1:测试流水线 #1,测试流水线,jenkins:JenkinsPipeline:1:测试流水线 
#1,SUCCESS,DONE,,,1,2022-09-08T14:26:45.000+00:00,2022-09-08T14:26:46.000+00:00
-jenkins:JenkinsTask:1:测试流水线 #2,测试流水线,jenkins:JenkinsPipeline:1:测试流水线 
#2,SUCCESS,DONE,,,0,2022-09-08T14:27:12.000+00:00,2022-09-08T14:27:12.000+00:00
-jenkins:JenkinsTask:1:测试流水线 #3,测试流水线,jenkins:JenkinsPipeline:1:测试流水线 
#3,SUCCESS,DONE,,,0,2022-09-08T15:40:49.000+00:00,2022-09-08T15:40:49.000+00:00
-jenkins:JenkinsTask:1:这是一个改了名字的测试任务 
#1,这是一个改了名字的测试任务,jenkins:JenkinsPipeline:1:这是一个改了名字的测试任务 
#1,SUCCESS,DONE,,,0,2022-04-15T10:05:53.000+00:00,2022-04-15T10:05:53.000+00:00
-jenkins:JenkinsTask:1:这是一个改了名字的测试任务 
#10,这是一个改了名字的测试任务,jenkins:JenkinsPipeline:1:这是一个改了名字的测试任务 
#10,SUCCESS,DONE,,,0,2022-09-08T14:27:13.000+00:00,2022-09-08T14:27:13.000+00:00
-jenkins:JenkinsTask:1:这是一个改了名字的测试任务 
#11,这是一个改了名字的测试任务,jenkins:JenkinsPipeline:1:这是一个改了名字的测试任务 
#11,SUCCESS,DONE,,,0,2022-09-08T15:40:56.000+00:00,2022-09-08T15:40:56.000+00:00
-jenkins:JenkinsTask:1:这是一个改了名字的测试任务 
#12,这是一个改了名字的测试任务,jenkins:JenkinsPipeline:1:这是一个改了名字的测试任务 
#12,SUCCESS,DONE,,,0,2022-09-08T15:40:57.000+00:00,2022-09-08T15:40:57.000+00:00
-jenkins:JenkinsTask:1:这是一个改了名字的测试任务 
#2,这是一个改了名字的测试任务,jenkins:JenkinsPipeline:1:这是一个改了名字的测试任务 
#2,SUCCESS,DONE,,,0,2022-04-15T10:06:17.000+00:00,2022-04-15T10:06:17.000+00:00
-jenkins:JenkinsTask:1:这是一个改了名字的测试任务 
#3,这是一个改了名字的测试任务,jenkins:JenkinsPipeline:1:这是一个改了名字的测试任务 
#3,SUCCESS,DONE,,,0,2022-04-15T10:06:26.000+00:00,2022-04-15T10:06:26.000+00:00
-jenkins:JenkinsTask:1:这是一个改了名字的测试任务 
#4,这是一个改了名字的测试任务,jenkins:JenkinsPipeline:1:这是一个改了名字的测试任务 
#4,SUCCESS,DONE,,,0,2022-04-15T11:35:56.000+00:00,2022-04-15T11:35:56.000+00:00
-jenkins:JenkinsTask:1:这是一个改了名字的测试任务 
#5,这是一个改了名字的测试任务,jenkins:JenkinsPipeline:1:这是一个改了名字的测试任务 
#5,SUCCESS,DONE,,,0,2022-04-15T11:35:58.000+00:00,2022-04-15T11:35:58.000+00:00
-jenkins:JenkinsTask:1:这是一个改了名字的测试任务 
#6,这是一个改了名字的测试任务,jenkins:JenkinsPipeline:1:这是一个改了名字的测试任务 
#6,SUCCESS,DONE,,,0,2022-04-15T11:36:00.000+00:00,2022-04-15T11:36:00.000+00:00
-jenkins:JenkinsTask:1:这是一个改了名字的测试任务 
#7,这是一个改了名字的测试任务,jenkins:JenkinsPipeline:1:这是一个改了名字的测试任务 
#7,SUCCESS,DONE,,,0,2022-04-15T11:58:03.000+00:00,2022-04-15T11:58:03.000+00:00
-jenkins:JenkinsTask:1:这是一个改了名字的测试任务 
#8,这是一个改了名字的测试任务,jenkins:JenkinsPipeline:1:这是一个改了名字的测试任务 
#8,SUCCESS,DONE,,,0,2022-04-15T11:58:14.000+00:00,2022-04-15T11:58:14.000+00:00
-jenkins:JenkinsTask:1:这是一个改了名字的测试任务 
#9,这是一个改了名字的测试任务,jenkins:JenkinsPipeline:1:这是一个改了名字的测试任务 
#9,SUCCESS,DONE,,,0,2022-09-08T14:26:47.000+00:00,2022-09-08T14:26:47.000+00:00
+jenkins:JenkinsBuild:1:devlake #1,devlake,jenkins:JenkinsBuild:1:devlake 
#1,SUCCESS,DONE,,,14,2022-04-15T10:10:16.000+00:00,2022-04-15T10:10:30.000+00:00
+jenkins:JenkinsBuild:1:devlake #2,devlake,jenkins:JenkinsBuild:1:devlake 
#2,SUCCESS,DONE,,,2,2022-04-15T11:35:48.000+00:00,2022-04-15T11:35:50.000+00:00
+jenkins:JenkinsBuild:1:devlake #3,devlake,jenkins:JenkinsBuild:1:devlake 
#3,SUCCESS,DONE,,,1,2022-04-15T12:00:49.000+00:00,2022-04-15T12:00:50.000+00:00
+jenkins:JenkinsBuild:1:devlake #4,devlake,jenkins:JenkinsBuild:1:devlake 
#4,SUCCESS,DONE,,,13,2022-09-08T14:26:43.000+00:00,2022-09-08T14:26:56.000+00:00
+jenkins:JenkinsBuild:1:devlake #5,devlake,jenkins:JenkinsBuild:1:devlake 
#5,SUCCESS,DONE,,,1,2022-09-08T14:27:11.000+00:00,2022-09-08T14:27:12.000+00:00
+jenkins:JenkinsBuild:1:devlake #6,devlake,jenkins:JenkinsBuild:1:devlake 
#6,SUCCESS,DONE,,,1,2022-09-08T14:27:22.000+00:00,2022-09-08T14:27:23.000+00:00
+jenkins:JenkinsBuild:1:devlake #7,devlake,jenkins:JenkinsBuild:1:devlake 
#7,SUCCESS,DONE,,,1,2022-09-08T15:40:25.000+00:00,2022-09-08T15:40:26.000+00:00
+jenkins:JenkinsBuild:1:devlake #8,devlake,jenkins:JenkinsBuild:1:devlake 
#8,SUCCESS,DONE,,,1,2022-09-08T15:40:40.000+00:00,2022-09-08T15:40:41.000+00:00
+jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free 
#1,free,jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free 
#1,SUCCESS,DONE,,,0,2022-07-21T06:39:26.000+00:00,2022-07-21T06:39:26.000+00:00
+jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free 
#2,free,jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free 
#2,SUCCESS,DONE,,,0,2022-07-21T06:39:36.000+00:00,2022-07-21T06:39:36.000+00:00
+jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free 
#3,free,jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free 
#3,SUCCESS,DONE,,,0,2022-09-08T14:26:57.000+00:00,2022-09-08T14:26:57.000+00:00
+jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free1 
#1,free1,jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free1 
#1,SUCCESS,DONE,,,0,2022-07-21T06:50:40.000+00:00,2022-07-21T06:50:40.000+00:00
+jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free1 
#2,free1,jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free1 
#2,SUCCESS,DONE,,,0,2022-07-21T06:50:50.000+00:00,2022-07-21T06:50:50.000+00:00
+jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free1 
#3,free1,jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free1 
#3,SUCCESS,DONE,,,0,2022-07-21T06:50:55.000+00:00,2022-07-21T06:50:55.000+00:00
+jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free1 
#4,free1,jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free1 
#4,SUCCESS,DONE,,,0,2022-09-08T14:26:57.000+00:00,2022-09-08T14:26:57.000+00:00
+jenkins:JenkinsBuild:1:dir-test » pipeline-test 
#1,pipeline-test,jenkins:JenkinsBuild:1:dir-test » pipeline-test 
#1,SUCCESS,DONE,,,1,2022-07-21T06:40:02.000+00:00,2022-07-21T06:40:03.000+00:00
+jenkins:JenkinsBuild:1:dir-test » pipeline-test 
#2,pipeline-test,jenkins:JenkinsBuild:1:dir-test » pipeline-test 
#2,SUCCESS,DONE,,,0,2022-09-08T14:26:51.000+00:00,2022-09-08T14:26:51.000+00:00
+jenkins:JenkinsBuild:1:dir-test » testfile 
#1,testfile,jenkins:JenkinsBuild:1:dir-test » testfile 
#1,SUCCESS,DONE,,,0,2022-07-21T06:40:00.000+00:00,2022-07-21T06:40:00.000+00:00
+jenkins:JenkinsBuild:1:dir-test » testfile 
#2,testfile,jenkins:JenkinsBuild:1:dir-test » testfile 
#2,SUCCESS,DONE,,,0,2022-09-08T14:26:52.000+00:00,2022-09-08T14:26:52.000+00:00
+jenkins:JenkinsBuild:1:pipeline-test2 
#1,pipeline-test2,jenkins:JenkinsBuild:1:pipeline-test2 
#1,SUCCESS,DONE,,,4,2022-09-08T15:40:13.000+00:00,2022-09-08T15:40:17.000+00:00
+jenkins:JenkinsBuild:1:pipeline-test2 
#2,pipeline-test2,jenkins:JenkinsBuild:1:pipeline-test2 
#2,SUCCESS,DONE,,,0,2022-09-08T15:40:33.000+00:00,2022-09-08T15:40:33.000+00:00
+jenkins:JenkinsBuild:1:pipeline-test2 
#3,pipeline-test2,jenkins:JenkinsBuild:1:pipeline-test2 
#3,SUCCESS,DONE,,,0,2022-09-08T15:40:48.000+00:00,2022-09-08T15:40:48.000+00:00
+jenkins:JenkinsBuild:1:测试流水线 #1,测试流水线,jenkins:JenkinsBuild:1:测试流水线 
#1,SUCCESS,DONE,,,1,2022-09-08T14:26:45.000+00:00,2022-09-08T14:26:46.000+00:00
+jenkins:JenkinsBuild:1:测试流水线 #2,测试流水线,jenkins:JenkinsBuild:1:测试流水线 
#2,SUCCESS,DONE,,,0,2022-09-08T14:27:12.000+00:00,2022-09-08T14:27:12.000+00:00
+jenkins:JenkinsBuild:1:测试流水线 #3,测试流水线,jenkins:JenkinsBuild:1:测试流水线 
#3,SUCCESS,DONE,,,0,2022-09-08T15:40:49.000+00:00,2022-09-08T15:40:49.000+00:00
+jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#1,这是一个改了名字的测试任务,jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#1,SUCCESS,DONE,,,0,2022-04-15T10:05:53.000+00:00,2022-04-15T10:05:53.000+00:00
+jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#10,这是一个改了名字的测试任务,jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#10,SUCCESS,DONE,,,0,2022-09-08T14:27:13.000+00:00,2022-09-08T14:27:13.000+00:00
+jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#11,这是一个改了名字的测试任务,jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#11,SUCCESS,DONE,,,0,2022-09-08T15:40:56.000+00:00,2022-09-08T15:40:56.000+00:00
+jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#12,这是一个改了名字的测试任务,jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#12,SUCCESS,DONE,,,0,2022-09-08T15:40:57.000+00:00,2022-09-08T15:40:57.000+00:00
+jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#2,这是一个改了名字的测试任务,jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#2,SUCCESS,DONE,,,0,2022-04-15T10:06:17.000+00:00,2022-04-15T10:06:17.000+00:00
+jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#3,这是一个改了名字的测试任务,jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#3,SUCCESS,DONE,,,0,2022-04-15T10:06:26.000+00:00,2022-04-15T10:06:26.000+00:00
+jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#4,这是一个改了名字的测试任务,jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#4,SUCCESS,DONE,,,0,2022-04-15T11:35:56.000+00:00,2022-04-15T11:35:56.000+00:00
+jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#5,这是一个改了名字的测试任务,jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#5,SUCCESS,DONE,,,0,2022-04-15T11:35:58.000+00:00,2022-04-15T11:35:58.000+00:00
+jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#6,这是一个改了名字的测试任务,jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#6,SUCCESS,DONE,,,0,2022-04-15T11:36:00.000+00:00,2022-04-15T11:36:00.000+00:00
+jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#7,这是一个改了名字的测试任务,jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#7,SUCCESS,DONE,,,0,2022-04-15T11:58:03.000+00:00,2022-04-15T11:58:03.000+00:00
+jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#8,这是一个改了名字的测试任务,jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#8,SUCCESS,DONE,,,0,2022-04-15T11:58:14.000+00:00,2022-04-15T11:58:14.000+00:00
+jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#9,这是一个改了名字的测试任务,jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 
#9,SUCCESS,DONE,,,0,2022-09-08T14:26:47.000+00:00,2022-09-08T14:26:47.000+00:00
diff --git a/plugins/jenkins/e2e/snapshot_tables/cicd_tasks_after_stages.csv 
b/plugins/jenkins/e2e/snapshot_tables/cicd_tasks_after_stages.csv
index 81f6f5af..3480c821 100644
--- a/plugins/jenkins/e2e/snapshot_tables/cicd_tasks_after_stages.csv
+++ b/plugins/jenkins/e2e/snapshot_tables/cicd_tasks_after_stages.csv
@@ -1,4 +1,4 @@
 
id,name,pipeline_id,result,status,type,duration_sec,started_date,finished_date,environment,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
-jenkins:JenkinsStage:1:pipeline-test2 
#1:Hello,Hello,jenkins:JenkinsPipeline:1:pipeline-test2 
#1,ABORT,DONE,,0,1970-01-01T00:00:00.000+00:00,2022-09-08T15:40:17.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,5,
-jenkins:JenkinsStage:1:pipeline-test2 
#2:Hello,Hello,jenkins:JenkinsPipeline:1:pipeline-test2 
#2,ABORT,DONE,,0,1970-01-01T00:00:00.000+00:00,2022-09-08T15:40:34.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,6,
-jenkins:JenkinsStage:1:pipeline-test2 
#3:Hello,Hello,jenkins:JenkinsPipeline:1:pipeline-test2 
#3,ABORT,DONE,,0,1970-01-01T00:00:00.000+00:00,2022-09-08T15:40:49.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,3,
+jenkins:JenkinsStage:1:pipeline-test2 
#1:Hello,Hello,jenkins:JenkinsBuild:1:pipeline-test2 
#1,ABORT,DONE,,0,1970-01-01T00:00:00.000+00:00,2022-09-08T15:40:17.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,5,
+jenkins:JenkinsStage:1:pipeline-test2 
#2:Hello,Hello,jenkins:JenkinsBuild:1:pipeline-test2 
#2,ABORT,DONE,,0,1970-01-01T00:00:00.000+00:00,2022-09-08T15:40:34.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,6,
+jenkins:JenkinsStage:1:pipeline-test2 
#3:Hello,Hello,jenkins:JenkinsBuild:1:pipeline-test2 
#3,ABORT,DONE,,0,1970-01-01T00:00:00.000+00:00,2022-09-08T15:40:49.000+00:00,,"{""ConnectionId"":1}",_raw_jenkins_api_stages,3,
diff --git a/plugins/jenkins/e2e/stages_test.go 
b/plugins/jenkins/e2e/stages_test.go
index 42a084d1..61eb87a0 100644
--- a/plugins/jenkins/e2e/stages_test.go
+++ b/plugins/jenkins/e2e/stages_test.go
@@ -43,7 +43,7 @@ func TestJenkinsStagesDataFlow(t *testing.T) {
 
        // import tool table
        
dataflowTester.ImportCsvIntoTabler("./snapshot_tables/_tool_jenkins_builds.csv",
 models.JenkinsBuild{})
-       
dataflowTester.ImportCsvIntoTabler("./snapshot_tables/_tool_jenkins_build_repos.csv",
 models.JenkinsBuildRepo{})
+       
dataflowTester.ImportCsvIntoTabler("./snapshot_tables/_tool_jenkins_build_commits.csv",
 models.JenkinsBuildCommit{})
        dataflowTester.ImportCsvIntoTabler("./snapshot_tables/cicd_tasks.csv", 
devops.CICDTask{})
 
        // verify extraction
diff --git a/plugins/jenkins/impl/impl.go b/plugins/jenkins/impl/impl.go
index 16687a0b..2ba87aaf 100644
--- a/plugins/jenkins/impl/impl.go
+++ b/plugins/jenkins/impl/impl.go
@@ -49,7 +49,7 @@ func (plugin Jenkins) Init(config *viper.Viper, logger 
core.Logger, db *gorm.DB)
 func (plugin Jenkins) GetTablesInfo() []core.Tabler {
        return []core.Tabler{
                &models.JenkinsBuild{},
-               &models.JenkinsBuildRepo{},
+               &models.JenkinsBuildCommit{},
                &models.JenkinsConnection{},
                &models.JenkinsJob{},
                &models.JenkinsJobDag{},
diff --git a/plugins/jenkins/models/build_repo.go 
b/plugins/jenkins/models/build_commit.go
similarity index 90%
rename from plugins/jenkins/models/build_repo.go
rename to plugins/jenkins/models/build_commit.go
index 2a03e873..4b1f5796 100644
--- a/plugins/jenkins/models/build_repo.go
+++ b/plugins/jenkins/models/build_commit.go
@@ -19,7 +19,7 @@ package models
 
 import "github.com/apache/incubator-devlake/models/common"
 
-type JenkinsBuildRepo struct {
+type JenkinsBuildCommit struct {
        ConnectionId uint64 `gorm:"primaryKey"`
        BuildName    string `gorm:"primaryKey;type:varchar(255)"`
        CommitSha    string `gorm:"primaryKey;type:varchar(255)"`
@@ -28,6 +28,6 @@ type JenkinsBuildRepo struct {
        common.NoPKModel
 }
 
-func (JenkinsBuildRepo) TableName() string {
-       return "_tool_jenkins_build_repos"
+func (JenkinsBuildCommit) TableName() string {
+       return "_tool_jenkins_build_commits"
 }
diff --git 
a/plugins/jenkins/models/migrationscripts/20220916_modify_jenkins_build.go 
b/plugins/jenkins/models/migrationscripts/20220916_modify_jenkins_build.go
index 9d0e6700..94294332 100644
--- a/plugins/jenkins/models/migrationscripts/20220916_modify_jenkins_build.go
+++ b/plugins/jenkins/models/migrationscripts/20220916_modify_jenkins_build.go
@@ -79,6 +79,13 @@ func (JenkinsBuil0916) TableName() string {
        return "_tool_jenkins_builds"
 }
 
+type JenkinsBuildRepo0916 struct {
+}
+
+func (JenkinsBuildRepo0916) TableName() string {
+       return "_tool_jenkins_build_repos"
+}
+
 func (*modifyJenkinsBuild) Up(ctx context.Context, db *gorm.DB) errors.Error {
        cursor, err := db.Model(&JenkinsBuildOld{}).Rows()
        if err != nil {
@@ -88,6 +95,10 @@ func (*modifyJenkinsBuild) Up(ctx context.Context, db 
*gorm.DB) errors.Error {
        if err != nil {
                return errors.Default.Wrap(err, "fail to rename 
_tool_jenkins_builds")
        }
+       err = db.Migrator().RenameTable(&JenkinsBuildRepo0916{}, 
"_tool_jenkins_build_commits")
+       if err != nil {
+               return errors.Default.Wrap(err, "fail to rename 
_tool_jenkins_builds")
+       }
        err = db.Migrator().AutoMigrate(&JenkinsBuil0916{})
        if err != nil {
                return errors.Default.Wrap(err, "fail to create 
_tool_jenkins_builds")
diff --git a/plugins/jenkins/models/migrationscripts/register.go 
b/plugins/jenkins/models/migrationscripts/register.go
index 63eb2733..671c6884 100644
--- a/plugins/jenkins/models/migrationscripts/register.go
+++ b/plugins/jenkins/models/migrationscripts/register.go
@@ -26,5 +26,6 @@ func All() []migration.Script {
        return []migration.Script{
                new(addInitTables),
                new(modifyAllEntities),
+               new(modifyJenkinsBuild),
        }
 }
diff --git a/plugins/jenkins/tasks/build_cicd_convertor.go 
b/plugins/jenkins/tasks/build_cicd_convertor.go
index ea524e6c..e4c998b6 100644
--- a/plugins/jenkins/tasks/build_cicd_convertor.go
+++ b/plugins/jenkins/tasks/build_cicd_convertor.go
@@ -18,7 +18,6 @@ limitations under the License.
 package tasks
 
 import (
-       "fmt"
        "github.com/apache/incubator-devlake/errors"
        "github.com/apache/incubator-devlake/models/domainlayer/didgen"
        "github.com/apache/incubator-devlake/plugins/jenkins/models"
@@ -53,6 +52,7 @@ func ConvertBuildsToCICD(taskCtx core.SubTaskContext) 
errors.Error {
                return err
        }
        defer cursor.Close()
+       buildIdGen := didgen.NewDomainIdGenerator(&models.JenkinsBuild{})
 
        converter, err := helper.NewDataConverter(helper.DataConverterArgs{
                InputRowType: reflect.TypeOf(models.JenkinsBuild{}),
@@ -86,7 +86,6 @@ func ConvertBuildsToCICD(taskCtx core.SubTaskContext) 
errors.Error {
                                finishTime := 
jenkinsBuild.StartTime.Add(time.Duration(durationSec * int64(time.Second)))
                                jenkinsPipelineFinishedDate = &finishTime
                        }
-                       buildIdGen := 
didgen.NewDomainIdGenerator(&models.JenkinsBuild{})
                        jenkinsPipeline := &devops.CICDPipeline{
                                DomainEntity: domainlayer.DomainEntity{
                                        Id: 
buildIdGen.Generate(jenkinsBuild.ConnectionId,
@@ -115,7 +114,7 @@ func ConvertBuildsToCICD(taskCtx core.SubTaskContext) 
errors.Error {
                        if !jenkinsBuild.HasStages {
                                jenkinsTask := &devops.CICDTask{
                                        DomainEntity: domainlayer.DomainEntity{
-                                               Id: fmt.Sprintf("%s:%s:%d:%s", 
"jenkins", "JenkinsTask", jenkinsBuild.ConnectionId,
+                                               Id: 
buildIdGen.Generate(jenkinsBuild.ConnectionId,
                                                        
jenkinsBuild.FullDisplayName),
                                        },
                                        Name:         jenkinsBuild.JobName,
diff --git a/plugins/jenkins/tasks/build_repo_convertor.go 
b/plugins/jenkins/tasks/build_commit_convertor.go
similarity index 84%
rename from plugins/jenkins/tasks/build_repo_convertor.go
rename to plugins/jenkins/tasks/build_commit_convertor.go
index 0dd10749..8af205d3 100644
--- a/plugins/jenkins/tasks/build_repo_convertor.go
+++ b/plugins/jenkins/tasks/build_commit_convertor.go
@@ -19,6 +19,7 @@ package tasks
 
 import (
        "github.com/apache/incubator-devlake/errors"
+       "github.com/apache/incubator-devlake/models/domainlayer/didgen"
        "reflect"
 
        "github.com/apache/incubator-devlake/models/domainlayer/devops"
@@ -42,7 +43,7 @@ func ConvertBuildRepos(taskCtx core.SubTaskContext) 
errors.Error {
 
        clauses := []dal.Clause{
                dal.Select("*"),
-               dal.From(&models.JenkinsBuildRepo{}),
+               dal.From(&models.JenkinsBuildCommit{}),
                dal.Where("connection_id = ?", data.Options.ConnectionId),
        }
        cursor, err := db.Cursor(clauses...)
@@ -50,9 +51,10 @@ func ConvertBuildRepos(taskCtx core.SubTaskContext) 
errors.Error {
                return err
        }
        defer cursor.Close()
+       buildIdGen := didgen.NewDomainIdGenerator(&models.JenkinsBuild{})
 
        converter, err := helper.NewDataConverter(helper.DataConverterArgs{
-               InputRowType: reflect.TypeOf(models.JenkinsBuildRepo{}),
+               InputRowType: reflect.TypeOf(models.JenkinsBuildCommit{}),
                Input:        cursor,
                RawDataSubTaskArgs: helper.RawDataSubTaskArgs{
                        Params: JenkinsApiParams{
@@ -62,11 +64,10 @@ func ConvertBuildRepos(taskCtx core.SubTaskContext) 
errors.Error {
                        Table: RAW_BUILD_TABLE,
                },
                Convert: func(inputRow interface{}) ([]interface{}, 
errors.Error) {
-                       jenkinsBuildRepo := inputRow.(*models.JenkinsBuildRepo)
-                       buildIdGen := 
didgen.NewDomainIdGenerator(&models.JenkinsBuild{})
-                       build := &devops.CiCDPipelineRepo{
-                               PipelineId: 
buildIdGen.Generate(jenkinsBuild.ConnectionId,
-                                               jenkinsBuildRepo.BuildName),
+                       jenkinsBuildRepo := 
inputRow.(*models.JenkinsBuildCommit)
+                       build := &devops.CiCDPipelineCommit{
+                               PipelineId: 
buildIdGen.Generate(jenkinsBuildRepo.ConnectionId,
+                                       jenkinsBuildRepo.BuildName),
                                CommitSha: jenkinsBuildRepo.CommitSha,
                                Branch:    jenkinsBuildRepo.Branch,
                                RepoUrl:   jenkinsBuildRepo.RepoUrl,
diff --git a/plugins/jenkins/tasks/build_extractor.go 
b/plugins/jenkins/tasks/build_extractor.go
index 2d1d233f..e0968138 100644
--- a/plugins/jenkins/tasks/build_extractor.go
+++ b/plugins/jenkins/tasks/build_extractor.go
@@ -101,7 +101,7 @@ func ExtractApiBuilds(taskCtx core.SubTaskContext) 
errors.Error {
                                        }
                                        for _, url := range a.RemoteUrls {
                                                if url != "" {
-                                                       buildCommitRemoteUrl := 
models.JenkinsBuildRepo{
+                                                       buildCommitRemoteUrl := 
models.JenkinsBuildCommit{
                                                                ConnectionId: 
data.Options.ConnectionId,
                                                                BuildName:    
build.FullDisplayName,
                                                                CommitSha:    
sha,
diff --git a/plugins/jenkins/tasks/stage_convertor.go 
b/plugins/jenkins/tasks/stage_convertor.go
index f300b181..978ccbc0 100644
--- a/plugins/jenkins/tasks/stage_convertor.go
+++ b/plugins/jenkins/tasks/stage_convertor.go
@@ -18,8 +18,9 @@ limitations under the License.
 package tasks
 
 import (
-       "fmt"
        "github.com/apache/incubator-devlake/errors"
+       "github.com/apache/incubator-devlake/models/domainlayer/didgen"
+       "github.com/apache/incubator-devlake/plugins/jenkins/models"
        "reflect"
        "time"
 
@@ -77,7 +78,8 @@ func ConvertStages(taskCtx core.SubTaskContext) errors.Error {
                return err
        }
        defer cursor.Close()
-
+       stageIdGen := didgen.NewDomainIdGenerator(&models.JenkinsStage{})
+       buildIdGen := didgen.NewDomainIdGenerator(&models.JenkinsBuild{})
        convertor, err := helper.NewDataConverter(helper.DataConverterArgs{
                InputRowType: reflect.TypeOf(JenkinsBuildWithRepoStage{}),
                Input:        cursor,
@@ -108,14 +110,13 @@ func ConvertStages(taskCtx core.SubTaskContext) 
errors.Error {
                        startedDate := time.Unix(body.StartTimeMillis/1000, 0)
                        finishedDate := 
startedDate.Add(time.Duration(durationSec * int64(time.Second)))
                        jenkinsTaskFinishedDate = &finishedDate
-
                        jenkinsTask := &devops.CICDTask{
                                DomainEntity: domainlayer.DomainEntity{
-                                       Id: fmt.Sprintf("%s:%s:%d:%s:%s", 
"jenkins", "JenkinsStage", body.ConnectionId,
+                                       Id: 
stageIdGen.Generate(body.ConnectionId,
                                                body.BuildName, body.Name),
                                },
                                Name: body.Name,
-                               PipelineId: fmt.Sprintf("%s:%s:%d:%s", 
"jenkins", "JenkinsPipeline", body.ConnectionId,
+                               PipelineId: 
buildIdGen.Generate(body.ConnectionId,
                                        body.BuildName),
                                Result:       jenkinsTaskResult,
                                Status:       jenkinsTaskStatus,

Reply via email to