summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Schilling <rschilling@student.tugraz.at>2016-10-18 11:19:35 +0200
committerRobert Schilling <rschilling@student.tugraz.at>2016-10-18 11:19:35 +0200
commit1b3b8fa872fad1f0002f79addca95916a63d44a4 (patch)
tree8235d6b5b25f9162c4f913a3cff894cbfe620a58
parentfbeaa7518d8cf86ad62e94e9bc86ffe63715dffd (diff)
downloadgitlab-ce-expose-label-id.tar.gz
API: Expose label IDexpose-label-id
-rw-r--r--CHANGELOG1
-rw-r--r--doc/api/labels.md37
-rw-r--r--lib/api/entities.rb2
-rw-r--r--spec/requests/api/labels_spec.rb10
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