fix: pr should be connected to failed deployment commit (#6270)
diff --git a/backend/plugins/dora/e2e/calculate_change_lead_time_test.go b/backend/plugins/dora/e2e/calculate_change_lead_time_test.go
index 41561d6..e37cd63 100644
--- a/backend/plugins/dora/e2e/calculate_change_lead_time_test.go
+++ b/backend/plugins/dora/e2e/calculate_change_lead_time_test.go
@@ -47,7 +47,7 @@
dataflowTester.ImportCsvIntoTabler("./change_lead_time/cicd_scopes.csv", &devops.CicdScope{})
dataflowTester.ImportCsvIntoTabler("./change_lead_time/pull_requests.csv", &code.PullRequest{})
dataflowTester.ImportCsvIntoTabler("./change_lead_time/cicd_deployment_commits.csv", &devops.CicdDeploymentCommit{})
- dataflowTester.ImportCsvIntoTabler("./change_lead_time/commits_diffs.csv", &code.CommitsDiff{})
+ dataflowTester.ImportNullableCsvIntoTabler("./change_lead_time/commits_diffs.csv", &code.CommitsDiff{})
dataflowTester.ImportCsvIntoTabler("./change_lead_time/pull_request_comments.csv", &code.PullRequestComment{})
dataflowTester.ImportCsvIntoTabler("./change_lead_time/pull_request_commits.csv", &code.PullRequestCommit{})
diff --git a/backend/plugins/dora/e2e/change_lead_time/commits_diffs.csv b/backend/plugins/dora/e2e/change_lead_time/commits_diffs.csv
index 86ba517..7f74dcc 100644
--- a/backend/plugins/dora/e2e/change_lead_time/commits_diffs.csv
+++ b/backend/plugins/dora/e2e/change_lead_time/commits_diffs.csv
@@ -2,4 +2,5 @@
commit1,commit5,pr_merge_commit1
commit1,commit5,pr_merge_commit2
commit2,commit6,pr_merge_commit3
-commit7,commit8,pr_merge_commit4
\ No newline at end of file
+commit7,commit8,pr_merge_commit4
+,commit11,pr_merge_commit5
\ No newline at end of file
diff --git a/backend/plugins/dora/e2e/change_lead_time/project_mapping.csv b/backend/plugins/dora/e2e/change_lead_time/project_mapping.csv
index d6bf7ba..ff41833 100644
--- a/backend/plugins/dora/e2e/change_lead_time/project_mapping.csv
+++ b/backend/plugins/dora/e2e/change_lead_time/project_mapping.csv
@@ -3,4 +3,5 @@
project1,repos,repo1
project1,repos,repo2
project2,cicd_scopes,cicd3
-project2,repos,repo3
\ No newline at end of file
+project2,repos,repo3
+project1,cicd_scopes,cicd2
\ No newline at end of file
diff --git a/backend/plugins/dora/e2e/change_lead_time/project_pr_metrics.csv b/backend/plugins/dora/e2e/change_lead_time/project_pr_metrics.csv
index 41fb7db..a86106a 100644
--- a/backend/plugins/dora/e2e/change_lead_time/project_pr_metrics.csv
+++ b/backend/plugins/dora/e2e/change_lead_time/project_pr_metrics.csv
@@ -3,3 +3,4 @@
pr2,project1,2537845559d8db99e9cda6190f32b50ec979c722,,comment04,1,60,5,1538,1598
pr3,project1,55f445997abbd5918da59d202d28762cd56fbd44,5883,comment07,,5760,6,,
pr4,project1,5ad0c09c447c19338f1dfbb65d89a3728962b3b7,11704,comment10,1500,,,,
+pr5,project1,62535543802631a0d3daf0b0b78c6a7e05e508fb,13144,comment12,,313068,,,
diff --git a/backend/plugins/dora/e2e/change_lead_time/pull_requests.csv b/backend/plugins/dora/e2e/change_lead_time/pull_requests.csv
index fb20fbd..82aced0 100644
--- a/backend/plugins/dora/e2e/change_lead_time/pull_requests.csv
+++ b/backend/plugins/dora/e2e/change_lead_time/pull_requests.csv
@@ -3,5 +3,5 @@
pr2,repo1,a,pr_merge_commit2,2023-4-12 4:51:47,2023-4-12 5:51:47,deployment_commit 5,,
pr3,repo1,a,pr_merge_commit3,2023-4-11 6:53:51,2023-4-14 6:53:51,deployment_commit 6,,
pr4,repo1,,pr_merge_commit4,2023-4-13 7:55:01,2023-4-13 8:55:01,,,
-pr5,repo1,,pr_merge_commit5,2023-4-13 7:55:01,,,,
+pr5,repo1,,pr_merge_commit5,2023-4-13 7:55:01,2023-4-13 8:55:01,,,
pr6,repo1,,pr_merge_commit6,2023-4-13 7:55:01,,,,
\ No newline at end of file
diff --git a/backend/plugins/dora/tasks/change_lead_time_calculator.go b/backend/plugins/dora/tasks/change_lead_time_calculator.go
index 93879e3..5ebd51e 100644
--- a/backend/plugins/dora/tasks/change_lead_time_calculator.go
+++ b/backend/plugins/dora/tasks/change_lead_time_calculator.go
@@ -206,7 +206,7 @@
dal.Join("LEFT JOIN project_mapping pm ON (pm.table = 'cicd_scopes' AND pm.row_id = dc.cicd_scope_id)"),
dal.Join("INNER JOIN commits_diffs cd ON (cd.new_commit_sha = dc.commit_sha AND cd.old_commit_sha = COALESCE (p.commit_sha, ''))"),
dal.Where("dc.environment = 'PRODUCTION'"), // TODO: remove this when multi-environment is supported
- dal.Where("pm.project_name = ? AND cd.commit_sha = ?", projectName, mergeSha),
+ dal.Where("pm.project_name = ? AND cd.commit_sha = ? AND dc.RESULT = ?", projectName, mergeSha, devops.RESULT_SUCCESS),
dal.Orderby("dc.started_date, dc.id ASC"),
dal.Limit(1),
)