You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by wa...@apache.org on 2022/11/10 13:28:50 UTC

[incubator-devlake] branch main updated: feat(gitlab): set value to cicd_scope_id for cicd_tasks and cicd_pipelines (#3716)

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

warren 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 9e3d1ba8 feat(gitlab): set value to cicd_scope_id for cicd_tasks and cicd_pipelines (#3716)
9e3d1ba8 is described below

commit 9e3d1ba886730107276788ecd7552f11c53bb2fa
Author: Warren Chen <yi...@merico.dev>
AuthorDate: Thu Nov 10 21:28:43 2022 +0800

    feat(gitlab): set value to cicd_scope_id for cicd_tasks and cicd_pipelines (#3716)
---
 plugins/github/e2e/repo_test.go                    |   6 +-
 plugins/github/e2e/snapshot_tables/cicd_scopes.csv |   1 +
 plugins/gitlab/e2e/job_test.go                     |  21 +---
 plugins/gitlab/e2e/pipelines_test.go               |  35 ++----
 plugins/gitlab/e2e/project_test.go                 |   8 ++
 .../gitlab/e2e/snapshot_tables/cicd_pipelines.csv  |  42 +++----
 plugins/gitlab/e2e/snapshot_tables/cicd_scopes.csv |   2 +
 plugins/gitlab/e2e/snapshot_tables/cicd_tasks.csv  | 136 ++++++++++-----------
 plugins/gitlab/tasks/job_convertor.go              |   2 +
 plugins/gitlab/tasks/pipeline_convertor.go         |   1 +
 plugins/gitlab/tasks/project_convertor.go          |  17 +++
 11 files changed, 136 insertions(+), 135 deletions(-)

diff --git a/plugins/github/e2e/repo_test.go b/plugins/github/e2e/repo_test.go
index 3177cee1..ee35282f 100644
--- a/plugins/github/e2e/repo_test.go
+++ b/plugins/github/e2e/repo_test.go
@@ -22,9 +22,8 @@ import (
 	"github.com/apache/incubator-devlake/models/domainlayer/devops"
 	"testing"
 
-	"github.com/apache/incubator-devlake/models/domainlayer/crossdomain"
-
 	"github.com/apache/incubator-devlake/models/domainlayer/code"
+	"github.com/apache/incubator-devlake/models/domainlayer/crossdomain"
 	"github.com/apache/incubator-devlake/models/domainlayer/ticket"
 	"github.com/apache/incubator-devlake/plugins/github/models"
 
@@ -98,6 +97,7 @@ func TestRepoDataFlow(t *testing.T) {
 	// verify extraction
 	dataflowTester.FlushTabler(&code.Repo{})
 	dataflowTester.FlushTabler(&ticket.Board{})
+	dataflowTester.FlushTabler(&devops.CicdScope{})
 	dataflowTester.FlushTabler(&crossdomain.BoardRepo{})
 	dataflowTester.Subtask(tasks.ConvertRepoMeta, taskData)
 	dataflowTester.VerifyTable(
@@ -149,8 +149,6 @@ func TestRepoDataFlow(t *testing.T) {
 		},
 	)
 
-	dataflowTester.FlushTabler(&devops.CicdScope{})
-	dataflowTester.Subtask(tasks.ConvertJobsMeta, taskData)
 	dataflowTester.VerifyTableWithOptions(&devops.CicdScope{}, e2ehelper.TableOptions{
 		CSVRelPath:  "./snapshot_tables/cicd_scopes.csv",
 		IgnoreTypes: []interface{}{common.NoPKModel{}},
diff --git a/plugins/github/e2e/snapshot_tables/cicd_scopes.csv b/plugins/github/e2e/snapshot_tables/cicd_scopes.csv
index 5623e45f..66f2143f 100644
--- a/plugins/github/e2e/snapshot_tables/cicd_scopes.csv
+++ b/plugins/github/e2e/snapshot_tables/cicd_scopes.csv
@@ -1 +1,2 @@
 id,name,description,url,created_date,updated_date
+github:GithubRepo:1:134018330,ants,"🐜🐜🐜 ants is a high-performance and low-cost goroutine pool in Go, inspired by fasthttp./ ants ζ˜―δΈ€δΈͺι«˜ζ€§θƒ½δΈ”δ½ŽζŸθ€—ηš„ goroutine 池。",https://github.com/panjf2000/ants,2018-05-19T01:13:38.000+00:00,2022-06-13T15:27:54.000+00:00
diff --git a/plugins/gitlab/e2e/job_test.go b/plugins/gitlab/e2e/job_test.go
index 2b155274..c45a0b74 100644
--- a/plugins/gitlab/e2e/job_test.go
+++ b/plugins/gitlab/e2e/job_test.go
@@ -18,6 +18,7 @@ limitations under the License.
 package e2e
 
 import (
+	"github.com/apache/incubator-devlake/models/common"
 	"testing"
 
 	"github.com/apache/incubator-devlake/models/domainlayer/devops"
@@ -71,20 +72,8 @@ func TestGitlabJobDataFlow(t *testing.T) {
 	// verify conversion
 	dataflowTester.FlushTabler(&devops.CICDTask{})
 	dataflowTester.Subtask(tasks.ConvertJobMeta, taskData)
-	dataflowTester.VerifyTable(
-		devops.CICDTask{},
-		"./snapshot_tables/cicd_tasks.csv",
-		e2ehelper.ColumnWithRawData(
-			"id",
-			"name",
-			"pipeline_id",
-			"result",
-			"status",
-			"type",
-			"duration_sec",
-			"started_date",
-			"finished_date",
-			"environment",
-		),
-	)
+	dataflowTester.VerifyTableWithOptions(&devops.CICDTask{}, e2ehelper.TableOptions{
+		CSVRelPath:  "./snapshot_tables/cicd_tasks.csv",
+		IgnoreTypes: []interface{}{common.NoPKModel{}},
+	})
 }
diff --git a/plugins/gitlab/e2e/pipelines_test.go b/plugins/gitlab/e2e/pipelines_test.go
index de5b0fae..c8a6c24d 100644
--- a/plugins/gitlab/e2e/pipelines_test.go
+++ b/plugins/gitlab/e2e/pipelines_test.go
@@ -18,6 +18,7 @@ limitations under the License.
 package e2e
 
 import (
+	"github.com/apache/incubator-devlake/models/common"
 	"testing"
 
 	"github.com/apache/incubator-devlake/models/domainlayer/devops"
@@ -80,31 +81,13 @@ func TestGitlabPipelineDataFlow(t *testing.T) {
 	dataflowTester.FlushTabler(&devops.CiCDPipelineCommit{})
 	dataflowTester.Subtask(tasks.ConvertPipelineMeta, taskData)
 	dataflowTester.Subtask(tasks.ConvertPipelineCommitMeta, taskData)
-	dataflowTester.VerifyTable(
-		devops.CICDPipeline{},
-		"./snapshot_tables/cicd_pipelines.csv",
-		e2ehelper.ColumnWithRawData(
-			"id",
-			"name",
-			"result",
-			"status",
-			"type",
-			"duration_sec",
-			"created_date",
-			"finished_date",
-			"environment",
-		),
-	)
+	dataflowTester.VerifyTableWithOptions(&devops.CICDPipeline{}, e2ehelper.TableOptions{
+		CSVRelPath:  "./snapshot_tables/cicd_pipelines.csv",
+		IgnoreTypes: []interface{}{common.NoPKModel{}},
+	})
 
-	dataflowTester.VerifyTable(
-		devops.CiCDPipelineCommit{},
-		"./snapshot_tables/cicd_pipeline_commits.csv",
-		e2ehelper.ColumnWithRawData(
-			"pipeline_id",
-			"commit_sha",
-			"branch",
-			"repo_id",
-			"repo_url",
-		),
-	)
+	dataflowTester.VerifyTableWithOptions(&devops.CiCDPipelineCommit{}, e2ehelper.TableOptions{
+		CSVRelPath:  "./snapshot_tables/cicd_pipeline_commits.csv",
+		IgnoreTypes: []interface{}{common.NoPKModel{}},
+	})
 }
diff --git a/plugins/gitlab/e2e/project_test.go b/plugins/gitlab/e2e/project_test.go
index dc32a0c5..2a705583 100644
--- a/plugins/gitlab/e2e/project_test.go
+++ b/plugins/gitlab/e2e/project_test.go
@@ -18,6 +18,8 @@ limitations under the License.
 package e2e
 
 import (
+	"github.com/apache/incubator-devlake/models/common"
+	"github.com/apache/incubator-devlake/models/domainlayer/devops"
 	"testing"
 
 	"github.com/apache/incubator-devlake/models/domainlayer/crossdomain"
@@ -74,6 +76,7 @@ func TestGitlabProjectDataFlow(t *testing.T) {
 	// verify conversion
 	dataflowTester.FlushTabler(&code.Repo{})
 	dataflowTester.FlushTabler(&ticket.Board{})
+	dataflowTester.FlushTabler(&devops.CicdScope{})
 	dataflowTester.FlushTabler(&crossdomain.BoardRepo{})
 	dataflowTester.Subtask(tasks.ConvertProjectMeta, taskData)
 	dataflowTester.VerifyTable(
@@ -111,4 +114,9 @@ func TestGitlabProjectDataFlow(t *testing.T) {
 			"repo_id",
 		),
 	)
+
+	dataflowTester.VerifyTableWithOptions(&devops.CicdScope{}, e2ehelper.TableOptions{
+		CSVRelPath:  "./snapshot_tables/cicd_scopes.csv",
+		IgnoreTypes: []interface{}{common.NoPKModel{}},
+	})
 }
diff --git a/plugins/gitlab/e2e/snapshot_tables/cicd_pipelines.csv b/plugins/gitlab/e2e/snapshot_tables/cicd_pipelines.csv
index ceef0f17..d73e46df 100644
--- a/plugins/gitlab/e2e/snapshot_tables/cicd_pipelines.csv
+++ b/plugins/gitlab/e2e/snapshot_tables/cicd_pipelines.csv
@@ -1,21 +1,21 @@
-id,name,result,status,type,duration_sec,created_date,finished_date,environment,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
-gitlab:GitlabPipeline:1:457474837,gitlab:GitlabProject:1:12345678,,IN_PROGRESS,,0,2022-01-27T10:07:09.429+00:00,,,"{""ConnectionId"":1,""ProjectId"":12345678}",_raw_gitlab_api_pipeline,152,
-gitlab:GitlabPipeline:1:457474996,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,0,2022-01-27T10:07:18.884+00:00,2022-01-27T10:07:19.043+00:00,,"{""ConnectionId"":1,""ProjectId"":12345678}",_raw_gitlab_api_pipeline,153,
-gitlab:GitlabPipeline:1:457475160,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,0,2022-01-27T10:07:26.435+00:00,2022-01-27T10:07:26.638+00:00,,"{""ConnectionId"":1,""ProjectId"":12345678}",_raw_gitlab_api_pipeline,154,
-gitlab:GitlabPipeline:1:457475337,gitlab:GitlabProject:1:12345678,,IN_PROGRESS,,0,2022-01-27T10:07:36.502+00:00,,,"{""ConnectionId"":1,""ProjectId"":12345678}",_raw_gitlab_api_pipeline,155,
-gitlab:GitlabPipeline:1:485811050,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,0,2022-03-07T06:26:42.109+00:00,2022-03-07T06:26:42.109+00:00,,"{""ConnectionId"":1,""ProjectId"":12345678}",_raw_gitlab_api_pipeline,156,
-gitlab:GitlabPipeline:1:485811059,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,0,2022-03-07T06:26:43.784+00:00,2022-03-07T06:26:43.784+00:00,,"{""ConnectionId"":1,""ProjectId"":12345678}",_raw_gitlab_api_pipeline,157,
-gitlab:GitlabPipeline:1:485813816,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,0,2022-03-07T06:33:56.824+00:00,2022-03-07T06:33:56.824+00:00,,"{""ConnectionId"":1,""ProjectId"":12345678}",_raw_gitlab_api_pipeline,158,
-gitlab:GitlabPipeline:1:485813830,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,0,2022-03-07T06:33:58.889+00:00,2022-03-07T06:33:58.889+00:00,,"{""ConnectionId"":1,""ProjectId"":12345678}",_raw_gitlab_api_pipeline,159,
-gitlab:GitlabPipeline:1:485814501,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,0,2022-03-07T06:35:28.111+00:00,2022-03-07T06:35:28.111+00:00,,"{""ConnectionId"":1,""ProjectId"":12345678}",_raw_gitlab_api_pipeline,160,
-gitlab:GitlabPipeline:1:485814516,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,0,2022-03-07T06:35:31.255+00:00,2022-03-07T06:35:31.255+00:00,,"{""ConnectionId"":1,""ProjectId"":12345678}",_raw_gitlab_api_pipeline,161,
-gitlab:GitlabPipeline:1:485814871,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,42,2022-03-07T06:36:50.020+00:00,2022-03-07T06:37:32.103+00:00,,"{""ConnectionId"":1,""ProjectId"":12345678}",_raw_gitlab_api_pipeline,162,
-gitlab:GitlabPipeline:1:485817670,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,1956,2022-03-07T06:45:09.471+00:00,2022-03-07T07:17:46.305+00:00,,"{""ConnectionId"":1,""ProjectId"":12345678}",_raw_gitlab_api_pipeline,163,
-gitlab:GitlabPipeline:1:485837602,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,434,2022-03-07T07:20:45.859+00:00,2022-03-07T07:28:00.277+00:00,,"{""ConnectionId"":1,""ProjectId"":12345678}",_raw_gitlab_api_pipeline,164,
-gitlab:GitlabPipeline:1:485842553,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,287,2022-03-07T07:30:47.018+00:00,2022-03-07T07:35:34.998+00:00,,"{""ConnectionId"":1,""ProjectId"":12345678}",_raw_gitlab_api_pipeline,165,
-gitlab:GitlabPipeline:1:485845850,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,419,2022-03-07T07:38:58.611+00:00,2022-03-07T07:45:58.412+00:00,,"{""ConnectionId"":1,""ProjectId"":12345678}",_raw_gitlab_api_pipeline,166,
-gitlab:GitlabPipeline:1:485852752,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,319,2022-03-07T07:46:09.385+00:00,2022-03-07T07:51:28.709+00:00,,"{""ConnectionId"":1,""ProjectId"":12345678}",_raw_gitlab_api_pipeline,167,
-gitlab:GitlabPipeline:1:485865876,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,480,2022-03-07T08:04:56.406+00:00,2022-03-07T08:12:56.453+00:00,,"{""ConnectionId"":1,""ProjectId"":12345678}",_raw_gitlab_api_pipeline,168,
-gitlab:GitlabPipeline:1:485877118,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,289,2022-03-07T08:22:48.943+00:00,2022-03-07T08:27:38.364+00:00,,"{""ConnectionId"":1,""ProjectId"":12345678}",_raw_gitlab_api_pipeline,169,
-gitlab:GitlabPipeline:1:485905167,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,687,2022-03-07T09:02:09.994+00:00,2022-03-07T09:13:37.013+00:00,,"{""ConnectionId"":1,""ProjectId"":12345678}",_raw_gitlab_api_pipeline,170,
-gitlab:GitlabPipeline:1:485932863,gitlab:GitlabProject:1:12345678,SUCCESS,DONE,,398,2022-03-07T09:34:57.476+00:00,2022-03-07T09:41:36.267+00:00,,"{""ConnectionId"":1,""ProjectId"":12345678}",_raw_gitlab_api_pipeline,171,
+id,name,result,status,type,duration_sec,environment,created_date,finished_date,cicd_scope_id
+gitlab:GitlabPipeline:1:457474837,gitlab:GitlabProject:1:12345678,,IN_PROGRESS,,0,,2022-01-27T10:07:09.429+00:00,,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:457474996,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,0,,2022-01-27T10:07:18.884+00:00,2022-01-27T10:07:19.043+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:457475160,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,0,,2022-01-27T10:07:26.435+00:00,2022-01-27T10:07:26.638+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:457475337,gitlab:GitlabProject:1:12345678,,IN_PROGRESS,,0,,2022-01-27T10:07:36.502+00:00,,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485811050,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,0,,2022-03-07T06:26:42.109+00:00,2022-03-07T06:26:42.109+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485811059,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,0,,2022-03-07T06:26:43.784+00:00,2022-03-07T06:26:43.784+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485813816,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,0,,2022-03-07T06:33:56.824+00:00,2022-03-07T06:33:56.824+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485813830,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,0,,2022-03-07T06:33:58.889+00:00,2022-03-07T06:33:58.889+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485814501,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,0,,2022-03-07T06:35:28.111+00:00,2022-03-07T06:35:28.111+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485814516,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,0,,2022-03-07T06:35:31.255+00:00,2022-03-07T06:35:31.255+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485814871,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,42,,2022-03-07T06:36:50.020+00:00,2022-03-07T06:37:32.103+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485817670,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,1956,,2022-03-07T06:45:09.471+00:00,2022-03-07T07:17:46.305+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485837602,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,434,,2022-03-07T07:20:45.859+00:00,2022-03-07T07:28:00.277+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485842553,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,287,,2022-03-07T07:30:47.018+00:00,2022-03-07T07:35:34.998+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485845850,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,419,,2022-03-07T07:38:58.611+00:00,2022-03-07T07:45:58.412+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485852752,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,319,,2022-03-07T07:46:09.385+00:00,2022-03-07T07:51:28.709+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485865876,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,480,,2022-03-07T08:04:56.406+00:00,2022-03-07T08:12:56.453+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485877118,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,289,,2022-03-07T08:22:48.943+00:00,2022-03-07T08:27:38.364+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485905167,gitlab:GitlabProject:1:12345678,FAILURE,DONE,,687,,2022-03-07T09:02:09.994+00:00,2022-03-07T09:13:37.013+00:00,gitlab:GitlabProject:1:12345678
+gitlab:GitlabPipeline:1:485932863,gitlab:GitlabProject:1:12345678,SUCCESS,DONE,,398,,2022-03-07T09:34:57.476+00:00,2022-03-07T09:41:36.267+00:00,gitlab:GitlabProject:1:12345678
diff --git a/plugins/gitlab/e2e/snapshot_tables/cicd_scopes.csv b/plugins/gitlab/e2e/snapshot_tables/cicd_scopes.csv
new file mode 100644
index 00000000..a540e450
--- /dev/null
+++ b/plugins/gitlab/e2e/snapshot_tables/cicd_scopes.csv
@@ -0,0 +1,2 @@
+id,name,description,url,created_date,updated_date
+gitlab:GitlabProject:1:12345678,Snowflake Spend,This is a dbt package for understanding the cost your Snowflake Data Warehouse is accruing.,https://gitlab.com/gitlab-data/snowflake_spend,2019-06-20T14:14:45.108+00:00,2022-06-16T16:23:09.458+00:00
diff --git a/plugins/gitlab/e2e/snapshot_tables/cicd_tasks.csv b/plugins/gitlab/e2e/snapshot_tables/cicd_tasks.csv
index 69208dee..f12e185d 100644
--- a/plugins/gitlab/e2e/snapshot_tables/cicd_tasks.csv
+++ b/plugins/gitlab/e2e/snapshot_tables/cicd_tasks.csv
@@ -1,68 +1,68 @@
-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
-gitlab:GitlabJob:1:100,compile,gitlab:GitlabPipeline:1:24,SUCCESS,DONE,,2,2022-07-25T15:06:57.051+00:00,2022-07-25T15:06:59.885+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,53,
-gitlab:GitlabJob:1:101,format,gitlab:GitlabPipeline:1:25,SUCCESS,DONE,,3,2022-07-25T15:13:37.206+00:00,2022-07-25T15:13:40.246+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,52,
-gitlab:GitlabJob:1:102,format,gitlab:GitlabPipeline:1:26,SUCCESS,DONE,,2,2022-07-25T15:30:22.560+00:00,2022-07-25T15:30:25.315+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,51,
-gitlab:GitlabJob:1:103,format,gitlab:GitlabPipeline:1:27,SUCCESS,DONE,,2,2022-07-25T15:30:55.671+00:00,2022-07-25T15:30:58.650+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,50,
-gitlab:GitlabJob:1:104,format,gitlab:GitlabPipeline:1:28,SUCCESS,DONE,,2,2022-07-25T15:32:04.954+00:00,2022-07-25T15:32:07.726+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,49,
-gitlab:GitlabJob:1:105,compile,gitlab:GitlabPipeline:1:28,FAILURE,DONE,,3,2022-07-25T15:32:07.953+00:00,2022-07-25T15:32:11.077+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,48,
-gitlab:GitlabJob:1:106,format,gitlab:GitlabPipeline:1:29,SUCCESS,DONE,,2,2022-07-25T15:33:26.382+00:00,2022-07-25T15:33:29.356+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,47,
-gitlab:GitlabJob:1:107,format,gitlab:GitlabPipeline:1:30,SUCCESS,DONE,,2,2022-07-25T15:34:23.665+00:00,2022-07-25T15:34:26.392+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,46,
-gitlab:GitlabJob:1:108,format,gitlab:GitlabPipeline:1:31,SUCCESS,DONE,,2,2022-07-25T15:35:11.707+00:00,2022-07-25T15:35:14.224+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,45,
-gitlab:GitlabJob:1:109,compile,gitlab:GitlabPipeline:1:31,SUCCESS,DONE,,3,2022-07-25T15:35:14.724+00:00,2022-07-25T15:35:17.828+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,44,
-gitlab:GitlabJob:1:110,format,gitlab:GitlabPipeline:1:32,SUCCESS,DONE,,2,2022-07-25T15:36:18.097+00:00,2022-07-25T15:36:20.954+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,43,
-gitlab:GitlabJob:1:111,format,gitlab:GitlabPipeline:1:33,SUCCESS,DONE,,3,2022-07-25T15:38:03.463+00:00,2022-07-25T15:38:06.467+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,42,
-gitlab:GitlabJob:1:112,format,gitlab:GitlabPipeline:1:34,SUCCESS,DONE,,3,2022-07-25T21:19:14.509+00:00,2022-07-25T21:19:17.811+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,41,
-gitlab:GitlabJob:1:113,format,gitlab:GitlabPipeline:1:35,SUCCESS,DONE,,5,2022-07-26T09:37:05.694+00:00,2022-07-26T09:37:10.873+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,40,
-gitlab:GitlabJob:1:114,format,gitlab:GitlabPipeline:1:36,SUCCESS,DONE,,2,2022-07-26T09:37:38.057+00:00,2022-07-26T09:37:40.975+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,39,
-gitlab:GitlabJob:1:115,format,gitlab:GitlabPipeline:1:37,SUCCESS,DONE,,3,2022-07-26T09:38:29.318+00:00,2022-07-26T09:38:32.970+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,38,
-gitlab:GitlabJob:1:116,format,gitlab:GitlabPipeline:1:38,SUCCESS,DONE,,3,2022-07-26T21:19:13.888+00:00,2022-07-26T21:19:17.021+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,37,
-gitlab:GitlabJob:1:117,format,gitlab:GitlabPipeline:1:39,SUCCESS,DONE,,3,2022-07-27T08:19:24.376+00:00,2022-07-27T08:19:28.159+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,36,
-gitlab:GitlabJob:1:118,format,gitlab:GitlabPipeline:1:40,SUCCESS,DONE,,4,2022-07-27T21:19:32.288+00:00,2022-07-27T21:19:36.850+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,35,
-gitlab:GitlabJob:1:119,format,gitlab:GitlabPipeline:1:41,FAILURE,DONE,,0,2022-07-28T21:19:24.257+00:00,2022-07-28T23:00:17.842+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,34,
-gitlab:GitlabJob:1:120,format,gitlab:GitlabPipeline:1:41,SUCCESS,DONE,,56,2022-07-29T02:10:58.370+00:00,2022-07-29T02:11:55.170+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,33,
-gitlab:GitlabJob:1:121,format,gitlab:GitlabPipeline:1:42,FAILURE,DONE,,0,2022-07-29T21:19:02.884+00:00,2022-07-29T23:00:24.840+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,32,
-gitlab:GitlabJob:1:122,format,gitlab:GitlabPipeline:1:43,FAILURE,DONE,,0,2022-07-30T21:19:26.310+00:00,2022-07-30T23:00:25.126+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,31,
-gitlab:GitlabJob:1:123,format,gitlab:GitlabPipeline:1:44,FAILURE,DONE,,0,2022-07-31T21:19:05.348+00:00,2022-07-31T23:00:29.135+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,30,
-gitlab:GitlabJob:1:124,format,gitlab:GitlabPipeline:1:45,FAILURE,DONE,,0,2022-08-01T21:19:02.489+00:00,2022-08-01T23:00:22.874+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,29,
-gitlab:GitlabJob:1:125,format,gitlab:GitlabPipeline:1:46,FAILURE,DONE,,0,2022-08-02T21:19:25.568+00:00,2022-08-02T23:00:23.221+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,28,
-gitlab:GitlabJob:1:126,format,gitlab:GitlabPipeline:1:47,FAILURE,DONE,,0,2022-08-03T08:19:06.570+00:00,2022-08-03T10:00:05.573+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,27,
-gitlab:GitlabJob:1:127,format,gitlab:GitlabPipeline:1:48,FAILURE,DONE,,0,2022-08-03T21:19:21.010+00:00,2022-08-03T23:00:06.114+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,26,
-gitlab:GitlabJob:1:128,format,gitlab:GitlabPipeline:1:49,FAILURE,DONE,,0,2022-08-04T21:19:12.398+00:00,2022-08-04T23:00:25.717+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,25,
-gitlab:GitlabJob:1:129,format,gitlab:GitlabPipeline:1:50,FAILURE,DONE,,0,2022-08-05T21:19:09.648+00:00,2022-08-05T23:00:18.441+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,24,
-gitlab:GitlabJob:1:130,format,gitlab:GitlabPipeline:1:51,FAILURE,DONE,,0,2022-08-06T21:19:29.253+00:00,2022-08-06T23:00:04.246+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,23,
-gitlab:GitlabJob:1:131,format,gitlab:GitlabPipeline:1:52,FAILURE,DONE,,0,2022-08-07T21:19:33.476+00:00,2022-08-07T23:00:01.350+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,22,
-gitlab:GitlabJob:1:132,format,gitlab:GitlabPipeline:1:53,FAILURE,DONE,,0,2022-08-08T21:19:02.531+00:00,2022-08-08T23:00:30.138+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,21,
-gitlab:GitlabJob:1:133,format,gitlab:GitlabPipeline:1:54,FAILURE,DONE,,0,2022-08-09T21:19:34.379+00:00,2022-08-09T23:00:15.331+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,20,
-gitlab:GitlabJob:1:134,format,gitlab:GitlabPipeline:1:55,FAILURE,DONE,,0,2022-08-10T08:19:08.693+00:00,2022-08-10T10:00:10.203+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,19,
-gitlab:GitlabJob:1:135,format,gitlab:GitlabPipeline:1:56,FAILURE,DONE,,0,2022-08-10T21:19:05.714+00:00,2022-08-10T23:00:41.546+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,18,
-gitlab:GitlabJob:1:136,format,gitlab:GitlabPipeline:1:57,FAILURE,DONE,,0,2022-08-11T21:19:25.605+00:00,2022-08-11T23:00:08.674+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,17,
-gitlab:GitlabJob:1:137,format,gitlab:GitlabPipeline:1:58,FAILURE,DONE,,0,2022-08-12T21:19:08.350+00:00,2022-08-12T23:00:03.492+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,16,
-gitlab:GitlabJob:1:138,format,gitlab:GitlabPipeline:1:59,FAILURE,DONE,,0,2022-08-13T21:19:06.775+00:00,2022-08-13T23:00:06.728+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,15,
-gitlab:GitlabJob:1:139,format,gitlab:GitlabPipeline:1:60,FAILURE,DONE,,0,2022-08-14T21:19:07.007+00:00,2022-08-14T23:00:22.581+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,14,
-gitlab:GitlabJob:1:140,format,gitlab:GitlabPipeline:1:61,FAILURE,DONE,,0,2022-08-15T21:19:09.087+00:00,2022-08-15T23:00:31.590+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,13,
-gitlab:GitlabJob:1:141,format,gitlab:GitlabPipeline:1:62,FAILURE,DONE,,0,2022-08-16T21:19:12.248+00:00,2022-08-16T23:00:16.800+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,12,
-gitlab:GitlabJob:1:142,format,gitlab:GitlabPipeline:1:63,FAILURE,DONE,,0,2022-08-17T08:20:06.419+00:00,2022-08-17T10:00:36.594+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,11,
-gitlab:GitlabJob:1:143,format,gitlab:GitlabPipeline:1:64,FAILURE,DONE,,0,2022-08-17T21:19:11.908+00:00,2022-08-17T23:00:23.915+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,10,
-gitlab:GitlabJob:1:144,format,gitlab:GitlabPipeline:1:65,FAILURE,DONE,,0,2022-08-18T21:19:14.072+00:00,2022-08-18T23:00:26.546+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,9,
-gitlab:GitlabJob:1:145,format,gitlab:GitlabPipeline:1:66,FAILURE,DONE,,0,2022-08-19T21:19:03.364+00:00,2022-08-19T23:00:19.772+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,8,
-gitlab:GitlabJob:1:146,format,gitlab:GitlabPipeline:1:67,FAILURE,DONE,,0,2022-08-20T21:19:37.743+00:00,2022-08-20T23:00:09.418+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,7,
-gitlab:GitlabJob:1:147,format,gitlab:GitlabPipeline:1:68,FAILURE,DONE,,0,2022-08-21T21:19:02.164+00:00,2022-08-21T23:00:18.538+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,6,
-gitlab:GitlabJob:1:148,format,gitlab:GitlabPipeline:1:69,FAILURE,DONE,,0,2022-08-22T21:19:16.175+00:00,2022-08-22T23:00:08.653+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,5,
-gitlab:GitlabJob:1:149,format,gitlab:GitlabPipeline:1:70,FAILURE,DONE,,0,2022-08-23T21:19:13.313+00:00,2022-08-23T23:00:20.712+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,4,
-gitlab:GitlabJob:1:150,format,gitlab:GitlabPipeline:1:71,FAILURE,DONE,,0,2022-08-24T08:19:19.653+00:00,2022-08-24T10:00:04.660+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,3,
-gitlab:GitlabJob:1:151,format,gitlab:GitlabPipeline:1:72,FAILURE,DONE,,0,2022-08-24T21:19:29.226+00:00,2022-08-24T23:00:14.036+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,2,
-gitlab:GitlabJob:1:152,format,gitlab:GitlabPipeline:1:73,FAILURE,DONE,,0,2022-08-25T21:19:10.938+00:00,2022-08-25T23:00:08.594+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,1,
-gitlab:GitlabJob:1:86,format,gitlab:GitlabPipeline:1:16,FAILURE,DONE,,0,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,67,
-gitlab:GitlabJob:1:87,format,gitlab:GitlabPipeline:1:16,FAILURE,DONE,,0,2022-07-25T13:41:11.601+00:00,2022-07-25T13:41:11.932+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,66,
-gitlab:GitlabJob:1:88,format,gitlab:GitlabPipeline:1:17,FAILURE,DONE,,0,2022-07-25T13:42:59.674+00:00,2022-07-25T13:42:59.998+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,65,
-gitlab:GitlabJob:1:89,format,gitlab:GitlabPipeline:1:17,ABORT,DONE,,0,2022-07-25T13:46:15.482+00:00,2022-07-25T13:49:42.952+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,64,
-gitlab:GitlabJob:1:90,format,gitlab:GitlabPipeline:1:18,ABORT,DONE,,0,2022-07-25T13:50:40.680+00:00,2022-07-25T14:19:03.023+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,63,
-gitlab:GitlabJob:1:91,format,gitlab:GitlabPipeline:1:18,FAILURE,DONE,,2,2022-07-25T14:26:02.616+00:00,2022-07-25T14:26:05.480+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,62,
-gitlab:GitlabJob:1:92,format,gitlab:GitlabPipeline:1:18,FAILURE,DONE,,1,2022-07-25T14:47:12.876+00:00,2022-07-25T14:47:14.295+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,61,
-gitlab:GitlabJob:1:93,format,gitlab:GitlabPipeline:1:19,FAILURE,DONE,,1,2022-07-25T14:53:56.227+00:00,2022-07-25T14:53:57.910+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,60,
-gitlab:GitlabJob:1:94,format,gitlab:GitlabPipeline:1:20,FAILURE,DONE,,1,2022-07-25T14:55:26.493+00:00,2022-07-25T14:55:28.331+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,59,
-gitlab:GitlabJob:1:95,format,gitlab:GitlabPipeline:1:21,FAILURE,DONE,,1,2022-07-25T14:56:59.811+00:00,2022-07-25T14:57:01.498+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,58,
-gitlab:GitlabJob:1:96,format,gitlab:GitlabPipeline:1:21,FAILURE,DONE,,5,2022-07-25T14:59:29.276+00:00,2022-07-25T14:59:34.282+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,57,
-gitlab:GitlabJob:1:97,format,gitlab:GitlabPipeline:1:22,SUCCESS,DONE,,3,2022-07-25T15:00:43.749+00:00,2022-07-25T15:00:46.895+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,56,
-gitlab:GitlabJob:1:98,format,gitlab:GitlabPipeline:1:23,SUCCESS,DONE,,2,2022-07-25T15:03:23.471+00:00,2022-07-25T15:03:26.432+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,55,
-gitlab:GitlabJob:1:99,format,gitlab:GitlabPipeline:1:24,SUCCESS,DONE,,2,2022-07-25T15:06:54.037+00:00,2022-07-25T15:06:56.819+00:00,,"{""ConnectionId"":1,""ProjectId"":44}",_raw_gitlab_api_job,54,
+id,name,pipeline_id,result,status,type,environment,duration_sec,started_date,finished_date,cicd_scope_id
+gitlab:GitlabJob:1:100,compile,gitlab:GitlabPipeline:1:24,SUCCESS,DONE,,,2,2022-07-25T15:06:57.051+00:00,2022-07-25T15:06:59.885+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:101,format,gitlab:GitlabPipeline:1:25,SUCCESS,DONE,,,3,2022-07-25T15:13:37.206+00:00,2022-07-25T15:13:40.246+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:102,format,gitlab:GitlabPipeline:1:26,SUCCESS,DONE,,,2,2022-07-25T15:30:22.560+00:00,2022-07-25T15:30:25.315+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:103,format,gitlab:GitlabPipeline:1:27,SUCCESS,DONE,,,2,2022-07-25T15:30:55.671+00:00,2022-07-25T15:30:58.650+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:104,format,gitlab:GitlabPipeline:1:28,SUCCESS,DONE,,,2,2022-07-25T15:32:04.954+00:00,2022-07-25T15:32:07.726+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:105,compile,gitlab:GitlabPipeline:1:28,FAILURE,DONE,,,3,2022-07-25T15:32:07.953+00:00,2022-07-25T15:32:11.077+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:106,format,gitlab:GitlabPipeline:1:29,SUCCESS,DONE,,,2,2022-07-25T15:33:26.382+00:00,2022-07-25T15:33:29.356+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:107,format,gitlab:GitlabPipeline:1:30,SUCCESS,DONE,,,2,2022-07-25T15:34:23.665+00:00,2022-07-25T15:34:26.392+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:108,format,gitlab:GitlabPipeline:1:31,SUCCESS,DONE,,,2,2022-07-25T15:35:11.707+00:00,2022-07-25T15:35:14.224+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:109,compile,gitlab:GitlabPipeline:1:31,SUCCESS,DONE,,,3,2022-07-25T15:35:14.724+00:00,2022-07-25T15:35:17.828+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:110,format,gitlab:GitlabPipeline:1:32,SUCCESS,DONE,,,2,2022-07-25T15:36:18.097+00:00,2022-07-25T15:36:20.954+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:111,format,gitlab:GitlabPipeline:1:33,SUCCESS,DONE,,,3,2022-07-25T15:38:03.463+00:00,2022-07-25T15:38:06.467+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:112,format,gitlab:GitlabPipeline:1:34,SUCCESS,DONE,,,3,2022-07-25T21:19:14.509+00:00,2022-07-25T21:19:17.811+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:113,format,gitlab:GitlabPipeline:1:35,SUCCESS,DONE,,,5,2022-07-26T09:37:05.694+00:00,2022-07-26T09:37:10.873+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:114,format,gitlab:GitlabPipeline:1:36,SUCCESS,DONE,,,2,2022-07-26T09:37:38.057+00:00,2022-07-26T09:37:40.975+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:115,format,gitlab:GitlabPipeline:1:37,SUCCESS,DONE,,,3,2022-07-26T09:38:29.318+00:00,2022-07-26T09:38:32.970+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:116,format,gitlab:GitlabPipeline:1:38,SUCCESS,DONE,,,3,2022-07-26T21:19:13.888+00:00,2022-07-26T21:19:17.021+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:117,format,gitlab:GitlabPipeline:1:39,SUCCESS,DONE,,,3,2022-07-27T08:19:24.376+00:00,2022-07-27T08:19:28.159+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:118,format,gitlab:GitlabPipeline:1:40,SUCCESS,DONE,,,4,2022-07-27T21:19:32.288+00:00,2022-07-27T21:19:36.850+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:119,format,gitlab:GitlabPipeline:1:41,FAILURE,DONE,,,0,2022-07-28T21:19:24.257+00:00,2022-07-28T23:00:17.842+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:120,format,gitlab:GitlabPipeline:1:41,SUCCESS,DONE,,,56,2022-07-29T02:10:58.370+00:00,2022-07-29T02:11:55.170+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:121,format,gitlab:GitlabPipeline:1:42,FAILURE,DONE,,,0,2022-07-29T21:19:02.884+00:00,2022-07-29T23:00:24.840+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:122,format,gitlab:GitlabPipeline:1:43,FAILURE,DONE,,,0,2022-07-30T21:19:26.310+00:00,2022-07-30T23:00:25.126+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:123,format,gitlab:GitlabPipeline:1:44,FAILURE,DONE,,,0,2022-07-31T21:19:05.348+00:00,2022-07-31T23:00:29.135+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:124,format,gitlab:GitlabPipeline:1:45,FAILURE,DONE,,,0,2022-08-01T21:19:02.489+00:00,2022-08-01T23:00:22.874+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:125,format,gitlab:GitlabPipeline:1:46,FAILURE,DONE,,,0,2022-08-02T21:19:25.568+00:00,2022-08-02T23:00:23.221+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:126,format,gitlab:GitlabPipeline:1:47,FAILURE,DONE,,,0,2022-08-03T08:19:06.570+00:00,2022-08-03T10:00:05.573+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:127,format,gitlab:GitlabPipeline:1:48,FAILURE,DONE,,,0,2022-08-03T21:19:21.010+00:00,2022-08-03T23:00:06.114+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:128,format,gitlab:GitlabPipeline:1:49,FAILURE,DONE,,,0,2022-08-04T21:19:12.398+00:00,2022-08-04T23:00:25.717+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:129,format,gitlab:GitlabPipeline:1:50,FAILURE,DONE,,,0,2022-08-05T21:19:09.648+00:00,2022-08-05T23:00:18.441+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:130,format,gitlab:GitlabPipeline:1:51,FAILURE,DONE,,,0,2022-08-06T21:19:29.253+00:00,2022-08-06T23:00:04.246+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:131,format,gitlab:GitlabPipeline:1:52,FAILURE,DONE,,,0,2022-08-07T21:19:33.476+00:00,2022-08-07T23:00:01.350+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:132,format,gitlab:GitlabPipeline:1:53,FAILURE,DONE,,,0,2022-08-08T21:19:02.531+00:00,2022-08-08T23:00:30.138+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:133,format,gitlab:GitlabPipeline:1:54,FAILURE,DONE,,,0,2022-08-09T21:19:34.379+00:00,2022-08-09T23:00:15.331+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:134,format,gitlab:GitlabPipeline:1:55,FAILURE,DONE,,,0,2022-08-10T08:19:08.693+00:00,2022-08-10T10:00:10.203+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:135,format,gitlab:GitlabPipeline:1:56,FAILURE,DONE,,,0,2022-08-10T21:19:05.714+00:00,2022-08-10T23:00:41.546+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:136,format,gitlab:GitlabPipeline:1:57,FAILURE,DONE,,,0,2022-08-11T21:19:25.605+00:00,2022-08-11T23:00:08.674+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:137,format,gitlab:GitlabPipeline:1:58,FAILURE,DONE,,,0,2022-08-12T21:19:08.350+00:00,2022-08-12T23:00:03.492+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:138,format,gitlab:GitlabPipeline:1:59,FAILURE,DONE,,,0,2022-08-13T21:19:06.775+00:00,2022-08-13T23:00:06.728+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:139,format,gitlab:GitlabPipeline:1:60,FAILURE,DONE,,,0,2022-08-14T21:19:07.007+00:00,2022-08-14T23:00:22.581+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:140,format,gitlab:GitlabPipeline:1:61,FAILURE,DONE,,,0,2022-08-15T21:19:09.087+00:00,2022-08-15T23:00:31.590+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:141,format,gitlab:GitlabPipeline:1:62,FAILURE,DONE,,,0,2022-08-16T21:19:12.248+00:00,2022-08-16T23:00:16.800+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:142,format,gitlab:GitlabPipeline:1:63,FAILURE,DONE,,,0,2022-08-17T08:20:06.419+00:00,2022-08-17T10:00:36.594+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:143,format,gitlab:GitlabPipeline:1:64,FAILURE,DONE,,,0,2022-08-17T21:19:11.908+00:00,2022-08-17T23:00:23.915+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:144,format,gitlab:GitlabPipeline:1:65,FAILURE,DONE,,,0,2022-08-18T21:19:14.072+00:00,2022-08-18T23:00:26.546+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:145,format,gitlab:GitlabPipeline:1:66,FAILURE,DONE,,,0,2022-08-19T21:19:03.364+00:00,2022-08-19T23:00:19.772+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:146,format,gitlab:GitlabPipeline:1:67,FAILURE,DONE,,,0,2022-08-20T21:19:37.743+00:00,2022-08-20T23:00:09.418+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:147,format,gitlab:GitlabPipeline:1:68,FAILURE,DONE,,,0,2022-08-21T21:19:02.164+00:00,2022-08-21T23:00:18.538+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:148,format,gitlab:GitlabPipeline:1:69,FAILURE,DONE,,,0,2022-08-22T21:19:16.175+00:00,2022-08-22T23:00:08.653+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:149,format,gitlab:GitlabPipeline:1:70,FAILURE,DONE,,,0,2022-08-23T21:19:13.313+00:00,2022-08-23T23:00:20.712+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:150,format,gitlab:GitlabPipeline:1:71,FAILURE,DONE,,,0,2022-08-24T08:19:19.653+00:00,2022-08-24T10:00:04.660+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:151,format,gitlab:GitlabPipeline:1:72,FAILURE,DONE,,,0,2022-08-24T21:19:29.226+00:00,2022-08-24T23:00:14.036+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:152,format,gitlab:GitlabPipeline:1:73,FAILURE,DONE,,,0,2022-08-25T21:19:10.938+00:00,2022-08-25T23:00:08.594+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:86,format,gitlab:GitlabPipeline:1:16,FAILURE,DONE,,,0,2022-07-25T13:40:42.020+00:00,2022-07-25T13:40:42.892+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:87,format,gitlab:GitlabPipeline:1:16,FAILURE,DONE,,,0,2022-07-25T13:41:11.601+00:00,2022-07-25T13:41:11.932+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:88,format,gitlab:GitlabPipeline:1:17,FAILURE,DONE,,,0,2022-07-25T13:42:59.674+00:00,2022-07-25T13:42:59.998+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:89,format,gitlab:GitlabPipeline:1:17,ABORT,DONE,,,0,2022-07-25T13:46:15.482+00:00,2022-07-25T13:49:42.952+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:90,format,gitlab:GitlabPipeline:1:18,ABORT,DONE,,,0,2022-07-25T13:50:40.680+00:00,2022-07-25T14:19:03.023+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:91,format,gitlab:GitlabPipeline:1:18,FAILURE,DONE,,,2,2022-07-25T14:26:02.616+00:00,2022-07-25T14:26:05.480+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:92,format,gitlab:GitlabPipeline:1:18,FAILURE,DONE,,,1,2022-07-25T14:47:12.876+00:00,2022-07-25T14:47:14.295+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:93,format,gitlab:GitlabPipeline:1:19,FAILURE,DONE,,,1,2022-07-25T14:53:56.227+00:00,2022-07-25T14:53:57.910+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:94,format,gitlab:GitlabPipeline:1:20,FAILURE,DONE,,,1,2022-07-25T14:55:26.493+00:00,2022-07-25T14:55:28.331+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:95,format,gitlab:GitlabPipeline:1:21,FAILURE,DONE,,,1,2022-07-25T14:56:59.811+00:00,2022-07-25T14:57:01.498+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:96,format,gitlab:GitlabPipeline:1:21,FAILURE,DONE,,,5,2022-07-25T14:59:29.276+00:00,2022-07-25T14:59:34.282+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:97,format,gitlab:GitlabPipeline:1:22,SUCCESS,DONE,,,3,2022-07-25T15:00:43.749+00:00,2022-07-25T15:00:46.895+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:98,format,gitlab:GitlabPipeline:1:23,SUCCESS,DONE,,,2,2022-07-25T15:03:23.471+00:00,2022-07-25T15:03:26.432+00:00,gitlab:GitlabProject:1:44
+gitlab:GitlabJob:1:99,format,gitlab:GitlabPipeline:1:24,SUCCESS,DONE,,,2,2022-07-25T15:06:54.037+00:00,2022-07-25T15:06:56.819+00:00,gitlab:GitlabProject:1:44
diff --git a/plugins/gitlab/tasks/job_convertor.go b/plugins/gitlab/tasks/job_convertor.go
index 418c90a1..917284bb 100644
--- a/plugins/gitlab/tasks/job_convertor.go
+++ b/plugins/gitlab/tasks/job_convertor.go
@@ -60,6 +60,7 @@ func ConvertJobs(taskCtx core.SubTaskContext) (err errors.Error) {
 	defer cursor.Close()
 
 	jobIdGen := didgen.NewDomainIdGenerator(&gitlabModels.GitlabJob{})
+	projectIdGen := didgen.NewDomainIdGenerator(&gitlabModels.GitlabProject{})
 	pipelineIdGen := didgen.NewDomainIdGenerator(&gitlabModels.GitlabPipeline{})
 	converter, err := helper.NewDataConverter(helper.DataConverterArgs{
 		InputRowType: reflect.TypeOf(gitlabModels.GitlabJob{}),
@@ -103,6 +104,7 @@ func ConvertJobs(taskCtx core.SubTaskContext) (err errors.Error) {
 				DurationSec:  uint64(gitlabJob.Duration),
 				StartedDate:  *startedAt,
 				FinishedDate: gitlabJob.FinishedAt,
+				CicdScopeId:  projectIdGen.Generate(data.Options.ConnectionId, gitlabJob.ProjectId),
 			}
 			if deployTagRegexp != nil {
 				if deployFlag := deployTagRegexp.FindString(gitlabJob.Name); deployFlag != "" {
diff --git a/plugins/gitlab/tasks/pipeline_convertor.go b/plugins/gitlab/tasks/pipeline_convertor.go
index 350f2a5c..70dd9a85 100644
--- a/plugins/gitlab/tasks/pipeline_convertor.go
+++ b/plugins/gitlab/tasks/pipeline_convertor.go
@@ -90,6 +90,7 @@ func ConvertPipelines(taskCtx core.SubTaskContext) errors.Error {
 				}, gitlabPipeline.Status),
 				CreatedDate:  createdAt,
 				FinishedDate: gitlabPipeline.GitlabUpdatedAt,
+				CicdScopeId:  projectIdGen.Generate(data.Options.ConnectionId, gitlabPipeline.ProjectId),
 			}
 
 			// rebuild the FinishedDate and DurationSec by Status
diff --git a/plugins/gitlab/tasks/project_convertor.go b/plugins/gitlab/tasks/project_convertor.go
index 7c6cff14..85bdc018 100644
--- a/plugins/gitlab/tasks/project_convertor.go
+++ b/plugins/gitlab/tasks/project_convertor.go
@@ -20,6 +20,7 @@ package tasks
 import (
 	"github.com/apache/incubator-devlake/errors"
 	"github.com/apache/incubator-devlake/models/domainlayer/crossdomain"
+	"github.com/apache/incubator-devlake/models/domainlayer/devops"
 	"reflect"
 
 	"github.com/apache/incubator-devlake/plugins/core/dal"
@@ -63,12 +64,14 @@ func ConvertApiProjects(taskCtx core.SubTaskContext) errors.Error {
 			gitlabProject := inputRow.(*models.GitlabProject)
 
 			domainRepository := convertToRepositoryModel(gitlabProject)
+			domainCicdScope := convertToCicdScopeModel(gitlabProject)
 			domainBoard := convertToBoardModel(gitlabProject)
 			domainBoardRepo := convertToBoardRepoModel(gitlabProject)
 			return []interface{}{
 				domainRepository,
 				domainBoard,
 				domainBoardRepo,
+				domainCicdScope,
 			}, nil
 		},
 	})
@@ -114,3 +117,17 @@ func convertToBoardRepoModel(project *models.GitlabProject) *crossdomain.BoardRe
 	}
 	return domainBoardRepo
 }
+
+func convertToCicdScopeModel(project *models.GitlabProject) *devops.CicdScope {
+	domainCicdScope := &devops.CicdScope{
+		DomainEntity: domainlayer.DomainEntity{
+			Id: didgen.NewDomainIdGenerator(project).Generate(project.ConnectionId, project.GitlabId),
+		},
+		Name:        project.Name,
+		Url:         project.WebUrl,
+		Description: project.Description,
+		CreatedDate: &project.CreatedDate,
+		UpdatedDate: project.UpdatedDate,
+	}
+	return domainCicdScope
+}