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

mintsweet pushed a commit to branch feat-dora-config
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git

commit 252ded968fefa07e941adcc74244edb05a071be1
Author: abeizn <zikuan...@merico.dev>
AuthorDate: Fri Sep 13 18:33:54 2024 +0800

    feat: regex match nil value (#8051)
---
 backend/plugins/bamboo/api/connection_api.go    | 12 +++++++-----
 backend/plugins/bitbucket/api/connection_api.go | 12 +++++++-----
 backend/plugins/circleci/api/connection_api.go  | 12 +++++++-----
 backend/plugins/github/api/connection_api.go    | 12 +++++++-----
 backend/plugins/gitlab/api/connection_api.go    | 12 +++++++-----
 5 files changed, 35 insertions(+), 25 deletions(-)

diff --git a/backend/plugins/bamboo/api/connection_api.go 
b/backend/plugins/bamboo/api/connection_api.go
index 6258765df..7c50fc2b2 100644
--- a/backend/plugins/bamboo/api/connection_api.go
+++ b/backend/plugins/bamboo/api/connection_api.go
@@ -221,18 +221,20 @@ func GetConnectionTransformToDeployments(input 
*plugin.ApiResourceInput) (*plugi
                FROM(
                        SELECT plan_build_key, link_href, build_started_time
                        FROM _tool_bamboo_plan_builds
-                       WHERE connection_id = ? AND plan_name REGEXP ?
-                       AND plan_name REGEXP ?
+                       WHERE connection_id = ? 
+                           AND (? = '' OR plan_name REGEXP ?)
+                       AND (? = '' OR plan_name REGEXP ?)
                        UNION
                        SELECT p.plan_build_key, p.link_href, 
p.build_started_time
                        FROM _tool_bamboo_job_builds j
                        LEFT JOIN _tool_bamboo_plan_builds p on 
p.plan_build_key = j.plan_build_key
-                       WHERE j.connection_id = ? AND j.job_name REGEXP ?
-                       AND j.job_name REGEXP ?
+                       WHERE j.connection_id = ? 
+                           AND (? = '' OR j.job_name REGEXP ?)
+                       AND (? = '' OR j.job_name REGEXP ?)
                        ORDER BY build_started_time DESC
                ) AS t
                ORDER BY build_started_time DESC
-       `, connectionId, deploymentPattern, productionPattern, connectionId, 
deploymentPattern, productionPattern)
+       `, connectionId, deploymentPattern, deploymentPattern, 
productionPattern, productionPattern, connectionId, deploymentPattern, 
deploymentPattern, productionPattern, productionPattern)
        if err != nil {
                return nil, errors.Default.Wrap(err, "error on get")
        }
diff --git a/backend/plugins/bitbucket/api/connection_api.go 
b/backend/plugins/bitbucket/api/connection_api.go
index 62459ec93..fcd303c71 100644
--- a/backend/plugins/bitbucket/api/connection_api.go
+++ b/backend/plugins/bitbucket/api/connection_api.go
@@ -204,17 +204,19 @@ func GetConnectionTransformToDeployments(input 
*plugin.ApiResourceInput) (*plugi
                FROM(
                        SELECT build_number, ref_name, repo_id, web_url, 
bitbucket_created_on
                        FROM _tool_bitbucket_pipelines
-                       WHERE connection_id = ? AND ref_name REGEXP ?
-                       AND ref_name REGEXP ?
+                       WHERE connection_id = ? 
+                           AND (? = '' OR ref_name REGEXP ?)
+                       AND (? = '' OR ref_name REGEXP ?)
                        UNION
                        SELECT build_number, ref_name, p.repo_id, 
web_url,bitbucket_created_on
                        FROM _tool_bitbucket_pipelines p
                        LEFT JOIN _tool_bitbucket_pipeline_steps s on 
s.pipeline_id = p.bitbucket_id
-                       WHERE s.connection_id = ? AND s.name REGEXP ?
-                       AND s.name REGEXP ?
+                       WHERE s.connection_id = ? AND 
+                               AND (? = '' OR s.name REGEXP ?)
+                       AND (? = '' OR s.name REGEXP ?)
                ) AS t
                ORDER BY bitbucket_created_on DESC
-       `, connectionId, deploymentPattern, productionPattern, connectionId, 
deploymentPattern, productionPattern)
+       `, connectionId, deploymentPattern, deploymentPattern, 
productionPattern, productionPattern, connectionId, deploymentPattern, 
deploymentPattern, productionPattern, productionPattern)
        if err != nil {
                return nil, errors.Default.Wrap(err, "error on get")
        }
diff --git a/backend/plugins/circleci/api/connection_api.go 
b/backend/plugins/circleci/api/connection_api.go
index 5e0a64c37..4d622feee 100644
--- a/backend/plugins/circleci/api/connection_api.go
+++ b/backend/plugins/circleci/api/connection_api.go
@@ -197,17 +197,19 @@ func GetConnectionTransformToDeployments(input 
*plugin.ApiResourceInput) (*plugi
                FROM(
                        SELECT pipeline_number, name, project_slug, created_date
                        FROM _tool_circleci_workflows
-                       WHERE connection_id = ? AND name REGEXP ?
-                       AND name REGEXP ?
+                       WHERE connection_id = ? 
+                           AND (? = '' OR name REGEXP ?)
+                       AND (? = '' OR name REGEXP ?)
                        UNION
                        SELECT w.pipeline_number, w.name, w.project_slug, 
w.created_date
                        FROM _tool_circleci_jobs j 
                        LEFT JOIN _tool_circleci_workflows w on w.id = 
j.workflow_id
-                       WHERE j.connection_id = ? AND j.name REGEXP ?
-                       AND j.name REGEXP ?
+                       WHERE j.connection_id = ? 
+                           AND (? = '' OR j.name REGEXP ?)
+                       AND (? = '' OR j.name REGEXP ?)
                ) AS t
                ORDER BY created_date DESC
-       `, connectionId, deploymentPattern, productionPattern, connectionId, 
deploymentPattern, productionPattern)
+       `, connectionId, deploymentPattern, deploymentPattern, 
productionPattern, productionPattern, connectionId, deploymentPattern, 
deploymentPattern, productionPattern, productionPattern)
        if err != nil {
                return nil, errors.Default.Wrap(err, "error on get")
        }
diff --git a/backend/plugins/github/api/connection_api.go 
b/backend/plugins/github/api/connection_api.go
index de0991ef6..12c12d7d8 100644
--- a/backend/plugins/github/api/connection_api.go
+++ b/backend/plugins/github/api/connection_api.go
@@ -460,17 +460,19 @@ func GetConnectionTransformToDeployments(input 
*plugin.ApiResourceInput) (*plugi
                FROM (
                        SELECT id, run_number, name, head_branch, html_url, 
run_started_at
                        FROM _tool_github_runs
-                       WHERE connection_id = ? AND name REGEXP ?
-                       AND (name REGEXP ? OR head_branch REGEXP ?)
+                       WHERE connection_id = ? 
+                               AND (? = '' OR name REGEXP ?)
+                               AND (? = '' OR name REGEXP ? OR head_branch 
REGEXP ?)
                        UNION
                        SELECT r.id, r.run_number, r.name, r.head_branch, 
r.html_url, r.run_started_at
                        FROM _tool_github_jobs j
                        LEFT JOIN _tool_github_runs r ON j.run_id = r.id
-                       WHERE j.connection_id = ? AND j.name REGEXP ?
-                       AND j.name REGEXP ?
+                       WHERE j.connection_id = ?
+                           AND (? = '' OR j.name REGEXP ?)
+                       AND (? = '' OR j.name REGEXP ?)
                ) r
                ORDER BY r.run_started_at DESC
-       `, connectionId, deploymentPattern, productionPattern, 
productionPattern, connectionId, deploymentPattern, productionPattern)
+       `, connectionId, deploymentPattern, deploymentPattern, 
productionPattern, productionPattern, productionPattern, connectionId, 
deploymentPattern, deploymentPattern, productionPattern, productionPattern)
        if err != nil {
                return nil, errors.Default.Wrap(err, "error on get")
        }
diff --git a/backend/plugins/gitlab/api/connection_api.go 
b/backend/plugins/gitlab/api/connection_api.go
index 1a485d589..f6a71dec6 100644
--- a/backend/plugins/gitlab/api/connection_api.go
+++ b/backend/plugins/gitlab/api/connection_api.go
@@ -233,18 +233,20 @@ func GetConnectionTransformToDeployments(input 
*plugin.ApiResourceInput) (*plugi
                        SELECT r.name, p.gitlab_id, p.web_url, p.started_at
                        FROM _tool_gitlab_pipelines p
                        LEFT JOIN _tool_gitlab_projects r on r.gitlab_id = 
p.project_id
-                       WHERE p.connection_id = ? AND ref REGEXP ?
-                       AND ref REGEXP ?
+                       WHERE p.connection_id = ? 
+                               AND (? = '' OR ref REGEXP ?)
+                               AND (? = '' OR ref REGEXP ?)
                        UNION
                        SELECT r.name, p.gitlab_id, p.web_url, p.started_at
                        FROM _tool_gitlab_pipelines p
                        LEFT JOIN _tool_gitlab_projects r on r.gitlab_id = 
p.project_id
                        LEFT JOIN _tool_gitlab_jobs j on j.pipeline_id = 
p.gitlab_id
-                       WHERE j.connection_id = ? AND j.name REGEXP ?
-                       AND j.name REGEXP ?
+                       WHERE j.connection_id = ? 
+                               AND (? = '' OR j.name REGEXP ?)
+                       AND (? = '' OR j.name REGEXP ?)
                ) r
                ORDER BY r.started_at DESC
-       `, connectionId, deploymentPattern, productionPattern, connectionId, 
deploymentPattern, productionPattern)
+       `, connectionId, deploymentPattern, deploymentPattern, 
productionPattern, productionPattern, connectionId, deploymentPattern, 
deploymentPattern, productionPattern, productionPattern)
        if err != nil {
                return nil, errors.Default.Wrap(err, "error on get")
        }

Reply via email to