You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by GitBox <gi...@apache.org> on 2022/11/08 12:21:06 UTC

[GitHub] [incubator-devlake] warren830 opened a new pull request, #3700: fix(jenkins): use job selector

warren830 opened a new pull request, #3700:
URL: https://github.com/apache/incubator-devlake/pull/3700

   # Summary
   
   1. add job_path to params, options
   2. use job_path and job_name as param to collect job
   3. use job_path and job_name as param to collect build
   4. modify e2e test
   
   ### Does this close any open issues?
   relates to #3296 
   
   ### Screenshots
   Include any relevant screenshots here.
   
   ### Other Information
   Any other information that is important to this PR.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@devlake.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-devlake] likyh commented on a diff in pull request #3700: fix(jenkins): uniquely identify a Jenkins job by combining job_name and job_path

Posted by GitBox <gi...@apache.org>.
likyh commented on code in PR #3700:
URL: https://github.com/apache/incubator-devlake/pull/3700#discussion_r1017784911


##########
plugins/jenkins/models/migrationscripts/20221108_add_job_fields.go:
##########
@@ -0,0 +1,53 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package migrationscripts
+
+import (
+	"github.com/apache/incubator-devlake/errors"
+	"github.com/apache/incubator-devlake/plugins/core"
+)
+
+type addJobFields struct{}
+
+type jenkinsJob20221108 struct {
+	Name        string `gorm:"index;type:varchar(255)"`
+	Url         string
+	Description string
+	PrimaryView string `gorm:"type:varchar(255)"`
+}
+
+func (jenkinsJob20221108) TableName() string {
+	return "_tool_jenkins_jobs"
+}
+
+func (script *addJobFields) Up(basicRes core.BasicRes) errors.Error {
+	db := basicRes.GetDal()
+	err := db.RenameColumn(`_tool_jenkins_jobs`, `name`, `full_name`)
+	if err != nil {
+		return err
+	}
+	return db.AutoMigrate(&jenkinsJob20221108{})
+}
+
+func (*addJobFields) Version() uint64 {
+	return 20221108231237

Review Comment:
   They have the same version, `20221108231237`?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@devlake.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-devlake] warren830 commented on a diff in pull request #3700: fix(jenkins): uniquely identify a Jenkins job by combining job_name and job_path

Posted by GitBox <gi...@apache.org>.
warren830 commented on code in PR #3700:
URL: https://github.com/apache/incubator-devlake/pull/3700#discussion_r1017800337


