2017-04-01 09:45:17 +00:00
# Discussions
2016-08-16 22:05:10 +00:00
2017-04-01 09:45:17 +00:00
The ability to contribute conversationally is offered throughout GitLab.
2017-04-21 17:35:23 +00:00
You can leave a comment in the following places:
2017-04-01 09:45:17 +00:00
2017-04-21 17:35:23 +00:00
- issues
- merge requests
- snippets
- commits
- commit diffs
2017-04-01 09:45:17 +00:00
2017-05-31 05:50:53 +00:00
The comment area supports [Markdown] and [quick actions]. One can edit their
2017-04-21 17:35:23 +00:00
own comment at any time, and anyone with [Master access level][permissions] or
2017-04-24 16:39:47 +00:00
higher can also edit a comment made by someone else.
2016-08-16 22:05:10 +00:00
2017-04-21 17:35:23 +00:00
Apart from the standard comments, you also have the option to create a comment
in the form of a resolvable or threaded discussion.
## Resolvable discussions
>**Notes:**
- The main feature was [introduced][ce-5022] in GitLab 8.11.
- Resolvable discussions can be added only to merge request diffs.
2017-04-01 09:45:17 +00:00
Discussion resolution helps keep track of progress during planning or code review.
2016-08-16 22:05:10 +00:00
Resolving comments prevents you from forgetting to address feedback and lets you
hide discussions that are no longer relevant.
!["A discussion between two people on a piece of code"][discussion-view]
Comments and discussions can be resolved by anyone with at least Developer
2017-04-01 09:45:17 +00:00
access to the project or the author of the merge request.
2016-08-16 22:05:10 +00:00
2017-04-21 17:35:23 +00:00
### Jumping between unresolved discussions
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
Jump button next to the Reply field on a discussion.
You can also jump to the first unresolved discussion from the button next to the
resolved discussions tracker.
!["3/4 discussions resolved"][discussions-resolved]
2017-04-01 09:45:17 +00:00
### Marking a comment or discussion as resolved
2016-08-16 22:05:10 +00:00
2017-04-21 17:35:23 +00:00
You can mark a discussion as resolved by clicking the **Resolve discussion**
2016-08-16 22:05:10 +00:00
button at the bottom of the discussion.
!["Resolve discussion" button][resolve-discussion-button]
Alternatively, you can mark each comment as resolved individually.
!["Resolve comment" button][resolve-comment-button]
2017-04-21 17:35:23 +00:00
### Move all unresolved discussions in a merge request to an issue
2017-04-01 09:45:17 +00:00
> [Introduced][ce-8266] in GitLab 9.1
2017-04-21 17:35:23 +00:00
To continue all open discussions from a merge request in a new issue, click the
**Resolve all discussions in new issue** button.
2017-04-01 09:45:17 +00:00
2017-04-21 17:35:23 +00:00
![Open new issue for all unresolved discussions ](img/btn_new_issue_for_all_discussions.png )
2017-04-01 09:45:17 +00:00
2017-04-21 17:35:23 +00:00
Alternatively, when your project only accepts merge requests [when all discussions
are resolved](#only-allow-merge-requests-to-be-merged-if-all-discussions-are-resolved),
there will be an **open an issue to resolve them later** link in the merge
request widget.
2017-04-01 09:45:17 +00:00
2017-04-21 17:35:23 +00:00
![Link in merge request widget ](img/resolve_discussion_open_issue.png )
2017-04-01 09:45:17 +00:00
2017-04-21 17:35:23 +00:00
This will prepare an issue with its content referring to the merge request and
the unresolved discussions.
2017-04-01 09:45:17 +00:00
2017-04-21 17:35:23 +00:00
![Issue mentioning discussions in a merge request ](img/preview_issue_for_discussions.png )
2017-04-01 09:45:17 +00:00
2017-04-21 17:35:23 +00:00
Hitting **Submit issue** will cause all discussions to be marked as resolved and
add a note referring to the newly created issue.
2017-04-01 09:45:17 +00:00
2017-04-21 17:35:23 +00:00
![Mark discussions as resolved notice ](img/resolve_discussion_issue_notice.png )
2017-04-01 09:45:17 +00:00
2017-04-21 17:35:23 +00:00
You can now proceed to merge the merge request from the UI.
2017-04-01 09:45:17 +00:00
2017-04-21 17:35:23 +00:00
### Moving a single discussion to a new issue
2017-04-01 09:45:17 +00:00
2017-04-21 17:35:23 +00:00
> [Introduced][ce-8266] in GitLab 9.1
2016-08-16 22:05:10 +00:00
2017-04-21 17:35:23 +00:00
To create a new issue for a single discussion, you can use the **Resolve this
discussion in a new issue** button.
2016-08-16 22:05:10 +00:00
2017-04-21 17:35:23 +00:00
![Create issue for discussion ](img/new_issue_for_discussion.png )
2016-08-16 22:05:10 +00:00
2017-04-21 17:35:23 +00:00
This will direct you to a new issue prefilled with the content of the
discussion, similar to the issues created for delegating multiple
discussions at once. Saving the issue will mark the discussion as resolved and
add a note to the merge request discussion referencing the new issue.
![New issue for a single discussion ](img/preview_issue_for_discussion.png )
2016-08-16 22:05:10 +00:00
2017-04-01 09:45:17 +00:00
### Only allow merge requests to be merged if all discussions are resolved
2016-10-31 15:00:42 +00:00
> [Introduced][ce-7125] in GitLab 8.14.
2016-10-26 21:21:50 +00:00
You can prevent merge requests from being merged until all discussions are
resolved.
2016-10-31 15:00:42 +00:00
Navigate to your project's settings page, select the
**Only allow merge requests to be merged if all discussions are resolved** check
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 )
From now on, you will not be able to merge from the UI until all discussions
are resolved.
![Only allow merge if all the discussions are resolved message ](img/only_allow_merge_if_all_discussions_are_resolved_msg.png )
2017-09-05 15:49:05 +00:00
### Automatically resolve merge request diff discussions when they become outdated
2017-08-28 21:38:06 +00:00
2017-09-05 15:49:05 +00:00
> [Introduced][ce-14053] in GitLab 10.0.
2017-08-28 21:38:06 +00:00
2017-09-05 15:49:05 +00:00
You can automatically resolve merge request diff discussions on lines modified
with a new push.
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
2017-08-28 21:38:06 +00:00
**Save** for the changes to take effect.
2017-09-05 15:49:05 +00:00
![Automatically resolve merge request diff discussions when they become outdated ](img/automatically_resolve_outdated_discussions.png )
2017-08-28 21:38:06 +00:00
2017-09-05 15:49:05 +00:00
From now on, any discussions on a diff will be resolved by default if a push
makes that diff section outdated. Discussions on lines that don't change and
top-level resolvable discussions are not automatically resolved.
2017-08-28 21:38:06 +00:00
2017-04-21 17:35:23 +00:00
## Threaded discussions
2016-12-22 12:31:12 +00:00
2017-04-01 09:45:17 +00:00
> [Introduced][ce-7527] in GitLab 9.1.
2016-12-22 12:31:12 +00:00
2017-04-21 17:35:23 +00:00
While resolvable discussions are only available to merge request diffs,
discussions can also be added without a diff. You can start a specific
discussion which will look like a thread, on issues, commits, snippets, and
merge requests.
2016-12-22 12:31:12 +00:00
2017-04-21 17:35:23 +00:00
To start a threaded discussion, click on the **Comment** button toggle dropdown,
select **Start discussion** and click **Start discussion** when you're ready to
post the comment.
2017-04-07 15:44:02 +00:00
![Comment type toggle ](img/comment_type_toggle.gif )
2017-04-21 17:35:23 +00:00
This will post a comment with a single thread to allow you to discuss specific
comments in greater detail.
2017-04-07 15:44:02 +00:00
![Discussion comment ](img/discussion_comment.png )
2017-04-21 17:35:23 +00:00
2017-10-04 12:09:20 +00:00
## Locking discussions
> [Introduced][ce-14531] in GitLab 10.1.
When the discussion of an issue or a merge request is locked only team members can write new comments and edit the old ones.
### Modifying discussion lock
To lock or unlock a dicsussion, find the Lock section in the sidebar and click **Edit** . A popup should appear and give you the option to turn on or turn off the discussion lock.
| Turn off discussion lock | Turn on discussion lock |
| :-----------: | :----------: |
| ![Turn off discussion lock ](img/turn_off_lock.png ) | ![Turn on discussion lock ](img/turn_on_lock.png ) |
Every change is indicated by a system note in the issue's or merge request's comments.
![Discussion lock system notes ](img/discussion_lock_system_notes.png )
### Indications of locked issues or merge requests
While you are inside the locked issue or merge request and you are a project team member you can see an indicator in the comment form that the issue or merge request is locked.
If you are not a team member you won't see the comment form but only the information that the dicussion is locked.
| Team member | Not a member |
| :-----------: | :----------: |
| ![Comment form member ](img/lock_form_member.png ) | ![Comment form non-member ](img/lock_form_non_member.png ) |
2017-04-21 17:35:23 +00:00
[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-7527]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7527
[ce-7180]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/7180
[ce-8266]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8266
2017-09-05 15:49:05 +00:00
[ce-14053]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14053
2017-10-04 12:09:20 +00:00
[ce-14531]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14531
2017-04-21 17:35:23 +00:00
[resolve-discussion-button]: img/resolve_discussion_button.png
[resolve-comment-button]: img/resolve_comment_button.png
[discussion-view]: img/discussion_view.png
[discussions-resolved]: img/discussions_resolved.png
[markdown]: ../markdown.md
2017-05-31 05:50:53 +00:00
[quick actions]: ../project/quick_actions.md
2017-04-21 17:35:23 +00:00
[permissions]: ../permissions.md