Add open_issues_count to project API
This is needed to support Huboard and a generally useful value.
This commit is contained in:
parent
74dcbec369
commit
3efae53bd7
6 changed files with 30 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)
|
||||
|
|
|
@ -825,4 +825,8 @@ class Project < ActiveRecord::Base
|
|||
forked_project_link.destroy
|
||||
end
|
||||
end
|
||||
|
||||
def open_issues_count
|
||||
issues.opened.count
|
||||
end
|
||||
end
|
||||
|
|
|
@ -59,6 +59,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,
|
||||
|
@ -101,6 +102,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,
|
||||
|
@ -192,6 +194,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,
|
||||
|
|
|
@ -68,6 +68,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
|
||||
|
|
|
@ -153,13 +153,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