##########
plugins/jenkins/e2e/snapshot_tables/_tool_jenkins_builds.csv:
##########
@@ -1,38 +1,38 @@
-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,""JobName"":""devlake""}",_raw_jenkins_api_builds,95,
-1,devlake #2,devlake,2121,1457,2,SUCCESS,1650022548450,2022-04-15T11:35:48.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,94,
-1,devlake #3,devlake,1587,1457,3,SUCCESS,1650024049161,2022-04-15T12:00:49.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,93,
-1,devlake #4,devlake,13952,1457,4,SUCCESS,1662647203905,2022-09-08T14:26:43.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,92,
-1,devlake #5,devlake,1274,1457,5,SUCCESS,1662647231332,2022-09-08T14:27:11.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,91,
-1,devlake #6,devlake,1202,1457,6,SUCCESS,1662647242809,2022-09-08T14:27:22.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,90,
-1,devlake #7,devlake,1988,1457,7,SUCCESS,1662651625889,2022-09-08T15:40:25.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,89,
-1,devlake #8,devlake,1180,1457,8,SUCCESS,1662651640536,2022-09-08T15:40:40.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_raw_jenkins_api_builds,98,
-1,测试流水线 #1,测试流水线,1539,568,1,SUCCESS,1662647205888,2022-09-08T14:26:45.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,108,
-1,测试流水线 #2,测试流水线,74,568,2,SUCCESS,1662647232072,2022-09-08T14:27:12.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,107,
-1,测试流水线 #3,测试流水线,90,568,3,SUCCESS,1662651649571,2022-09-08T15:40:49.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,106,
-1,这是一个改了名字的测试任务 #1,这是一个改了名字的测试任务,57,6,1,SUCCESS,1650017153775,2022-04-15T10:05:53.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,124,
-1,这是一个改了名字的测试任务 #10,这是一个改了名字的测试任务,12,6,10,SUCCESS,1662647233074,2022-09-08T14:27:13.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,115,
-1,这是一个改了名字的测试任务 #11,这是一个改了名字的测试任务,4,6,11,SUCCESS,1662651656567,2022-09-08T15:40:56.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,114,
-1,这是一个改了名字的测试任务 #12,这是一个改了名字的测试任务,2,6,12,SUCCESS,1662651657893,2022-09-08T15:40:57.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,113,
-1,这是一个改了名字的测试任务 #2,这是一个改了名字的测试任务,4,6,2,SUCCESS,1650017177939,2022-04-15T10:06:17.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,123,
-1,这是一个改了名字的测试任务 #3,这是一个改了名字的测试任务,3,6,3,SUCCESS,1650017186253,2022-04-15T10:06:26.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,122,
-1,这是一个改了名字的测试任务 #4,这是一个改了名字的测试任务,6,6,4,SUCCESS,1650022556910,2022-04-15T11:35:56.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,121,
-1,这是一个改了名字的测试任务 #5,这是一个改了名字的测试任务,6,6,5,SUCCESS,1650022558491,2022-04-15T11:35:58.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,120,
-1,这是一个改了名字的测试任务 #6,这是一个改了名字的测试任务,10,6,6,SUCCESS,1650022560954,2022-04-15T11:36:00.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,119,
-1,这是一个改了名字的测试任务 #7,这是一个改了名字的测试任务,8,6,7,SUCCESS,1650023883294,2022-04-15T11:58:03.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,118,
-1,这是一个改了名字的测试任务 #8,这是一个改了名字的测试任务,11,6,8,SUCCESS,1650023894336,2022-04-15T11:58:14.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,117,
-1,这是一个改了名字的测试任务 #9,这是一个改了名字的测试任务,78,6,9,SUCCESS,1662647207972,2022-09-08T14:26:47.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,116,
+connection_id,full_display_name,job_name,job_path,duration,estimated_duration,number,result,timestamp,start_time,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
+1,devlake #1,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,14820,1457,1,SUCCESS,1650017416514,2022-04-15T10:10:16.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,95,
+1,devlake #2,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,2121,1457,2,SUCCESS,1650022548450,2022-04-15T11:35:48.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,94,
+1,devlake #3,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,1587,1457,3,SUCCESS,1650024049161,2022-04-15T12:00:49.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,93,
+1,devlake #4,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,13952,1457,4,SUCCESS,1662647203905,2022-09-08T14:26:43.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,92,
+1,devlake #5,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,1274,1457,5,SUCCESS,1662647231332,2022-09-08T14:27:11.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,91,
+1,devlake #6,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,1202,1457,6,SUCCESS,1662647242809,2022-09-08T14:27:22.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,90,
+1,devlake #7,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,1988,1457,7,SUCCESS,1662651625889,2022-09-08T15:40:25.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,89,
+1,devlake #8,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,1180,1457,8,SUCCESS,1662651640536,2022-09-08T15:40:40.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,88,
+1,dir-test » dir-test-2 » free #1,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,70,27,1,SUCCESS,1658385566471,2022-07-21T06:39:26.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,105,
+1,dir-test » dir-test-2 » free #2,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,6,27,2,SUCCESS,1658385576367,2022-07-21T06:39:36.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,104,
+1,dir-test » dir-test-2 » free #3,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,4,27,3,SUCCESS,1662647217041,2022-09-08T14:26:57.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,103,
+1,dir-test » dir-test-2 » free1 #1,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,4,9,1,SUCCESS,1658386240842,2022-07-21T06:50:40.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,112,
+1,dir-test » dir-test-2 » free1 #2,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,11,9,2,SUCCESS,1658386250446,2022-07-21T06:50:50.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,111,
+1,dir-test » dir-test-2 » free1 #3,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,4,9,3,SUCCESS,1658386255052,2022-07-21T06:50:55.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,110,
+1,dir-test » dir-test-2 » free1 #4,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,11,9,4,SUCCESS,1662647217746,2022-09-08T14:26:57.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,109,
+1,dir-test » pipeline-test #1,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,1429,745,1,SUCCESS,1658385602419,2022-07-21T06:40:02.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,97,
+1,dir-test » pipeline-test #2,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,61,745,2,SUCCESS,1662647211512,2022-09-08T14:26:51.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,96,
+1,dir-test » testfile #1,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,4,8,1,SUCCESS,1658385600801,2022-07-21T06:40:00.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,102,
+1,dir-test » testfile #2,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,11,8,2,SUCCESS,1662647212436,2022-09-08T14:26:52.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,101,
+1,pipeline-test2 #1,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,4564,1972,1,SUCCESS,1662651613681,2022-09-08T15:40:13.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,100,
+1,pipeline-test2 #2,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,551,1972,2,SUCCESS,1662651633991,2022-09-08T15:40:33.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,99,
+1,pipeline-test2 #3,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,802,1972,3,SUCCESS,1662651648992,2022-09-08T15:40:48.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,98,
+1,测试流水线 #1,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,1539,568,1,SUCCESS,1662647205888,2022-09-08T14:26:45.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,108,
+1,测试流水线 #2,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,74,568,2,SUCCESS,1662647232072,2022-09-08T14:27:12.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,107,
+1,测试流水线 #3,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,90,568,3,SUCCESS,1662651649571,2022-09-08T15:40:49.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,106,
+1,这是一个改了名字的测试任务 #1,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,57,6,1,SUCCESS,1650017153775,2022-04-15T10:05:53.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,124,

Review Comment:
   because it's changed in raw data



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@devlake.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-devlake] likyh commented on a diff in pull request #3700: fix(jenkins): uniquely identify a Jenkins job by combining job_name and job_path

Posted by GitBox <gi...@apache.org>.
likyh commented on code in PR #3700:
URL: https://github.com/apache/incubator-devlake/pull/3700#discussion_r1017783100


##########
plugins/jenkins/tasks/job_extractor.go:
##########
@@ -52,22 +55,22 @@ func ExtractApiJobs(taskCtx core.SubTaskContext) errors.Error {
 				return nil, err
 			}
 
