summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/models/commit_collection.rb4
-rw-r--r--app/models/merge_request.rb8
-rw-r--r--spec/models/commit_collection_spec.rb14
-rw-r--r--spec/models/merge_request_spec.rb27
4 files changed, 17 insertions, 36 deletions
diff --git a/app/models/commit_collection.rb b/app/models/commit_collection.rb
index 52524456439..e8df46e1cc3 100644
--- a/app/models/commit_collection.rb
+++ b/app/models/commit_collection.rb
@@ -20,8 +20,8 @@ class CommitCollection
commits.each(&block)
end
- def authors
- emails = without_merge_commits.map(&:author_email).uniq
+ def committers
+ emails = without_merge_commits.map(&:committer_email).uniq
User.by_any_email(emails)
end
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index b52c480a487..a5fd66ca64a 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -319,12 +319,8 @@ class MergeRequest < ApplicationRecord
work_in_progress?(title) ? title : "WIP: #{title}"
end
- def commit_authors
- @commit_authors ||= commits.authors
- end
-
- def authors
- User.from_union([commit_authors, User.where(id: self.author_id)])
+ def committers
+ @committers ||= commits.committers
end
# Verifies if title has changed not taking into account WIP prefix
diff --git a/spec/models/commit_collection_spec.rb b/spec/models/commit_collection_spec.rb
index 30c504ebea8..dcbe36de1e2 100644
--- a/spec/models/commit_collection_spec.rb
+++ b/spec/models/commit_collection_spec.rb
@@ -12,26 +12,26 @@ describe CommitCollection do
end
end
- describe '.authors' do
+ describe '.committers' do
it 'returns a relation of users when users are found' do
- user = create(:user, email: commit.author_email.upcase)
+ user = create(:user, email: commit.committer_email.upcase)
collection = described_class.new(project, [commit])
- expect(collection.authors).to contain_exactly(user)
+ expect(collection.committers).to contain_exactly(user)
end
- it 'returns empty array when authors cannot be found' do
+ it 'returns empty array when committers cannot be found' do
collection = described_class.new(project, [commit])
- expect(collection.authors).to be_empty
+ expect(collection.committers).to be_empty
end
it 'excludes authors of merge commits' do
commit = project.commit("60ecb67744cb56576c30214ff52294f8ce2def98")
- create(:user, email: commit.author_email.upcase)
+ create(:user, email: commit.committer_email.upcase)
collection = described_class.new(project, [commit])
- expect(collection.authors).to be_empty
+ expect(collection.committers).to be_empty
end
end
diff --git a/spec/models/merge_request_spec.rb b/spec/models/merge_request_spec.rb
index 5adeb616e84..94825af42c7 100644
--- a/spec/models/merge_request_spec.rb
+++ b/spec/models/merge_request_spec.rb
@@ -474,7 +474,6 @@ describe MergeRequest do
it 'does not cache issues from external trackers' do
issue = ExternalIssue.new('JIRA-123', subject.project)
commit = double('commit1', safe_message: "Fixes #{issue.to_reference}")
-
allow(subject).to receive(:commits).and_return([commit])
expect { subject.cache_merge_request_closes_issues!(subject.author) }.not_to raise_error
@@ -1063,31 +1062,17 @@ describe MergeRequest do
end
end
- describe '#commit_authors' do
- it 'returns all the authors of every commit in the merge request' do
- users = subject.commits.without_merge_commits.map(&:author_email).uniq.map do |email|
- create(:user, email: email)
- end
-
- expect(subject.commit_authors).to match_array(users)
- end
-
- it 'returns an empty array if no author is associated with a user' do
- expect(subject.commit_authors).to be_empty
- end
- end
-
- describe '#authors' do
- it 'returns a list with all the commit authors in the merge request and author' do
- users = subject.commits.without_merge_commits.map(&:author_email).uniq.map do |email|
+ describe '#committers' do
+ it 'returns all the committers of every commit in the merge request' do
+ users = subject.commits.without_merge_commits.map(&:committer_email).uniq.map do |email|
create(:user, email: email)
end
- expect(subject.authors).to match_array([subject.author, *users])
+ expect(subject.committers).to match_array(users)
end
- it 'returns only the author if no committer is associated with a user' do
- expect(subject.authors).to contain_exactly(subject.author)
+ it 'returns an empty array if no committer is associated with a user' do
+ expect(subject.committers).to be_empty
end
end