Merge branch 'add-open-issues-count-to-api' of https://gitlab.com/stanhu/gitlab-ce

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
This commit is contained in:
Dmitriy Zaporozhets 2015-12-16 16:08:35 +01:00
commit b8570576e8
No known key found for this signature in database
GPG key ID: 627C5F589F467F17
6 changed files with 31 additions and 1 deletions

View file

@ -1,6 +1,7 @@
Please view this file on the master branch, on stable branches it's out of date. Please view this file on the master branch, on stable branches it's out of date.
v 8.3.0 (unreleased) v 8.3.0 (unreleased)
- Add open_issues_count to project API (Stan Hu)
- Expand character set of usernames created by Omniauth (Corey Hinshaw) - Expand character set of usernames created by Omniauth (Corey Hinshaw)
- Add button to automatically merge a merge request when the build succeeds (Zeger-Jan van de Weg) - Add button to automatically merge a merge request when the build succeeds (Zeger-Jan van de Weg)
- Merge when build succeeds (Zeger-Jan van de Weg) - Merge when build succeeds (Zeger-Jan van de Weg)

View file

@ -821,6 +821,7 @@ class Project < ActiveRecord::Base
end end
end end
<<<<<<< HEAD
def any_runners?(&block) def any_runners?(&block)
if runners.active.any?(&block) if runners.active.any?(&block)
return true return true
@ -850,4 +851,8 @@ class Project < ActiveRecord::Base
def build_timeout_in_minutes=(value) def build_timeout_in_minutes=(value)
self.build_timeout = value.to_i * 60 self.build_timeout = value.to_i * 60
end end
def open_issues_count
issues.opened.count
end
end end

View file

@ -58,6 +58,7 @@ Parameters:
"path": "diaspora-client", "path": "diaspora-client",
"path_with_namespace": "diaspora/diaspora-client", "path_with_namespace": "diaspora/diaspora-client",
"issues_enabled": true, "issues_enabled": true,
"open_issues_count": 1,
"merge_requests_enabled": true, "merge_requests_enabled": true,
"builds_enabled": true, "builds_enabled": true,
"wiki_enabled": true, "wiki_enabled": true,
@ -100,6 +101,7 @@ Parameters:
"path": "puppet", "path": "puppet",
"path_with_namespace": "brightbox/puppet", "path_with_namespace": "brightbox/puppet",
"issues_enabled": true, "issues_enabled": true,
"open_issues_count": 1,
"merge_requests_enabled": true, "merge_requests_enabled": true,
"builds_enabled": true, "builds_enabled": true,
"wiki_enabled": true, "wiki_enabled": true,
@ -189,6 +191,7 @@ Parameters:
"path": "diaspora-project-site", "path": "diaspora-project-site",
"path_with_namespace": "diaspora/diaspora-project-site", "path_with_namespace": "diaspora/diaspora-project-site",
"issues_enabled": true, "issues_enabled": true,
"open_issues_count": 1,
"merge_requests_enabled": true, "merge_requests_enabled": true,
"builds_enabled": true, "builds_enabled": true,
"wiki_enabled": true, "wiki_enabled": true,

View file

@ -70,6 +70,7 @@ module API
expose :forked_from_project, using: Entities::ForkedFromProject, if: lambda{ |project, options| project.forked? } expose :forked_from_project, using: Entities::ForkedFromProject, if: lambda{ |project, options| project.forked? }
expose :avatar_url expose :avatar_url
expose :star_count, :forks_count expose :star_count, :forks_count
expose :open_issues_count, if: lambda { | project, options | project.issues_enabled? && project.default_issues_tracker? }
end end
class ProjectMember < UserBasic class ProjectMember < UserBasic

View file

@ -172,13 +172,17 @@ describe Project, models: true do
describe '#get_issue' do describe '#get_issue' do
let(:project) { create(:empty_project) } let(:project) { create(:empty_project) }
let(:issue) { create(:issue, project: project) } let!(:issue) { create(:issue, project: project) }
context 'with default issues tracker' do context 'with default issues tracker' do
it 'returns an issue' do it 'returns an issue' do
expect(project.get_issue(issue.iid)).to eq issue expect(project.get_issue(issue.iid)).to eq issue
end end
it 'returns count of open issues' do
expect(project.open_issues_count).to eq(1)
end
it 'returns nil when no issue found' do it 'returns nil when no issue found' do
expect(project.get_issue(999)).to be_nil expect(project.get_issue(999)).to be_nil
end end

View file

@ -65,6 +65,22 @@ describe API::API, api: true do
expect(json_response.first.keys).to include('tag_list') expect(json_response.first.keys).to include('tag_list')
end end
it 'should include open_issues_count' do
get api('/projects', user)
expect(response.status).to eq 200
expect(json_response).to be_an Array
expect(json_response.first.keys).to include('open_issues_count')
end
it 'should not include open_issues_count' do
project.update_attributes( { issues_enabled: false } )
get api('/projects', user)
expect(response.status).to eq 200
expect(json_response).to be_an Array
expect(json_response.first.keys).not_to include('open_issues_count')
end
context 'and using search' do context 'and using search' do
it 'should return searched project' do it 'should return searched project' do
get api('/projects', user), { search: project.name } get api('/projects', user), { search: project.name }