From d7b5239da6b590536b095266218b407ddc75184c Mon Sep 17 00:00:00 2001 From: Antoni Segura Puimedon Date: Fri, 16 May 2025 14:40:21 +0200 Subject: [PATCH] feat(config): Make Jira query configurable Adds a new query field to the config struct that allows the server config to determine what will be synced. Signed-off-by: Antoni Segura Puimedon --- README.md | 1 + config.yaml.template | 2 ++ main.go | 8 +++++++- manifests/backport-dashboard.yaml | 1 + manifests/backport-dashboard.yaml.template | 1 + 5 files changed, 12 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 584986c..fc71444 100644 --- a/README.md +++ b/README.md @@ -120,6 +120,7 @@ Note: Make sure MongoDB is running before starting mongo-express. url: "https://your-jira-instance.com" username: "your-username" token: "your-api-token" + query: "project = FOO" mongodb: uri: "mongodb://admin:password@localhost:27017" diff --git a/config.yaml.template b/config.yaml.template index 2d33eee..3929de5 100644 --- a/config.yaml.template +++ b/config.yaml.template @@ -1,5 +1,7 @@ jira: url: "https://issues.redhat.com/" + query: | + project = OCPBUGS AND component in (Hypershift, "HyperShift / Agent", "HyperShift / ARO", "HyperShift / OCP Virtualization", "HyperShift / OpenStack", "HyperShift / ROSA") AND "Target Backport Versions" is not EMPTY AND issueLinkType not in ("depends on") mongodb: uri: "mongodb://mongodb:27017/" database: "backport_dashboard" diff --git a/main.go b/main.go index 40c713c..9e6a5d5 100644 --- a/main.go +++ b/main.go @@ -26,6 +26,7 @@ type Config struct { Jira struct { URL string `mapstructure:"url"` Token string `mapstructure:"token"` + Query string `mapstructure:"query"` } `mapstructure:"jira"` MongoDB struct { URI string `mapstructure:"uri"` @@ -56,6 +57,11 @@ func loadConfig() (*Config, error) { config.Server.Port = 8080 } + // Set default query if not provided + if config.Jira.Query == "" { + config.Jira.Query = `project = OCPBUGS AND component in (Hypershift, "HyperShift / Agent", "HyperShift / ARO", "HyperShift / OCP Virtualization", "HyperShift / OpenStack", "HyperShift / ROSA") AND "Target Backport Versions" is not EMPTY AND issueLinkType not in ("depends on")` + } + return &config, nil } @@ -263,7 +269,7 @@ func syncIssues(jiraClient *jira.Client, mongoClient *mongo.Client, config *Conf updatedDocuments := make(map[string]bool) // JQL query to get main issues - jql := `project = OCPBUGS AND component in (Hypershift, "HyperShift / Agent", "HyperShift / ARO", "HyperShift / OCP Virtualization", "HyperShift / OpenStack", "HyperShift / ROSA") AND "Target Backport Versions" is not EMPTY AND issueLinkType not in ("depends on")` + jql := config.Jira.Query // Search issues in Jira searchOptions := &jira.SearchOptions{ diff --git a/manifests/backport-dashboard.yaml b/manifests/backport-dashboard.yaml index 861e137..8bff7d8 100644 --- a/manifests/backport-dashboard.yaml +++ b/manifests/backport-dashboard.yaml @@ -43,6 +43,7 @@ data: jira: url: https://issues.redhat.com token: your-PAT-here + query: your-JQL-query-here mongodb: uri: "mongodb://mongodb:27017/" database: backport_dashboard diff --git a/manifests/backport-dashboard.yaml.template b/manifests/backport-dashboard.yaml.template index f7d3243..18bb22d 100644 --- a/manifests/backport-dashboard.yaml.template +++ b/manifests/backport-dashboard.yaml.template @@ -59,6 +59,7 @@ data: jira: url: https://issues.redhat.com token: your-PAT-here + query: your-JQL-query-here mongodb: uri: "mongodb://mongodb:27017/" database: backport_dashboard