summaryrefslogtreecommitdiff
path: root/lib/api/entities.rb
diff options
context:
space:
mode:
authordosire <sytses@gmail.com>2014-02-21 15:36:53 +0100
committerdosire <sytses@gmail.com>2014-02-21 15:36:53 +0100
commit403298317f0035be27a812dae9c5090a51c11faa (patch)
tree9ea82a9ffb93d6f8d10cf37b8f1c04da5b4c6726 /lib/api/entities.rb
parent77dc5de9233db897f7eaf50f4fd0f230b17b555d (diff)
parentbbd92f554d22911afca9fca67077c73e8826bf23 (diff)
downloadgitlab-ce-403298317f0035be27a812dae9c5090a51c11faa.tar.gz
Merge branch 'master' into styleguide
Conflicts: CONTRIBUTING.md
Diffstat (limited to 'lib/api/entities.rb')
-rw-r--r--lib/api/entities.rb27
1 files changed, 26 insertions, 1 deletions
diff --git a/lib/api/entities.rb b/lib/api/entities.rb
index 4f636fc54a3..8557fa074d4 100644
--- a/lib/api/entities.rb
+++ b/lib/api/entities.rb
@@ -6,6 +6,12 @@ module API
expose :is_admin?, as: :is_admin
expose :can_create_group?, as: :can_create_group
expose :can_create_project?, as: :can_create_project
+
+ expose :avatar_url do |user, options|
+ if user.avatar.present?
+ user.avatar.url
+ end
+ end
end
class UserSafe < Grape::Entity
@@ -79,7 +85,16 @@ module API
end
class RepoObject < Grape::Entity
- expose :name, :commit
+ expose :name
+
+ expose :commit do |repo_obj, options|
+ if repo_obj.respond_to?(:commit)
+ repo_obj.commit
+ elsif options[:project]
+ options[:project].repository.commit(repo_obj.target)
+ end
+ end
+
expose :protected do |repo, options|
if options[:project]
options[:project].protected_branch? repo.name
@@ -87,6 +102,16 @@ module API
end
end
+ class RepoTreeObject < Grape::Entity
+ expose :id, :name, :type
+
+ expose :mode do |obj, options|
+ filemode = obj.mode.to_s(8)
+ filemode = "0" + filemode if filemode.length < 6
+ filemode
+ end
+ end
+
class RepoCommit < Grape::Entity
expose :id, :short_id, :title, :author_name, :author_email, :created_at
end