Merge branch 'issue-api-my-reaction' into 'master'
Add my_reaction_emoji param to /issues and /merge_requests API See merge request !14016
This commit is contained in:
commit
dd157e458c
9 changed files with 111 additions and 68 deletions
|
@ -14,6 +14,7 @@
|
|||
# search: string
|
||||
# label_name: string
|
||||
# sort: string
|
||||
# my_reaction_emoji: string
|
||||
#
|
||||
class IssuesFinder < IssuableFinder
|
||||
CONFIDENTIAL_ACCESS_LEVEL = Gitlab::Access::REPORTER
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
# label_name: string
|
||||
# sort: string
|
||||
# non_archived: boolean
|
||||
# my_reaction_emoji: string
|
||||
#
|
||||
class MergeRequestsFinder < IssuableFinder
|
||||
def klass
|
||||
|
|
5
changelogs/unreleased/issue-api-my-reaction.yml
Normal file
5
changelogs/unreleased/issue-api-my-reaction.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Add my_reaction_emoji param to /issues and /merge_requests API
|
||||
merge_request: 14016
|
||||
author: Hiroyuki Sato
|
||||
type: added
|
|
@ -30,20 +30,22 @@ GET /issues?milestone=1.0.0&state=opened
|
|||
GET /issues?iids[]=42&iids[]=43
|
||||
GET /issues?author_id=5
|
||||
GET /issues?assignee_id=5
|
||||
GET /issues?my_reaction_emoji=star
|
||||
```
|
||||
|
||||
| Attribute | Type | Required | Description |
|
||||
|-------------|----------------|----------|-----------------------------------------------------------------------------------------------------------------------------|
|
||||
| `state` | string | no | Return all issues or just those that are `opened` or `closed` |
|
||||
| `labels` | string | no | Comma-separated list of label names, issues must have all labels to be returned. `No+Label` lists all issues with no labels |
|
||||
| `milestone` | string | no | The milestone title |
|
||||
| `scope` | string | no | Return issues for the given scope: `created-by-me`, `assigned-to-me` or `all`. Defaults to `created-by-me` _([Introduced][ce-13004] in GitLab 9.5)_ |
|
||||
| `author_id` | integer | no | Return issues created by the given user `id`. Combine with `scope=all` or `scope=assigned-to-me`. _([Introduced][ce-13004] in GitLab 9.5)_ |
|
||||
| `assignee_id` | integer | no | Return issues assigned to the given user `id` _([Introduced][ce-13004] in GitLab 9.5)_ |
|
||||
| `iids[]` | Array[integer] | no | Return only the issues having the given `iid` |
|
||||
| `order_by` | string | no | Return issues ordered by `created_at` or `updated_at` fields. Default is `created_at` |
|
||||
| `sort` | string | no | Return issues sorted in `asc` or `desc` order. Default is `desc` |
|
||||
| `search` | string | no | Search issues against their `title` and `description` |
|
||||
| Attribute | Type | Required | Description |
|
||||
| ------------------- | ---------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `state` | string | no | Return all issues or just those that are `opened` or `closed` |
|
||||
| `labels` | string | no | Comma-separated list of label names, issues must have all labels to be returned. `No+Label` lists all issues with no labels |
|
||||
| `milestone` | string | no | The milestone title |
|
||||
| `scope` | string | no | Return issues for the given scope: `created-by-me`, `assigned-to-me` or `all`. Defaults to `created-by-me` _([Introduced][ce-13004] in GitLab 9.5)_ |
|
||||
| `author_id` | integer | no | Return issues created by the given user `id`. Combine with `scope=all` or `scope=assigned-to-me`. _([Introduced][ce-13004] in GitLab 9.5)_ |
|
||||
| `assignee_id` | integer | no | Return issues assigned to the given user `id` _([Introduced][ce-13004] in GitLab 9.5)_ |
|
||||
| `my_reaction_emoji` | string | no | Return issues reacted by the authenticated user by the given `emoji` _([Introduced][ce-14016] in GitLab 10.0)_ |
|
||||
| `iids[]` | Array[integer] | no | Return only the issues having the given `iid` |
|
||||
| `order_by` | string | no | Return issues ordered by `created_at` or `updated_at` fields. Default is `created_at` |
|
||||
| `sort` | string | no | Return issues sorted in `asc` or `desc` order. Default is `desc` |
|
||||
| `search` | string | no | Search issues against their `title` and `description` |
|
||||
|
||||
```bash
|
||||
curl --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" https://gitlab.example.com/api/v4/issues
|
||||
|
@ -131,21 +133,23 @@ GET /groups/:id/issues?iids[]=42&iids[]=43
|
|||
GET /groups/:id/issues?search=issue+title+or+description
|
||||
GET /groups/:id/issues?author_id=5
|
||||
GET /groups/:id/issues?assignee_id=5
|
||||
GET /groups/:id/issues?my_reaction_emoji=star
|
||||
```
|
||||
|
||||
| Attribute | Type | Required | Description |
|
||||
|-------------|----------------|----------|-----------------------------------------------------------------------------------------------------------------------------|
|
||||
| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user |
|
||||
| `state` | string | no | Return all issues or just those that are `opened` or `closed` |
|
||||
| `labels` | string | no | Comma-separated list of label names, issues must have all labels to be returned. `No+Label` lists all issues with no labels |
|
||||
| `iids[]` | Array[integer] | no | Return only the issues having the given `iid` |
|
||||
| `milestone` | string | no | The milestone title |
|
||||
| `scope` | string | no | Return issues for the given scope: `created-by-me`, `assigned-to-me` or `all` _([Introduced][ce-13004] in GitLab 9.5)_ |
|
||||
| `author_id` | integer | no | Return issues created by the given user `id` _([Introduced][ce-13004] in GitLab 9.5)_ |
|
||||
| `assignee_id` | integer | no | Return issues assigned to the given user `id` _([Introduced][ce-13004] in GitLab 9.5)_ |
|
||||
| `order_by` | string | no | Return issues ordered by `created_at` or `updated_at` fields. Default is `created_at` |
|
||||
| `sort` | string | no | Return issues sorted in `asc` or `desc` order. Default is `desc` |
|
||||
| `search` | string | no | Search group issues against their `title` and `description` |
|
||||
| Attribute | Type | Required | Description |
|
||||
| ------------------- | ---------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) owned by the authenticated user |
|
||||
| `state` | string | no | Return all issues or just those that are `opened` or `closed` |
|
||||
| `labels` | string | no | Comma-separated list of label names, issues must have all labels to be returned. `No+Label` lists all issues with no labels |
|
||||
| `iids[]` | Array[integer] | no | Return only the issues having the given `iid` |
|
||||
| `milestone` | string | no | The milestone title |
|
||||
| `scope` | string | no | Return issues for the given scope: `created-by-me`, `assigned-to-me` or `all` _([Introduced][ce-13004] in GitLab 9.5)_ |
|
||||
| `author_id` | integer | no | Return issues created by the given user `id` _([Introduced][ce-13004] in GitLab 9.5)_ |
|
||||
| `assignee_id` | integer | no | Return issues assigned to the given user `id` _([Introduced][ce-13004] in GitLab 9.5)_ |
|
||||
| `my_reaction_emoji` | string | no | Return issues reacted by the authenticated user by the given `emoji` _([Introduced][ce-14016] in GitLab 10.0)_ |
|
||||
| `order_by` | string | no | Return issues ordered by `created_at` or `updated_at` fields. Default is `created_at` |
|
||||
| `sort` | string | no | Return issues sorted in `asc` or `desc` order. Default is `desc` |
|
||||
| `search` | string | no | Search group issues against their `title` and `description` |
|
||||
|
||||
|
||||
```bash
|
||||
|
@ -234,23 +238,25 @@ GET /projects/:id/issues?iids[]=42&iids[]=43
|
|||
GET /projects/:id/issues?search=issue+title+or+description
|
||||
GET /projects/:id/issues?author_id=5
|
||||
GET /projects/:id/issues?assignee_id=5
|
||||
GET /projects/:id/issues?my_reaction_emoji=star
|
||||
```
|
||||
|
||||
| Attribute | Type | Required | Description |
|
||||
|-------------|----------------|----------|-----------------------------------------------------------------------------------------------------------------------------|
|
||||
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user |
|
||||
| `iids[]` | Array[integer] | no | Return only the milestone having the given `iid` |
|
||||
| `state` | string | no | Return all issues or just those that are `opened` or `closed` |
|
||||
| `labels` | string | no | Comma-separated list of label names, issues must have all labels to be returned. `No+Label` lists all issues with no labels |
|
||||
| `milestone` | string | no | The milestone title |
|
||||
| `scope` | string | no | Return issues for the given scope: `created-by-me`, `assigned-to-me` or `all` _([Introduced][ce-13004] in GitLab 9.5)_ |
|
||||
| `author_id` | integer | no | Return issues created by the given user `id` _([Introduced][ce-13004] in GitLab 9.5)_ |
|
||||
| `assignee_id` | integer | no | Return issues assigned to the given user `id` _([Introduced][ce-13004] in GitLab 9.5)_ |
|
||||
| `order_by` | string | no | Return issues ordered by `created_at` or `updated_at` fields. Default is `created_at` |
|
||||
| `sort` | string | no | Return issues sorted in `asc` or `desc` order. Default is `desc` |
|
||||
| `search` | string | no | Search project issues against their `title` and `description` |
|
||||
| `created_after` | datetime | no | Return issues created after the given time (inclusive) |
|
||||
| `created_before` | datetime | no | Return issues created before the given time (inclusive) |
|
||||
| Attribute | Type | Required | Description |
|
||||
| ------------------- | ---------------- | ---------- | ----------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user |
|
||||
| `iids[]` | Array[integer] | no | Return only the milestone having the given `iid` |
|
||||
| `state` | string | no | Return all issues or just those that are `opened` or `closed` |
|
||||
| `labels` | string | no | Comma-separated list of label names, issues must have all labels to be returned. `No+Label` lists all issues with no labels |
|
||||
| `milestone` | string | no | The milestone title |
|
||||
| `scope` | string | no | Return issues for the given scope: `created-by-me`, `assigned-to-me` or `all` _([Introduced][ce-13004] in GitLab 9.5)_ |
|
||||
| `author_id` | integer | no | Return issues created by the given user `id` _([Introduced][ce-13004] in GitLab 9.5)_ |
|
||||
| `assignee_id` | integer | no | Return issues assigned to the given user `id` _([Introduced][ce-13004] in GitLab 9.5)_ |
|
||||
| `my_reaction_emoji` | string | no | Return issues reacted by the authenticated user by the given `emoji` _([Introduced][ce-14016] in GitLab 10.0)_ |
|
||||
| `order_by` | string | no | Return issues ordered by `created_at` or `updated_at` fields. Default is `created_at` |
|
||||
| `sort` | string | no | Return issues sorted in `asc` or `desc` order. Default is `desc` |
|
||||
| `search` | string | no | Search project issues against their `title` and `description` |
|
||||
| `created_after` | datetime | no | Return issues created after the given time (inclusive) |
|
||||
| `created_before` | datetime | no | Return issues created before the given time (inclusive) |
|
||||
|
||||
```bash
|
||||
curl --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" https://gitlab.example.com/api/v4/projects/4/issues
|
||||
|
@ -1093,3 +1099,4 @@ Example response:
|
|||
```
|
||||
|
||||
[ce-13004]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/13004
|
||||
[ce-14016]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14016
|
||||
|
|
|
@ -22,24 +22,26 @@ GET /merge_requests?state=all
|
|||
GET /merge_requests?milestone=release
|
||||
GET /merge_requests?labels=bug,reproduced
|
||||
GET /merge_requests?author_id=5
|
||||
GET /merge_requests?my_reaction_emoji=star
|
||||
GET /merge_requests?scope=assigned-to-me
|
||||
```
|
||||
|
||||
Parameters:
|
||||
|
||||
| Attribute | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `state` | string | no | Return all merge requests or just those that are `opened`, `closed`, or `merged`|
|
||||
| `order_by`| string | no | Return requests ordered by `created_at` or `updated_at` fields. Default is `created_at` |
|
||||
| `sort` | string | no | Return requests sorted in `asc` or `desc` order. Default is `desc` |
|
||||
| `milestone` | string | no | Return merge requests for a specific milestone |
|
||||
| `view` | string | no | If `simple`, returns the `iid`, URL, title, description, and basic state of merge request |
|
||||
| `labels` | string | no | Return merge requests matching a comma separated list of labels |
|
||||
| `created_after` | datetime | no | Return merge requests created after the given time (inclusive) |
|
||||
| `created_before` | datetime | no | Return merge requests created before the given time (inclusive) |
|
||||
| `scope` | string | no | Return merge requests for the given scope: `created-by-me`, `assigned-to-me` or `all`. Defaults to `created-by-me` |
|
||||
| `author_id` | integer | no | Returns merge requests created by the given user `id`. Combine with `scope=all` or `scope=assigned-to-me` |
|
||||
| `assignee_id` | integer | no | Returns merge requests assigned to the given user `id` |
|
||||
| Attribute | Type | Required | Description |
|
||||
| ------------------- | -------- | -------- | ---------------------------------------------------------------------------------------------------------------------- |
|
||||
| `state` | string | no | Return all merge requests or just those that are `opened`, `closed`, or `merged` |
|
||||
| `order_by` | string | no | Return requests ordered by `created_at` or `updated_at` fields. Default is `created_at` |
|
||||
| `sort` | string | no | Return requests sorted in `asc` or `desc` order. Default is `desc` |
|
||||
| `milestone` | string | no | Return merge requests for a specific milestone |
|
||||
| `view` | string | no | If `simple`, returns the `iid`, URL, title, description, and basic state of merge request |
|
||||
| `labels` | string | no | Return merge requests matching a comma separated list of labels |
|
||||
| `created_after` | datetime | no | Return merge requests created after the given time (inclusive) |
|
||||
| `created_before` | datetime | no | Return merge requests created before the given time (inclusive) |
|
||||
| `scope` | string | no | Return merge requests for the given scope: `created-by-me`, `assigned-to-me` or `all`. Defaults to `created-by-me` |
|
||||
| `author_id` | integer | no | Returns merge requests created by the given user `id`. Combine with `scope=all` or `scope=assigned-to-me` |
|
||||
| `assignee_id` | integer | no | Returns merge requests assigned to the given user `id` |
|
||||
| `my_reaction_emoji` | string | no | Return merge requests reacted by the authenticated user by the given `emoji` _([Introduced][ce-14016] in GitLab 10.0)_ |
|
||||
|
||||
```json
|
||||
[
|
||||
|
@ -116,25 +118,27 @@ GET /projects/:id/merge_requests?state=all
|
|||
GET /projects/:id/merge_requests?iids[]=42&iids[]=43
|
||||
GET /projects/:id/merge_requests?milestone=release
|
||||
GET /projects/:id/merge_requests?labels=bug,reproduced
|
||||
GET /projects/:id/merge_requests?my_reaction_emoji=star
|
||||
```
|
||||
|
||||
Parameters:
|
||||
|
||||
| Attribute | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `id` | integer | yes | The ID of a project |
|
||||
| `iids[]` | Array[integer] | no | Return the request having the given `iid` |
|
||||
| `state` | string | no | Return all merge requests or just those that are `opened`, `closed`, or `merged`|
|
||||
| `order_by`| string | no | Return requests ordered by `created_at` or `updated_at` fields. Default is `created_at` |
|
||||
| `sort` | string | no | Return requests sorted in `asc` or `desc` order. Default is `desc` |
|
||||
| `milestone` | string | no | Return merge requests for a specific milestone |
|
||||
| `view` | string | no | If `simple`, returns the `iid`, URL, title, description, and basic state of merge request |
|
||||
| `labels` | string | no | Return merge requests matching a comma separated list of labels |
|
||||
| `created_after` | datetime | no | Return merge requests created after the given time (inclusive) |
|
||||
| `created_before` | datetime | no | Return merge requests created before the given time (inclusive) |
|
||||
| `scope` | string | no | Return merge requests for the given scope: `created-by-me`, `assigned-to-me` or `all` _([Introduced][ce-13060] in GitLab 9.5)_ |
|
||||
| `author_id` | integer | no | Returns merge requests created by the given user `id` _([Introduced][ce-13060] in GitLab 9.5)_ |
|
||||
| `assignee_id` | integer | no | Returns merge requests assigned to the given user `id` _([Introduced][ce-13060] in GitLab 9.5)_ |
|
||||
| Attribute | Type | Required | Description |
|
||||
| ------------------- | -------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `id` | integer | yes | The ID of a project |
|
||||
| `iids[]` | Array[integer] | no | Return the request having the given `iid` |
|
||||
| `state` | string | no | Return all merge requests or just those that are `opened`, `closed`, or `merged` |
|
||||
| `order_by` | string | no | Return requests ordered by `created_at` or `updated_at` fields. Default is `created_at` |
|
||||
| `sort` | string | no | Return requests sorted in `asc` or `desc` order. Default is `desc` |
|
||||
| `milestone` | string | no | Return merge requests for a specific milestone |
|
||||
| `view` | string | no | If `simple`, returns the `iid`, URL, title, description, and basic state of merge request |
|
||||
| `labels` | string | no | Return merge requests matching a comma separated list of labels |
|
||||
| `created_after` | datetime | no | Return merge requests created after the given time (inclusive) |
|
||||
| `created_before` | datetime | no | Return merge requests created before the given time (inclusive) |
|
||||
| `scope` | string | no | Return merge requests for the given scope: `created-by-me`, `assigned-to-me` or `all` _([Introduced][ce-13060] in GitLab 9.5)_ |
|
||||
| `author_id` | integer | no | Returns merge requests created by the given user `id` _([Introduced][ce-13060] in GitLab 9.5)_ |
|
||||
| `assignee_id` | integer | no | Returns merge requests assigned to the given user `id` _([Introduced][ce-13060] in GitLab 9.5)_ |
|
||||
| `my_reaction_emoji` | string | no | Return merge requests reacted by the authenticated user by the given `emoji` _([Introduced][ce-14016] in GitLab 10.0)_ |
|
||||
|
||||
```json
|
||||
[
|
||||
|
@ -1315,3 +1319,4 @@ Example response:
|
|||
```
|
||||
|
||||
[ce-13060]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/13060
|
||||
[ce-14016]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14016
|
||||
|
|
|
@ -36,6 +36,7 @@ module API
|
|||
optional :assignee_id, type: Integer, desc: 'Return issues which are assigned to the user with the given ID'
|
||||
optional :scope, type: String, values: %w[created-by-me assigned-to-me all],
|
||||
desc: 'Return issues for the given scope: `created-by-me`, `assigned-to-me` or `all`'
|
||||
optional :my_reaction_emoji, type: String, desc: 'Return issues reacted by the authenticated user by the given emoji'
|
||||
use :pagination
|
||||
end
|
||||
|
||||
|
|
|
@ -40,6 +40,7 @@ module API
|
|||
optional :assignee_id, type: Integer, desc: 'Return merge requests which are assigned to the user with the given ID'
|
||||
optional :scope, type: String, values: %w[created-by-me assigned-to-me all],
|
||||
desc: 'Return merge requests for the given scope: `created-by-me`, `assigned-to-me` or `all`'
|
||||
optional :my_reaction_emoji, type: String, desc: 'Return issues reacted by the authenticated user by the given emoji'
|
||||
use :pagination
|
||||
end
|
||||
end
|
||||
|
|
|
@ -138,6 +138,16 @@ describe API::Issues, :mailer do
|
|||
expect(first_issue['id']).to eq(issue2.id)
|
||||
end
|
||||
|
||||
it 'returns issues reacted by the authenticated user by the given emoji' do
|
||||
issue2 = create(:issue, project: project, author: user, assignees: [user])
|
||||
award_emoji = create(:award_emoji, awardable: issue2, user: user2, name: 'star')
|
||||
|
||||
get api('/issues', user2), my_reaction_emoji: award_emoji.name, scope: 'all'
|
||||
|
||||
expect_paginated_array_response(size: 1)
|
||||
expect(first_issue['id']).to eq(issue2.id)
|
||||
end
|
||||
|
||||
it 'returns issues matching given search string for title' do
|
||||
get api("/issues", user), search: issue.title
|
||||
|
||||
|
|
|
@ -117,6 +117,18 @@ describe API::MergeRequests do
|
|||
expect(json_response.length).to eq(1)
|
||||
expect(json_response.first['id']).to eq(merge_request3.id)
|
||||
end
|
||||
|
||||
it 'returns merge requests reacted by the authenticated user by the given emoji' do
|
||||
merge_request3 = create(:merge_request, :simple, author: user, assignee: user, source_project: project2, target_project: project2, source_branch: 'other-branch')
|
||||
award_emoji = create(:award_emoji, awardable: merge_request3, user: user2, name: 'star')
|
||||
|
||||
get api('/merge_requests', user2), my_reaction_emoji: award_emoji.name, scope: 'all'
|
||||
|
||||
expect(response).to have_gitlab_http_status(200)
|
||||
expect(json_response).to be_an Array
|
||||
expect(json_response.length).to eq(1)
|
||||
expect(json_response.first['id']).to eq(merge_request3.id)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue