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:
commit
b8570576e8
6 changed files with 31 additions and 1 deletions
|
@ -1,6 +1,7 @@
|
|||
Please view this file on the master branch, on stable branches it's out of date.
|
||||
|
||||
v 8.3.0 (unreleased)
|
||||
- Add open_issues_count to project API (Stan Hu)
|
||||
- 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)
|
||||
- Merge when build succeeds (Zeger-Jan van de Weg)
|
||||
|
|
|
@ -821,6 +821,7 @@ class Project < ActiveRecord::Base
|
|||
end
|
||||
end
|
||||
|
||||
<<<<<<< HEAD
|
||||
def any_runners?(&block)
|
||||
if runners.active.any?(&block)
|
||||
return true
|
||||
|
@ -850,4 +851,8 @@ class Project < ActiveRecord::Base
|
|||
def build_timeout_in_minutes=(value)
|
||||
self.build_timeout = value.to_i * 60
|
||||
end
|
||||
|
||||
def open_issues_count
|
||||
issues.opened.count
|
||||
end
|
||||
end
|
||||
|
|
|
@ -58,6 +58,7 @@ Parameters:
|
|||
"path": "diaspora-client",
|
||||
"path_with_namespace": "diaspora/diaspora-client",
|
||||
"issues_enabled": true,
|
||||
"open_issues_count": 1,
|
||||
"merge_requests_enabled": true,
|
||||
"builds_enabled": true,
|
||||
"wiki_enabled": true,
|
||||
|
@ -100,6 +101,7 @@ Parameters:
|
|||
"path": "puppet",
|
||||
"path_with_namespace": "brightbox/puppet",
|
||||
"issues_enabled": true,
|
||||
"open_issues_count": 1,
|
||||
"merge_requests_enabled": true,
|
||||
"builds_enabled": true,
|
||||
"wiki_enabled": true,
|
||||
|
@ -189,6 +191,7 @@ Parameters:
|
|||
"path": "diaspora-project-site",
|
||||
"path_with_namespace": "diaspora/diaspora-project-site",
|
||||
"issues_enabled": true,
|
||||
"open_issues_count": 1,
|
||||
"merge_requests_enabled": true,
|
||||
"builds_enabled": true,
|
||||
"wiki_enabled": true,
|
||||
|
|
|
@ -70,6 +70,7 @@ module API
|
|||
expose :forked_from_project, using: Entities::ForkedFromProject, if: lambda{ |project, options| project.forked? }
|
||||
expose :avatar_url
|
||||
expose :star_count, :forks_count
|
||||
expose :open_issues_count, if: lambda { | project, options | project.issues_enabled? && project.default_issues_tracker? }
|
||||
end
|
||||
|
||||
class ProjectMember < UserBasic
|
||||
|
|
|
@ -172,13 +172,17 @@ describe Project, models: true do
|
|||
|
||||
describe '#get_issue' do
|
||||
let(:project) { create(:empty_project) }
|
||||
let(:issue) { create(:issue, project: project) }
|
||||
let!(:issue) { create(:issue, project: project) }
|
||||
|
||||
context 'with default issues tracker' do
|
||||
it 'returns an issue' do
|
||||
expect(project.get_issue(issue.iid)).to eq issue
|
||||
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
|
||||
expect(project.get_issue(999)).to be_nil
|
||||
end
|
||||
|
|
|
@ -65,6 +65,22 @@ describe API::API, api: true do
|
|||
expect(json_response.first.keys).to include('tag_list')
|
||||
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
|
||||
it 'should return searched project' do
|
||||
get api('/projects', user), { search: project.name }
|
||||
|
|
Loading…
Reference in a new issue