-			input := &models.FolderInput{}
-			err = errors.Convert(json.Unmarshal(row.Input, input))
-			if err != nil {
-				return nil, err
-			}
-
 			results := make([]interface{}, 0, 1+len(body.UpstreamProjects))
 
 			job := &models.JenkinsJob{
-				JenkinsJobProps: models.JenkinsJobProps{
-					ConnectionId: data.Options.ConnectionId,
-					Name:         body.Name,
-					Path:         input.Path,
-					Class:        body.Class,
-					Color:        body.Color,
-				},
+				ConnectionId: data.Options.ConnectionId,
+				FullName:     body.FullName,
+				Name:         body.Name,
+				Path:         data.Options.JobPath,
+				Class:        body.Class,
+				Color:        body.Color,
+				Base:         body.Base,
+				Url:          body.URL,
+				Description:  body.Description,
+				NoPKModel:    common.NoPKModel{},
+			}
+			if body.PrimaryView != nil {
+				job.PrimaryView = body.PrimaryView.Name
 			}
 			for _, upstreamProject := range body.UpstreamProjects {
 				upDownJob := models.JenkinsJobDag{

Review Comment:
   So job dag can be deleted? because `JobPath` is necessary to know what is the parent of the job.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@devlake.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-devlake] warren830 commented on a diff in pull request #3700: fix(jenkins): Use job_path and job_name together to collect data

Posted by GitBox <gi...@apache.org>.
warren830 commented on code in PR #3700:
URL: https://github.com/apache/incubator-devlake/pull/3700#discussion_r1017485585


##########
plugins/jenkins/tasks/build_cicd_convertor.go:
##########
@@ -102,7 +107,7 @@ func ConvertBuildsToCICD(taskCtx core.SubTaskContext) (err errors.Error) {
 					Id: buildIdGen.Generate(jenkinsBuild.ConnectionId,
 						jenkinsBuild.FullDisplayName),
 				},
-				Name:         jenkinsBuild.JobName,
+				Name:         fmt.Sprintf(`%s%s`, jenkinsBuild.JobPath, jenkinsBuild.JobName),

Review Comment:
   To reviewer: I'm not quite sure if we should do this concat. Maybe we can use jobName directly as we will have cicd_scope_id to bind this pipeline to the right cicd_scope(jenkins job)



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@devlake.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-devlake] likyh commented on a diff in pull request #3700: fix(jenkins): uniquely identify a Jenkins job by combining job_name and job_path

Posted by GitBox <gi...@apache.org>.
likyh commented on code in PR #3700:
URL: https://github.com/apache/incubator-devlake/pull/3700#discussion_r1017790235


##########
plugins/jenkins/e2e/snapshot_tables/cicd_pipelines.csv:
##########
@@ -1,38 +1,38 @@
 id,name,result,status,type,duration_sec,environment,created_date,finished_date,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
