Commit 5df2c441 authored by Valery Sizov's avatar Valery Sizov

fox specs

parent 5c1b49f4
...@@ -135,10 +135,10 @@ class Commit ...@@ -135,10 +135,10 @@ class Commit
description.present? description.present?
end end
def hook_attrs def hook_attrs(with_changed_files = false)
path_with_namespace = project.path_with_namespace path_with_namespace = project.path_with_namespace
{ data = {
id: id, id: id,
message: safe_message, message: safe_message,
timestamp: committed_date.xmlschema, timestamp: committed_date.xmlschema,
...@@ -146,11 +146,18 @@ class Commit ...@@ -146,11 +146,18 @@ class Commit
author: { author: {
name: author_name, name: author_name,
email: author_email email: author_email
}, }
added: repo_changes[:added],
modified: repo_changes[:modified],
removed: repo_changes[:removed]
} }
if with_changed_files
data.merge!({
added: repo_changes[:added],
modified: repo_changes[:modified],
removed: repo_changes[:removed]
})
end
data
end end
# Discover issues should be closed when this commit is pushed to a project's # Discover issues should be closed when this commit is pushed to a project's
...@@ -205,14 +212,16 @@ class Commit ...@@ -205,14 +212,16 @@ class Commit
def repo_changes def repo_changes
changes = { added: [], modified: [], removed: [] } changes = { added: [], modified: [], removed: [] }
diffs.each do |diff| if diffs.any?
case true diffs.each do |diff|
when diff.deleted_file case true
changes[:removed] << diff.old_path when diff.deleted_file
when diff.renamed_file, diff.new_file changes[:removed] << diff.old_path
changes[:added] << diff.new_path when diff.renamed_file, diff.new_file
else changes[:added] << diff.new_path
changes[:modified] << diff.new_path else
changes[:modified] << diff.new_path
end
end end
end end
......
...@@ -291,7 +291,7 @@ class MergeRequest < ActiveRecord::Base ...@@ -291,7 +291,7 @@ class MergeRequest < ActiveRecord::Base
work_in_progress: work_in_progress? work_in_progress: work_in_progress?
} }
unless last_commit.nil? if last_commit
attrs.merge!(last_commit: last_commit.hook_attrs) attrs.merge!(last_commit: last_commit.hook_attrs)
end end
......
...@@ -30,7 +30,9 @@ module Gitlab ...@@ -30,7 +30,9 @@ module Gitlab
# For performance purposes maximum 20 latest commits # For performance purposes maximum 20 latest commits
# will be passed as post receive hook data. # will be passed as post receive hook data.
commit_attrs = commits_limited.map(&:hook_attrs) commit_attrs = commits_limited.map do |commit|
commit.hook_attrs(true)
end
type = Gitlab::Git.tag_ref?(ref) ? "tag_push" : "push" type = Gitlab::Git.tag_ref?(ref) ? "tag_push" : "push"
......
...@@ -102,7 +102,7 @@ eos ...@@ -102,7 +102,7 @@ eos
end end
describe '#hook_attrs' do describe '#hook_attrs' do
let(:data) { commit.hook_attrs } let(:data) { commit.hook_attrs(true) }
it { expect(data).to be_a(Hash) } it { expect(data).to be_a(Hash) }
it { expect(data[:message]).to include('Add submodule from gitlab.com') } it { expect(data[:message]).to include('Add submodule from gitlab.com') }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment