summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-07-03 07:28:02 +0000
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-07-03 07:28:02 +0000
commit8031be73fede0718b81c1b9d038be8a7c81a946a (patch)
tree839e439cbe911df2991d2d772cfcf90ff03f0ef5 /app
parentefc6baf782951ea2150b45f524c103d0904dbdc1 (diff)
parentdacf9f9f863dcb67a3dcb8dcfc4c151b10bca5e3 (diff)
downloadgitlab-ce-8031be73fede0718b81c1b9d038be8a7c81a946a.tar.gz
Merge branch 'contributors-api' into 'master'
Contributors api Fixes #1266 See merge request !934
Diffstat (limited to 'app')
-rw-r--r--app/models/repository.rb21
1 files changed, 21 insertions, 0 deletions
diff --git a/app/models/repository.rb b/app/models/repository.rb
index 22c16abe480..89bf12ce9ef 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -242,4 +242,25 @@ class Repository
branches
end
end
+
+ def contributors
+ log = graph_log.group_by { |i| i[:author_email] }
+
+ log.map do |email, contributions|
+ contributor = Gitlab::Contributor.new
+ contributor.email = email
+
+ contributions.each do |contribution|
+ if contributor.name.blank?
+ contributor.name = contribution[:author_name]
+ end
+
+ contributor.commits += 1
+ contributor.additions += contribution[:additions] || 0
+ contributor.deletions += contribution[:deletions] || 0
+ end
+
+ contributor
+ end
+ end
end