Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-07-02 13:40:20 +0400
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2014-07-02 13:40:20 +0400
commit81d41c0f927f69d75937d3c8f757740e936ed6e9 (patch)
treea13b2a16ffbe775926e6e4723432bb031b37e291 /lib/api/repositories.rb
parent2e3818f14f1c8ac54f36c216082dcab0d5cce99a (diff)
Collect contributors info via API
Diffstat (limited to 'lib/api/repositories.rb')
-rw-r--r--lib/api/repositories.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/api/repositories.rb b/lib/api/repositories.rb
index 459379ad30c..ace3283616a 100644
--- a/lib/api/repositories.rb
+++ b/lib/api/repositories.rb
@@ -160,7 +160,29 @@ module API
get ':id/repository/contributors' do
authorize! :download_code, user_project
+ contributors = {}
+ contributors
+
log = user_project.repository.graph_log
+ log.each do |entry|
+ email = entry[:author_email].to_s
+
+ if contributors.has_key?(email)
+ contributors[email][:commits] += 1
+ contributors[email][:additions] += entry[:additions] || 0
+ contributors[email][:deletions] += entry[:deletions] || 0
+ else
+ contributors[email] = {
+ email: email,
+ name: entry[:author_name],
+ commits: 1,
+ additions: entry[:additions] || 0,
+ deletions: entry[:deletions] || 0,
+ }
+ end
+ end
+
+ contributors
end
end
end