You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by ab...@apache.org on 2024/08/26 03:17:43 UTC

(incubator-devlake) branch release-v1.0 updated: fix: jira jql checker (#7950) (#7951)

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

abeizn pushed a commit to branch release-v1.0
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git


The following commit(s) were added to refs/heads/release-v1.0 by this push:
     new 59d0954c0 fix: jira jql checker (#7950) (#7951)
59d0954c0 is described below

commit 59d0954c03561a70e5ca8425c28936ad0c58c712
Author: github-actions[bot] <41...@users.noreply.github.com>
AuthorDate: Mon Aug 26 11:17:38 2024 +0800

    fix: jira jql checker (#7950) (#7951)
    
    * fix: add JIRA_JQL_CHANGE_DETECTION env for jira jql auto checker
    
    * fix: rename JIRA_JQL_CHANGE_DETECTION to JIRA_JQL_AUTO_FULL_REFRESH
    
    Co-authored-by: abeizn <zi...@merico.dev>
---
 .../plugins/jira/tasks/board_filter_begin_collector.go   | 16 +++++++++++++++-
 backend/plugins/jira/tasks/board_filter_end_collector.go |  6 +++++-
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/backend/plugins/jira/tasks/board_filter_begin_collector.go b/backend/plugins/jira/tasks/board_filter_begin_collector.go
index f4751fc5a..6c513f1f8 100644
--- a/backend/plugins/jira/tasks/board_filter_begin_collector.go
+++ b/backend/plugins/jira/tasks/board_filter_begin_collector.go
@@ -22,6 +22,7 @@ import (
 
 	"github.com/apache/incubator-devlake/core/dal"
 	"github.com/apache/incubator-devlake/core/errors"
+	coreModels "github.com/apache/incubator-devlake/core/models"
 	"github.com/apache/incubator-devlake/core/plugin"
 	helper "github.com/apache/incubator-devlake/helpers/pluginhelper/api"
 	"github.com/apache/incubator-devlake/plugins/jira/models"
@@ -87,7 +88,20 @@ func CollectBoardFilterBegin(taskCtx plugin.SubTaskContext) errors.Error {
 	}
 	// change
 	if record.Jql != jql {
-		return errors.Default.New(fmt.Sprintf("connection_id:%d board_id:%d filter jql has changed, please use fullSync mode. And the previous jql is %s, now jql is %s", data.Options.ConnectionId, data.Options.BoardId, record.Jql, jql))
+		cfg := taskCtx.GetConfigReader()
+		flag := cfg.GetBool("JIRA_JQL_AUTO_FULL_REFRESH")
+		if flag {
+			logger.Info("connection_id:%d board_id:%d filter jql has changed, And the previous jql is %s, now jql is %s, run it in fullSync mode", data.Options.ConnectionId, data.Options.BoardId, record.Jql, jql)
+			// set full sync
+			taskCtx.TaskContext().SetSyncPolicy(&coreModels.SyncPolicy{TriggerSyncPolicy: coreModels.TriggerSyncPolicy{FullSync: true}})
+			record.Jql = jql
+			err = db.Update(&record, dal.Where("connection_id = ? AND board_id = ? ", data.Options.ConnectionId, data.Options.BoardId))
+			if err != nil {
+				return errors.Default.Wrap(err, fmt.Sprintf("error updating record in _tool_jira_boards table for connection_id:%d board_id:%d", data.Options.ConnectionId, data.Options.BoardId))
+			}
+		} else {
+			return errors.Default.New(fmt.Sprintf("connection_id:%d board_id:%d filter jql has changed, please use fullSync mode. And the previous jql is %s, now jql is %s", data.Options.ConnectionId, data.Options.BoardId, record.Jql, jql))
+		}
 	}
 	// no change
 	return nil
diff --git a/backend/plugins/jira/tasks/board_filter_end_collector.go b/backend/plugins/jira/tasks/board_filter_end_collector.go
index 8073903de..65d8eca14 100644
--- a/backend/plugins/jira/tasks/board_filter_end_collector.go
+++ b/backend/plugins/jira/tasks/board_filter_end_collector.go
@@ -64,7 +64,11 @@ func CollectBoardFilterEnd(taskCtx plugin.SubTaskContext) errors.Error {
 	logger.Info("get board filter jql:%s", record.Jql)
 
 	if record.Jql != jql {
-		return errors.Default.New(fmt.Sprintf("connection_id:%d board_id:%d filter jql has changed, please use fullSync mode. And the previous jql is %s, now jql is %s", data.Options.ConnectionId, data.Options.BoardId, record.Jql, jql))
+		cfg := taskCtx.GetConfigReader()
+		flag := cfg.GetBool("JIRA_JQL_AUTO_FULL_REFRESH")
+		if !flag {
+			return errors.Default.New(fmt.Sprintf("connection_id:%d board_id:%d filter jql has changed, please use fullSync mode. And the previous jql is %s, now jql is %s", data.Options.ConnectionId, data.Options.BoardId, record.Jql, jql))
+		}
 	}
 
 	return nil