-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,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,95,
-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,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,94,
-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,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,93,
-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,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,92,
-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,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,91,
-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,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,90,
-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,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,89,
-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,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,88,
-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,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,105,
-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,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,104,
-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,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,103,
-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,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,112,
-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,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,111,
-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,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,110,
-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,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,109,
-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,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,97,
-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,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,96,
-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,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,102,
-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,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,101,
-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,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,100,
-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,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,99,
-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,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,98,
-jenkins:JenkinsBuild:1:测试流水线 #1,测试流水线,SUCCESS,DONE,,1,,2022-09-08T14:26:45.000+00:00,2022-09-08T14:26:46.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,108,
-jenkins:JenkinsBuild:1:测试流水线 #2,测试流水线,SUCCESS,DONE,,0,,2022-09-08T14:27:12.000+00:00,2022-09-08T14:27:12.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,107,
-jenkins:JenkinsBuild:1:测试流水线 #3,测试流水线,SUCCESS,DONE,,0,,2022-09-08T15:40:49.000+00:00,2022-09-08T15:40:49.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,106,
-jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 #1,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-04-15T10:05:53.000+00:00,2022-04-15T10:05:53.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,124,
-jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 #10,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-09-08T14:27:13.000+00:00,2022-09-08T14:27:13.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,115,
-jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 #11,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-09-08T15:40:56.000+00:00,2022-09-08T15:40:56.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,114,
-jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 #12,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-09-08T15:40:57.000+00:00,2022-09-08T15:40:57.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,113,
-jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 #2,这是一个改了名字的测试任务,,IN_PROGRESS,,0,,2022-04-15T10:06:17.000+00:00,,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,123,
-jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 #3,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-04-15T10:06:26.000+00:00,2022-04-15T10:06:26.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,122,
-jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 #4,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-04-15T11:35:56.000+00:00,2022-04-15T11:35:56.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,121,
-jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 #5,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-04-15T11:35:58.000+00:00,2022-04-15T11:35:58.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,120,
-jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 #6,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-04-15T11:36:00.000+00:00,2022-04-15T11:36:00.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,119,
-jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 #7,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-04-15T11:58:03.000+00:00,2022-04-15T11:58:03.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,118,
-jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 #8,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-04-15T11:58:14.000+00:00,2022-04-15T11:58:14.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,117,
-jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 #9,这是一个改了名字的测试任务,SUCCESS,DONE,,0,,2022-09-08T14:26:47.000+00:00,2022-09-08T14:26:47.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,116,
+jenkins:JenkinsBuild:1:devlake #1,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/devlake,SUCCESS,DONE,,14,,2022-04-15T10:10:16.000+00:00,2022-04-15T10:10:30.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,95,
+jenkins:JenkinsBuild:1:devlake #2,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/devlake,SUCCESS,DONE,,2,,2022-04-15T11:35:48.000+00:00,2022-04-15T11:35:50.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,94,
+jenkins:JenkinsBuild:1:devlake #3,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/devlake,SUCCESS,DONE,,1,,2022-04-15T12:00:49.000+00:00,2022-04-15T12:00:50.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,93,
+jenkins:JenkinsBuild:1:devlake #4,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/devlake,SUCCESS,DONE,,13,,2022-09-08T14:26:43.000+00:00,2022-09-08T14:26:56.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,92,
+jenkins:JenkinsBuild:1:devlake #5,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/devlake,SUCCESS,DONE,,1,,2022-09-08T14:27:11.000+00:00,2022-09-08T14:27:12.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,91,
+jenkins:JenkinsBuild:1:devlake #6,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/devlake,SUCCESS,DONE,,1,,2022-09-08T14:27:22.000+00:00,2022-09-08T14:27:23.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,90,
+jenkins:JenkinsBuild:1:devlake #7,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/devlake,SUCCESS,DONE,,1,,2022-09-08T15:40:25.000+00:00,2022-09-08T15:40:26.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,89,
+jenkins:JenkinsBuild:1:devlake #8,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/devlake,SUCCESS,DONE,,1,,2022-09-08T15:40:40.000+00:00,2022-09-08T15:40:41.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,88,
+jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free #1,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/devlake,SUCCESS,DONE,,0,,2022-07-21T06:39:26.000+00:00,2022-07-21T06:39:26.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,105,
+jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free #2,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/devlake,SUCCESS,DONE,,0,,2022-07-21T06:39:36.000+00:00,2022-07-21T06:39:36.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,104,
+jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free #3,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/devlake,SUCCESS,DONE,,0,,2022-09-08T14:26:57.000+00:00,2022-09-08T14:26:57.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,103,
+jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free1 #1,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/devlake,SUCCESS,DONE,,0,,2022-07-21T06:50:40.000+00:00,2022-07-21T06:50:40.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,112,
+jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free1 #2,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/devlake,SUCCESS,DONE,,0,,2022-07-21T06:50:50.000+00:00,2022-07-21T06:50:50.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,111,
+jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free1 #3,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/devlake,SUCCESS,DONE,,0,,2022-07-21T06:50:55.000+00:00,2022-07-21T06:50:55.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,110,
+jenkins:JenkinsBuild:1:dir-test » dir-test-2 » free1 #4,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/devlake,SUCCESS,DONE,,0,,2022-09-08T14:26:57.000+00:00,2022-09-08T14:26:57.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,109,
+jenkins:JenkinsBuild:1:dir-test » pipeline-test #1,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/devlake,SUCCESS,DONE,,1,,2022-07-21T06:40:02.000+00:00,2022-07-21T06:40:03.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,97,
+jenkins:JenkinsBuild:1:dir-test » pipeline-test #2,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/devlake,SUCCESS,DONE,,0,,2022-09-08T14:26:51.000+00:00,2022-09-08T14:26:51.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,96,
+jenkins:JenkinsBuild:1:dir-test » testfile #1,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/devlake,SUCCESS,DONE,,0,,2022-07-21T06:40:00.000+00:00,2022-07-21T06:40:00.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,102,
+jenkins:JenkinsBuild:1:dir-test » testfile #2,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/devlake,SUCCESS,DONE,,0,,2022-09-08T14:26:52.000+00:00,2022-09-08T14:26:52.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,101,
+jenkins:JenkinsBuild:1:pipeline-test2 #1,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/devlake,SUCCESS,DONE,,4,,2022-09-08T15:40:13.000+00:00,2022-09-08T15:40:17.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,100,
+jenkins:JenkinsBuild:1:pipeline-test2 #2,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/devlake,SUCCESS,DONE,,0,,2022-09-08T15:40:33.000+00:00,2022-09-08T15:40:33.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,99,
+jenkins:JenkinsBuild:1:pipeline-test2 #3,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/devlake,SUCCESS,DONE,,0,,2022-09-08T15:40:48.000+00:00,2022-09-08T15:40:48.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,98,
+jenkins:JenkinsBuild:1:测试流水线 #1,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/devlake,SUCCESS,DONE,,1,,2022-09-08T14:26:45.000+00:00,2022-09-08T14:26:46.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,108,
+jenkins:JenkinsBuild:1:测试流水线 #2,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/devlake,SUCCESS,DONE,,0,,2022-09-08T14:27:12.000+00:00,2022-09-08T14:27:12.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,107,
+jenkins:JenkinsBuild:1:测试流水线 #3,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/devlake,SUCCESS,DONE,,0,,2022-09-08T15:40:49.000+00:00,2022-09-08T15:40:49.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,106,
+jenkins:JenkinsBuild:1:这是一个改了名字的测试任务 #1,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/devlake,SUCCESS,DONE,,0,,2022-04-15T10:05:53.000+00:00,2022-04-15T10:05:53.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,124,

Review Comment:
   why the name changed here either?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@devlake.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-devlake] likyh commented on a diff in pull request #3700: fix(jenkins): uniquely identify a Jenkins job by combining job_name and job_path

Posted by GitBox <gi...@apache.org>.
likyh commented on code in PR #3700:
URL: https://github.com/apache/incubator-devlake/pull/3700#discussion_r1017798885


##########
helpers/migrationhelper/migrationhelper.go:
##########
@@ -38,6 +38,7 @@ func AutoMigrateTables(basicRes core.BasicRes, dst ...interface{}) errors.Error
 		if err != nil {
 			return err
 		}
+		_ = db.All(entity)

Review Comment:
   Ok, add it to PR's body.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@devlake.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-devlake] likyh commented on a diff in pull request #3700: fix(jenkins): uniquely identify a Jenkins job by combining job_name and job_path

Posted by GitBox <gi...@apache.org>.
likyh commented on code in PR #3700:
URL: https://github.com/apache/incubator-devlake/pull/3700#discussion_r1017789214


