summaryrefslogtreecommitdiff
path: root/app/models/repository.rb
diff options
context:
space:
mode:
authorJacopo <beschi.jacopo@gmail.com>2017-11-18 15:06:55 +0100
committerJacopo <beschi.jacopo@gmail.com>2017-12-13 18:02:20 +0100
commit55f322085d0507640366b7a774fe7819771ff54b (patch)
tree30fcb5e3f952fa007445342cbd67802a7f0958e3 /app/models/repository.rb
parent6930fa3102f0ba197e969f9996e86bf11346470c (diff)
downloadgitlab-ce-55f322085d0507640366b7a774fe7819771ff54b.tar.gz
Adds ordering to projects contributors in API
Allows ordering in GET api/v4/projects/:project_id/repository/contributors through `order_by` and `sort` params. The available `order_by` options are: name|email|commits. The available `sort` options are: asc|desc.
Diffstat (limited to 'app/models/repository.rb')
-rw-r--r--app/models/repository.rb9
1 files changed, 7 insertions, 2 deletions
diff --git a/app/models/repository.rb b/app/models/repository.rb
index d1ae3304e4a..c01188315fd 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -701,10 +701,14 @@ class Repository
end
end
- def contributors
+ # Params:
+ #
+ # order_by: name|email|commits
+ # sort: asc|desc default: 'asc'
+ def contributors(order_by: nil, sort: 'asc')
commits = self.commits(nil, limit: 2000, offset: 0, skip_merges: true)
- commits.group_by(&:author_email).map do |email, commits|
+ commits = commits.group_by(&:author_email).map do |email, commits|
contributor = Gitlab::Contributor.new
contributor.email = email
@@ -718,6 +722,7 @@ class Repository
contributor
end
+ Commit.order_by(collection: commits, order_by: order_by, sort: sort)
end
def refs_contains_sha(ref_type, sha)