From 57174c0e0233c124ecc797cf7e1cc3546fe88397 Mon Sep 17 00:00:00 2001 From: Alisa Frunza Date: Fri, 25 Jul 2025 15:29:53 +0200 Subject: [PATCH] Update database danger file to exclude GLQL WorkItemsFinder from reviews --- danger/database/Dangerfile | 17 ++++++++++++++++- .../ee/work_items/glql/work_items_finder.rb | 4 ++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/danger/database/Dangerfile b/danger/database/Dangerfile index cd175273374157..55fbcded7f9e21 100644 --- a/danger/database/Dangerfile +++ b/danger/database/Dangerfile @@ -52,6 +52,13 @@ DATABASE_APPROVED_LABEL = 'database::approved' DATABASE_TESTING_RUN_LABEL = 'database-testing-automation' COMMUNITY_CONTRIBUTION_LABEL = 'Community contribution' +# Files that don't require database review even if they trigger database.changes +# For example, GLQL::WorkItemsFinder searches only Elasticsearch +DB_REVIEW_EXCLUSIONS = [ + 'ee/app/finders/ee/work_items/glql/work_items_finder.rb', + 'app/finders/work_items/glql/work_items_finder.rb' +].freeze + non_geo_db_schema_updated = !git.modified_files.grep(%r{\Adb/structure\.sql}).empty? geo_db_schema_updated = !git.modified_files.grep(%r{\Aee/db/geo/structure\.sql}).empty? @@ -79,7 +86,11 @@ if non_geo_migration_created && !migration_testing_has_run && !community_contrib fail DB_MIGRATION_TESTING_REQUIRED_MESSAGE end -if helper.mr_labels.include?('database') || database.changes.any? +database_changes_requiring_review = database.changes.any? && !database.changes.all? do |change| + DB_REVIEW_EXCLUSIONS.any? { |exclusion| change.include?(exclusion) } +end + +if helper.mr_labels.include?('database') || database_changes_requiring_review message 'This merge request adds or changes files that require a ' \ 'review from the [Database team](https://gitlab.com/groups/gl-database/-/group_members).' @@ -87,6 +98,10 @@ if helper.mr_labels.include?('database') || database.changes.any? db_paths_to_review = database.changed_database_paths + db_paths_to_review = db_paths_to_review.reject do |path| + DB_REVIEW_EXCLUSIONS.any? { |exclusion| path.include?(exclusion) } + end + if db_paths_to_review.any? markdown(DB_FILES_MESSAGE + helper.markdown_list(db_paths_to_review.to_set)) else diff --git a/ee/app/finders/ee/work_items/glql/work_items_finder.rb b/ee/app/finders/ee/work_items/glql/work_items_finder.rb index 64565f0ad62a91..a9be874d9471e0 100644 --- a/ee/app/finders/ee/work_items/glql/work_items_finder.rb +++ b/ee/app/finders/ee/work_items/glql/work_items_finder.rb @@ -38,8 +38,8 @@ module WorkItemsFinder CONTROL_KEYS = [:sort, :include_ancestors, :include_descendants, :exclude_projects].freeze ALLOWED_ES_FILTERS = [ :label_name, :group_id, :project_id, :state, :confidential, :author_username, - :milestone_title, :milestone_wildcard_id, :assignee_usernames, :assignee_wildcard_id, :not, :or, - :weight, :weight_wildcard_id, :issue_types, :health_status_filter + :milestone_title, :milestone_wildcard_id, :assignee_usernames, :assignee_wildcard_id, + :not, :or, :weight, :weight_wildcard_id, :issue_types, :health_status_filter ].freeze NOT_FILTERS = [:author_username, :milestone_title, :assignee_usernames, :label_name, :weight, :weight_wildcard_id, :health_status_filter].freeze -- GitLab