##########
plugins/jenkins/e2e/snapshot_tables/_tool_jenkins_builds.csv:
##########
@@ -1,38 +1,38 @@
-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,""JobName"":""devlake""}",_raw_jenkins_api_builds,95,
-1,devlake #2,devlake,2121,1457,2,SUCCESS,1650022548450,2022-04-15T11:35:48.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,94,
-1,devlake #3,devlake,1587,1457,3,SUCCESS,1650024049161,2022-04-15T12:00:49.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,93,
-1,devlake #4,devlake,13952,1457,4,SUCCESS,1662647203905,2022-09-08T14:26:43.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,92,
-1,devlake #5,devlake,1274,1457,5,SUCCESS,1662647231332,2022-09-08T14:27:11.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,91,
-1,devlake #6,devlake,1202,1457,6,SUCCESS,1662647242809,2022-09-08T14:27:22.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,90,
-1,devlake #7,devlake,1988,1457,7,SUCCESS,1662651625889,2022-09-08T15:40:25.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,89,
-1,devlake #8,devlake,1180,1457,8,SUCCESS,1662651640536,2022-09-08T15:40:40.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_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,""JobName"":""devlake""}",_raw_jenkins_api_builds,98,
-1,测试流水线 #1,测试流水线,1539,568,1,SUCCESS,1662647205888,2022-09-08T14:26:45.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,108,
-1,测试流水线 #2,测试流水线,74,568,2,SUCCESS,1662647232072,2022-09-08T14:27:12.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,107,
-1,测试流水线 #3,测试流水线,90,568,3,SUCCESS,1662651649571,2022-09-08T15:40:49.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,106,
-1,这是一个改了名字的测试任务 #1,这是一个改了名字的测试任务,57,6,1,SUCCESS,1650017153775,2022-04-15T10:05:53.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,124,
-1,这是一个改了名字的测试任务 #10,这是一个改了名字的测试任务,12,6,10,SUCCESS,1662647233074,2022-09-08T14:27:13.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,115,
-1,这是一个改了名字的测试任务 #11,这是一个改了名字的测试任务,4,6,11,SUCCESS,1662651656567,2022-09-08T15:40:56.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,114,
-1,这是一个改了名字的测试任务 #12,这是一个改了名字的测试任务,2,6,12,SUCCESS,1662651657893,2022-09-08T15:40:57.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,113,
-1,这是一个改了名字的测试任务 #2,这是一个改了名字的测试任务,4,6,2,SUCCESS,1650017177939,2022-04-15T10:06:17.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,123,
-1,这是一个改了名字的测试任务 #3,这是一个改了名字的测试任务,3,6,3,SUCCESS,1650017186253,2022-04-15T10:06:26.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,122,
-1,这是一个改了名字的测试任务 #4,这是一个改了名字的测试任务,6,6,4,SUCCESS,1650022556910,2022-04-15T11:35:56.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,121,
-1,这是一个改了名字的测试任务 #5,这是一个改了名字的测试任务,6,6,5,SUCCESS,1650022558491,2022-04-15T11:35:58.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,120,
-1,这是一个改了名字的测试任务 #6,这是一个改了名字的测试任务,10,6,6,SUCCESS,1650022560954,2022-04-15T11:36:00.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,119,
-1,这是一个改了名字的测试任务 #7,这是一个改了名字的测试任务,8,6,7,SUCCESS,1650023883294,2022-04-15T11:58:03.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,118,
-1,这是一个改了名字的测试任务 #8,这是一个改了名字的测试任务,11,6,8,SUCCESS,1650023894336,2022-04-15T11:58:14.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,117,
-1,这是一个改了名字的测试任务 #9,这是一个改了名字的测试任务,78,6,9,SUCCESS,1662647207972,2022-09-08T14:26:47.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake""}",_raw_jenkins_api_builds,116,
+connection_id,full_display_name,job_name,job_path,duration,estimated_duration,number,result,timestamp,start_time,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark
+1,devlake #1,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,14820,1457,1,SUCCESS,1650017416514,2022-04-15T10:10:16.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,95,
+1,devlake #2,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,2121,1457,2,SUCCESS,1650022548450,2022-04-15T11:35:48.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,94,
+1,devlake #3,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,1587,1457,3,SUCCESS,1650024049161,2022-04-15T12:00:49.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,93,
+1,devlake #4,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,13952,1457,4,SUCCESS,1662647203905,2022-09-08T14:26:43.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,92,
+1,devlake #5,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,1274,1457,5,SUCCESS,1662647231332,2022-09-08T14:27:11.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,91,
+1,devlake #6,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,1202,1457,6,SUCCESS,1662647242809,2022-09-08T14:27:22.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,90,
+1,devlake #7,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,1988,1457,7,SUCCESS,1662651625889,2022-09-08T15:40:25.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,89,
+1,devlake #8,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,1180,1457,8,SUCCESS,1662651640536,2022-09-08T15:40:40.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,88,
+1,dir-test » dir-test-2 » free #1,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,70,27,1,SUCCESS,1658385566471,2022-07-21T06:39:26.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,105,
+1,dir-test » dir-test-2 » free #2,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,6,27,2,SUCCESS,1658385576367,2022-07-21T06:39:36.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,104,
+1,dir-test » dir-test-2 » free #3,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,4,27,3,SUCCESS,1662647217041,2022-09-08T14:26:57.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,103,
+1,dir-test » dir-test-2 » free1 #1,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,4,9,1,SUCCESS,1658386240842,2022-07-21T06:50:40.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,112,
+1,dir-test » dir-test-2 » free1 #2,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,11,9,2,SUCCESS,1658386250446,2022-07-21T06:50:50.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,111,
+1,dir-test » dir-test-2 » free1 #3,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,4,9,3,SUCCESS,1658386255052,2022-07-21T06:50:55.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,110,
+1,dir-test » dir-test-2 » free1 #4,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,11,9,4,SUCCESS,1662647217746,2022-09-08T14:26:57.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,109,
+1,dir-test » pipeline-test #1,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,1429,745,1,SUCCESS,1658385602419,2022-07-21T06:40:02.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,97,
+1,dir-test » pipeline-test #2,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,61,745,2,SUCCESS,1662647211512,2022-09-08T14:26:51.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,96,
+1,dir-test » testfile #1,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,4,8,1,SUCCESS,1658385600801,2022-07-21T06:40:00.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,102,
+1,dir-test » testfile #2,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,11,8,2,SUCCESS,1662647212436,2022-09-08T14:26:52.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,101,
+1,pipeline-test2 #1,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,4564,1972,1,SUCCESS,1662651613681,2022-09-08T15:40:13.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,100,
+1,pipeline-test2 #2,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,551,1972,2,SUCCESS,1662651633991,2022-09-08T15:40:33.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,99,
+1,pipeline-test2 #3,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,802,1972,3,SUCCESS,1662651648992,2022-09-08T15:40:48.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,98,
+1,测试流水线 #1,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,1539,568,1,SUCCESS,1662647205888,2022-09-08T14:26:45.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,108,
+1,测试流水线 #2,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,74,568,2,SUCCESS,1662647232072,2022-09-08T14:27:12.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,107,
+1,测试流水线 #3,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,90,568,3,SUCCESS,1662651649571,2022-09-08T15:40:49.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,106,
+1,这是一个改了名字的测试任务 #1,devlake,job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/,57,6,1,SUCCESS,1650017153775,2022-04-15T10:05:53.000+00:00,"{""ConnectionId"":1,""JobName"":""devlake"",""JobPath"":""job/Test-jenkins-dir/job/test-jenkins-sub-dir/job/test-sub-sub-dir/""}",_raw_jenkins_api_builds,124,

