Commit 24a5fe6b authored by Michel Engelen's avatar Michel Engelen Committed by Achilleas Pipinellis

Rename "discussions" to "threads" in docs

parent 03c307b6
...@@ -108,7 +108,7 @@ The following documentation relates to the DevOps **Plan** stage: ...@@ -108,7 +108,7 @@ The following documentation relates to the DevOps **Plan** stage:
| Plan Topics | Description | | Plan Topics | Description |
|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------| |:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------|
| [Burndown Charts](user/project/milestones/burndown_charts.md) **(STARTER)** | Watch your project's progress throughout a specific milestone. | | [Burndown Charts](user/project/milestones/burndown_charts.md) **(STARTER)** | Watch your project's progress throughout a specific milestone. |
| [Discussions](user/discussions/index.md) | Threads, comments, and resolvable discussions in issues, commits, and merge requests. | | [Discussions](user/discussions/index.md) | Threads, comments, and resolvable threads in issues, commits, and merge requests. |
| [Due Dates](user/project/issues/due_dates.md) | Keep track of issue deadlines. | | [Due Dates](user/project/issues/due_dates.md) | Keep track of issue deadlines. |
| [Epics](user/group/epics/index.md) **(ULTIMATE)** | Tracking groups of issues that share a theme. | | [Epics](user/group/epics/index.md) **(ULTIMATE)** | Tracking groups of issues that share a theme. |
| [Issues](user/project/issues/index.md), including [confidential issues](user/project/issues/confidential_issues.md),<br/>[issue and merge request templates](user/project/description_templates.md),<br/>and [moving issues](user/project/issues/managing_issues.md#moving-issues) | Project issues, restricting access to issues, create templates for submitting new issues and merge requests, and moving issues between projects. | | [Issues](user/project/issues/index.md), including [confidential issues](user/project/issues/confidential_issues.md),<br/>[issue and merge request templates](user/project/description_templates.md),<br/>and [moving issues](user/project/issues/managing_issues.md#moving-issues) | Project issues, restricting access to issues, create templates for submitting new issues and merge requests, and moving issues between projects. |
...@@ -192,7 +192,7 @@ The following documentation relates to the DevOps **Create** stage: ...@@ -192,7 +192,7 @@ The following documentation relates to the DevOps **Create** stage:
|:------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------| |:------------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------|
| [Checking out merge requests locally](user/project/merge_requests/index.md#checkout-merge-requests-locally) | Tips for working with merge requests locally. | | [Checking out merge requests locally](user/project/merge_requests/index.md#checkout-merge-requests-locally) | Tips for working with merge requests locally. |
| [Cherry-picking](user/project/merge_requests/cherry_pick_changes.md) | Use GitLab for cherry-picking changes. | | [Cherry-picking](user/project/merge_requests/cherry_pick_changes.md) | Use GitLab for cherry-picking changes. |
| [Merge request discussion resolution](user/discussions/index.md#moving-a-single-discussion-to-a-new-issue) | Resolve discussions, move discussions in a merge request to an issue, and only allow merge requests to be merged if all discussions are resolved. | | [Merge request thread resolution](user/discussions/index.md#moving-a-single-thread-to-a-new-issue) | Resolve threads, move threads in a merge request to an issue, and only allow merge requests to be merged if all threads are resolved. |
| [Merge requests](user/project/merge_requests/index.md) | Merge request management. | | [Merge requests](user/project/merge_requests/index.md) | Merge request management. |
| [Work In Progress "WIP" merge requests](user/project/merge_requests/work_in_progress_merge_requests.md) | Prevent merges of work-in-progress merge requests. | | [Work In Progress "WIP" merge requests](user/project/merge_requests/work_in_progress_merge_requests.md) | Prevent merges of work-in-progress merge requests. |
......
...@@ -12,16 +12,15 @@ This includes system notes, which are notes about changes to the object (for exa ...@@ -12,16 +12,15 @@ This includes system notes, which are notes about changes to the object (for exa
## Discussions pagination ## Discussions pagination
By default, `GET` requests return 20 results at a time because the API results By default, `GET` requests return 20 results at a time because the API results are paginated.
are paginated.
Read more on [pagination](README.md#pagination). Read more on [pagination](README.md#pagination).
## Issues ## Issues
### List project issue discussions ### List project issue discussion items
Gets a list of all discussions for a single issue. Gets a list of all discussion items for a single issue.
``` ```
GET /projects/:id/issues/:issue_iid/discussions GET /projects/:id/issues/:issue_iid/discussions
...@@ -115,9 +114,9 @@ GET /projects/:id/issues/:issue_iid/discussions ...@@ -115,9 +114,9 @@ GET /projects/:id/issues/:issue_iid/discussions
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/issues/11/discussions curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/issues/11/discussions
``` ```
### Get single issue discussion ### Get single issue discussion item
Returns a single discussion for a specific project issue Returns a single discussion item for a specific project issue
``` ```
GET /projects/:id/issues/:issue_iid/discussions/:discussion_id GET /projects/:id/issues/:issue_iid/discussions/:discussion_id
...@@ -129,16 +128,15 @@ Parameters: ...@@ -129,16 +128,15 @@ Parameters:
| --------------- | -------------- | -------- | ----------- | | --------------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) |
| `issue_iid` | integer | yes | The IID of an issue | | `issue_iid` | integer | yes | The IID of an issue |
| `discussion_id` | integer | yes | The ID of a discussion | | `discussion_id` | integer | yes | The ID of a discussion item |
```bash ```bash
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/issues/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7 curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/issues/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7
``` ```
### Create new issue discussion ### Create new issue thread
Creates a new discussion to a single project issue. This is similar to creating Creates a new thread to a single project issue. This is similar to creating a note but other comments (replies) can be added to it later.
a note but other comments (replies) can be added to it later.
``` ```
POST /projects/:id/issues/:issue_iid/discussions POST /projects/:id/issues/:issue_iid/discussions
...@@ -150,17 +148,19 @@ Parameters: ...@@ -150,17 +148,19 @@ Parameters:
| --------------- | -------------- | -------- | ----------- | | --------------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) |
| `issue_iid` | integer | yes | The IID of an issue | | `issue_iid` | integer | yes | The IID of an issue |
| `body` | string | yes | The content of a discussion | | `body` | string | yes | The content of the thread |
| `created_at` | string | no | Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights) | | `created_at` | string | no | Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights) |
```bash ```bash
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/issues/11/discussions?body=comment curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/issues/11/discussions?body=comment
``` ```
### Add note to existing issue discussion ### Add note to existing issue thread
Adds a new note to the discussion. This can also Adds a new note to the thread. This can also [create a thread from a single comment](../user/discussions/#start-a-thread-by-replying-to-a-standard-comment).
[create a discussion from a single comment](../user/discussions/#start-a-discussion-by-replying-to-a-standard-comment).
**WARNING**
Notes can be added to other items than comments (system notes, etc.) making them threads.
``` ```
POST /projects/:id/issues/:issue_iid/discussions/:discussion_id/notes POST /projects/:id/issues/:issue_iid/discussions/:discussion_id/notes
...@@ -172,18 +172,18 @@ Parameters: ...@@ -172,18 +172,18 @@ Parameters:
| --------------- | -------------- | -------- | ----------- | | --------------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) |
| `issue_iid` | integer | yes | The IID of an issue | | `issue_iid` | integer | yes | The IID of an issue |
| `discussion_id` | integer | yes | The ID of a discussion | | `discussion_id` | integer | yes | The ID of a thread |
| `note_id` | integer | yes | The ID of a discussion note | | `note_id` | integer | yes | The ID of a thread note |
| `body` | string | yes | The content of a discussion | | `body` | string | yes | The content of the note/reply |
| `created_at` | string | no | Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights) | | `created_at` | string | no | Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights) |
```bash ```bash
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/issues/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7/notes?body=comment curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/issues/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7/notes?body=comment
``` ```
### Modify existing issue discussion note ### Modify existing issue thread note
Modify existing discussion note of an issue. Modify existing thread note of an issue.
``` ```
PUT /projects/:id/issues/:issue_iid/discussions/:discussion_id/notes/:note_id PUT /projects/:id/issues/:issue_iid/discussions/:discussion_id/notes/:note_id
...@@ -195,17 +195,17 @@ Parameters: ...@@ -195,17 +195,17 @@ Parameters:
| --------------- | -------------- | -------- | ----------- | | --------------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) |
| `issue_iid` | integer | yes | The IID of an issue | | `issue_iid` | integer | yes | The IID of an issue |
| `discussion_id` | integer | yes | The ID of a discussion | | `discussion_id` | integer | yes | The ID of a thread |
| `note_id` | integer | yes | The ID of a discussion note | | `note_id` | integer | yes | The ID of a thread note |
| `body` | string | yes | The content of a discussion | | `body` | string | yes | The content of the note/reply |
```bash ```bash
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/issues/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7/notes/1108?body=comment curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/issues/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7/notes/1108?body=comment
``` ```
### Delete an issue discussion note ### Delete an issue thread note
Deletes an existing discussion note of an issue. Deletes an existing thread note of an issue.
``` ```
DELETE /projects/:id/issues/:issue_iid/discussions/:discussion_id/notes/:note_id DELETE /projects/:id/issues/:issue_iid/discussions/:discussion_id/notes/:note_id
...@@ -226,9 +226,9 @@ curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" https://gitl ...@@ -226,9 +226,9 @@ curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" https://gitl
## Snippets ## Snippets
### List project snippet discussions ### List project snippet discussion items
Gets a list of all discussions for a single snippet. Gets a list of all discussion items for a single snippet.
``` ```
GET /projects/:id/snippets/:snippet_id/discussions GET /projects/:id/snippets/:snippet_id/discussions
...@@ -322,9 +322,9 @@ GET /projects/:id/snippets/:snippet_id/discussions ...@@ -322,9 +322,9 @@ GET /projects/:id/snippets/:snippet_id/discussions
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/snippets/11/discussions curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/snippets/11/discussions
``` ```
### Get single snippet discussion ### Get single snippet discussion item
Returns a single discussion for a specific project snippet Returns a single discussion item for a specific project snippet
``` ```
GET /projects/:id/snippets/:snippet_id/discussions/:discussion_id GET /projects/:id/snippets/:snippet_id/discussions/:discussion_id
...@@ -336,15 +336,15 @@ Parameters: ...@@ -336,15 +336,15 @@ Parameters:
| --------------- | -------------- | -------- | ----------- | | --------------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) |
| `snippet_id` | integer | yes | The ID of an snippet | | `snippet_id` | integer | yes | The ID of an snippet |
| `discussion_id` | integer | yes | The ID of a discussion | | `discussion_id` | integer | yes | The ID of a discussion item |
```bash ```bash
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/snippets/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7 curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/snippets/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7
``` ```
### Create new snippet discussion ### Create new snippet thread
Creates a new discussion to a single project snippet. This is similar to creating Creates a new thread to a single project snippet. This is similar to creating
a note but other comments (replies) can be added to it later. a note but other comments (replies) can be added to it later.
``` ```
...@@ -364,9 +364,9 @@ Parameters: ...@@ -364,9 +364,9 @@ Parameters:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/snippets/11/discussions?body=comment curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/snippets/11/discussions?body=comment
``` ```
### Add note to existing snippet discussion ### Add note to existing snippet thread
Adds a new note to the discussion. Adds a new note to the thread.
``` ```
POST /projects/:id/snippets/:snippet_id/discussions/:discussion_id/notes POST /projects/:id/snippets/:snippet_id/discussions/:discussion_id/notes
...@@ -378,18 +378,18 @@ Parameters: ...@@ -378,18 +378,18 @@ Parameters:
| --------------- | -------------- | -------- | ----------- | | --------------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) |
| `snippet_id` | integer | yes | The ID of an snippet | | `snippet_id` | integer | yes | The ID of an snippet |
| `discussion_id` | integer | yes | The ID of a discussion | | `discussion_id` | integer | yes | The ID of a thread |
| `note_id` | integer | yes | The ID of a discussion note | | `note_id` | integer | yes | The ID of a thread note |
| `body` | string | yes | The content of a discussion | | `body` | string | yes | The content of the note/reply |
| `created_at` | string | no | Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights) | | `created_at` | string | no | Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights) |
```bash ```bash
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/snippets/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7/notes?body=comment curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/snippets/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7/notes?body=comment
``` ```
### Modify existing snippet discussion note ### Modify existing snippet thread note
Modify existing discussion note of an snippet. Modify existing thread note of a snippet.
``` ```
PUT /projects/:id/snippets/:snippet_id/discussions/:discussion_id/notes/:note_id PUT /projects/:id/snippets/:snippet_id/discussions/:discussion_id/notes/:note_id
...@@ -401,17 +401,17 @@ Parameters: ...@@ -401,17 +401,17 @@ Parameters:
| --------------- | -------------- | -------- | ----------- | | --------------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) |
| `snippet_id` | integer | yes | The ID of an snippet | | `snippet_id` | integer | yes | The ID of an snippet |
| `discussion_id` | integer | yes | The ID of a discussion | | `discussion_id` | integer | yes | The ID of a thread |
| `note_id` | integer | yes | The ID of a discussion note | | `note_id` | integer | yes | The ID of a thread note |
| `body` | string | yes | The content of a discussion | | `body` | string | yes | The content of the note/reply |
```bash ```bash
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/snippets/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7/notes/1108?body=comment curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/snippets/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7/notes/1108?body=comment
``` ```
### Delete an snippet discussion note ### Delete a snippet thread note
Deletes an existing discussion note of an snippet. Deletes an existing thread note of a snippet.
``` ```
DELETE /projects/:id/snippets/:snippet_id/discussions/:discussion_id/notes/:note_id DELETE /projects/:id/snippets/:snippet_id/discussions/:discussion_id/notes/:note_id
...@@ -432,9 +432,9 @@ curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" https://gitl ...@@ -432,9 +432,9 @@ curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" https://gitl
## Epics **(ULTIMATE)** ## Epics **(ULTIMATE)**
### List group epic discussions ### List group epic discussion items
Gets a list of all discussions for a single epic. Gets a list of all discussion items for a single epic.
``` ```
GET /groups/:id/epics/:epic_id/discussions GET /groups/:id/epics/:epic_id/discussions
...@@ -529,9 +529,9 @@ GET /groups/:id/epics/:epic_id/discussions ...@@ -529,9 +529,9 @@ GET /groups/:id/epics/:epic_id/discussions
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/groups/5/epics/11/discussions curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/groups/5/epics/11/discussions
``` ```
### Get single epic discussion ### Get single epic discussion item
Returns a single discussion for a specific group epic Returns a single discussion item for a specific group epic
``` ```
GET /groups/:id/epics/:epic_id/discussions/:discussion_id GET /groups/:id/epics/:epic_id/discussions/:discussion_id
...@@ -543,16 +543,16 @@ Parameters: ...@@ -543,16 +543,16 @@ Parameters:
| --------------- | -------------- | -------- | ----------- | | --------------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) | | `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) |
| `epic_id` | integer | yes | The ID of an epic | | `epic_id` | integer | yes | The ID of an epic |
| `discussion_id` | integer | yes | The ID of a discussion | | `discussion_id` | integer | yes | The ID of a discussion item |
```bash ```bash
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/groups/5/epics/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7 curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/groups/5/epics/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7
``` ```
### Create new epic discussion ### Create new epic thread
Creates a new discussion to a single group epic. This is similar to creating Creates a new thread to a single group epic. This is similar to creating
a note but but another comments (replies) can be added to it later. a note but but other comments (replies) can be added to it later.
``` ```
POST /groups/:id/epics/:epic_id/discussions POST /groups/:id/epics/:epic_id/discussions
...@@ -564,17 +564,17 @@ Parameters: ...@@ -564,17 +564,17 @@ Parameters:
| --------------- | -------------- | -------- | ----------- | | --------------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) | | `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) |
| `epic_id` | integer | yes | The ID of an epic | | `epic_id` | integer | yes | The ID of an epic |
| `body` | string | yes | The content of a discussion | | `body` | string | yes | The content of the thread |
| `created_at` | string | no | Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights) | | `created_at` | string | no | Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights) |
```bash ```bash
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/groups/5/epics/11/discussions?body=comment curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/groups/5/epics/11/discussions?body=comment
``` ```
### Add note to existing epic discussion ### Add note to existing epic thread
Adds a new note to the discussion. This can also Adds a new note to the thread. This can also
[create a discussion from a single comment](../user/discussions/#start-a-discussion-by-replying-to-a-standard-comment). [create a thread from a single comment](../user/discussions/#start-a-thread-by-replying-to-a-standard-comment).
``` ```
POST /groups/:id/epics/:epic_id/discussions/:discussion_id/notes POST /groups/:id/epics/:epic_id/discussions/:discussion_id/notes
...@@ -586,18 +586,18 @@ Parameters: ...@@ -586,18 +586,18 @@ Parameters:
| --------------- | -------------- | -------- | ----------- | | --------------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) | | `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) |
| `epic_id` | integer | yes | The ID of an epic | | `epic_id` | integer | yes | The ID of an epic |
| `discussion_id` | integer | yes | The ID of a discussion | | `discussion_id` | integer | yes | The ID of a thread |
| `note_id` | integer | yes | The ID of a discussion note | | `note_id` | integer | yes | The ID of a thread note |
| `body` | string | yes | The content of a discussion | | `body` | string | yes | The content of the note/reply |
| `created_at` | string | no | Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights) | | `created_at` | string | no | Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights) |
```bash ```bash
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/groups/5/epics/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7/notes?body=comment curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/groups/5/epics/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7/notes?body=comment
``` ```
### Modify existing epic discussion note ### Modify existing epic thread note
Modify existing discussion note of an epic. Modify existing thread note of an epic.
``` ```
PUT /groups/:id/epics/:epic_id/discussions/:discussion_id/notes/:note_id PUT /groups/:id/epics/:epic_id/discussions/:discussion_id/notes/:note_id
...@@ -609,17 +609,17 @@ Parameters: ...@@ -609,17 +609,17 @@ Parameters:
| --------------- | -------------- | -------- | ----------- | | --------------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) | | `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) |
| `epic_id` | integer | yes | The ID of an epic | | `epic_id` | integer | yes | The ID of an epic |
| `discussion_id` | integer | yes | The ID of a discussion | | `discussion_id` | integer | yes | The ID of a thread |
| `note_id` | integer | yes | The ID of a discussion note | | `note_id` | integer | yes | The ID of a thread note |
| `body` | string | yes | The content of a discussion | | `body` | string | yes | The content of note/reply |
```bash ```bash
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/groups/5/epics/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7/notes/1108?body=comment curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/groups/5/epics/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7/notes/1108?body=comment
``` ```
### Delete an epic discussion note ### Delete an epic thread note
Deletes an existing discussion note of an epic. Deletes an existing thread note of an epic.
``` ```
DELETE /groups/:id/epics/:epic_id/discussions/:discussion_id/notes/:note_id DELETE /groups/:id/epics/:epic_id/discussions/:discussion_id/notes/:note_id
...@@ -631,8 +631,8 @@ Parameters: ...@@ -631,8 +631,8 @@ Parameters:
| --------------- | -------------- | -------- | ----------- | | --------------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) | | `id` | integer/string | yes | The ID or [URL-encoded path of the group](README.md#namespaced-path-encoding) |
| `epic_id` | integer | yes | The ID of an epic | | `epic_id` | integer | yes | The ID of an epic |
| `discussion_id` | integer | yes | The ID of a discussion | | `discussion_id` | integer | yes | The ID of a thread |
| `note_id` | integer | yes | The ID of a discussion note | | `note_id` | integer | yes | The ID of a thread note |
```bash ```bash
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/groups/5/epics/11/discussions/636 curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/groups/5/epics/11/discussions/636
...@@ -640,9 +640,9 @@ curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" https://gitl ...@@ -640,9 +640,9 @@ curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" https://gitl
## Merge requests ## Merge requests
### List project merge request discussions ### List project merge request discussion items
Gets a list of all discussions for a single merge request. Gets a list of all discussion items for a single merge request.
``` ```
GET /projects/:id/merge_requests/:merge_request_iid/discussions GET /projects/:id/merge_requests/:merge_request_iid/discussions
...@@ -789,9 +789,9 @@ Diff comments contain also position: ...@@ -789,9 +789,9 @@ Diff comments contain also position:
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions
``` ```
### Get single merge request discussion ### Get single merge request discussion item
Returns a single discussion for a specific project merge request Returns a single discussion item for a specific project merge request
``` ```
GET /projects/:id/merge_requests/:merge_request_iid/discussions/:discussion_id GET /projects/:id/merge_requests/:merge_request_iid/discussions/:discussion_id
...@@ -803,15 +803,15 @@ Parameters: ...@@ -803,15 +803,15 @@ Parameters:
| ------------------- | -------------- | -------- | ----------- | | ------------------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) |
| `merge_request_iid` | integer | yes | The IID of a merge request | | `merge_request_iid` | integer | yes | The IID of a merge request |
| `discussion_id` | integer | yes | The ID of a discussion | | `discussion_id` | integer | yes | The ID of a discussion item |
```bash ```bash
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7 curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7
``` ```
### Create new merge request discussion ### Create new merge request thread
Creates a new discussion to a single project merge request. This is similar to creating Creates a new thread to a single project merge request. This is similar to creating
a note but other comments (replies) can be added to it later. a note but other comments (replies) can be added to it later.
``` ```
...@@ -824,7 +824,7 @@ Parameters: ...@@ -824,7 +824,7 @@ Parameters:
| ------------------------- | -------------- | -------- | ----------- | | ------------------------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) |
| `merge_request_iid` | integer | yes | The IID of a merge request | | `merge_request_iid` | integer | yes | The IID of a merge request |
| `body` | string | yes | The content of a discussion | | `body` | string | yes | The content of the thread |
| `created_at` | string | no | Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights) | | `created_at` | string | no | Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights) |
| `position` | hash | no | Position when creating a diff note | | `position` | hash | no | Position when creating a diff note |
| `position[base_sha]` | string | yes | Base commit SHA in the source branch | | `position[base_sha]` | string | yes | Base commit SHA in the source branch |
...@@ -844,9 +844,9 @@ Parameters: ...@@ -844,9 +844,9 @@ Parameters:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions?body=comment curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions?body=comment
``` ```
### Resolve a merge request discussion ### Resolve a merge request thread
Resolve/unresolve whole discussion of a merge request. Resolve/unresolve whole thread of a merge request.
``` ```
PUT /projects/:id/merge_requests/:merge_request_iid/discussions/:discussion_id PUT /projects/:id/merge_requests/:merge_request_iid/discussions/:discussion_id
...@@ -858,17 +858,17 @@ Parameters: ...@@ -858,17 +858,17 @@ Parameters:
| ------------------- | -------------- | -------- | ----------- | | ------------------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) |
| `merge_request_iid` | integer | yes | The IID of a merge request | | `merge_request_iid` | integer | yes | The IID of a merge request |
| `discussion_id` | integer | yes | The ID of a discussion | | `discussion_id` | integer | yes | The ID of a thread |
| `resolved` | boolean | yes | Resolve/unresolve the discussion | | `resolved` | boolean | yes | Resolve/unresolve the discussion |
```bash ```bash
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7?resolved=true curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7?resolved=true
``` ```
### Add note to existing merge request discussion ### Add note to existing merge request thread
Adds a new note to the discussion. This can also Adds a new note to the thread. This can also
[create a discussion from a single comment](../user/discussions/#start-a-discussion-by-replying-to-a-standard-comment). [create a thread from a single comment](../user/discussions/#start-a-thread-by-replying-to-a-standard-comment).
``` ```
POST /projects/:id/merge_requests/:merge_request_iid/discussions/:discussion_id/notes POST /projects/:id/merge_requests/:merge_request_iid/discussions/:discussion_id/notes
...@@ -880,18 +880,18 @@ Parameters: ...@@ -880,18 +880,18 @@ Parameters:
| ------------------- | -------------- | -------- | ----------- | | ------------------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) |
| `merge_request_iid` | integer | yes | The IID of a merge request | | `merge_request_iid` | integer | yes | The IID of a merge request |
| `discussion_id` | integer | yes | The ID of a discussion | | `discussion_id` | integer | yes | The ID of a thread |
| `note_id` | integer | yes | The ID of a discussion note | | `note_id` | integer | yes | The ID of a thread note |
| `body` | string | yes | The content of a discussion | | `body` | string | yes | The content of the note/reply |
| `created_at` | string | no | Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights) | | `created_at` | string | no | Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights) |
```bash ```bash
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7/notes?body=comment curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7/notes?body=comment
``` ```
### Modify an existing merge request discussion note ### Modify an existing merge request thread note
Modify or resolve an existing discussion note of a merge request. Modify or resolve an existing thread note of a merge request.
``` ```
PUT /projects/:id/merge_requests/:merge_request_iid/discussions/:discussion_id/notes/:note_id PUT /projects/:id/merge_requests/:merge_request_iid/discussions/:discussion_id/notes/:note_id
...@@ -903,9 +903,9 @@ Parameters: ...@@ -903,9 +903,9 @@ Parameters:
| ------------------- | -------------- | -------- | ----------- | | ------------------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) |
| `merge_request_iid` | integer | yes | The IID of a merge request | | `merge_request_iid` | integer | yes | The IID of a merge request |
| `discussion_id` | integer | yes | The ID of a discussion | | `discussion_id` | integer | yes | The ID of a thread |
| `note_id` | integer | yes | The ID of a discussion note | | `note_id` | integer | yes | The ID of a thread note |
| `body` | string | no | The content of a discussion (exactly one of `body` or `resolved` must be set | | `body` | string | no | The content of the note/reply (exactly one of `body` or `resolved` must be set |
| `resolved` | boolean | no | Resolve/unresolve the note (exactly one of `body` or `resolved` must be set | | `resolved` | boolean | no | Resolve/unresolve the note (exactly one of `body` or `resolved` must be set |
```bash ```bash
...@@ -918,9 +918,9 @@ Resolving a note: ...@@ -918,9 +918,9 @@ Resolving a note:
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7/notes/1108?resolved=true curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7/notes/1108?resolved=true
``` ```
### Delete a merge request discussion note ### Delete a merge request thread note
Deletes an existing discussion note of a merge request. Deletes an existing thread note of a merge request.
``` ```
DELETE /projects/:id/merge_requests/:merge_request_iid/discussions/:discussion_id/notes/:note_id DELETE /projects/:id/merge_requests/:merge_request_iid/discussions/:discussion_id/notes/:note_id
...@@ -932,8 +932,8 @@ Parameters: ...@@ -932,8 +932,8 @@ Parameters:
| ------------------- | -------------- | -------- | ----------- | | ------------------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) |
| `merge_request_iid` | integer | yes | The IID of a merge request | | `merge_request_iid` | integer | yes | The IID of a merge request |
| `discussion_id` | integer | yes | The ID of a discussion | | `discussion_id` | integer | yes | The ID of a thread |
| `note_id` | integer | yes | The ID of a discussion note | | `note_id` | integer | yes | The ID of a thread note |
```bash ```bash
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions/636 curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions/636
...@@ -941,9 +941,9 @@ curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" https://gitl ...@@ -941,9 +941,9 @@ curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" https://gitl
## Commits ## Commits
### List project commit discussions ### List project commit discussion items
Gets a list of all discussions for a single commit. Gets a list of all discussion items for a single commit.
``` ```
GET /projects/:id/commits/:commit_id/discussions GET /projects/:id/commits/:commit_id/discussions
...@@ -1082,9 +1082,9 @@ Diff comments contain also position: ...@@ -1082,9 +1082,9 @@ Diff comments contain also position:
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/commits/11/discussions curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/commits/11/discussions
``` ```
### Get single commit discussion ### Get single commit discussion item
Returns a single discussion for a specific project commit Returns a single discussion item for a specific project commit
``` ```
GET /projects/:id/commits/:commit_id/discussions/:discussion_id GET /projects/:id/commits/:commit_id/discussions/:discussion_id
...@@ -1096,15 +1096,15 @@ Parameters: ...@@ -1096,15 +1096,15 @@ Parameters:
| ------------------- | -------------- | -------- | ----------- | | ------------------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) |
| `commit_id` | integer | yes | The ID of a commit | | `commit_id` | integer | yes | The ID of a commit |
| `discussion_id` | integer | yes | The ID of a discussion | | `discussion_id` | integer | yes | The ID of a discussion item |
```bash ```bash
curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/commits/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7 curl --request GET --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/commits/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7
``` ```
### Create new commit discussion ### Create new commit thread
Creates a new discussion to a single project commit. This is similar to creating Creates a new thread to a single project commit. This is similar to creating
a note but other comments (replies) can be added to it later. a note but other comments (replies) can be added to it later.
``` ```
...@@ -1117,7 +1117,7 @@ Parameters: ...@@ -1117,7 +1117,7 @@ Parameters:
| ------------------------- | -------------- | -------- | ----------- | | ------------------------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) |
| `commit_id` | integer | yes | The ID of a commit | | `commit_id` | integer | yes | The ID of a commit |
| `body` | string | yes | The content of a discussion | | `body` | string | yes | The content of the thread |
| `created_at` | string | no | Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights) | | `created_at` | string | no | Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights) |
| `position` | hash | no | Position when creating a diff note | | `position` | hash | no | Position when creating a diff note |
| `position[base_sha]` | string | yes | Base commit SHA in the source branch | | `position[base_sha]` | string | yes | Base commit SHA in the source branch |
...@@ -1137,9 +1137,9 @@ Parameters: ...@@ -1137,9 +1137,9 @@ Parameters:
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/commits/11/discussions?body=comment curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/commits/11/discussions?body=comment
``` ```
### Add note to existing commit discussion ### Add note to existing commit thread
Adds a new note to the discussion. Adds a new note to the thread.
``` ```
POST /projects/:id/commits/:commit_id/discussions/:discussion_id/notes POST /projects/:id/commits/:commit_id/discussions/:discussion_id/notes
...@@ -1151,18 +1151,18 @@ Parameters: ...@@ -1151,18 +1151,18 @@ Parameters:
| ------------------- | -------------- | -------- | ----------- | | ------------------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) |
| `commit_id` | integer | yes | The ID of a commit | | `commit_id` | integer | yes | The ID of a commit |
| `discussion_id` | integer | yes | The ID of a discussion | | `discussion_id` | integer | yes | The ID of a thread |
| `note_id` | integer | yes | The ID of a discussion note | | `note_id` | integer | yes | The ID of a thread note |
| `body` | string | yes | The content of a discussion | | `body` | string | yes | The content of the note/reply |
| `created_at` | string | no | Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights) | | `created_at` | string | no | Date time string, ISO 8601 formatted, e.g. 2016-03-11T03:45:40Z (requires admin or project/group owner rights) |
```bash ```bash
curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/commits/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7/notes?body=comment curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/commits/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7/notes?body=comment
``` ```
### Modify an existing commit discussion note ### Modify an existing commit thread note
Modify or resolve an existing discussion note of a commit. Modify or resolve an existing thread note of a commit.
``` ```
PUT /projects/:id/commits/:commit_id/discussions/:discussion_id/notes/:note_id PUT /projects/:id/commits/:commit_id/discussions/:discussion_id/notes/:note_id
...@@ -1174,8 +1174,8 @@ Parameters: ...@@ -1174,8 +1174,8 @@ Parameters:
| ------------------- | -------------- | -------- | ----------- | | ------------------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) |
| `commit_id` | integer | yes | The ID of a commit | | `commit_id` | integer | yes | The ID of a commit |
| `discussion_id` | integer | yes | The ID of a discussion | | `discussion_id` | integer | yes | The ID of a thread |
| `note_id` | integer | yes | The ID of a discussion note | | `note_id` | integer | yes | The ID of a thread note |
| `body` | string | no | The content of a note | | `body` | string | no | The content of a note |
```bash ```bash
...@@ -1188,9 +1188,9 @@ Resolving a note: ...@@ -1188,9 +1188,9 @@ Resolving a note:
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/commits/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7/notes/1108?resolved=true curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/commits/11/discussions/6a9c1750b37d513a43987b574953fceb50b03ce7/notes/1108?resolved=true
``` ```
### Delete a commit discussion note ### Delete a commit thread note
Deletes an existing discussion note of a commit. Deletes an existing thread note of a commit.
``` ```
DELETE /projects/:id/commits/:commit_id/discussions/:discussion_id/notes/:note_id DELETE /projects/:id/commits/:commit_id/discussions/:discussion_id/notes/:note_id
...@@ -1202,8 +1202,8 @@ Parameters: ...@@ -1202,8 +1202,8 @@ Parameters:
| ------------------- | -------------- | -------- | ----------- | | ------------------- | -------------- | -------- | ----------- |
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) | | `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) |
| `commit_id` | integer | yes | The ID of a commit | | `commit_id` | integer | yes | The ID of a commit |
| `discussion_id` | integer | yes | The ID of a discussion | | `discussion_id` | integer | yes | The ID of a thread |
| `note_id` | integer | yes | The ID of a discussion note | | `note_id` | integer | yes | The ID of a thread note |
```bash ```bash
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/commits/11/discussions/636 curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" https://gitlab.example.com/api/v4/projects/5/commits/11/discussions/636
......
...@@ -207,9 +207,9 @@ first time. ...@@ -207,9 +207,9 @@ first time.
- Extract unrelated changes and refactorings into future merge requests/issues. - Extract unrelated changes and refactorings into future merge requests/issues.
- Seek to understand the reviewer's perspective. - Seek to understand the reviewer's perspective.
- Try to respond to every comment. - Try to respond to every comment.
- The merge request author resolves only the discussions they have fully - The merge request author resolves only the threads they have fully
addressed. If there's an open reply, an open discussion, a suggestion, addressed. If there's an open reply, an open thread, a suggestion,
a question, or anything else, the discussion should be left to be resolved a question, or anything else, the thread should be left to be resolved
by the reviewer. by the reviewer.
- Push commits based on earlier rounds of feedback as isolated commits to the - Push commits based on earlier rounds of feedback as isolated commits to the
branch. Do not squash until the branch is ready to merge. Reviewers should be branch. Do not squash until the branch is ready to merge. Reviewers should be
......
...@@ -249,7 +249,7 @@ If a bug seems to fall between two severity labels, assign it to the higher-seve ...@@ -249,7 +249,7 @@ If a bug seems to fall between two severity labels, assign it to the higher-seve
- Data corruption/loss. - Data corruption/loss.
- Security breach. - Security breach.
- Unable to create an issue or merge request. - Unable to create an issue or merge request.
- Unable to add a comment or discussion to the issue or merge request. - Unable to add a comment or thread to the issue or merge request.
- Example(s) of ~S2 - Example(s) of ~S2
- Cannot submit changes through the web IDE but the commandline works. - Cannot submit changes through the web IDE but the commandline works.
- A status widget on the merge request page is not working but information can be seen in the test pipeline page. - A status widget on the merge request page is not working but information can be seen in the test pipeline page.
......
...@@ -74,10 +74,10 @@ request is as follows: ...@@ -74,10 +74,10 @@ request is as follows:
can be found by running `grep css-class ./app -R`. can be found by running `grep css-class ./app -R`.
1. Be prepared to answer questions and incorporate feedback into your MR with new 1. Be prepared to answer questions and incorporate feedback into your MR with new
commits. Once you have fully addressed a suggestion from a reviewer, click the commits. Once you have fully addressed a suggestion from a reviewer, click the
"Resolve discussion" button beneath it to mark it resolved. "Resolve thread" button beneath it to mark it resolved.
1. The merge request author resolves only the discussions they have fully addressed. 1. The merge request author resolves only the threads they have fully addressed.
If there's an open reply or discussion, a suggestion, a question, or anything else, If there's an open reply or thread, a suggestion, a question, or anything else,
the discussion should be left to be resolved by the reviewer. the thread should be left to be resolved by the reviewer.
1. If your MR touches code that executes shell commands, reads or opens files, or 1. If your MR touches code that executes shell commands, reads or opens files, or
handles paths to files on disk, make sure it adheres to the handles paths to files on disk, make sure it adheres to the
[shell command guidelines](../shell_commands.md) [shell command guidelines](../shell_commands.md)
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
When you're collaborating online, you get fewer opportunities for high-fives When you're collaborating online, you get fewer opportunities for high-fives
and thumbs-ups. Emoji can be awarded to [issues](project/issues/index.md), [merge requests](project/merge_requests/index.md), and thumbs-ups. Emoji can be awarded to [issues](project/issues/index.md), [merge requests](project/merge_requests/index.md),
[snippets](snippets.md), and anywhere you can have a discussion. [snippets](snippets.md), and anywhere you can have a thread.
![Award emoji](img/award_emoji_select.png) ![Award emoji](img/award_emoji_select.png)
......
doc/user/discussions/img/swipe_view.png

16.1 KB | W: | H:

doc/user/discussions/img/swipe_view.png

69.4 KB | W: | H:

doc/user/discussions/img/swipe_view.png
doc/user/discussions/img/swipe_view.png
doc/user/discussions/img/swipe_view.png
doc/user/discussions/img/swipe_view.png
  • 2-up
  • Swipe
  • Onion skin
# Discussions # Threads
The ability to contribute conversationally is offered throughout GitLab. The ability to contribute conversationally is offered throughout GitLab.
...@@ -12,7 +12,7 @@ You can leave a comment in the following places: ...@@ -12,7 +12,7 @@ You can leave a comment in the following places:
- commit diffs - commit diffs
There are standard comments, and you also have the option to create a comment There are standard comments, and you also have the option to create a comment
in the form of a threaded discussion. A comment can also be [turned into a discussion](#start-a-discussion-by-replying-to-a-standard-comment) in the form of a thread. A comment can also be [turned into a thread](#start-a-thread-by-replying-to-a-standard-comment)
when it receives a reply. when it receives a reply.
The comment area supports [Markdown] and [quick actions]. You can edit your own The comment area supports [Markdown] and [quick actions]. You can edit your own
...@@ -21,41 +21,39 @@ higher can also edit a comment made by someone else. ...@@ -21,41 +21,39 @@ higher can also edit a comment made by someone else.
You can also reply to a comment notification email to reply to the comment if You can also reply to a comment notification email to reply to the comment if
[Reply by email] is configured for your GitLab instance. Replying to a standard comment [Reply by email] is configured for your GitLab instance. Replying to a standard comment
creates another standard comment. Replying to a discussion comment creates a reply in the creates another standard comment. Replying to a threaded comment creates a reply in the thread. Email replies support
discussion thread. Email replies support [Markdown] and [quick actions], just as if you replied from the web. [Markdown] and [quick actions], just as if you replied from the web.
## Resolvable comments and discussions ## Resolvable comments and threads
> **Notes:** > **Notes:**
> >
> - The main feature was [introduced][ce-5022] in GitLab 8.11. > - The main feature was [introduced][ce-5022] in GitLab 8.11.
> - Resolvable discussions can be added only to merge request diffs. > - Resolvable threads can be added only to merge request diffs.
Discussion resolution helps keep track of progress during planning or code review. Thread resolution helps keep track of progress during planning or code review.
Every standard comment or discussion thread in merge requests, commits, commit diffs, and Every standard comment or thread in merge requests, commits, commit diffs, and
snippets is initially displayed as unresolved. They can then be individually resolved by anyone snippets is initially displayed as unresolved. They can then be individually resolved by anyone
with at least Developer access to the project or by the author of the change being reviewed. with at least Developer access to the project or by the author of the change being reviewed.
The need to resolve all standard comments or discussions prevents you from forgetting The need to resolve all standard comments or threads prevents you from forgetting
to address feedback and lets you hide discussions that are no longer relevant. to address feedback and lets you hide threads that are no longer relevant.
!["A discussion between two people on a piece of code"][discussion-view] !["A thread between two people on a piece of code"](img/thread_view.png)
### Commit discussions in the context of a merge request ### Commit threads in the context of a merge request
> [Introduced][ce-31847] in GitLab 10.3. > [Introduced][ce-31847] in GitLab 10.3.
For reviewers with commit-based workflow, it may be useful to add discussions to For reviewers with commit-based workflow, it may be useful to add threads to
specific commit diffs in the context of a merge request. These discussions will specific commit diffs in the context of a merge request. These threads will
persist through a commit ID change when: persist through a commit ID change when:
- force-pushing after a rebase - force-pushing after a rebase
- amending a commit - amending a commit
This functionality is also demonstrated in the video [How to use Merge Request Commit Discussions](https://www.youtube.com/watch?v=TviJH6oRboo). To create a commit diff thread:
To create a commit diff discussion:
1. Navigate to the merge request **Commits** tab. A list of commits that 1. Navigate to the merge request **Commits** tab. A list of commits that
constitute the merge request will be shown. constitute the merge request will be shown.
...@@ -67,141 +65,141 @@ To create a commit diff discussion: ...@@ -67,141 +65,141 @@ To create a commit diff discussion:
![Commit diff discussion in merge request context](img/commit_comment_mr_context.png) ![Commit diff discussion in merge request context](img/commit_comment_mr_context.png)
1. Any discussions created this way will be shown in the merge request's 1. Any threads created this way will be shown in the merge request's
**Discussions** tab and are resolvable. **Discussions** tab and are resolvable.
![Merge request Discussions tab](img/commit_comment_mr_discussions_tab.png) ![Merge request Discussions tab](img/commit_comment_mr_discussions_tab.png)
Discussions created this way will only appear in the original merge request Threads created this way will only appear in the original merge request
and not when navigating to that commit under your project's and not when navigating to that commit under your project's
**Repository > Commits** page. **Repository > Commits** page.
TIP: **Tip:** TIP: **Tip:**
When a link of a commit reference is found in a discussion inside a merge When a link of a commit reference is found in a thread inside a merge
request, it will be automatically converted to a link in the context of the request, it will be automatically converted to a link in the context of the
current merge request. current merge request.
### Jumping between unresolved discussions ### Jumping between unresolved threads
When a merge request has a large number of comments it can be difficult to track When a merge request has a large number of comments it can be difficult to track
what remains unresolved. You can jump between unresolved discussions with the what remains unresolved. You can jump between unresolved threads with the
Jump button next to the Reply field on a discussion. Jump button next to the Reply field on a thread.
You can also jump to the first unresolved discussion from the button next to the You can also jump to the first unresolved thread from the button next to the
resolved discussions tracker. resolved threads tracker.
!["3/4 discussions resolved"][discussions-resolved] !["8/9 threads resolved"](img/threads_resolved.png)
### Marking a comment or discussion as resolved ### Marking a comment or thread as resolved
You can mark a discussion as resolved by clicking the **Resolve discussion** You can mark a thread as resolved by clicking the **Resolve thread**
button at the bottom of the discussion. button at the bottom of the thread.
!["Resolve discussion" button][resolve-discussion-button] !["Resolve thread" button](img/resolve_thread_button.png)
Alternatively, you can mark each comment as resolved individually. Alternatively, you can mark each comment as resolved individually.
!["Resolve comment" button][resolve-comment-button] !["Resolve comment" button](img/resolve_comment_button.png)
### Move all unresolved discussions in a merge request to an issue ### Move all unresolved threads in a merge request to an issue
> [Introduced][ce-8266] in GitLab 9.1 > [Introduced][ce-8266] in GitLab 9.1
To continue all open discussions from a merge request in a new issue, click the To continue all open threads from a merge request in a new issue, click the
**Resolve all discussions in new issue** button. **Resolve all threads in new issue** button.
![Open new issue for all unresolved discussions](img/btn_new_issue_for_all_discussions.png) ![Open new issue for all unresolved threads](img/btn_new_issue_for_all_threads.png)
Alternatively, when your project only accepts merge requests [when all discussions Alternatively, when your project only accepts merge requests [when all threads
are resolved](#only-allow-merge-requests-to-be-merged-if-all-discussions-are-resolved), are resolved](#only-allow-merge-requests-to-be-merged-if-all-threads-are-resolved),
there will be an **open an issue to resolve them later** link in the merge there will be an **open an issue to resolve them later** link in the merge
request widget. request widget.
![Link in merge request widget](img/resolve_discussion_open_issue.png) ![Link in merge request widget](img/resolve_thread_open_issue.png)
This will prepare an issue with its content referring to the merge request and This will prepare an issue with its content referring to the merge request and
the unresolved discussions. the unresolved threads.
![Issue mentioning discussions in a merge request](img/preview_issue_for_discussions.png) ![Issue mentioning threads in a merge request](img/preview_issue_for_threads.png)
Hitting **Submit issue** will cause all discussions to be marked as resolved and Hitting **Submit issue** will cause all threads to be marked as resolved and
add a note referring to the newly created issue. add a note referring to the newly created issue.
![Mark discussions as resolved notice](img/resolve_discussion_issue_notice.png) ![Mark threads as resolved notice](img/resolve_thread_issue_notice.png)
You can now proceed to merge the merge request from the UI. You can now proceed to merge the merge request from the UI.
### Moving a single discussion to a new issue ### Moving a single thread to a new issue
> [Introduced][ce-8266] in GitLab 9.1 > [Introduced][ce-8266] in GitLab 9.1
To create a new issue for a single discussion, you can use the **Resolve this To create a new issue for a single thread, you can use the **Resolve this
discussion in a new issue** button. thread in a new issue** button.
![Create issue for discussion](img/new_issue_for_discussion.png) ![Create issue for thread](img/new_issue_for_thread.png)
This will direct you to a new issue prefilled with the content of the This will direct you to a new issue prefilled with the content of the
discussion, similar to the issues created for delegating multiple thread, similar to the issues created for delegating multiple
discussions at once. Saving the issue will mark the discussion as resolved and threads at once. Saving the issue will mark the thread as resolved and
add a note to the merge request discussion referencing the new issue. add a note to the merge request thread referencing the new issue.
![New issue for a single discussion](img/preview_issue_for_discussion.png) ![New issue for a single thread](img/preview_issue_for_thread.png)
### Only allow merge requests to be merged if all discussions are resolved ### Only allow merge requests to be merged if all threads are resolved
> [Introduced][ce-7125] in GitLab 8.14. > [Introduced][ce-7125] in GitLab 8.14.
You can prevent merge requests from being merged until all discussions are You can prevent merge requests from being merged until all threads are
resolved. resolved.
Navigate to your project's settings page, select the Navigate to your project's settings page, select the
**Only allow merge requests to be merged if all discussions are resolved** check **Only allow merge requests to be merged if all threads are resolved** check
box and hit **Save** for the changes to take effect. box and hit **Save** for the changes to take effect.
![Only allow merge if all the discussions are resolved settings](img/only_allow_merge_if_all_discussions_are_resolved.png) ![Only allow merge if all the threads are resolved settings](img/only_allow_merge_if_all_threads_are_resolved.png)
From now on, you will not be able to merge from the UI until all discussions From now on, you will not be able to merge from the UI until all threads
are resolved. are resolved.
![Only allow merge if all the discussions are resolved message](img/only_allow_merge_if_all_discussions_are_resolved_msg.png) ![Only allow merge if all the threads are resolved message](img/resolve_thread_open_issue.png)
### Automatically resolve merge request diff discussions when they become outdated ### Automatically resolve merge request diff threads when they become outdated
> [Introduced][ce-14053] in GitLab 10.0. > [Introduced][ce-14053] in GitLab 10.0.
You can automatically resolve merge request diff discussions on lines modified You can automatically resolve merge request diff threads on lines modified
with a new push. with a new push.
Navigate to your project's settings page, select the **Automatically resolve Navigate to your project's settings page, select the **Automatically resolve
merge request diffs discussions on lines changed with a push** check box and hit merge request diffs threads on lines changed with a push** check box and hit
**Save** for the changes to take effect. **Save** for the changes to take effect.
![Automatically resolve merge request diff discussions when they become outdated](img/automatically_resolve_outdated_discussions.png) ![Automatically resolve merge request diff threads when they become outdated](img/automatically_resolve_outdated_discussions.png)
From now on, any discussions on a diff will be resolved by default if a push From now on, any threads on a diff will be resolved by default if a push
makes that diff section outdated. Discussions on lines that don't change and makes that diff section outdated. Threads on lines that don't change and
top-level resolvable discussions are not automatically resolved. top-level resolvable threads are not automatically resolved.
## Commit discussions ## Commit threads
You can add comments and discussion threads to a particular commit under your You can add comments and threads to a particular commit under your
project's **Repository > Commits**. project's **Repository > Commits**.
CAUTION: **Attention:** CAUTION: **Attention:**
Discussions created this way will be lost if the commit ID changes after a Threads created this way will be lost if the commit ID changes after a
force push. force push.
## Threaded discussions ## Threaded discussions
> [Introduced][ce-7527] in GitLab 9.1. > [Introduced][ce-7527] in GitLab 9.1.
While resolvable discussions are only available to merge request diffs, While resolvable threads are only available to merge request diffs,
discussions can also be added without a diff. You can start a specific threads can also be added without a diff. You can start a specific
discussion which will look like a thread, on issues, commits, snippets, and thread which will look like a thread, on issues, commits, snippets, and
merge requests. merge requests.
To start a threaded discussion, click on the **Comment** button toggle dropdown, To start a threaded discussion, click on the **Comment** button toggle dropdown,
select **Start discussion** and click **Start discussion** when you're ready to select **Start thread** and click **Start thread** when you're ready to
post the comment. post the comment.
![Comment type toggle](img/comment_type_toggle.gif) ![Comment type toggle](img/comment_type_toggle.gif)
...@@ -209,56 +207,57 @@ post the comment. ...@@ -209,56 +207,57 @@ post the comment.
This will post a comment with a single thread to allow you to discuss specific This will post a comment with a single thread to allow you to discuss specific
comments in greater detail. comments in greater detail.
![Discussion comment](img/discussion_comment.png) ![Thread comment](img/discussion_comment.png)
## Image discussions ## Image threads
> [Introduced][ce-14061] in GitLab 10.1. > [Introduced][ce-14061] in GitLab 10.1.
Sometimes a discussion is revolved around an image. With image discussions, Sometimes a thread is revolved around an image. With image threads,
you can easily target a specific coordinate of an image and start a discussion you can easily target a specific coordinate of an image and start a thread
around it. Image discussions are available in merge requests and commit detail views. around it. Image threads are available in merge requests and commit detail views.
To start an image discussion, hover your mouse over the image. Your mouse pointer To start an image thread, hover your mouse over the image. Your mouse pointer
should convert into an icon, indicating that the image is available for commenting. should convert into an icon, indicating that the image is available for commenting.
Simply click anywhere on the image to create a new discussion. Simply click anywhere on the image to create a new thread.
![Start image discussion](img/start_image_discussion.gif) ![Start image thread](img/start_image_discussion.gif)
After you click on the image, a comment form will be displayed that would be the start After you click on the image, a comment form will be displayed that would be the start
of your discussion. Once you save your comment, you will see a new badge displayed on of your thread. Once you save your comment, you will see a new badge displayed on
top of your image. This badge represents your discussion. top of your image. This badge represents your thread.
>**Note:** >**Note:**
This discussion badge is typically associated with a number that is only used as a visual This thread badge is typically associated with a number that is only used as a visual
reference for each discussion. In the merge request discussion tab, reference for each thread. In the merge request thread tab,
this badge will be indicated with a comment icon since each discussion will render a new this badge will be indicated with a comment icon since each thread will render a new
image section. image section.
Image discussions also work on diffs that replace an existing image. In this diff view Image threads also work on diffs that replace an existing image. In this diff view
mode, you can toggle the different view modes and still see the discussion point badges. mode, you can toggle the different view modes and still see the thread point badges.
| 2-up | Swipe | Onion Skin | | 2-up | Swipe | Onion Skin |
| :-----------: | :----------: | :----------: | | :-----------: | :----------: | :----------: |
| ![2-up view](img/two_up_view.png) | ![swipe view](img/swipe_view.png) | ![onion skin view](img/onion_skin_view.png) | | ![2-up view](img/two_up_view.png) | ![swipe view](img/swipe_view.png) | ![onion skin view](img/onion_skin_view.png) |
Image discussions also work well with resolvable discussions. Resolved discussions Image threads also work well with resolvable threads. Resolved threads
on diffs (not on the merge request discussion tab) will appear collapsed on page on diffs (not on the merge request discussion tab) will appear collapsed on page
load and will have a corresponding badge counter to match the counter on the image. load and will have a corresponding badge counter to match the counter on the image.
![Image resolved discussion](img/image_resolved_discussion.png) ![Image resolved thread](img/image_resolved_discussion.png)
## Lock discussions ## Lock discussions
> [Introduced][ce-14531] in GitLab 10.1. > [Introduced][ce-14531] in GitLab 10.1.
For large projects with many contributors, it may be useful to stop discussions For large projects with many contributors, it may be useful to stop threads
in issues or merge requests in these scenarios: in issues or merge requests in these scenarios:
- The project maintainer has already resolved the discussion and it is not helpful - The project maintainer has already resolved the thread and it is not helpful
for continued feedback. The project maintainer has already directed new conversation for continued feedback.
- The project maintainer has already directed new conversation
to newer issues or merge requests. to newer issues or merge requests.
- The people participating in the discussion are trolling, abusive, or otherwise - The people participating in the thread are trolling, abusive, or otherwise
being unproductive. being unproductive.
In these cases, a user with Developer permissions or higher in the project can lock (and unlock) In these cases, a user with Developer permissions or higher in the project can lock (and unlock)
...@@ -300,7 +299,7 @@ in an MR and click on the **Start a review** button. ...@@ -300,7 +299,7 @@ in an MR and click on the **Start a review** button.
Once a review is started, you will see any comments that are part of this review marked `Pending`. Once a review is started, you will see any comments that are part of this review marked `Pending`.
All comments that are part of a review show two buttons: All comments that are part of a review show two buttons:
- **Submit review**: Submits all comments that are part of the review, making them visible to other users. - **Finish review**: Submits all comments that are part of the review, making them visible to other users.
- **Add comment now**: Submits the specific comment as a regular comment instead of as part of the review. - **Add comment now**: Submits the specific comment as a regular comment instead of as part of the review.
![A comment that is part of a review](img/pending_review_comment.png) ![A comment that is part of a review](img/pending_review_comment.png)
...@@ -317,20 +316,20 @@ This will add the comment to the review. ...@@ -317,20 +316,20 @@ This will add the comment to the review.
![Second review comment](img/mr_review_second_comment_added.png) ![Second review comment](img/mr_review_second_comment_added.png)
### Resolving/Unresolving discussions ### Resolving/Unresolving threads
Review comments can also resolve/unresolve [resolvable discussions](#resolvable-comments-and-discussions). Review comments can also resolve/unresolve [resolvable threads](#resolvable-comments-and-threads).
When replying to a comment, you will see a checkbox that you can click in order to resolve or unresolve When replying to a comment, you will see a checkbox that you can click in order to resolve or unresolve
the discussion once published. the thread once published.
![Resolve checkbox](img/mr_review_resolve.png) ![Resolve checkbox](img/mr_review_resolve.png)
![Unresolve checkbox](img/mr_review_unresolve.png)
If a particular pending comment will resolve or unresolve the discussion, this will be shown on the pending If a particular pending comment will resolve or unresolve the thread, this will be shown on the pending
comment itself. comment itself.
![Resolve status](img/mr_review_resolve2.png) ![Resolve status](img/mr_review_resolve2.png)
![Unresolve status](img/mr_review_unresolve2.png)
![Unresolve status](img/mr_review_unresolve.png)
### Submitting a review ### Submitting a review
...@@ -356,7 +355,7 @@ Replying to this email will, consequentially, create a new comment on the associ ...@@ -356,7 +355,7 @@ Replying to this email will, consequentially, create a new comment on the associ
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/26723) in GitLab 11.5. > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/26723) in GitLab 11.5.
For issues with many comments like activity notes and user comments, sometimes For issues with many comments like activity notes and user comments, sometimes
finding useful information can be hard. There is a way to filter comments from single notes and discussions for merge requests and issues. finding useful information can be hard. There is a way to filter comments from single notes and threads for merge requests and issues.
From a merge request's **Discussion** tab, or from an epic/issue overview, find the filter's dropdown menu on the right side of the page, from which you can choose one of the following options: From a merge request's **Discussion** tab, or from an epic/issue overview, find the filter's dropdown menu on the right side of the page, from which you can choose one of the following options:
...@@ -376,7 +375,7 @@ from any device you're logged into. ...@@ -376,7 +375,7 @@ from any device you're logged into.
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/18008) in GitLab 11.6. > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/18008) in GitLab 11.6.
As a reviewer, you're able to suggest code changes with a simple As a reviewer, you're able to suggest code changes with a simple
markdown syntax in Merge Request Diff discussions. Then, the markdown syntax in Merge Request Diff threads. Then, the
Merge Request author (or other users with appropriate Merge Request author (or other users with appropriate
[permission](../permissions.md)) is able to apply these [permission](../permissions.md)) is able to apply these
suggestions with a click, which will generate a commit in suggestions with a click, which will generate a commit in
...@@ -399,7 +398,7 @@ the Merge Request authored by the user that applied them. ...@@ -399,7 +398,7 @@ the Merge Request authored by the user that applied them.
![Apply suggestions](img/suggestion.png) ![Apply suggestions](img/suggestion.png)
Once the author applies a suggestion, it will be marked with the **Applied** label, Once the author applies a suggestion, it will be marked with the **Applied** label,
the discussion will be automatically resolved, and GitLab will create a new commit the thread will be automatically resolved, and GitLab will create a new commit
with the message `Apply suggestion to <file-name>` and push the suggested change with the message `Apply suggestion to <file-name>` and push the suggested change
directly into the codebase in the merge request's branch. directly into the codebase in the merge request's branch.
[Developer permission](../permissions.md) is required to do so. [Developer permission](../permissions.md) is required to do so.
...@@ -413,8 +412,8 @@ Custom commit messages will be introduced by ...@@ -413,8 +412,8 @@ Custom commit messages will be introduced by
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/53310) in GitLab 11.10. > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/53310) in GitLab 11.10.
Reviewers can also suggest changes to multiple lines with a single suggestion Reviewers can also suggest changes to multiple lines with a single suggestion
within Merge Request diff discussions by adjusting the range offsets. The within Merge Request diff threads by adjusting the range offsets. The
offsets are relative to the position of the diff discussion, and specify the offsets are relative to the position of the diff thread, and specify the
range to be replaced by the suggestion when it is applied. range to be replaced by the suggestion when it is applied.
![Multi-line suggestion syntax](img/multi-line-suggestion-syntax.png) ![Multi-line suggestion syntax](img/multi-line-suggestion-syntax.png)
...@@ -430,25 +429,26 @@ Suggestions covering multiple lines are limited to 100 lines _above_ and 100 ...@@ -430,25 +429,26 @@ Suggestions covering multiple lines are limited to 100 lines _above_ and 100
lines _below_ the commented diff line, allowing up to 200 changed lines per lines _below_ the commented diff line, allowing up to 200 changed lines per
suggestion. suggestion.
## Start a discussion by replying to a standard comment ## Start a thread by replying to a standard comment
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/30299) in GitLab 11.9 > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/30299) in GitLab 11.9
To reply to a standard (non-discussion) comment, you can use the **Reply to comment** button. To reply to a standard (non-thread) comment, you can use the **Reply to comment** button.
![Reply to comment button](img/reply_to_comment_button.png) ![Reply to comment button](img/reply_to_comment_button.png)
The **Reply to comment** button is only displayed if you have permissions to reply to an existing discussion, or start a discussion from a standard comment. The **Reply to comment** button is only displayed if you have permissions to reply to an existing thread, or start a thread from a standard comment.
Clicking on the **Reply to comment** button will bring the reply area into focus and you can type your reply. Clicking on the **Reply to comment** button will bring the reply area into focus and you can type your reply.
![Reply to comment feature](img/reply_to_comment.gif) ![Reply to comment feature](img/reply_to_comment.gif)
Replying to a non-discussion comment will convert the non-discussion comment to a Replying to a non-thread comment will convert the non-thread comment to a
threaded discussion once the reply is submitted. This conversion is considered an edit thread once the reply is submitted. This conversion is considered an edit
to the original comment, so a note about when it was last edited will appear underneath it. to the original comment, so a note about when it was last edited will appear underneath it.
This feature only exists for Issues, Merge requests, and Epics. Commits, Snippets and Merge request diff discussions are not supported yet. This feature only exists for Issues, Merge requests, and Epics. Commits, Snippets and Merge request diff threads are
not supported yet.
[ce-5022]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5022 [ce-5022]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/5022
[ce-7125]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7125 [ce-7125]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7125
......
...@@ -205,12 +205,12 @@ You may also consult the [group permissions table][permissions]. ...@@ -205,12 +205,12 @@ You may also consult the [group permissions table][permissions].
These text fields also fully support These text fields also fully support
[GitLab Flavored Markdown](../../markdown.md#gitlab-flavored-markdown-gfm). [GitLab Flavored Markdown](../../markdown.md#gitlab-flavored-markdown-gfm).
## Comment, or start a discussion ## Comment, or start a thread
Once you wrote your comment, you can either: Once you wrote your comment, you can either:
- Click "Comment" and your comment will be published. - Click "Comment" and your comment will be published.
- Click "Start discussion": start a thread within that epic's thread to discuss specific points. - Click "Start thread": start a thread within that epic's discussion to discuss specific points.
## Award emoji ## Award emoji
......
...@@ -124,12 +124,12 @@ merge requests, code snippets, and commits. ...@@ -124,12 +124,12 @@ merge requests, code snippets, and commits.
When performing inline reviews to implementations When performing inline reviews to implementations
to your codebase through merge requests you can to your codebase through merge requests you can
gather feedback through [resolvable discussions](discussions/index.md#resolvable-comments-and-discussions). gather feedback through [resolvable threads](discussions/index.md#resolvable-comments-and-threads).
### GitLab Flavored Markdown (GFM) ### GitLab Flavored Markdown (GFM)
Read through the [GFM documentation](markdown.md) to learn how to apply Read through the [GFM documentation](markdown.md) to learn how to apply
the best of GitLab Flavored Markdown in your discussions, comments, the best of GitLab Flavored Markdown in your threads, comments,
issues and merge requests descriptions, and everywhere else GMF is issues and merge requests descriptions, and everywhere else GMF is
supported. supported.
...@@ -148,7 +148,7 @@ requests you're assigned to. ...@@ -148,7 +148,7 @@ requests you're assigned to.
[Snippets](snippets.md) are code blocks that you want to store in GitLab, from which [Snippets](snippets.md) are code blocks that you want to store in GitLab, from which
you have quick access to. You can also gather feedback on them through you have quick access to. You can also gather feedback on them through
[discussions](#discussions). [Discussions](#Discussions).
## Integrations ## Integrations
......
...@@ -60,7 +60,7 @@ The following table depicts the various user permission levels in a project. ...@@ -60,7 +60,7 @@ The following table depicts the various user permission levels in a project.
| View confidential issues | (*2*) | ✓ | ✓ | ✓ | ✓ | | View confidential issues | (*2*) | ✓ | ✓ | ✓ | ✓ |
| Assign issues | | ✓ | ✓ | ✓ | ✓ | | Assign issues | | ✓ | ✓ | ✓ | ✓ |
| Label issues | | ✓ | ✓ | ✓ | ✓ | | Label issues | | ✓ | ✓ | ✓ | ✓ |
| Lock issue discussions | | ✓ | ✓ | ✓ | ✓ | | Lock issue threads | | ✓ | ✓ | ✓ | ✓ |
| Manage issue tracker | | ✓ | ✓ | ✓ | ✓ | | Manage issue tracker | | ✓ | ✓ | ✓ | ✓ |
| Manage related issues **(STARTER)** | | ✓ | ✓ | ✓ | ✓ | | Manage related issues **(STARTER)** | | ✓ | ✓ | ✓ | ✓ |
| Create issue from vulnerability **(ULTIMATE)** | | ✓ | ✓ | ✓ | ✓ | | Create issue from vulnerability **(ULTIMATE)** | | ✓ | ✓ | ✓ | ✓ |
...@@ -81,7 +81,7 @@ The following table depicts the various user permission levels in a project. ...@@ -81,7 +81,7 @@ The following table depicts the various user permission levels in a project.
| Create new merge request | | | ✓ | ✓ | ✓ | | Create new merge request | | | ✓ | ✓ | ✓ |
| Assign merge requests | | | ✓ | ✓ | ✓ | | Assign merge requests | | | ✓ | ✓ | ✓ |
| Label merge requests | | | ✓ | ✓ | ✓ | | Label merge requests | | | ✓ | ✓ | ✓ |
| Lock merge request discussions | | | ✓ | ✓ | ✓ | | Lock merge request threads | | | ✓ | ✓ | ✓ |
| Manage/Accept merge requests | | | ✓ | ✓ | ✓ | | Manage/Accept merge requests | | | ✓ | ✓ | ✓ |
| Create new environments | | | ✓ | ✓ | ✓ | | Create new environments | | | ✓ | ✓ | ✓ |
| Stop environments | | | ✓ | ✓ | ✓ | | Stop environments | | | ✓ | ✓ | ✓ |
......
...@@ -24,9 +24,8 @@ Import your projects from Bitbucket Server to GitLab with minimal effort. ...@@ -24,9 +24,8 @@ Import your projects from Bitbucket Server to GitLab with minimal effort.
1. Currently GitLab doesn't allow comments on arbitrary lines of code, so any 1. Currently GitLab doesn't allow comments on arbitrary lines of code, so any
Bitbucket comments out of bounds will be inserted as comments in the merge Bitbucket comments out of bounds will be inserted as comments in the merge
request. request.
1. Bitbucket Server allows multiple levels of threading. GitLab 1. Bitbucket Server allows multiple levels of threading. GitLab import
import will collapse this into one discussion and quote part of the original will collapse this into one thread and quote part of the original comment.
comment.
1. Declined pull requests have unreachable commits, which prevents the GitLab 1. Declined pull requests have unreachable commits, which prevents the GitLab
importer from generating a proper diff. These pull requests will show up as importer from generating a proper diff. These pull requests will show up as
empty changes. empty changes.
......
...@@ -221,7 +221,7 @@ There are numerous [APIs](../../api/README.md) to use with your projects: ...@@ -221,7 +221,7 @@ There are numerous [APIs](../../api/README.md) to use with your projects:
- [Badges](../../api/project_badges.md) - [Badges](../../api/project_badges.md)
- [Clusters](../../api/project_clusters.md) - [Clusters](../../api/project_clusters.md)
- [Discussions](../../api/discussions.md) - [Threads](../../api/discussions.md)
- [General](../../api/projects.md) - [General](../../api/projects.md)
- [Import/export](../../api/project_import_export.md) - [Import/export](../../api/project_import_export.md)
- [Issue Board](../../api/boards.md) - [Issue Board](../../api/boards.md)
......
...@@ -116,13 +116,13 @@ issue boards or the issue list. ...@@ -116,13 +116,13 @@ issue boards or the issue list.
#### 11. Lock issue #### 11. Lock issue
You can [lock the discussions](../../discussions/index.md#lock-discussions) in the issue, You can [lock the threads](../../discussions/index.md#lock-discussions) in the issue,
to prevent further comments from being added. to prevent further comments from being added.
#### 12. Participants #### 12. Participants
All the users involved in that issue. Either they participated in the [discussion](../../discussions/index.md), All the users involved in that issue. Either they participated in the [thread](../../discussions/index.md),
or were mentioned in the description or discussions. or were mentioned in the description or threads.
#### 13. Notifications #### 13. Notifications
...@@ -187,8 +187,8 @@ You can also click the `+` to add more related issues. ...@@ -187,8 +187,8 @@ You can also click the `+` to add more related issues.
#### 19. Related Merge Requests #### 19. Related Merge Requests
Merge requests that were mentioned in that issue's description or in the issue discussion Merge requests that were mentioned in that issue's description or in the issue thread
thread are listed as [related merge requests](crosslinking_issues.md#from-merge-requests) here. are listed as [related merge requests](crosslinking_issues.md#from-merge-requests) here.
Also, if the current issue was mentioned as related in another merge request, that Also, if the current issue was mentioned as related in another merge request, that
merge request will be listed here. merge request will be listed here.
...@@ -200,14 +200,14 @@ dropdown list of available [GitLab Flavored Markdown Emoji](../../markdown.md#em ...@@ -200,14 +200,14 @@ dropdown list of available [GitLab Flavored Markdown Emoji](../../markdown.md#em
TIP: **Tip:** TIP: **Tip:**
Posting "+1" as a comment in a thread spams all subscribed participants of that issue, Posting "+1" as a comment in a thread spams all subscribed participants of that issue,
clutters the discussion threads, and is not recommended. Awarding an emoji is a way clutters the threads, and is not recommended. Awarding an emoji is a way
to let them know your reaction without spamming them. to let them know your reaction without spamming them.
#### 21. Show all activity #### 21. Show all activity
You can filter what is displayed in the issue history by clicking on **Show all activity** You can filter what is displayed in the issue history by clicking on **Show all activity**
and selecting either **Show comments only**, which only shows discussions and hides and selecting either **Show comments only**, which only shows threads and hides
updates to the issue, or **Show history only**, which hides discussions and only shows updates. updates to the issue, or **Show history only**, which hides threads and only shows updates.
- You can mention a user or a group present in your GitLab instance with - You can mention a user or a group present in your GitLab instance with
`@username` or `@groupname` and they will be notified via To-Do items `@username` or `@groupname` and they will be notified via To-Do items
...@@ -242,15 +242,15 @@ filtered, as shown above. ...@@ -242,15 +242,15 @@ filtered, as shown above.
Collaborate in the issue by posting comments in its thread. This text field also fully Collaborate in the issue by posting comments in its thread. This text field also fully
supports [GitLab Flavored Markdown](../../markdown.md#gitlab-flavored-markdown-gfm). supports [GitLab Flavored Markdown](../../markdown.md#gitlab-flavored-markdown-gfm).
#### 25. Submit Comment, start a discussion, or comment and close #### 25. Submit Comment, start a thread, or comment and close
Once you write a comment, you can: Once you write a comment, you can:
- Click **Comment** and your comment will be published. - Click **Comment** and your comment will be published.
- Choose **Start discussion** from the dropdown list and start a new [discussion thread](../../discussions/index.md#threaded-discussions) - Choose **Start thread** from the dropdown list and start a new [thread](../../discussions/index.md#threaded-discussions)
within that issue's main thread to discuss specific points. This invites other participants within that issue's main thread to discuss specific points. This invites other participants
to reply directly to your discussion, keeping related comments grouped together. to reply directly to your thread, keeping related comments grouped together.
![Comment or discussion](img/comment-or-discussion.png) ![Comment or thread](img/comment-or-discussion.png)
You can also close the issue from here, so you don't need to scroll to the top of the issue page. You can also close the issue from here, so you don't need to scroll to the top of the issue page.
...@@ -18,7 +18,7 @@ It is as simple as the name implies: a _request_ to _merge_ one branch into anot ...@@ -18,7 +18,7 @@ It is as simple as the name implies: a _request_ to _merge_ one branch into anot
With GitLab merge requests, you can: With GitLab merge requests, you can:
- Compare the changes between two [branches](https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell#_git_branching) - Compare the changes between two [branches](https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell#_git_branching)
- [Review and discuss](../../discussions/index.md#discussions) the proposed modifications inline - [Review and discuss](../../discussions/index.md#threads) the proposed modifications inline
- Live preview the changes when [Review Apps](../../../ci/review_apps/index.md) is configured for your project - Live preview the changes when [Review Apps](../../../ci/review_apps/index.md) is configured for your project
- Build, test, and deploy your code in a per-branch basis with built-in [GitLab CI/CD](../../../ci/README.md) - Build, test, and deploy your code in a per-branch basis with built-in [GitLab CI/CD](../../../ci/README.md)
- Prevent the merge request from being merged before it's ready with [WIP MRs](#work-in-progress-merge-requests) - Prevent the merge request from being merged before it's ready with [WIP MRs](#work-in-progress-merge-requests)
...@@ -155,13 +155,13 @@ and remember to merge the request manually. ...@@ -155,13 +155,13 @@ and remember to merge the request manually.
[Learn more about merging when pipeline succeeds.](merge_when_pipeline_succeeds.md) [Learn more about merging when pipeline succeeds.](merge_when_pipeline_succeeds.md)
## Resolve discussion comments in merge requests reviews ## Resolve threads in merge requests reviews
Keep track of the progress during a code review with resolving comments. Keep track of the progress during a code review with resolving comments.
Resolving comments prevents you from forgetting to address feedback and lets Resolving comments prevents you from forgetting to address feedback and lets
you hide discussions that are no longer relevant. you hide threads that are no longer relevant.
[Read more about resolving discussion comments in merge requests reviews.](../../discussions/index.md) [Read more about resolving threads in merge requests reviews.](../../discussions/index.md)
## Commenting on any file line in merge requests ## Commenting on any file line in merge requests
...@@ -192,7 +192,7 @@ commit when merging, to allow for a neater commit history. ...@@ -192,7 +192,7 @@ commit when merging, to allow for a neater commit history.
> [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/18008) in GitLab 11.6. > [Introduced](https://gitlab.com/gitlab-org/gitlab-ce/issues/18008) in GitLab 11.6.
As a reviewer, you can add suggestions to change the content in As a reviewer, you can add suggestions to change the content in
merge request discussions, and users with appropriate [permission](../../permissions.md) merge request threads, and users with appropriate [permission](../../permissions.md)
can easily apply them to the codebase directly from the UI. Read can easily apply them to the codebase directly from the UI. Read
through the documentation on [Suggest changes](../../discussions/index.md#suggest-changes) through the documentation on [Suggest changes](../../discussions/index.md#suggest-changes)
to learn more. to learn more.
......
...@@ -162,7 +162,7 @@ the merge request is unblocked and can be merged. ...@@ -162,7 +162,7 @@ the merge request is unblocked and can be merged.
Note, that meeting the required number of approvals is a necessary, but not Note, that meeting the required number of approvals is a necessary, but not
sufficient condition for unblocking a merge request from being merged. There sufficient condition for unblocking a merge request from being merged. There
are other conditions that may block it, such as merge conflicts, are other conditions that may block it, such as merge conflicts,
[pending discussions](../../discussions/index.md#only-allow-merge-requests-to-be-merged-if-all-discussions-are-resolved) [pending discussions](../../discussions/index.md#only-allow-merge-requests-to-be-merged-if-all-threads-are-resolved)
or a [failed CI/CD pipeline](merge_when_pipeline_succeeds.md). or a [failed CI/CD pipeline](merge_when_pipeline_succeeds.md).
## Code Owners approvals **(PREMIUM)** ## Code Owners approvals **(PREMIUM)**
......
...@@ -36,7 +36,7 @@ changes to be reviewed. ...@@ -36,7 +36,7 @@ changes to be reviewed.
## Only allow merge requests to be merged if the pipeline succeeds ## Only allow merge requests to be merged if the pipeline succeeds
You can prevent merge requests from being merged if their pipeline did not succeed You can prevent merge requests from being merged if their pipeline did not succeed
or if there are discussions to be resolved. or if there are threads to be resolved.
Navigate to your project's settings page and expand the **Merge requests** section. Navigate to your project's settings page and expand the **Merge requests** section.
In the **Merge checks** subsection, select the **Pipelines must succeed** check In the **Merge checks** subsection, select the **Pipelines must succeed** check
......
...@@ -5,7 +5,7 @@ type: reference, concepts ...@@ -5,7 +5,7 @@ type: reference, concepts
# "Work In Progress" merge requests # "Work In Progress" merge requests
If a merge request is not yet ready to be merged, perhaps due to continued development If a merge request is not yet ready to be merged, perhaps due to continued development
or open discussions, you can prevent it from being accepted before it's ready by flagging or open threads, you can prevent it from being accepted before it's ready by flagging
it as a **Work In Progress**. This will disable the "Merge" button, preventing it from it as a **Work In Progress**. This will disable the "Merge" button, preventing it from
being merged, and it will stay disabled until the "WIP" flag has been removed. being merged, and it will stay disabled until the "WIP" flag has been removed.
...@@ -19,7 +19,7 @@ There are several ways to flag a merge request as a Work In Progress: ...@@ -19,7 +19,7 @@ There are several ways to flag a merge request as a Work In Progress:
**Start the title with WIP:**, under the title box, when editing the merge request's **Start the title with WIP:**, under the title box, when editing the merge request's
description will have the same effect. description will have the same effect.
- Add the `/wip` [quick action](../quick_actions.md#quick-actions-for-issues-and-merge-requests) - Add the `/wip` [quick action](../quick_actions.md#quick-actions-for-issues-and-merge-requests)
in a discussion comment in the merge request. This is a toggle, and can be repeated in a comment in the merge request. This is a toggle, and can be repeated
to change the status back. Note that any other text in the comment will be discarded. to change the status back. Note that any other text in the comment will be discarded.
- Add "wip" or "WIP" to the start of a commit message targeting the merge request's - Add "wip" or "WIP" to the start of a commit message targeting the merge request's
source branch. This is not a toggle, and doing it again in another commit will have source branch. This is not a toggle, and doing it again in another commit will have
...@@ -34,7 +34,7 @@ Similar to above, when a Merge Request is ready to be merged, you can remove the ...@@ -34,7 +34,7 @@ Similar to above, when a Merge Request is ready to be merged, you can remove the
**Remove the WIP: prefix from the title**, under the title box, when editing the merge **Remove the WIP: prefix from the title**, under the title box, when editing the merge
request's description, will have the same effect. request's description, will have the same effect.
- Add the `/wip` [quick action](../quick_actions.md#quick-actions-for-issues-and-merge-requests) - Add the `/wip` [quick action](../quick_actions.md#quick-actions-for-issues-and-merge-requests)
in a discussion comment in the merge request. This is a toggle, and can be repeated in a comment in the merge request. This is a toggle, and can be repeated
to change the status back. Note that any other text in the comment will be discarded. to change the status back. Note that any other text in the comment will be discarded.
- Click on the **Resolve WIP status** button near the bottom of the merge request description, - Click on the **Resolve WIP status** button near the bottom of the merge request description,
next to the "Merge" button (see [image above](#work-in-progress-merge-requests)). next to the "Merge" button (see [image above](#work-in-progress-merge-requests)).
......
...@@ -40,8 +40,8 @@ discussions, and descriptions: ...@@ -40,8 +40,8 @@ discussions, and descriptions:
| `/remove_estimate` | Remove time estimate | ✓ | ✓ | | `/remove_estimate` | Remove time estimate | ✓ | ✓ |
| <code>/spend &lt;time(1h 30m &#124; -1h 5m)&gt; &lt;date(YYYY-MM-DD)&gt;</code> | Add or subtract spent time; optionally, specify the date that time was spent on | ✓ | ✓ | | <code>/spend &lt;time(1h 30m &#124; -1h 5m)&gt; &lt;date(YYYY-MM-DD)&gt;</code> | Add or subtract spent time; optionally, specify the date that time was spent on | ✓ | ✓ |
| `/remove_time_spent` | Remove time spent | ✓ | ✓ | | `/remove_time_spent` | Remove time spent | ✓ | ✓ |
| `/lock` | Lock the discussion | ✓ | ✓ | | `/lock` | Lock the thread | ✓ | ✓ |
| `/unlock` | Unlock the discussion | ✓ | ✓ | | `/unlock` | Unlock the thread | ✓ | ✓ |
| <code>/due &lt;in 2 days &#124; this Friday &#124; December 31st&gt;</code>| Set due date | ✓ | | | <code>/due &lt;in 2 days &#124; this Friday &#124; December 31st&gt;</code>| Set due date | ✓ | |
| `/remove_due_date` | Remove due date | ✓ | | | `/remove_due_date` | Remove due date | ✓ | |
| <code>/weight &lt;0 &#124; 1 &#124; 2 &#124; ...&gt;</code> | Set weight **(STARTER)** | ✓ | | | <code>/weight &lt;0 &#124; 1 &#124; 2 &#124; ...&gt;</code> | Set weight **(STARTER)** | ✓ | |
......
...@@ -44,7 +44,7 @@ Set up your project's merge request settings: ...@@ -44,7 +44,7 @@ Set up your project's merge request settings:
- Merge request [description templates](../description_templates.md#description-templates). - Merge request [description templates](../description_templates.md#description-templates).
- Enable [merge request approvals](../merge_requests/merge_request_approvals.md). **(STARTER)** - Enable [merge request approvals](../merge_requests/merge_request_approvals.md). **(STARTER)**
- Enable [merge only of pipeline succeeds](../merge_requests/merge_when_pipeline_succeeds.md). - Enable [merge only of pipeline succeeds](../merge_requests/merge_when_pipeline_succeeds.md).
- Enable [merge only when all discussions are resolved](../../discussions/index.md#only-allow-merge-requests-to-be-merged-if-all-discussions-are-resolved). - Enable [merge only when all discussions are resolved](../../discussions/index.md#only-allow-merge-requests-to-be-merged-if-all-threads-are-resolved).
![project's merge request settings](img/merge_requests_settings.png) ![project's merge request settings](img/merge_requests_settings.png)
......
...@@ -38,7 +38,7 @@ comments: false ...@@ -38,7 +38,7 @@ comments: false
- [Authorization for merge requests](../user/project/merge_requests/authorization_for_merge_requests.md) - [Authorization for merge requests](../user/project/merge_requests/authorization_for_merge_requests.md)
- [Cherry-pick changes](../user/project/merge_requests/cherry_pick_changes.md) - [Cherry-pick changes](../user/project/merge_requests/cherry_pick_changes.md)
- [Merge when pipeline succeeds](../user/project/merge_requests/merge_when_pipeline_succeeds.md) - [Merge when pipeline succeeds](../user/project/merge_requests/merge_when_pipeline_succeeds.md)
- [Resolve discussion comments in merge requests reviews](../user/discussions/index.md) - [Resolve threads in merge requests reviews](../user/discussions/index.md)
- [Resolve merge conflicts in the UI](../user/project/merge_requests/resolve_conflicts.md) - [Resolve merge conflicts in the UI](../user/project/merge_requests/resolve_conflicts.md)
- [Revert changes in the UI](../user/project/merge_requests/revert_changes.md) - [Revert changes in the UI](../user/project/merge_requests/revert_changes.md)
- [Merge requests versions](../user/project/merge_requests/versions.md) - [Merge requests versions](../user/project/merge_requests/versions.md)
......
...@@ -138,7 +138,7 @@ Notification emails include headers that provide extra content about the notific ...@@ -138,7 +138,7 @@ Notification emails include headers that provide extra content about the notific
| X-GitLab-Project-Id | The ID of the project | | X-GitLab-Project-Id | The ID of the project |
| X-GitLab-Project-Path | The path of the project | | X-GitLab-Project-Path | The path of the project |
| X-GitLab-(Resource)-ID | The ID of the resource the notification is for, where resource is `Issue`, `MergeRequest`, `Commit`, etc| | X-GitLab-(Resource)-ID | The ID of the resource the notification is for, where resource is `Issue`, `MergeRequest`, `Commit`, etc|
| X-GitLab-Discussion-ID | Only in comment emails, the ID of the discussion the comment is from | | X-GitLab-Discussion-ID | Only in comment emails, the ID of the thread the comment is from |
| X-GitLab-Pipeline-Id | Only in pipeline emails, the ID of the pipeline the notification is for | | X-GitLab-Pipeline-Id | Only in pipeline emails, the ID of the pipeline the notification is for |
| X-GitLab-Reply-Key | A unique token to support reply by email | | X-GitLab-Reply-Key | A unique token to support reply by email |
| X-GitLab-NotificationReason | The reason for being notified. "mentioned", "assigned", etc | | X-GitLab-NotificationReason | The reason for being notified. "mentioned", "assigned", etc |
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment