diff --git a/.gitlab/ci/docs.gitlab-ci.yml b/.gitlab/ci/docs.gitlab-ci.yml index a4317c72413..60025c244f1 100644 --- a/.gitlab/ci/docs.gitlab-ci.yml +++ b/.gitlab/ci/docs.gitlab-ci.yml @@ -53,7 +53,7 @@ docs-lint markdown: docs-lint links: extends: - .docs:rules:docs-lint - image: registry.gitlab.com/gitlab-org/gitlab-docs/lint-html:alpine-3.13-ruby-2.7.2 + image: registry.gitlab.com/gitlab-org/gitlab-docs/lint-html:alpine-3.13-ruby-2.7.2-d2b92621 stage: test needs: [] script: diff --git a/doc/ci/pipelines/pipelines_for_merged_results.md b/doc/ci/pipelines/pipelines_for_merged_results.md index 910c6415cfd..efa6a373ef3 100644 --- a/doc/ci/pipelines/pipelines_for_merged_results.md +++ b/doc/ci/pipelines/pipelines_for_merged_results.md @@ -87,7 +87,7 @@ For more information, read the [documentation on Merge Trains](merge_trains.md). GitLab CI/CD can detect the presence of redundant pipelines, and cancels them to conserve CI resources. -When a user merges a merge request immediately within an ongoing merge +When a user merges a merge request immediately in an ongoing merge train, the train is reconstructed, because it recreates the expected post-merge commit and pipeline. In this case, the merge train may already have pipelines running against the previous expected post-merge commit. diff --git a/doc/user/discussions/img/automatically_resolve_outdated_discussions.png b/doc/user/discussions/img/automatically_resolve_outdated_discussions.png deleted file mode 100644 index a6fc4b0aef1..00000000000 Binary files a/doc/user/discussions/img/automatically_resolve_outdated_discussions.png and /dev/null differ diff --git a/doc/user/discussions/img/btn_new_issue_for_all_threads.png b/doc/user/discussions/img/btn_new_issue_for_all_threads.png index 5d86e0ca016..b07267a011a 100644 Binary files a/doc/user/discussions/img/btn_new_issue_for_all_threads.png and b/doc/user/discussions/img/btn_new_issue_for_all_threads.png differ diff --git a/doc/user/discussions/img/new_issue_for_thread.png b/doc/user/discussions/img/new_issue_for_thread.png index 28b76adf7fe..c7f0fd76844 100644 Binary files a/doc/user/discussions/img/new_issue_for_thread.png and b/doc/user/discussions/img/new_issue_for_thread.png differ diff --git a/doc/user/discussions/img/preview_issue_for_thread.png b/doc/user/discussions/img/preview_issue_for_thread.png deleted file mode 100644 index a9d7ab598be..00000000000 Binary files a/doc/user/discussions/img/preview_issue_for_thread.png and /dev/null differ diff --git a/doc/user/discussions/img/preview_issue_for_threads.png b/doc/user/discussions/img/preview_issue_for_threads.png deleted file mode 100644 index 8757decb178..00000000000 Binary files a/doc/user/discussions/img/preview_issue_for_threads.png and /dev/null differ diff --git a/doc/user/discussions/img/resolve_comment_button.png b/doc/user/discussions/img/resolve_comment_button.png deleted file mode 100644 index 0a3ed03a69c..00000000000 Binary files a/doc/user/discussions/img/resolve_comment_button.png and /dev/null differ diff --git a/doc/user/discussions/img/resolve_thread_button_v13_3.png b/doc/user/discussions/img/resolve_thread_button_v13_3.png deleted file mode 100644 index 1d7b10ce25d..00000000000 Binary files a/doc/user/discussions/img/resolve_thread_button_v13_3.png and /dev/null differ diff --git a/doc/user/discussions/img/resolve_thread_issue_notice.png b/doc/user/discussions/img/resolve_thread_issue_notice.png deleted file mode 100644 index 30a65b8fbd4..00000000000 Binary files a/doc/user/discussions/img/resolve_thread_issue_notice.png and /dev/null differ diff --git a/doc/user/discussions/img/resolve_thread_open_issue_v13_9.png b/doc/user/discussions/img/resolve_thread_open_issue_v13_9.png deleted file mode 100644 index 8ff0f5e84dd..00000000000 Binary files a/doc/user/discussions/img/resolve_thread_open_issue_v13_9.png and /dev/null differ diff --git a/doc/user/discussions/index.md b/doc/user/discussions/index.md index 0c0a8480a7b..670a7602e36 100644 --- a/doc/user/discussions/index.md +++ b/doc/user/discussions/index.md @@ -112,15 +112,67 @@ Prerequisites: To resolve a thread: 1. Go to the thread. -1. Below the last reply, in the **Reply** field, either: - - Select **Resolve thread**. - - Enter text, select the **Resolve thread** checkbox, and select **Add comment now**. +1. Do one of the following: + - In the top right of the original comment, select the **Resolve thread** (**{check-circle}**) icon. + - Below the last reply, in the **Reply** field, select **Resolve thread**. + - Below the last reply, in the **Reply** field, enter text, select the **Resolve thread** checkbox, and select **Add comment now**. At the top of the page, the number of unresolved threads is updated. ![Count of unresolved threads](img/unresolved_threads_v14_1.png) -### Commit threads in the context of a merge request +### Move all unresolved threads in a merge request to an issue + +If you have multiple unresolved threads in a merge request, you can +create an issue to resolve them separately. + +- In the merge request, at the top of the page, select **Resolve all threads in new issue**. + + ![Open new issue for all unresolved threads](img/btn_new_issue_for_all_threads.png) + +All threads are marked as resolved and a link is added from the merge request to +the newly created issue. + +### Move one unresolved thread in a merge request to an issue + +If you have one specific unresolved thread in a merge request, you can +create an issue to resolve it separately. + +- In the merge request, under the last reply to the thread, next to the + **Resolve thread** button, select **Resolve this thread in a new issue**. + + ![Create issue for thread](img/new_issue_for_thread.png) + +The thread is marked as resolved and a link is added from the merge request to +the newly created issue. + +### Prevent merge unless all threads are resolved + +You can prevent merge requests from being merged until all threads are +resolved. + +1. On the top bar, select **Menu > Projects** and find your project. +1. On the left sidebar, select **Settings > General**. +1. Expand **Merge requests**. +1. Under **Merge checks**, select the **All discussions must be resolved** checkbox. +1. Select **Save changes**. + +### Automatically resolve threads in a merge request when they become outdated + +You can set merge requests to automatically resolve threads when lines are modified +with a new push. + +1. On the top bar, select **Menu > Projects** and find your project. +1. On the left sidebar, select **Settings > General**. +1. Expand **Merge requests**. +1. Under **Merge options**, select the + **Automatically resolve merge request diff discussions when they become outdated** checkbox. +1. Select **Save changes**. + +Threads are now resolved if a push makes a diff section outdated. +Threads on lines that don't change and top-level resolvable threads are not resolved. + +## Commit threads in the context of a merge request 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 threads @@ -155,88 +207,6 @@ When a link of a commit reference is found in a thread inside a merge request, it is automatically converted to a link in the context of the current merge request. -### Marking a comment or thread as resolved - -You can mark a thread as resolved by selecting the **Resolve thread** -button at the bottom of the thread. - -!["Resolve thread" button](img/resolve_thread_button_v13_3.png) - -Alternatively, you can mark each comment as resolved individually. - -!["Resolve comment" button](img/resolve_comment_button.png) - -### Move all unresolved threads in a merge request to an issue - -To continue all open threads from a merge request in a new issue, select -**Resolve all threads in new issue**. - -![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 threads -are resolved](#only-allow-merge-requests-to-be-merged-if-all-threads-are-resolved), -an **open an issue to resolve them later** link displays in the merge -request widget. - -![Link in merge request widget](img/resolve_thread_open_issue_v13_9.png) - -This prepares an issue with its content referring to the merge request and -the unresolved threads. - -![Issue mentioning threads in a merge request](img/preview_issue_for_threads.png) - -Hitting **Create issue** causes all threads to be marked as resolved and -add a note referring to the newly created issue. - -![Mark threads as resolved notice](img/resolve_thread_issue_notice.png) - -You can now proceed to merge the merge request from the UI. - -### Moving a single thread to a new issue - -To create a new issue for a single thread, you can use the **Resolve this -thread in a new issue** button. - -![Create issue for thread](img/new_issue_for_thread.png) - -This directs you to a new issue prefilled with the content of the -thread, similar to the issues created for delegating multiple -threads at once. Saving the issue marks the thread as resolved and -add a note to the merge request thread referencing the new issue. - -![New issue for a single thread](img/preview_issue_for_thread.png) - -### Only allow merge requests to be merged if all threads are resolved - -You can prevent merge requests from being merged until all threads are -resolved. - -Navigate to your project's settings page, select the -**Only allow merge requests to be merged if all threads are resolved** check -box and hit **Save** for the changes to take effect. - -![Only allow merge if all the threads are resolved settings](img/only_allow_merge_if_all_threads_are_resolved.png) - -From now on, you can't merge from the UI until all threads -are resolved. - -![Only allow merge if all the threads are resolved message](img/resolve_thread_open_issue_v13_9.png) - -### Automatically resolve merge request diff threads when they become outdated - -You can automatically resolve merge request diff threads on lines modified -with a new push. - -Navigate to your project's settings page, select the **Automatically resolve -merge request diffs threads on lines changed with a push** check box and hit -**Save** for the changes to take effect. - -![Automatically resolve merge request diff threads when they become outdated](img/automatically_resolve_outdated_discussions.png) - -From now on, any threads on a diff are resolved by default if a push -makes that diff section outdated. Threads on lines that don't change and -top-level resolvable threads are not automatically resolved. - ## Add a comment to a commit You can add comments and threads to a particular commit. diff --git a/doc/user/project/import/github.md b/doc/user/project/import/github.md index 5e14e1ab541..ec56ea851d7 100644 --- a/doc/user/project/import/github.md +++ b/doc/user/project/import/github.md @@ -160,6 +160,9 @@ Additionally, you can configure GitLab to send pipeline status updates back GitH If you import your project using [CI/CD for external repository](../../../ci/ci_cd_for_external_repos/index.md), then both of the above are automatically configured. **(PREMIUM)** +NOTE: +Mirroring does not sync any new or updated pull requests from your GitHub project. + ## Improve the speed of imports on self-managed instances NOTE: diff --git a/doc/user/project/merge_requests/approvals/index.md b/doc/user/project/merge_requests/approvals/index.md index 3c47c2af344..9e979d57f62 100644 --- a/doc/user/project/merge_requests/approvals/index.md +++ b/doc/user/project/merge_requests/approvals/index.md @@ -60,7 +60,7 @@ a merge request. After a merge request receives the [number and type of approvals](rules.md) you configure, it can merge unless it's blocked for another reason. Merge requests can be blocked by other problems, -such as merge conflicts, [pending discussions](../../../discussions/index.md#only-allow-merge-requests-to-be-merged-if-all-threads-are-resolved), +such as merge conflicts, [pending discussions](../../../discussions/index.md#prevent-merge-unless-all-threads-are-resolved), or a [failed CI/CD pipeline](../merge_when_pipeline_succeeds.md). To prevent merge request authors from approving their own merge requests, diff --git a/doc/user/project/settings/index.md b/doc/user/project/settings/index.md index 66c32405c99..88bc1f7ef49 100644 --- a/doc/user/project/settings/index.md +++ b/doc/user/project/settings/index.md @@ -251,7 +251,7 @@ Set up your project's merge request settings: - Enable [merge request approvals](../merge_requests/approvals/index.md). - Enable [status checks](../merge_requests/status_checks.md). - Enable [merge only if pipeline succeeds](../merge_requests/merge_when_pipeline_succeeds.md). -- Enable [merge only when all threads are resolved](../../discussions/index.md#only-allow-merge-requests-to-be-merged-if-all-threads-are-resolved). +- Enable [merge only when all threads are resolved](../../discussions/index.md#prevent-merge-unless-all-threads-are-resolved). - Enable [require an associated issue from Jira](../../../integration/jira/issues.md#require-associated-jira-issue-for-merge-requests-to-be-merged). - Enable [`delete source branch after merge` option by default](../merge_requests/getting_started.md#deleting-the-source-branch). - Configure [suggested changes commit messages](../merge_requests/reviews/suggestions.md#configure-the-commit-message-for-applied-suggestions). diff --git a/qa/qa/resource/repository/wiki_push.rb b/qa/qa/resource/repository/wiki_push.rb index edf76c7cd78..aa69d831bff 100644 --- a/qa/qa/resource/repository/wiki_push.rb +++ b/qa/qa/resource/repository/wiki_push.rb @@ -16,7 +16,6 @@ module QA @file_name = 'Home.md' @file_content = 'This line was created using git push' @commit_message = 'Updating using git push' - @branch_name = 'master' @new_branch = false end diff --git a/qa/qa/specs/features/browser_ui/3_create/repository/push_mirroring_lfs_over_http_spec.rb b/qa/qa/specs/features/browser_ui/3_create/repository/push_mirroring_lfs_over_http_spec.rb index 5b9ae30860f..e4a492d3487 100644 --- a/qa/qa/specs/features/browser_ui/3_create/repository/push_mirroring_lfs_over_http_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/repository/push_mirroring_lfs_over_http_spec.rb @@ -3,7 +3,7 @@ module QA RSpec.describe 'Create' do describe 'Push mirror a repository over HTTP' do - it 'configures and syncs LFS objects for a (push) mirrored repository', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1075', quarantine: { issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/334461', type: :bug } do + it 'configures and syncs LFS objects for a (push) mirrored repository', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1075' do Runtime::Browser.visit(:gitlab, Page::Main::Login) Page::Main::Login.perform(&:sign_in_using_credentials) diff --git a/qa/qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb b/qa/qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb index f5f6bc27d90..f01a3b21eee 100644 --- a/qa/qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/repository/push_mirroring_over_http_spec.rb @@ -3,7 +3,7 @@ module QA RSpec.describe 'Create' do describe 'Push mirror a repository over HTTP' do - it 'configures and syncs a (push) mirrored repository', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/414', quarantine: { issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/334458', type: :investigating } do + it 'configures and syncs a (push) mirrored repository', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/414' do Runtime::Browser.visit(:gitlab, Page::Main::Login) Page::Main::Login.perform(&:sign_in_using_credentials)