Merge branch 'fix-award-emoji-api' into 'master'

Add upvote/downvote fields to merge request and note API to preserve compatibility

As discussed in !1825 we should not break the API compatibility.

* This MR adds the fields `upvotes`/`downvotes` to the merge request API again, which always return `0`.
* Add the fields `upvote`/`downvote` to the notes API, which always return `false`

This behavior is documented in the API docs.

See merge request !1867
This commit is contained in:
Robert Speicher 2015-11-22 03:45:15 +00:00
commit b166ee6b1d
5 changed files with 58 additions and 10 deletions

View file

@ -92,6 +92,16 @@ module Issuable
opened? || reopened?
end
# Deprecated. Still exists to preserve API compatibility.
def downvotes
0
end
# Deprecated. Still exists to preserve API compatibility.
def upvotes
0
end
def subscribed?(user)
subscription = subscriptions.find_by_user_id(user.id)

View file

@ -335,6 +335,16 @@ class Note < ActiveRecord::Base
read_attribute(:system)
end
# Deprecated. Still exists to preserve API compatibility.
def downvote?
false
end
# Deprecated. Still exists to preserve API compatibility.
def upvote?
false
end
def editable?
!system?
end

View file

@ -3,8 +3,9 @@
## List merge requests
Get all merge requests for this project.
The `state` parameter can be used to get only merge requests with a given state (`opened`, `closed`, or `merged`) or all of them (`all`).
The pagination parameters `page` and `per_page` can be used to restrict the list of merge requests.
The `state` parameter can be used to get only merge requests with a given state (`opened`, `closed`, or `merged`) or all of them (`all`).
The pagination parameters `page` and `per_page` can be used to restrict the list of merge requests. With GitLab 8.2 the return fields `upvotes` and
`downvotes` are deprecated and always return `0`.
```
GET /projects/:id/merge_requests
@ -31,6 +32,8 @@ Parameters:
"project_id": 3,
"title": "test1",
"state": "opened",
"upvotes": 0,
"downvotes": 0,
"author": {
"id": 1,
"username": "admin",
@ -55,7 +58,7 @@ Parameters:
## Get single MR
Shows information about a single merge request.
Shows information about a single merge request. With GitLab 8.2 the return fields `upvotes` and `downvotes` are deprecated and always return `0`.
```
GET /projects/:id/merge_request/:merge_request_id
@ -75,6 +78,8 @@ Parameters:
"project_id": 3,
"title": "test1",
"state": "merged",
"upvotes": 0,
"downvotes": 0,
"author": {
"id": 1,
"username": "admin",
@ -98,7 +103,9 @@ Parameters:
## Get single MR changes
Shows information about the merge request including its files and changes
Shows information about the merge request including its files and changes.
With GitLab 8.2 the return fields `upvotes` and `downvotes` are deprecated and
always return `0`.
```
GET /projects/:id/merge_request/:merge_request_id/changes
@ -122,6 +129,8 @@ Parameters:
"updated_at": "2015-02-02T20:08:49.959Z",
"target_branch": "secret_token",
"source_branch": "version-1-9",
"upvotes": 0,
"downvotes": 0,
"author": {
"name": "Chad Hamill",
"username": "jarrett",
@ -167,7 +176,8 @@ Parameters:
## Create MR
Creates a new merge request.
Creates a new merge request. With GitLab 8.2 the return fields `upvotes` and `
downvotes` are deprecated and always return `0`.
```
POST /projects/:id/merge_requests
@ -192,6 +202,8 @@ Parameters:
"project_id": 3,
"title": "test1",
"state": "opened",
"upvotes": 0,
"downvotes": 0,
"author": {
"id": 1,
"username": "admin",
@ -217,7 +229,8 @@ If an error occurs, an error number and a message explaining the reason is retur
## Update MR
Updates an existing merge request. You can change the target branch, title, or even close the MR.
Updates an existing merge request. You can change the target branch, title, or even close the MR. With GitLab 8.2 the return fields `upvotes` and `downvotes`
are deprecated and always return `0`.
```
PUT /projects/:id/merge_request/:merge_request_id
@ -242,6 +255,8 @@ Parameters:
"title": "test1",
"description": "description1",
"state": "opened",
"upvotes": 0,
"downvotes": 0,
"author": {
"id": 1,
"username": "admin",
@ -266,7 +281,8 @@ If an error occurs, an error number and a message explaining the reason is retur
## Accept MR
Merge changes submitted with MR using this API.
Merge changes submitted with MR using this API. With GitLab 8.2 the return
fields `upvotes` and `downvotes` are deprecated and always return `0`.
If merge success you get `200 OK`.
@ -294,6 +310,8 @@ Parameters:
"project_id": 3,
"title": "test1",
"state": "merged",
"upvotes": 0,
"downvotes": 0,
"author": {
"id": 1,
"username": "admin",

View file

@ -6,7 +6,8 @@ Notes are comments on snippets, issues or merge requests.
### List project issue notes
Gets a list of all notes for a single issue.
Gets a list of all notes for a single issue. With GitLab 8.2 the return fields
`upvote` and `downvote` are deprecated and always return `false`.
```
GET /projects/:id/issues/:issue_id/notes
@ -32,7 +33,9 @@ Parameters:
"created_at": "2013-09-30T13:46:01Z"
},
"created_at": "2013-10-02T09:22:45Z",
"system": true
"system": true,
"upvote": false,
"downvote": false
},
{
"id": 305,
@ -47,7 +50,9 @@ Parameters:
"created_at": "2013-09-30T13:46:01Z"
},
"created_at": "2013-10-02T09:56:03Z",
"system": false
"system": true,
"upvote": false,
"downvote": false
}
]
```

View file

@ -163,6 +163,8 @@ module API
class MergeRequest < ProjectEntity
expose :target_branch, :source_branch
# deprecated, always returns 0
expose :upvotes, :downvotes
expose :author, :assignee, using: Entities::UserBasic
expose :source_project_id, :target_project_id
expose :label_names, as: :labels
@ -192,6 +194,9 @@ module API
expose :author, using: Entities::UserBasic
expose :created_at
expose :system?, as: :system
# upvote? and downvote? are deprecated, always return false
expose :upvote?, as: :upvote
expose :downvote?, as: :downvote
end
class MRNote < Grape::Entity