Review Comment:
   why the job_name changed?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@devlake.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-devlake] likyh commented on a diff in pull request #3700: fix(jenkins): uniquely identify a Jenkins job by combining job_name and job_path

Posted by GitBox <gi...@apache.org>.
likyh commented on code in PR #3700:
URL: https://github.com/apache/incubator-devlake/pull/3700#discussion_r1017769594


##########
helpers/migrationhelper/migrationhelper.go:
##########
@@ -38,6 +38,7 @@ func AutoMigrateTables(basicRes core.BasicRes, dst ...interface{}) errors.Error
 		if err != nil {
 			return err
 		}
+		_ = db.All(entity)

Review Comment:
   what this?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@devlake.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-devlake] warren830 commented on a diff in pull request #3700: fix(jenkins): uniquely identify a Jenkins job by combining job_name and job_path

Posted by GitBox <gi...@apache.org>.
warren830 commented on code in PR #3700:
URL: https://github.com/apache/incubator-devlake/pull/3700#discussion_r1017799722


##########
plugins/jenkins/models/response.go:
##########
@@ -17,32 +17,17 @@ limitations under the License.
 
 package models
 
-type ApiResponse struct {
-	URL             string           `json:"url"`
-	Jobs            []Job            `json:"jobs"`
-	Mode            string           `json:"mode"`
-	Views           []Views          `json:"views"`
-	Class           string           `json:"_class"`
-	NodeName        string           `json:"nodeName"`
-	UseCrumbs       bool             `json:"useCrumbs"`
-	Description     interface{}      `json:"description"`
-	OverallLoad     OverallLoad      `json:"overallLoad"`
-	PrimaryView     PrimaryView      `json:"primaryView"`
-	UseSecurity     bool             `json:"useSecurity"`
-	NumExecutors    int              `json:"numExecutors"`
-	QuietingDown    bool             `json:"quietingDown"`
-	UnlabeledLoad   UnlabeledLoad    `json:"unlabeledLoad"`
-	AssignedLabels  []AssignedLabels `json:"assignedLabels"`
-	SlaveAgentPort  int              `json:"slaveAgentPort"`
-	NodeDescription string           `json:"nodeDescription"`
-}
 type Job struct {
-	URL              string    `json:"url"`
+	FullName         string    `gorm:"primaryKey;type:varchar(255)"`
+	Path             string    `gorm:"primaryKey;type:varchar(511)"`

Review Comment:
   this comes from limit of primary key



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@devlake.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-devlake] likyh commented on a diff in pull request #3700: fix(jenkins): uniquely identify a Jenkins job by combining job_name and job_path

Posted by GitBox <gi...@apache.org>.
likyh commented on code in PR #3700:
URL: https://github.com/apache/incubator-devlake/pull/3700#discussion_r1017807405


##########
plugins/jenkins/models/response.go:
##########
@@ -17,32 +17,17 @@ limitations under the License.
 
 package models
 
-type ApiResponse struct {
-	URL             string           `json:"url"`
-	Jobs            []Job            `json:"jobs"`
-	Mode            string           `json:"mode"`
-	Views           []Views          `json:"views"`
-	Class           string           `json:"_class"`
-	NodeName        string           `json:"nodeName"`
-	UseCrumbs       bool             `json:"useCrumbs"`
-	Description     interface{}      `json:"description"`
-	OverallLoad     OverallLoad      `json:"overallLoad"`
-	PrimaryView     PrimaryView      `json:"primaryView"`
-	UseSecurity     bool             `json:"useSecurity"`
-	NumExecutors    int              `json:"numExecutors"`
-	QuietingDown    bool             `json:"quietingDown"`
-	UnlabeledLoad   UnlabeledLoad    `json:"unlabeledLoad"`
-	AssignedLabels  []AssignedLabels `json:"assignedLabels"`
-	SlaveAgentPort  int              `json:"slaveAgentPort"`
-	NodeDescription string           `json:"nodeDescription"`
-}
 type Job struct {
-	URL              string    `json:"url"`
+	FullName         string    `gorm:"primaryKey;type:varchar(255)"`
+	Path             string    `gorm:"primaryKey;type:varchar(511)"`

Review Comment:
   ok



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@devlake.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-devlake] warren830 commented on a diff in pull request #3700: fix(jenkins): uniquely identify a Jenkins job by combining job_name and job_path

