diff --git a/app/views/search/results/_filters.html.haml b/app/views/search/results/_filters.html.haml index 632d3dfd58cdd65c01fb98936e3c00f284ee923c..2356a6e1f2c84d3cf38e6f3b0711857e369230e1 100644 --- a/app/views/search/results/_filters.html.haml +++ b/app/views/search/results/_filters.html.haml @@ -1,7 +1,6 @@ .d-lg-flex.align-items-end #js-search-filter-by-state{ 'v-cloak': true } - - if Feature.enabled?(:search_filter_by_confidential, @group) - #js-search-filter-by-confidential{ 'v-cloak': true } + #js-search-filter-by-confidential{ 'v-cloak': true } - if %w(issues merge_requests).include?(@scope) %hr.gl-mt-4.gl-mb-4 diff --git a/changelogs/unreleased/244923-feature-flag-rollout-of-search_filter_by_confidential.yml b/changelogs/unreleased/244923-feature-flag-rollout-of-search_filter_by_confidential.yml new file mode 100644 index 0000000000000000000000000000000000000000..806a15dc992fdf87de4d7a2f40269c1721e7748f --- /dev/null +++ b/changelogs/unreleased/244923-feature-flag-rollout-of-search_filter_by_confidential.yml @@ -0,0 +1,5 @@ +--- +title: Remove search_filter_by_confidential Feature Flag +merge_request: 45819 +author: +type: changed diff --git a/config/feature_flags/development/search_filter_by_confidential.yml b/config/feature_flags/development/search_filter_by_confidential.yml deleted file mode 100644 index 0a952a4d25e4deca60c6e41c501c2c26070e9a6c..0000000000000000000000000000000000000000 --- a/config/feature_flags/development/search_filter_by_confidential.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- -name: search_filter_by_confidential -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/40793 -rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/244923 -group: group::global search -type: development -default_enabled: false \ No newline at end of file diff --git a/doc/api/search.md b/doc/api/search.md index bdf5bdd49244a96bc250b591f93e97e2bfd482c2..9eb9f93e5d086f54cd5b5543b3ea2379746d7fcf 100644 --- a/doc/api/search.md +++ b/doc/api/search.md @@ -7,7 +7,8 @@ type: reference, api # Search API -> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/41763) in GitLab 10.5. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/41763) in GitLab 10.5. +> - [Feature flag `search_filter_by_confidential` removed](https://gitlab.com/gitlab-org/gitlab/-/issues/244923) in GitLab 13.6. Every API call to search must be authenticated. @@ -24,7 +25,7 @@ GET /search | `scope` | string | yes | The scope to search in | | `search` | string | yes | The search query | | `state` | string | no | Filter by state. Issues and merge requests are supported; it is ignored for other scopes. | -| `confidential` | boolean | no | Filter by confidentiality. Issues scope is supported; it is ignored for other scopes. This parameter is behind a [feature flag (`search_filter_by_confidential`)](../administration/feature_flags.md). | +| `confidential` | boolean | no | Filter by confidentiality. Issues scope is supported; it is ignored for other scopes. | Search the expression within the specified scope. Currently these scopes are supported: projects, issues, merge_requests, milestones, snippet_titles, users. @@ -434,7 +435,7 @@ GET /groups/:id/search | `scope` | string | yes | The scope to search in | | `search` | string | yes | The search query | | `state` | string | no | Filter by state. Issues and merge requests are supported; it is ignored for other scopes. | -| `confidential` | boolean | no | Filter by confidentiality. Issues scope is supported; it is ignored for other scopes. This parameter is behind a [feature flag (`search_filter_by_confidential`)](../administration/feature_flags.md). | +| `confidential` | boolean | no | Filter by confidentiality. Issues scope is supported; it is ignored for other scopes. | Search the expression within the specified scope. Currently these scopes are supported: projects, issues, merge_requests, milestones, users. @@ -814,7 +815,7 @@ GET /projects/:id/search | `search` | string | yes | The search query | | `ref` | string | no | The name of a repository branch or tag to search on. The project's default branch is used by default. This is only applicable for scopes: commits, blobs, and wiki_blobs. | | `state` | string | no | Filter by state. Issues and merge requests are supported; it is ignored for other scopes. | -| `confidential` | boolean | no | Filter by confidentiality. Issues scope is supported; it is ignored for other scopes. This parameter is behind a [feature flag (`search_filter_by_confidential`)](../administration/feature_flags.md). | +| `confidential` | boolean | no | Filter by confidentiality. Issues scope is supported; it is ignored for other scopes. | Search the expression within the specified scope. Currently these scopes are supported: issues, merge_requests, milestones, notes, wiki_blobs, commits, blobs, users. diff --git a/ee/lib/elastic/latest/issue_class_proxy.rb b/ee/lib/elastic/latest/issue_class_proxy.rb index 57b716cfe805cc2efe6186739b059ba598c80253..281e23fac29540ce94e7ce0dd1402c660d6dc630 100644 --- a/ee/lib/elastic/latest/issue_class_proxy.rb +++ b/ee/lib/elastic/latest/issue_class_proxy.rb @@ -37,7 +37,7 @@ def confidentiality_filter(query_hash, options) current_user = options[:current_user] project_ids = options[:project_ids] - if [true, false].include?(options[:confidential]) && Feature.enabled?(:search_filter_by_confidential) + if [true, false].include?(options[:confidential]) query_hash[:query][:bool][:filter] << { term: { confidential: options[:confidential] } } end diff --git a/lib/gitlab/search_results.rb b/lib/gitlab/search_results.rb index b81264c5d0c7b68c91cb28914a1cf89cad9490f1..a7fc9e8194fc6e981884e9cfc53b8fab28f3db2e 100644 --- a/lib/gitlab/search_results.rb +++ b/lib/gitlab/search_results.rb @@ -219,7 +219,7 @@ def issuable_params params[:state] = filters[:state] if filters.key?(:state) - if [true, false].include?(filters[:confidential]) && Feature.enabled?(:search_filter_by_confidential) + if [true, false].include?(filters[:confidential]) params[:confidential] = filters[:confidential] end end diff --git a/spec/requests/api/search_spec.rb b/spec/requests/api/search_spec.rb index 05cfad9cc62ced1f5ac566ce6df50a3b4387c9e7..3bbc57a5c461b5001bc894de574456e5e1a77c60 100644 --- a/spec/requests/api/search_spec.rb +++ b/spec/requests/api/search_spec.rb @@ -151,7 +151,6 @@ context 'filter by confidentiality' do before do - stub_feature_flags(search_filter_by_confidential: true) create(:issue, project: project, author: user, title: 'awesome non-confidential issue') create(:issue, :confidential, project: project, author: user, title: 'awesome confidential issue') end diff --git a/spec/support/shared_examples/lib/gitlab/search_confidential_filter_shared_examples.rb b/spec/support/shared_examples/lib/gitlab/search_confidential_filter_shared_examples.rb index d0bef2ad730c0df585fee64430432328be1c8008..e70dfec80b13a59731bb4fad5292bbbbef18252d 100644 --- a/spec/support/shared_examples/lib/gitlab/search_confidential_filter_shared_examples.rb +++ b/spec/support/shared_examples/lib/gitlab/search_confidential_filter_shared_examples.rb @@ -4,66 +4,27 @@ context 'filter not provided (all behavior)' do let(:filters) { {} } - context 'when Feature search_filter_by_confidential enabled' do - it 'returns confidential and not confidential results', :aggregate_failures do - expect(results.objects('issues')).to include confidential_result - expect(results.objects('issues')).to include opened_result - end - end - - context 'when Feature search_filter_by_confidential not enabled' do - before do - stub_feature_flags(search_filter_by_confidential: false) - end - - it 'returns confidential and not confidential results', :aggregate_failures do - expect(results.objects('issues')).to include confidential_result - expect(results.objects('issues')).to include opened_result - end + it 'returns confidential and not confidential results', :aggregate_failures do + expect(results.objects('issues')).to include confidential_result + expect(results.objects('issues')).to include opened_result end end context 'confidential filter' do let(:filters) { { confidential: true } } - context 'when Feature search_filter_by_confidential enabled' do - it 'returns only confidential results', :aggregate_failures do - expect(results.objects('issues')).to include confidential_result - expect(results.objects('issues')).not_to include opened_result - end - end - - context 'when Feature search_filter_by_confidential not enabled' do - before do - stub_feature_flags(search_filter_by_confidential: false) - end - - it 'returns confidential and not confidential results', :aggregate_failures do - expect(results.objects('issues')).to include confidential_result - expect(results.objects('issues')).to include opened_result - end + it 'returns only confidential results', :aggregate_failures do + expect(results.objects('issues')).to include confidential_result + expect(results.objects('issues')).not_to include opened_result end end context 'not confidential filter' do let(:filters) { { confidential: false } } - context 'when Feature search_filter_by_confidential enabled' do - it 'returns not confidential results', :aggregate_failures do - expect(results.objects('issues')).not_to include confidential_result - expect(results.objects('issues')).to include opened_result - end - end - - context 'when Feature search_filter_by_confidential not enabled' do - before do - stub_feature_flags(search_filter_by_confidential: false) - end - - it 'returns confidential and not confidential results', :aggregate_failures do - expect(results.objects('issues')).to include confidential_result - expect(results.objects('issues')).to include opened_result - end + it 'returns not confidential results', :aggregate_failures do + expect(results.objects('issues')).not_to include confidential_result + expect(results.objects('issues')).to include opened_result end end end diff --git a/spec/views/search/_results.html.haml_spec.rb b/spec/views/search/_results.html.haml_spec.rb index 033b2304e3357ff39b7b3671ec8857a65e4f0746..58912eab51e0b16608dc8ef3de30b2bdabad5968 100644 --- a/spec/views/search/_results.html.haml_spec.rb +++ b/spec/views/search/_results.html.haml_spec.rb @@ -61,26 +61,10 @@ expect(rendered).to have_selector('#js-search-filter-by-state') end - context 'Feature search_filter_by_confidential' do - context 'when disabled' do - before do - stub_feature_flags(search_filter_by_confidential: false) - end - - it 'does not render the confidential drop down' do - render - - expect(rendered).not_to have_selector('#js-search-filter-by-confidential') - end - end - - context 'when enabled' do - it 'renders the confidential drop down' do - render - - expect(rendered).to have_selector('#js-search-filter-by-confidential') - end - end + it 'renders the confidential drop down' do + render + + expect(rendered).to have_selector('#js-search-filter-by-confidential') end end end