From 69ac9068ac9e52736befca6d0f6bdec3264b42c5 Mon Sep 17 00:00:00 2001 From: Martin Schurz Date: Wed, 24 Jan 2024 11:36:16 +0100 Subject: [PATCH 1/2] Add functions to search for merge_user in merge request view extend the merge_request_finder by functions to filter by merge_user add frontend and API code to display the additional filters Changelog: added --- .../add_extra_tokens_for_merge_requests.js | 6 +- app/controllers/dashboard_controller.rb | 1 - app/controllers/groups_controller.rb | 1 - .../projects/merge_requests_controller.rb | 1 - app/finders/concerns/merge_user_filter.rb | 1 - .../shared/issuable/_search_bar.html.haml | 3 +- .../development/mr_merge_user_filter.yml | 8 -- doc/api/merge_requests.md | 12 +-- doc/user/project/merge_requests/index.md | 2 +- .../add_extra_tokens_for_merge_requests.js | 2 +- spec/finders/merge_requests_finder_spec.rb | 58 ++++---------- spec/requests/api/merge_requests_spec.rb | 78 ++++--------------- 12 files changed, 44 insertions(+), 129 deletions(-) delete mode 100644 config/feature_flags/development/mr_merge_user_filter.yml diff --git a/app/assets/javascripts/filtered_search/add_extra_tokens_for_merge_requests.js b/app/assets/javascripts/filtered_search/add_extra_tokens_for_merge_requests.js index c9d28bb67a8050..fae5fe3ad4c0c0 100644 --- a/app/assets/javascripts/filtered_search/add_extra_tokens_for_merge_requests.js +++ b/app/assets/javascripts/filtered_search/add_extra_tokens_for_merge_requests.js @@ -186,10 +186,8 @@ export default ( tag: '@merge_user', hideNotEqual: true, }; - if (gon.features.mrMergeUserFilter) { - IssuableTokenKeys.tokenKeys.splice(3, 0, mergeUserToken); - IssuableTokenKeys.tokenKeysWithAlternative.splice(3, 0, mergeUserToken); - } + IssuableTokenKeys.tokenKeys.splice(3, 0, mergeUserToken); + IssuableTokenKeys.tokenKeysWithAlternative.splice(3, 0, mergeUserToken); if (!disableEnvironmentFilter) { const environmentToken = { diff --git a/app/controllers/dashboard_controller.rb b/app/controllers/dashboard_controller.rb index adc77937570c06..c0b42c0374ca6c 100644 --- a/app/controllers/dashboard_controller.rb +++ b/app/controllers/dashboard_controller.rb @@ -19,7 +19,6 @@ class DashboardController < Dashboard::ApplicationController before_action only: :merge_requests do push_frontend_feature_flag(:mr_approved_filter, type: :ops) - push_frontend_feature_flag(:mr_merge_user_filter, type: :development) end respond_to :html diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb index 251abcc6d84eda..b38db0f95976ad 100644 --- a/app/controllers/groups_controller.rb +++ b/app/controllers/groups_controller.rb @@ -47,7 +47,6 @@ class GroupsController < Groups::ApplicationController before_action only: :merge_requests do push_frontend_feature_flag(:mr_approved_filter, type: :ops) - push_frontend_feature_flag(:mr_merge_user_filter, type: :development) end helper_method :captcha_required? diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb index 91dd4df33abae7..434779da3ca03a 100644 --- a/app/controllers/projects/merge_requests_controller.rb +++ b/app/controllers/projects/merge_requests_controller.rb @@ -35,7 +35,6 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo before_action only: :index do push_frontend_feature_flag(:mr_approved_filter, type: :ops) - push_frontend_feature_flag(:mr_merge_user_filter, type: :development) end before_action only: [:show, :diffs, :rapid_diffs] do diff --git a/app/finders/concerns/merge_user_filter.rb b/app/finders/concerns/merge_user_filter.rb index bd35f12b5c7454..160f995c240d1a 100644 --- a/app/finders/concerns/merge_user_filter.rb +++ b/app/finders/concerns/merge_user_filter.rb @@ -5,7 +5,6 @@ module MergeUserFilter def by_merge_user(items) return items unless params.merge_user_id? || params.merge_user_username? - return items if Feature.disabled?(:mr_merge_user_filter, type: :development) mr_metrics_scope = MergeRequest::Metrics mr_metrics_scope = mr_metrics_scope.merged_by(params.merge_user) diff --git a/app/views/shared/issuable/_search_bar.html.haml b/app/views/shared/issuable/_search_bar.html.haml index 1ff407677656b9..29d8e78f30209e 100644 --- a/app/views/shared/issuable/_search_bar.html.haml +++ b/app/views/shared/issuable/_search_bar.html.haml @@ -93,8 +93,7 @@ avatar: { lazy: true, url: '{{avatar_url}}' } = render_if_exists 'shared/issuable/approver_dropdown' = render_if_exists 'shared/issuable/approved_by_dropdown' - - if ::Feature.enabled?(:mr_merge_user_filter, type: :development) - = render_if_exists 'shared/issuable/merge_user_dropdown' + = render_if_exists 'shared/issuable/merge_user_dropdown' #js-dropdown-milestone.filtered-search-input-dropdown-menu.dropdown-menu %ul{ data: { dropdown: true } } %li.filter-dropdown-item{ data: { value: 'None' } } diff --git a/config/feature_flags/development/mr_merge_user_filter.yml b/config/feature_flags/development/mr_merge_user_filter.yml deleted file mode 100644 index 147de6b0eaa1a7..00000000000000 --- a/config/feature_flags/development/mr_merge_user_filter.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -name: mr_merge_user_filter -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002 -rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/437871 -milestone: '16.9' -type: development -group: group::code review -default_enabled: false diff --git a/doc/api/merge_requests.md b/doc/api/merge_requests.md index 707aaeaea5ff35..ecef498ab8eff5 100644 --- a/doc/api/merge_requests.md +++ b/doc/api/merge_requests.md @@ -69,8 +69,8 @@ Supported attributes: | `environment` | string | No | Returns merge requests deployed to the given environment. | | `in` | string | No | Modify the scope of the `search` attribute. `title`, `description`, or a string joining them with comma. Default is `title,description`. | | `labels` | string | No | Returns merge requests matching a comma-separated list of labels. `None` lists all merge requests with no labels. `Any` lists all merge requests with at least one label. Predefined names are case-insensitive. | -| `merge_user_id` | integer | No | Returns merge requests which have been merged by the user with the given user `id`. Mutually exclusive with `merge_user_username`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 16.9. Available only when the feature flag `mr_merge_user_filter` is enabled. | -| `merge_user_username` | string | No | Returns merge requests which have been merged by the user with the given `username`. Mutually exclusive with `merge_user_id`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 16.9. Available only when the feature flag `mr_merge_user_filter` is enabled. | +| `merge_user_id` | integer | No | Returns merge requests which have been merged by the user with the given user `id`. Mutually exclusive with `merge_user_username`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 16.9. | +| `merge_user_username` | string | No | Returns merge requests which have been merged by the user with the given `username`. Mutually exclusive with `merge_user_id`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 16.9. | | `milestone` | string | No | Returns merge requests for a specific milestone. `None` returns merge requests with no milestone. `Any` returns merge requests that have an assigned milestone. | | `my_reaction_emoji` | string | No | Returns merge requests reacted by the authenticated user by the given `emoji`. `None` returns issues not given a reaction. `Any` returns issues given at least one reaction. | | `not` | Hash | No | Returns merge requests that do not match the parameters supplied. Accepts: `labels`, `milestone`, `author_id`, `author_username`, `assignee_id`, `assignee_username`, `reviewer_id`, `reviewer_username`, `my_reaction_emoji`. | @@ -251,8 +251,8 @@ Supported attributes: | `environment` | string | No | Returns merge requests deployed to the given environment. | | `iids[]` | integer array | No | Returns the request having the given `iid`. | | `labels` | string | No | Returns merge requests matching a comma-separated list of labels. `None` lists all merge requests with no labels. `Any` lists all merge requests with at least one label. Predefined names are case-insensitive. | -| `merge_user_id` | integer | No | Returns merge requests which have been merged by the user with the given user `id`. Mutually exclusive with `merge_user_username`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 16.9. Available only when the feature flag `mr_merge_user_filter` is enabled. | -| `merge_user_username` | string | No | Returns merge requests which have been merged by the user with the given `username`. Mutually exclusive with `merge_user_id`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 16.9. Available only when the feature flag `mr_merge_user_filter` is enabled. | +| `merge_user_id` | integer | No | Returns merge requests which have been merged by the user with the given user `id`. Mutually exclusive with `merge_user_username`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 16.9. | +| `merge_user_username` | string | No | Returns merge requests which have been merged by the user with the given `username`. Mutually exclusive with `merge_user_id`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 16.9. | | `milestone` | string | No | Returns merge requests for a specific milestone. `None` returns merge requests with no milestone. `Any` returns merge requests that have an assigned milestone. | | `my_reaction_emoji` | string | No | Returns merge requests reacted by the authenticated user by the given `emoji`. `None` returns issues not given a reaction. `Any` returns issues given at least one reaction. | | `not` | Hash | No | Returns merge requests that do not match the parameters supplied. Accepts: `labels`, `milestone`, `author_id`, `author_username`, `assignee_id`, `assignee_username`, `reviewer_id`, `reviewer_username`, `my_reaction_emoji`. | @@ -437,8 +437,8 @@ Supported attributes: | `created_after` | datetime | No | Returns merge requests created on or after the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`). | | `created_before` | datetime | No | Returns merge requests created on or before the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`). | | `labels` | string | No | Returns merge requests matching a comma-separated list of labels. `None` lists all merge requests with no labels. `Any` lists all merge requests with at least one label. Predefined names are case-insensitive. | -| `merge_user_id` | integer | No | Returns merge requests which have been merged by the user with the given user `id`. Mutually exclusive with `merge_user_username`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 16.9. Available only when the feature flag `mr_merge_user_filter` is enabled. | -| `merge_user_username` | string | No | Returns merge requests which have been merged by the user with the given `username`. Mutually exclusive with `merge_user_id`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 16.9. Available only when the feature flag `mr_merge_user_filter` is enabled. | +| `merge_user_id` | integer | No | Returns merge requests which have been merged by the user with the given user `id`. Mutually exclusive with `merge_user_username`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 16.9. | +| `merge_user_username` | string | No | Returns merge requests which have been merged by the user with the given `username`. Mutually exclusive with `merge_user_id`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 16.9. | | `milestone` | string | No | Returns merge requests for a specific milestone. `None` returns merge requests with no milestone. `Any` returns merge requests that have an assigned milestone. | | `my_reaction_emoji` | string | No | Returns merge requests reacted by the authenticated user by the given `emoji`. `None` returns issues not given a reaction. `Any` returns issues given at least one reaction. | | `non_archived` | boolean | No | Returns merge requests from non archived projects only. Default is `true`. | diff --git a/doc/user/project/merge_requests/index.md b/doc/user/project/merge_requests/index.md index fb01be4c1f722d..3c5fb5ea20a8f4 100644 --- a/doc/user/project/merge_requests/index.md +++ b/doc/user/project/merge_requests/index.md @@ -83,7 +83,7 @@ or: ## Filter the list of merge requests > - Filtering by `source-branch` [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134555) in GitLab 16.6. -> - Filtering by `merged-by` [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 16.9. Available only when the feature flag `mr_merge_user_filter` is enabled. +> - Filtering by `merged-by` [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 16.9. To filter the list of merge requests: diff --git a/ee/app/assets/javascripts/filtered_search/add_extra_tokens_for_merge_requests.js b/ee/app/assets/javascripts/filtered_search/add_extra_tokens_for_merge_requests.js index b272737b824763..5f93f38dc9a3fd 100644 --- a/ee/app/assets/javascripts/filtered_search/add_extra_tokens_for_merge_requests.js +++ b/ee/app/assets/javascripts/filtered_search/add_extra_tokens_for_merge_requests.js @@ -49,7 +49,7 @@ const approvers = { export default (IssuableTokenKeys, disableBranchFilter = false) => { addExtraTokensForMergeRequests(IssuableTokenKeys, disableBranchFilter); - const tokenPosition = gon.features.mrMergeUserFilter ? 4 : 3; + const tokenPosition = 4; IssuableTokenKeys.tokenKeys.splice(tokenPosition, 0, ...[approvers.token]); IssuableTokenKeys.tokenKeysWithAlternative.splice( diff --git a/spec/finders/merge_requests_finder_spec.rb b/spec/finders/merge_requests_finder_spec.rb index b3576da07d8813..4af4d863b19997 100644 --- a/spec/finders/merge_requests_finder_spec.rb +++ b/spec/finders/merge_requests_finder_spec.rb @@ -182,56 +182,30 @@ subject { described_class.new(user, params).execute } - context 'when flag `mr_merge_user_filter` is disabled' do - before do - stub_feature_flags(mr_merge_user_filter: false) - end - - describe 'by merge_user_id' do - let(:params) { { merge_user_id: user.id } } - let(:expected_mr) { [merge_request1, merge_request2, merge_request3, merge_request4, merge_request5] } - - it { is_expected.to contain_exactly(*expected_mr) } - end - - describe 'by merge_user_username' do - let(:params) { { merge_user_username: user.username } } - let(:expected_mr) { [merge_request1, merge_request2, merge_request3, merge_request4, merge_request5] } + describe 'by merge_user_id' do + let(:params) { { merge_user_id: user.id } } + let(:expected_mr) { [merge_request1, merge_request2] } - it { is_expected.to contain_exactly(*expected_mr) } - end + it { is_expected.to contain_exactly(*expected_mr) } end - context 'when flag `mr_merge_user_filter` is enabled' do - before do - stub_feature_flags(mr_merge_user_filter: true) - end - - describe 'by merge_user_id' do - let(:params) { { merge_user_id: user.id } } - let(:expected_mr) { [merge_request1, merge_request2] } - - it { is_expected.to contain_exactly(*expected_mr) } - end - - describe 'by merge_user_username' do - let(:params) { { merge_user_username: user.username } } - let(:expected_mr) { [merge_request1, merge_request2] } + describe 'by merge_user_username' do + let(:params) { { merge_user_username: user.username } } + let(:expected_mr) { [merge_request1, merge_request2] } - it { is_expected.to contain_exactly(*expected_mr) } - end + it { is_expected.to contain_exactly(*expected_mr) } + end - describe 'by merge_user_id with unknown user id' do - let(:params) { { merge_user_id: 99999 } } + describe 'by merge_user_id with unknown user id' do + let(:params) { { merge_user_id: 99999 } } - it { is_expected.to be_empty } - end + it { is_expected.to be_empty } + end - describe 'by merge_user_username with unknown user name' do - let(:params) { { merge_user_username: 'does-not-exist' } } + describe 'by merge_user_username with unknown user name' do + let(:params) { { merge_user_username: 'does-not-exist' } } - it { is_expected.to be_empty } - end + it { is_expected.to be_empty } end end diff --git a/spec/requests/api/merge_requests_spec.rb b/spec/requests/api/merge_requests_spec.rb index b231ee35ba7c34..0ced13b4a7921e 100644 --- a/spec/requests/api/merge_requests_spec.rb +++ b/spec/requests/api/merge_requests_spec.rb @@ -936,78 +936,34 @@ context 'filter by merge_user' do let(:params) { { scope: :all } } - context 'when flag `mr_merge_user_filter` is disabled' do - before do - stub_feature_flags(mr_merge_user_filter: false) - end - - context 'with merge_user_id' do - let(:params) { super().merge(merge_user_id: user.id) } + context 'with merge_user_id' do + let(:params) { super().merge(merge_user_id: user.id) } - it 'returns merged merge requests for the given user' do - get api('/merge_requests', user), params: params - - expect_response_contain_exactly( - merge_request.id, - merge_request_closed.id, - merge_request_merged.id, - merge_request_locked.id, - merge_request2.id - ) - end - end - - context 'with merge_user_username' do - let(:params) { super().merge(merge_user_username: user.username) } - - it 'returns merged merge requests for the given user' do - get api('/merge_requests', user), params: params + it 'returns merged merge requests for the given user' do + get api('/merge_requests', user), params: params - expect_response_contain_exactly( - merge_request.id, - merge_request_closed.id, - merge_request_merged.id, - merge_request_locked.id, - merge_request2.id - ) - end + expect_response_contain_exactly(merge_request_merged.id) end end - context 'when flag `mr_merge_user_filter` is enabled' do - before do - stub_feature_flags(mr_merge_user_filter: true) - end - - context 'with merge_user_id' do - let(:params) { super().merge(merge_user_id: user.id) } - - it 'returns merged merge requests for the given user' do - get api('/merge_requests', user), params: params - - expect_response_contain_exactly(merge_request_merged.id) - end - end - - context 'with merge_user_username' do - let(:params) { super().merge(merge_user_username: user.username) } + context 'with merge_user_username' do + let(:params) { super().merge(merge_user_username: user.username) } - it 'returns merged merge requests for the given user' do - get api('/merge_requests', user), params: params + it 'returns merged merge requests for the given user' do + get api('/merge_requests', user), params: params - expect_response_contain_exactly(merge_request_merged.id) - end + expect_response_contain_exactly(merge_request_merged.id) end + end - context 'with both merge_user_id and merge_user_username' do - let(:params) { super().merge(merge_user_id: user.id, merge_user_username: user.username) } + context 'with both merge_user_id and merge_user_username' do + let(:params) { super().merge(merge_user_id: user.id, merge_user_username: user.username) } - it 'returns a 400' do - get api('/merge_requests', user), params: params + it 'returns a 400' do + get api('/merge_requests', user), params: params - expect(response).to have_gitlab_http_status(:bad_request) - expect(json_response['error']).to eq('merge_user_id, merge_user_username are mutually exclusive') - end + expect(response).to have_gitlab_http_status(:bad_request) + expect(json_response['error']).to eq('merge_user_id, merge_user_username are mutually exclusive') end end end -- GitLab From 4fd482ade9720e880688b8faf50fc5dcd0f0c04d Mon Sep 17 00:00:00 2001 From: Amy Qualls Date: Mon, 15 Apr 2024 21:32:11 +0000 Subject: [PATCH 2/2] Update docs to reflect removal of feature flag --- doc/api/merge_requests.md | 12 ++++++------ doc/user/project/merge_requests/index.md | 3 ++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/doc/api/merge_requests.md b/doc/api/merge_requests.md index ecef498ab8eff5..263c3d9a45c5a5 100644 --- a/doc/api/merge_requests.md +++ b/doc/api/merge_requests.md @@ -69,8 +69,8 @@ Supported attributes: | `environment` | string | No | Returns merge requests deployed to the given environment. | | `in` | string | No | Modify the scope of the `search` attribute. `title`, `description`, or a string joining them with comma. Default is `title,description`. | | `labels` | string | No | Returns merge requests matching a comma-separated list of labels. `None` lists all merge requests with no labels. `Any` lists all merge requests with at least one label. Predefined names are case-insensitive. | -| `merge_user_id` | integer | No | Returns merge requests which have been merged by the user with the given user `id`. Mutually exclusive with `merge_user_username`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 16.9. | -| `merge_user_username` | string | No | Returns merge requests which have been merged by the user with the given `username`. Mutually exclusive with `merge_user_id`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 16.9. | +| `merge_user_id` | integer | No | Returns merge requests which have been merged by the user with the given user `id`. Mutually exclusive with `merge_user_username`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 17.0. | +| `merge_user_username` | string | No | Returns merge requests which have been merged by the user with the given `username`. Mutually exclusive with `merge_user_id`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 17.0. | | `milestone` | string | No | Returns merge requests for a specific milestone. `None` returns merge requests with no milestone. `Any` returns merge requests that have an assigned milestone. | | `my_reaction_emoji` | string | No | Returns merge requests reacted by the authenticated user by the given `emoji`. `None` returns issues not given a reaction. `Any` returns issues given at least one reaction. | | `not` | Hash | No | Returns merge requests that do not match the parameters supplied. Accepts: `labels`, `milestone`, `author_id`, `author_username`, `assignee_id`, `assignee_username`, `reviewer_id`, `reviewer_username`, `my_reaction_emoji`. | @@ -251,8 +251,8 @@ Supported attributes: | `environment` | string | No | Returns merge requests deployed to the given environment. | | `iids[]` | integer array | No | Returns the request having the given `iid`. | | `labels` | string | No | Returns merge requests matching a comma-separated list of labels. `None` lists all merge requests with no labels. `Any` lists all merge requests with at least one label. Predefined names are case-insensitive. | -| `merge_user_id` | integer | No | Returns merge requests which have been merged by the user with the given user `id`. Mutually exclusive with `merge_user_username`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 16.9. | -| `merge_user_username` | string | No | Returns merge requests which have been merged by the user with the given `username`. Mutually exclusive with `merge_user_id`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 16.9. | +| `merge_user_id` | integer | No | Returns merge requests which have been merged by the user with the given user `id`. Mutually exclusive with `merge_user_username`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 17.0. | +| `merge_user_username` | string | No | Returns merge requests which have been merged by the user with the given `username`. Mutually exclusive with `merge_user_id`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 17.0. | | `milestone` | string | No | Returns merge requests for a specific milestone. `None` returns merge requests with no milestone. `Any` returns merge requests that have an assigned milestone. | | `my_reaction_emoji` | string | No | Returns merge requests reacted by the authenticated user by the given `emoji`. `None` returns issues not given a reaction. `Any` returns issues given at least one reaction. | | `not` | Hash | No | Returns merge requests that do not match the parameters supplied. Accepts: `labels`, `milestone`, `author_id`, `author_username`, `assignee_id`, `assignee_username`, `reviewer_id`, `reviewer_username`, `my_reaction_emoji`. | @@ -437,8 +437,8 @@ Supported attributes: | `created_after` | datetime | No | Returns merge requests created on or after the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`). | | `created_before` | datetime | No | Returns merge requests created on or before the given time. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`). | | `labels` | string | No | Returns merge requests matching a comma-separated list of labels. `None` lists all merge requests with no labels. `Any` lists all merge requests with at least one label. Predefined names are case-insensitive. | -| `merge_user_id` | integer | No | Returns merge requests which have been merged by the user with the given user `id`. Mutually exclusive with `merge_user_username`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 16.9. | -| `merge_user_username` | string | No | Returns merge requests which have been merged by the user with the given `username`. Mutually exclusive with `merge_user_id`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 16.9. | +| `merge_user_id` | integer | No | Returns merge requests which have been merged by the user with the given user `id`. Mutually exclusive with `merge_user_username`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 17.0. | +| `merge_user_username` | string | No | Returns merge requests which have been merged by the user with the given `username`. Mutually exclusive with `merge_user_id`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 17.0. | | `milestone` | string | No | Returns merge requests for a specific milestone. `None` returns merge requests with no milestone. `Any` returns merge requests that have an assigned milestone. | | `my_reaction_emoji` | string | No | Returns merge requests reacted by the authenticated user by the given `emoji`. `None` returns issues not given a reaction. `Any` returns issues given at least one reaction. | | `non_archived` | boolean | No | Returns merge requests from non archived projects only. Default is `true`. | diff --git a/doc/user/project/merge_requests/index.md b/doc/user/project/merge_requests/index.md index 3c5fb5ea20a8f4..6781937bcdf562 100644 --- a/doc/user/project/merge_requests/index.md +++ b/doc/user/project/merge_requests/index.md @@ -83,7 +83,8 @@ or: ## Filter the list of merge requests > - Filtering by `source-branch` [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134555) in GitLab 16.6. -> - Filtering by `merged-by` [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 16.9. +> - Filtering by `merged-by` [introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140002) in GitLab 16.9. Available only when the feature flag `mr_merge_user_filter` is enabled. +> - Filtering by `merged-by` [generally available](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/142666) in GitLab 17.0. Feature flag `mr_merge_user_filter` removed. To filter the list of merge requests: -- GitLab