Posted by GitBox <gi...@apache.org>.
warren830 commented on code in PR #3700:
URL: https://github.com/apache/incubator-devlake/pull/3700#discussion_r1017795548


##########
helpers/migrationhelper/migrationhelper.go:
##########
@@ -38,6 +38,7 @@ func AutoMigrateTables(basicRes core.BasicRes, dst ...interface{}) errors.Error
 		if err != nil {
 			return err
 		}
+		_ = db.All(entity)

Review Comment:
   to avoid pg's `cache` error



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@devlake.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-devlake] likyh commented on a diff in pull request #3700: fix(jenkins): uniquely identify a Jenkins job by combining job_name and job_path

Posted by GitBox <gi...@apache.org>.
likyh commented on code in PR #3700:
URL: https://github.com/apache/incubator-devlake/pull/3700#discussion_r1017778760


##########
plugins/jenkins/tasks/job_collector.go:
##########
@@ -40,68 +37,29 @@ var CollectApiJobsMeta = core.SubTaskMeta{
 }
 
 func CollectApiJobs(taskCtx core.SubTaskContext) errors.Error {
-	it := helper.NewQueueIterator()
-	it.Push(models.NewFolderInput(""))
 	data := taskCtx.GetData().(*JenkinsTaskData)
-	incremental := false
 	collector, err := helper.NewApiCollector(helper.ApiCollectorArgs{
 		RawDataSubTaskArgs: helper.RawDataSubTaskArgs{
 			Params: JenkinsApiParams{
 				ConnectionId: data.Options.ConnectionId,
+				JobName:      data.Options.JobName,
+				JobPath:      data.Options.JobPath,
 			},
 			Ctx:   taskCtx,
 			Table: RAW_JOB_TABLE,
 		},
 		ApiClient:   data.ApiClient,
-		PageSize:    100,
-		Incremental: incremental,
-		// jenkins api is special, 1. If the concurrency is larger than 1, then it will report 500.
-		Concurrency: 1,
-
-		UrlTemplate: "{{ .Input.Path }}api/json",
-		Input:       it,
-		Query: func(reqData *helper.RequestData) (url.Values, errors.Error) {
-			query := url.Values{}
-			treeValue := fmt.Sprintf(
-				"jobs[name,class,url,color,base,jobs,upstreamProjects[name]]{%d,%d}",
-				reqData.Pager.Skip, reqData.Pager.Skip+reqData.Pager.Size)
-			query.Set("tree", treeValue)
-			return query, nil
-		},
-		Header: func(reqData *helper.RequestData) (http.Header, errors.Error) {
-			input, ok := reqData.Input.(*models.FolderInput)
-			if ok {
-				return http.Header{
-					"Path": {
-						input.Path,
-					},
-				}, nil
-			} else {
-				return nil, errors.Default.New("empty FolderInput")
-			}
-		},
-
+		UrlTemplate: "{{ .Params.JobPath }}job/{{ .Params.JobName }}/api/json",

Review Comment:
   add some logic before all subtask to allow `.Params.JobPath` needn't end with `/`.
   
   The user may don't know what JobPath's format is.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@devlake.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-devlake] likyh commented on a diff in pull request #3700: fix(jenkins): uniquely identify a Jenkins job by combining job_name and job_path

Posted by GitBox <gi...@apache.org>.
likyh commented on code in PR #3700:
URL: https://github.com/apache/incubator-devlake/pull/3700#discussion_r1017785243


##########
plugins/jenkins/models/migrationscripts/20221108_add_job_fields.go:
##########
@@ -0,0 +1,53 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package migrationscripts
+
+import (
+	"github.com/apache/incubator-devlake/errors"
+	"github.com/apache/incubator-devlake/plugins/core"
+)
+
+type addJobFields struct{}
+
+type jenkinsJob20221108 struct {
+	Name        string `gorm:"index;type:varchar(255)"`
+	Url         string
+	Description string
+	PrimaryView string `gorm:"type:varchar(255)"`
+}
+
+func (jenkinsJob20221108) TableName() string {
+	return "_tool_jenkins_jobs"
+}
+
+func (script *addJobFields) Up(basicRes core.BasicRes) errors.Error {
+	db := basicRes.GetDal()
+	err := db.RenameColumn(`_tool_jenkins_jobs`, `name`, `full_name`)
+	if err != nil {
+		return err
+	}
+	return db.AutoMigrate(&jenkinsJob20221108{})
+}
+
+func (*addJobFields) Version() uint64 {
+	return 20221108231237

Review Comment:
   why not merge these 2 migrations



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@devlake.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-devlake] likyh merged pull request #3700: fix(jenkins): uniquely identify a Jenkins job by combining job_name and job_path

Posted by GitBox <gi...@apache.org>.
likyh merged PR #3700:
URL: https://github.com/apache/incubator-devlake/pull/3700


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@devlake.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-devlake] warren830 commented on a diff in pull request #3700: fix(jenkins): uniquely identify a Jenkins job by combining job_name and job_path

Posted by GitBox <gi...@apache.org>.
warren830 commented on code in PR #3700:
URL: https://github.com/apache/incubator-devlake/pull/3700#discussion_r1017798708


##########
plugins/jenkins/models/migrationscripts/20221108_add_job_fields.go:
##########
@@ -0,0 +1,53 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package migrationscripts
+
+import (
+	"github.com/apache/incubator-devlake/errors"
+	"github.com/apache/incubator-devlake/plugins/core"
+)
+
+type addJobFields struct{}
+
+type jenkinsJob20221108 struct {
+	Name        string `gorm:"index;type:varchar(255)"`
+	Url         string
+	Description string
+	PrimaryView string `gorm:"type:varchar(255)"`
+}
+
+func (jenkinsJob20221108) TableName() string {
+	return "_tool_jenkins_jobs"
+}
+
+func (script *addJobFields) Up(basicRes core.BasicRes) errors.Error {
+	db := basicRes.GetDal()
+	err := db.RenameColumn(`_tool_jenkins_jobs`, `name`, `full_name`)
+	if err != nil {
+		return err
+	}
+	return db.AutoMigrate(&jenkinsJob20221108{})
+}
+
+func (*addJobFields) Version() uint64 {
+	return 20221108231237

Review Comment:
   just want to make this more clear, if combine them, it's hard to name it



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@devlake.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-devlake] warren830 commented on a diff in pull request #3700: fix(jenkins): uniquely identify a Jenkins job by combining job_name and job_path

Posted by GitBox <gi...@apache.org>.
warren830 commented on code in PR #3700:
URL: https://github.com/apache/incubator-devlake/pull/3700#discussion_r1017796614


##########
plugins/jenkins/tasks/job_collector.go:
##########
@@ -40,68 +37,29 @@ var CollectApiJobsMeta = core.SubTaskMeta{
 }
 
 func CollectApiJobs(taskCtx core.SubTaskContext) errors.Error {
-	it := helper.NewQueueIterator()
-	it.Push(models.NewFolderInput(""))
 	data := taskCtx.GetData().(*JenkinsTaskData)
-	incremental := false
 	collector, err := helper.NewApiCollector(helper.ApiCollectorArgs{
 		RawDataSubTaskArgs: helper.RawDataSubTaskArgs{
 			Params: JenkinsApiParams{
 				ConnectionId: data.Options.ConnectionId,
+				JobName:      data.Options.JobName,
+				JobPath:      data.Options.JobPath,
 			},
 			Ctx:   taskCtx,
 			Table: RAW_JOB_TABLE,
 		},
 		ApiClient:   data.ApiClient,
-		PageSize:    100,
-		Incremental: incremental,
-		// jenkins api is special, 1. If the concurrency is larger than 1, then it will report 500.
-		Concurrency: 1,
-
-		UrlTemplate: "{{ .Input.Path }}api/json",
-		Input:       it,
-		Query: func(reqData *helper.RequestData) (url.Values, errors.Error) {
-			query := url.Values{}
-			treeValue := fmt.Sprintf(
-				"jobs[name,class,url,color,base,jobs,upstreamProjects[name]]{%d,%d}",
-				reqData.Pager.Skip, reqData.Pager.Skip+reqData.Pager.Size)
-			query.Set("tree", treeValue)
-			return query, nil
-		},
-		Header: func(reqData *helper.RequestData) (http.Header, errors.Error) {
-			input, ok := reqData.Input.(*models.FolderInput)
-			if ok {
-				return http.Header{
-					"Path": {
-						input.Path,
-					},
-				}, nil
-			} else {
-				return nil, errors.Default.New("empty FolderInput")
-			}
-		},
-
+		UrlTemplate: "{{ .Params.JobPath }}job/{{ .Params.JobName }}/api/json",

Review Comment:
   good idea



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@devlake.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


[GitHub] [incubator-devlake] likyh commented on a diff in pull request #3700: fix(jenkins): uniquely identify a Jenkins job by combining job_name and job_path

Posted by GitBox <gi...@apache.org>.
likyh commented on code in PR #3700:
URL: https://github.com/apache/incubator-devlake/pull/3700#discussion_r1017785956


##########
plugins/jenkins/models/response.go:
##########
@@ -17,32 +17,17 @@ limitations under the License.
 
 package models
 
-type ApiResponse struct {
-	URL             string           `json:"url"`
-	Jobs            []Job            `json:"jobs"`
-	Mode            string           `json:"mode"`
-	Views           []Views          `json:"views"`
-	Class           string           `json:"_class"`
-	NodeName        string           `json:"nodeName"`
-	UseCrumbs       bool             `json:"useCrumbs"`
-	Description     interface{}      `json:"description"`
-	OverallLoad     OverallLoad      `json:"overallLoad"`
-	PrimaryView     PrimaryView      `json:"primaryView"`
-	UseSecurity     bool             `json:"useSecurity"`
-	NumExecutors    int              `json:"numExecutors"`
-	QuietingDown    bool             `json:"quietingDown"`
-	UnlabeledLoad   UnlabeledLoad    `json:"unlabeledLoad"`
-	AssignedLabels  []AssignedLabels `json:"assignedLabels"`
-	SlaveAgentPort  int              `json:"slaveAgentPort"`
-	NodeDescription string           `json:"nodeDescription"`
-}
 type Job struct {
-	URL              string    `json:"url"`
+	FullName         string    `gorm:"primaryKey;type:varchar(255)"`
+	Path             string    `gorm:"primaryKey;type:varchar(511)"`

Review Comment:
   varchar(511) ? if the length of varchar > 255, they will same as `text`.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@devlake.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org