Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'tooling/danger/database.rb')
-rw-r--r--tooling/danger/database.rb16
1 files changed, 16 insertions, 0 deletions
diff --git a/tooling/danger/database.rb b/tooling/danger/database.rb
index 4cfac7c4af4..71b3ed1a1a5 100644
--- a/tooling/danger/database.rb
+++ b/tooling/danger/database.rb
@@ -5,6 +5,8 @@ module Tooling
module Database
TIMESTAMP_MATCHER = /(?<timestamp>\d{14})/
MIGRATION_MATCHER = %r{\A(ee/)?db/(geo/)?(post_)?migrate/}
+ MODEL_PATHS = %r{\A(ee/)?app/models/}
+ MODEL_CHANGES = %r{^[^#\n]*?(?:scope :|where\(|joins\()}
def find_migration_files_before(file_names, cutoff)
migrations = file_names.select { |f| f.match?(MIGRATION_MATCHER) }
@@ -15,6 +17,20 @@ module Tooling
timestamp < cutoff
end
end
+
+ def changes
+ changed_database_paths + changed_model_paths
+ end
+
+ def changed_database_paths
+ helper.changes_by_category[:database]
+ end
+
+ def changed_model_paths
+ helper.all_changed_files.grep(MODEL_PATHS).select do |file|
+ helper.changed_lines(file).any? { |change| change =~ MODEL_CHANGES }
+ end
+ end
end
end
end