223 lines
6.5 KiB
Markdown
223 lines
6.5 KiB
Markdown
# Issue links API **(STARTER)**
|
|
|
|
## List issue relations
|
|
|
|
Get a list of related issues of a given issue, sorted by the relationship creation datetime (ascending).
|
|
Issues will be filtered according to the user authorizations.
|
|
|
|
```
|
|
GET /projects/:id/issues/:issue_iid/links
|
|
```
|
|
|
|
Parameters:
|
|
|
|
| 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 |
|
|
| `issue_iid` | integer | yes | The internal ID of a project's issue |
|
|
|
|
```json
|
|
[
|
|
{
|
|
"id" : 84,
|
|
"iid" : 14,
|
|
"issue_link_id": 1
|
|
"project_id" : 4,
|
|
"created_at" : "2016-01-07T12:44:33.959Z",
|
|
"title" : "Issues with auth",
|
|
"state" : "opened",
|
|
"assignees" : [],
|
|
"assignee" : null,
|
|
"labels" : [
|
|
"bug"
|
|
],
|
|
"author" : {
|
|
"name" : "Alexandra Bashirian",
|
|
"avatar_url" : null,
|
|
"state" : "active",
|
|
"web_url" : "https://gitlab.example.com/eileen.lowe",
|
|
"id" : 18,
|
|
"username" : "eileen.lowe"
|
|
},
|
|
"description" : null,
|
|
"updated_at" : "2016-01-07T12:44:33.959Z",
|
|
"milestone" : null,
|
|
"subscribed" : true,
|
|
"user_notes_count": 0,
|
|
"due_date": null,
|
|
"web_url": "http://example.com/example/example/issues/14",
|
|
"confidential": false,
|
|
"weight": null,
|
|
"link_type": "relates_to"
|
|
}
|
|
]
|
|
```
|
|
|
|
## Create an issue link
|
|
|
|
Creates a two-way relation between two issues. User must be allowed to update both issues in order to succeed.
|
|
|
|
```
|
|
POST /projects/:id/issues/:issue_iid/links
|
|
```
|
|
|
|
| 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 |
|
|
| `issue_iid` | integer | yes | The internal ID of a project's issue |
|
|
| `target_project_id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) of a target project |
|
|
| `target_issue_iid` | integer/string | yes | The internal ID of a target project's issue |
|
|
| `link_type` | string | no | The type of the relation ("relates_to", "blocks", "is_blocked_by"), defaults to "relates_to"). Ignored unless `issue_link_types` feature flag is enabled. |
|
|
|
|
```bash
|
|
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/4/issues/1/links?target_project_id=5&target_issue_iid=1"
|
|
```
|
|
|
|
Example response:
|
|
|
|
```json
|
|
{
|
|
"source_issue" : {
|
|
"id" : 83,
|
|
"iid" : 11,
|
|
"project_id" : 4,
|
|
"created_at" : "2016-01-07T12:44:33.959Z",
|
|
"title" : "Issues with auth",
|
|
"state" : "opened",
|
|
"assignees" : [],
|
|
"assignee" : null,
|
|
"labels" : [
|
|
"bug"
|
|
],
|
|
"author" : {
|
|
"name" : "Alexandra Bashirian",
|
|
"avatar_url" : null,
|
|
"state" : "active",
|
|
"web_url" : "https://gitlab.example.com/eileen.lowe",
|
|
"id" : 18,
|
|
"username" : "eileen.lowe"
|
|
},
|
|
"description" : null,
|
|
"updated_at" : "2016-01-07T12:44:33.959Z",
|
|
"milestone" : null,
|
|
"subscribed" : true,
|
|
"user_notes_count": 0,
|
|
"due_date": null,
|
|
"web_url": "http://example.com/example/example/issues/11",
|
|
"confidential": false,
|
|
"weight": null,
|
|
},
|
|
"target_issue" : {
|
|
"id" : 84,
|
|
"iid" : 14,
|
|
"project_id" : 4,
|
|
"created_at" : "2016-01-07T12:44:33.959Z",
|
|
"title" : "Issues with auth",
|
|
"state" : "opened",
|
|
"assignees" : [],
|
|
"assignee" : null,
|
|
"labels" : [
|
|
"bug"
|
|
],
|
|
"author" : {
|
|
"name" : "Alexandra Bashirian",
|
|
"avatar_url" : null,
|
|
"state" : "active",
|
|
"web_url" : "https://gitlab.example.com/eileen.lowe",
|
|
"id" : 18,
|
|
"username" : "eileen.lowe"
|
|
},
|
|
"description" : null,
|
|
"updated_at" : "2016-01-07T12:44:33.959Z",
|
|
"milestone" : null,
|
|
"subscribed" : true,
|
|
"user_notes_count": 0,
|
|
"due_date": null,
|
|
"web_url": "http://example.com/example/example/issues/14",
|
|
"confidential": false,
|
|
"weight": null,
|
|
},
|
|
"link_type": "relates_to"
|
|
}
|
|
```
|
|
|
|
## Delete an issue link
|
|
|
|
Deletes an issue link, thus removes the two-way relationship.
|
|
|
|
```
|
|
DELETE /projects/:id/issues/:issue_iid/links/:issue_link_id
|
|
```
|
|
|
|
| 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 |
|
|
| `issue_iid` | integer | yes | The internal ID of a project's issue |
|
|
| `issue_link_id` | integer/string | yes | The ID of an issue relationship |
|
|
| `link_type` | string | no | The type of the relation ('relates_to', 'blocks', 'is_blocked_by'), defaults to 'relates_to' |
|
|
|
|
```json
|
|
{
|
|
"source_issue" : {
|
|
"id" : 83,
|
|
"iid" : 11,
|
|
"project_id" : 4,
|
|
"created_at" : "2016-01-07T12:44:33.959Z",
|
|
"title" : "Issues with auth",
|
|
"state" : "opened",
|
|
"assignees" : [],
|
|
"assignee" : null,
|
|
"labels" : [
|
|
"bug"
|
|
],
|
|
"author" : {
|
|
"name" : "Alexandra Bashirian",
|
|
"avatar_url" : null,
|
|
"state" : "active",
|
|
"web_url" : "https://gitlab.example.com/eileen.lowe",
|
|
"id" : 18,
|
|
"username" : "eileen.lowe"
|
|
},
|
|
"description" : null,
|
|
"updated_at" : "2016-01-07T12:44:33.959Z",
|
|
"milestone" : null,
|
|
"subscribed" : true,
|
|
"user_notes_count": 0,
|
|
"due_date": null,
|
|
"web_url": "http://example.com/example/example/issues/11",
|
|
"confidential": false,
|
|
"weight": null,
|
|
},
|
|
"target_issue" : {
|
|
"id" : 84,
|
|
"iid" : 14,
|
|
"project_id" : 4,
|
|
"created_at" : "2016-01-07T12:44:33.959Z",
|
|
"title" : "Issues with auth",
|
|
"state" : "opened",
|
|
"assignees" : [],
|
|
"assignee" : null,
|
|
"labels" : [
|
|
"bug"
|
|
],
|
|
"author" : {
|
|
"name" : "Alexandra Bashirian",
|
|
"avatar_url" : null,
|
|
"state" : "active",
|
|
"web_url" : "https://gitlab.example.com/eileen.lowe",
|
|
"id" : 18,
|
|
"username" : "eileen.lowe"
|
|
},
|
|
"description" : null,
|
|
"updated_at" : "2016-01-07T12:44:33.959Z",
|
|
"milestone" : null,
|
|
"subscribed" : true,
|
|
"user_notes_count": 0,
|
|
"due_date": null,
|
|
"web_url": "http://example.com/example/example/issues/14",
|
|
"confidential": false,
|
|
"weight": null,
|
|
},
|
|
"link_type": "relates_to"
|
|
}
|
|
```
|