Commit 94a95589 authored by Douwe Maan's avatar Douwe Maan

Merge branch 'fix-commit-calendar-emails' into 'master'

Fix commit calendar to use all user emails

This MR improves upon Hannes Rosenögger's changes:

https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/364

See merge request !378
parents e0caed91 b26ab0ce
...@@ -146,7 +146,8 @@ class Repository ...@@ -146,7 +146,8 @@ class Repository
end end
def timestamps_by_user_log(user) def timestamps_by_user_log(user)
args = %W(git log --author=#{user.email} --since=#{(Date.today - 1.year).to_s} --branches --pretty=format:%cd --date=short) author_emails = '(' + user.all_emails.map{ |e| Regexp.escape(e) }.join('|') + ')'
args = %W(git log -E --author=#{author_emails} --since=#{(Date.today - 1.year).to_s} --branches --pretty=format:%cd --date=short)
dates = Gitlab::Popen.popen(args, path_to_repo).first.split("\n") dates = Gitlab::Popen.popen(args, path_to_repo).first.split("\n")
if dates.present? if dates.present?
......
...@@ -18,4 +18,27 @@ describe Repository do ...@@ -18,4 +18,27 @@ describe Repository do
it { is_expected.to eq('c1acaa58bbcbc3eafe538cb8274ba387047b69f8') } it { is_expected.to eq('c1acaa58bbcbc3eafe538cb8274ba387047b69f8') }
end end
context :timestamps_by_user_log do
before do
Date.stub(:today).and_return(Date.new(2015, 03, 01))
end
describe 'single e-mail for user' do
let(:user) { create(:user, email: sample_commit.author_email) }
subject { repository.timestamps_by_user_log(user) }
it { is_expected.to eq(["2014-08-06", "2014-07-31", "2014-07-31"]) }
end
describe 'multiple emails for user' do
let(:email_alias) { create(:email, email: another_sample_commit.author_email) }
let(:user) { create(:user, email: sample_commit.author_email, emails: [email_alias]) }
subject { repository.timestamps_by_user_log(user) }
it { is_expected.to eq(["2015-01-10", "2014-08-06", "2014-07-31", "2014-07-31"]) }
end
end
end end
...@@ -43,6 +43,25 @@ eos ...@@ -43,6 +43,25 @@ eos
) )
end end
def another_sample_commit
OpenStruct.new(
id: "e56497bb5f03a90a51293fc6d516788730953899",
parent_id: '4cd80ccab63c82b4bad16faa5193fbd2aa06df40',
author_full_name: "Sytse Sijbrandij",
author_email: "sytse@gitlab.com",
files_changed_count: 1,
message: <<eos
Add directory structure for tree_helper spec
This directory structure is needed for a testing the method flatten_tree(tree) in the TreeHelper module
See [merge request #275](https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/275#note_732774)
See merge request !2
eos
)
end
def sample_big_commit def sample_big_commit
OpenStruct.new( OpenStruct.new(
id: "913c66a37b4a45b9769037c55c2d238bd0942d2e", id: "913c66a37b4a45b9769037c55c2d238bd0942d2e",
......
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