diff --git a/CHANGELOG b/CHANGELOG index 1934d03634aaff2dbf7dd8f6e20b662e2932a87f..7fdd7e38a93b764985ca694e4f72f0dbdce8ebf4 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -58,6 +58,7 @@ v 7.10.0 (unreleased) - Fix "Hello @username." references not working by no longer allowing usernames to end in period. - Archive repositories in background worker. - Import GitHub, Bitbucket or GitLab.com projects owned by authenticated user into current namespace. + - Project labels are now available over the API under the "tag_list" field (Cristian Medina) v 7.9.2 diff --git a/doc/api/projects.md b/doc/api/projects.md index 7fe244477dbe20d33d1715f3d4d2b7bff7523a00..55d525fef66b11f19074e7521d07e7537b259129 100644 --- a/doc/api/projects.md +++ b/doc/api/projects.md @@ -44,6 +44,10 @@ Parameters: "ssh_url_to_repo": "git@example.com:diaspora/diaspora-client.git", "http_url_to_repo": "http://example.com/diaspora/diaspora-client.git", "web_url": "http://example.com/diaspora/diaspora-client", + "tag_list": [ + "example", + "disapora client" + ], "owner": { "id": 3, "name": "Diaspora", @@ -80,6 +84,10 @@ Parameters: "ssh_url_to_repo": "git@example.com:brightbox/puppet.git", "http_url_to_repo": "http://example.com/brightbox/puppet.git", "web_url": "http://example.com/brightbox/puppet", + "tag_list": [ + "example", + "puppet" + ], "owner": { "id": 4, "name": "Brightbox", @@ -163,6 +171,10 @@ Parameters: "ssh_url_to_repo": "git@example.com:diaspora/diaspora-project-site.git", "http_url_to_repo": "http://example.com/diaspora/diaspora-project-site.git", "web_url": "http://example.com/diaspora/diaspora-project-site", + "tag_list": [ + "example", + "disapora project" + ], "owner": { "id": 3, "name": "Diaspora", diff --git a/lib/api/entities.rb b/lib/api/entities.rb index 489be2107846bb2844fc73761eb664b849ac2676..51cb934616b3a6b275cf3448ac7ed7e04b12f035 100644 --- a/lib/api/entities.rb +++ b/lib/api/entities.rb @@ -46,7 +46,7 @@ module API end class Project < Grape::Entity - expose :id, :description, :default_branch + expose :id, :description, :default_branch, :tag_list expose :public?, as: :public expose :archived?, as: :archived expose :visibility_level, :ssh_url_to_repo, :http_url_to_repo, :web_url diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb index b713f1fe898875303d6e6bd2387e39aecf4bdfb5..cc387378d3a824bd464a484b3fb147cf86716ab8 100644 --- a/spec/requests/api/projects_spec.rb +++ b/spec/requests/api/projects_spec.rb @@ -57,7 +57,14 @@ describe API::API, api: true do expect(json_response.first['name']).to eq(project.name) expect(json_response.first['owner']['username']).to eq(user.username) end - + + it 'should include the project labels as the tag_list' do + get api('/projects', user) + response.status.should == 200 + json_response.should be_an Array + json_response.first.keys.should include('tag_list') + end + context 'and using search' do it 'should return searched project' do get api('/projects', user), { search: project.name }