summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Koller <markus-koller@gmx.ch>2016-11-29 20:25:41 +0100
committerMarkus Koller <markus-koller@gmx.ch>2016-12-21 16:36:53 +0100
commitd05dd81b99b897bcf41bfa4055d1f42bb9669af9 (patch)
tree3f75313f3037d8ef9378e5ba71aa57c6d3ce3912
parent845e2d3667ed697fea49123c9251226b1f7126ac (diff)
downloadgitlab-ce-d05dd81b99b897bcf41bfa4055d1f42bb9669af9.tar.gz
Don't expose all namespace fields in API
-rw-r--r--lib/api/entities.rb4
-rw-r--r--spec/requests/api/projects_spec.rb12
2 files changed, 14 insertions, 2 deletions
diff --git a/lib/api/entities.rb b/lib/api/entities.rb
index dfbb3ab86dd..c7530d9eb05 100644
--- a/lib/api/entities.rb
+++ b/lib/api/entities.rb
@@ -88,7 +88,7 @@ module API
expose :shared_runners_enabled
expose :lfs_enabled?, as: :lfs_enabled
expose :creator_id
- expose :namespace
+ expose :namespace, using: 'API::Entities::Namespace'
expose :forked_from_project, using: Entities::BasicProjectDetails, if: lambda{ |project, options| project.forked? }
expose :avatar_url
expose :star_count, :forks_count
@@ -391,7 +391,7 @@ module API
end
class Namespace < Grape::Entity
- expose :id, :path, :kind
+ expose :id, :name, :path, :kind
end
class MemberAccess < Grape::Entity
diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb
index 8304c408064..a626b41845f 100644
--- a/spec/requests/api/projects_spec.rb
+++ b/spec/requests/api/projects_spec.rb
@@ -630,6 +630,18 @@ describe API::Projects, api: true do
expect(json_response['name']).to eq(project.name)
end
+ it 'exposes namespace fields' do
+ get api("/projects/#{project.id}", user)
+
+ expect(response).to have_http_status(200)
+ expect(json_response['namespace']).to eq({
+ 'id' => user.namespace.id,
+ 'name' => user.namespace.name,
+ 'path' => user.namespace.path,
+ 'kind' => user.namespace.kind,
+ })
+ end
+
describe 'permissions' do
context 'all projects' do
before { project.team << [user, :master] }