diff options
Diffstat (limited to 'tooling/danger/database.rb')
-rw-r--r-- | tooling/danger/database.rb | 16 |
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 |