diff options
author | Robert Schilling <rschilling@student.tugraz.at> | 2016-10-18 11:19:35 +0200 |
---|---|---|
committer | Robert Schilling <rschilling@student.tugraz.at> | 2016-10-18 11:19:35 +0200 |
commit | 1b3b8fa872fad1f0002f79addca95916a63d44a4 (patch) | |
tree | 8235d6b5b25f9162c4f913a3cff894cbfe620a58 | |
parent | fbeaa7518d8cf86ad62e94e9bc86ffe63715dffd (diff) | |
download | gitlab-ce-expose-label-id.tar.gz |
API: Expose label IDexpose-label-id
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | doc/api/labels.md | 37 | ||||
-rw-r--r-- | lib/api/entities.rb | 2 | ||||
-rw-r--r-- | spec/requests/api/labels_spec.rb | 10 |
4 files changed, 42 insertions, 8 deletions
diff --git a/CHANGELOG b/CHANGELOG index 5d911209b51..cf0be7e3fd8 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -28,6 +28,7 @@ v 8.13.0 (unreleased) - Don't include archived projects when creating group milestones. !4940 (Jeroen Jacobs) - Add tag shortcut from the Commit page. !6543 - Keep refs for each deployment + - API: Expose label#id (Robert Schilling) - Allow browsing branches that end with '.atom' - Log LDAP lookup errors and don't swallow unrelated exceptions. !6103 (Markus Koller) - Replace unique keyframes mixin with keyframe mixin with specific names (ClemMakesApps) diff --git a/doc/api/labels.md b/doc/api/labels.md index 656232cc940..42b56dae0e5 100644 --- a/doc/api/labels.md +++ b/doc/api/labels.md @@ -21,44 +21,54 @@ Example response: ```json [ { + "id" : 1, "name" : "bug", "color" : "#d9534f", "description": "Bug reported by user", "open_issues_count": 1, "closed_issues_count": 0, - "open_merge_requests_count": 1 + "open_merge_requests_count": 1, + "subscribed": false }, { + "id" : 2, "color" : "#d9534f", "name" : "confirmed", "description": "Confirmed issue", "open_issues_count": 2, "closed_issues_count": 5, - "open_merge_requests_count": 0 + "open_merge_requests_count": 0, + "subscribed": false }, { + "id" : 3, "name" : "critical", "color" : "#d9534f", "description": "Critical issue. Need fix ASAP", "open_issues_count": 1, "closed_issues_count": 3, - "open_merge_requests_count": 1 + "open_merge_requests_count": 1, + "subscribed": false }, { + "id" : 4, "name" : "documentation", "color" : "#f0ad4e", "description": "Issue about documentation", "open_issues_count": 1, "closed_issues_count": 0, - "open_merge_requests_count": 2 + "open_merge_requests_count": 2, + "subscribed": true }, { + "id" : 5, "color" : "#5cb85c", "name" : "enhancement", "description": "Enhancement proposal", "open_issues_count": 1, "closed_issues_count": 0, - "open_merge_requests_count": 1 + "open_merge_requests_count": 1, + "subscribed": false } ] ``` @@ -89,9 +99,14 @@ Example response: ```json { + "id" : 7, "name" : "feature", "color" : "#5843AD", - "description":null + "description": null, + "open_issues_count": 0, + "closed_issues_count": 0, + "open_merge_requests_count": 0, + "subscribed": false } ``` @@ -127,6 +142,7 @@ Example response: "template" : false, "project_id" : 1, "created_at" : "2015-11-03T21:22:30.737Z", + "priority": 1, "id" : 9 } ``` @@ -160,9 +176,14 @@ Example response: ```json { + "id" : 8, "color" : "#8E44AD", "name" : "docs", - "description": "Documentation" + "description": "Documentation", + "open_issues_count": 0, + "closed_issues_count": 0, + "open_merge_requests_count": 0, + "subscribed": false } ``` @@ -191,6 +212,7 @@ Example response: ```json { + "id" : 9, "name": "Docs", "color": "#cc0033", "description": "", @@ -226,6 +248,7 @@ Example response: ```json { + "id" : 9, "name": "Docs", "color": "#cc0033", "description": "", diff --git a/lib/api/entities.rb b/lib/api/entities.rb index feaa0c213bf..c1dbd0364c4 100644 --- a/lib/api/entities.rb +++ b/lib/api/entities.rb @@ -433,7 +433,7 @@ module API end class LabelBasic < Grape::Entity - expose :name, :color, :description + expose :id, :name, :color, :description end class Label < LabelBasic diff --git a/spec/requests/api/labels_spec.rb b/spec/requests/api/labels_spec.rb index 83789223019..01c2c823668 100644 --- a/spec/requests/api/labels_spec.rb +++ b/spec/requests/api/labels_spec.rb @@ -14,10 +14,18 @@ describe API::API, api: true do describe 'GET /projects/:id/labels' do it 'returns project labels' do get api("/projects/#{project.id}/labels", user) + expect(response).to have_http_status(200) expect(json_response).to be_an Array expect(json_response.size).to eq(1) + expect(json_response.first['id']).to eq(label1.id) expect(json_response.first['name']).to eq(label1.name) + expect(json_response.first['color']).to eq(label1.color) + expect(json_response.first['description']).to eq(label1.description) + expect(json_response.first['open_issues_count']).to eq(0) + expect(json_response.first['closed_issues_count']).to eq(0) + expect(json_response.first['open_merge_requests_count']).to eq(0) + expect(json_response.first['subscribed']).to be_falsey end end @@ -89,6 +97,8 @@ describe API::API, api: true do describe 'DELETE /projects/:id/labels' do it 'returns 200 for existing label' do delete api("/projects/#{project.id}/labels", user), name: 'label1' + + pp json_response expect(response).to have_http_status(200) end |