diff options
author | Eirik Lygre <eirik.lygre@gmail.com> | 2015-12-09 15:07:10 +0100 |
---|---|---|
committer | Eirik Lygre <eirik.lygre@gmail.com> | 2015-12-09 15:07:10 +0100 |
commit | bb79573c01ad77d6b52245d3af262bc56f79693f (patch) | |
tree | 1bd51c1c8adc50462f22591d6ab5af8315cf9eb6 /app/models/commit.rb | |
parent | 94dc9ef9e1a85b8a4506358479a549dc3a1306b6 (diff) | |
parent | 9bfd6c44e23754b6f699586f6a0cec2879e107e0 (diff) | |
download | gitlab-ce-bb79573c01ad77d6b52245d3af262bc56f79693f.tar.gz |
Merge branch 'master' into default_clone_protocol_based_on_user_keys
Diffstat (limited to 'app/models/commit.rb')
-rw-r--r-- | app/models/commit.rb | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/app/models/commit.rb b/app/models/commit.rb index c0998a45709..8ae5325d16a 100644 --- a/app/models/commit.rb +++ b/app/models/commit.rb @@ -147,10 +147,10 @@ class Commit description.present? end - def hook_attrs + def hook_attrs(with_changed_files: false) path_with_namespace = project.path_with_namespace - { + data = { id: id, message: safe_message, timestamp: committed_date.xmlschema, @@ -160,6 +160,12 @@ class Commit email: author_email } } + + if with_changed_files + data.merge!(repo_changes) + end + + data end # Discover issues should be closed when this commit is pushed to a project's @@ -208,4 +214,22 @@ class Commit def status ci_commit.try(:status) || :not_found end + + private + + def repo_changes + changes = { added: [], modified: [], removed: [] } + + diffs.each do |diff| + if diff.deleted_file + changes[:removed] << diff.old_path + elsif diff.renamed_file || diff.new_file + changes[:added] << diff.new_path + else + changes[:modified] << diff.new_path + end + end + + changes + end end |