From 75d49fe13646e1e0d3b68233ac4a965c86853917 Mon Sep 17 00:00:00 2001 From: Thomas Randolph Date: Thu, 12 Dec 2024 17:41:11 -0700 Subject: [PATCH] Remove default on `group_saved_replies_flag feature flag Changelog: other --- doc/api/graphql/reference/index.md | 12 ++----- doc/user/profile/comment_templates.md | 2 +- ee/app/graphql/ee/types/group_type.rb | 12 +++---- ee/app/models/ee/group.rb | 2 +- .../beta/group_saved_replies_flag.yml | 9 ----- ee/spec/policies/group_policy_spec.rb | 8 ----- .../groups/saved_replies/create_spec.rb | 13 -------- .../groups/saved_replies/destroy_spec.rb | 13 -------- .../groups/saved_replies/update_spec.rb | 13 -------- .../api/graphql/groups/saved_replies_spec.rb | 13 -------- .../api/graphql/groups/saved_reply_spec.rb | 13 -------- .../comment_templates_controller_spec.rb | 33 ------------------- .../saved_replies/create_service_spec.rb | 11 ------- 13 files changed, 8 insertions(+), 146 deletions(-) delete mode 100644 ee/config/feature_flags/beta/group_saved_replies_flag.yml diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md index e5170124555cd6..315480d48939c0 100644 --- a/doc/api/graphql/reference/index.md +++ b/doc/api/graphql/reference/index.md @@ -25792,11 +25792,7 @@ four standard [pagination arguments](#pagination-arguments): ##### `Group.savedReplies` -Saved replies available to the group. Available only when feature flag `group_saved_replies_flag` is enabled. This field can only be resolved for one group in any single request. - -DETAILS: -**Introduced** in GitLab 16.10. -**Status**: Experiment. +Saved replies available to the group. This field can only be resolved for one group in any single request. Returns [`GroupSavedReplyConnection`](#groupsavedreplyconnection). @@ -25812,11 +25808,7 @@ four standard [pagination arguments](#pagination-arguments): ##### `Group.savedReply` -Saved reply in the group. Available only when feature flag `group_saved_replies_flag` is enabled. This field can only be resolved for one group in any single request. - -DETAILS: -**Introduced** in GitLab 16.10. -**Status**: Experiment. +Saved reply in the group. This field can only be resolved for one group in any single request. Returns [`GroupSavedReply`](#groupsavedreply). diff --git a/doc/user/profile/comment_templates.md b/doc/user/profile/comment_templates.md index 97ecd30735d5e6..0ad5ee18083de2 100644 --- a/doc/user/profile/comment_templates.md +++ b/doc/user/profile/comment_templates.md @@ -16,7 +16,7 @@ DETAILS: > - [Feature flag `saved_replies` removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/123363) in GitLab 16.6. > - Group-level saved replies [introduced](https://gitlab.com/groups/gitlab-org/-/epics/12669) in GitLab 16.11 [with a flag](../../administration/feature_flags.md) named `group_saved_replies_flag`. Disabled by default. > - Group-level saved replies [enabled](https://gitlab.com/gitlab-org/gitlab/-/issues/440817) on GitLab.com and self-managed in GitLab 16.11. -> - Group-level saved replies [generally available](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/148958) in GitLab 17.0. Feature flag `group_saved_replies_flag` removed. +> - Group-level saved replies [generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/504028) in GitLab 17.7. Feature flag `group_saved_replies_flag` removed. > - Project-level saved replies [introduced](https://gitlab.com/groups/gitlab-org/-/epics/12669) in GitLab 17.0 [with a flag](../../administration/feature_flags.md) named `project_saved_replies_flag`. Enabled by default. FLAG: diff --git a/ee/app/graphql/ee/types/group_type.rb b/ee/app/graphql/ee/types/group_type.rb index ecbc5bcd8e8079..f90363053befc5 100644 --- a/ee/app/graphql/ee/types/group_type.rb +++ b/ee/app/graphql/ee/types/group_type.rb @@ -276,17 +276,13 @@ module GroupType ::Types::Groups::SavedReplyType.connection_type, null: true, resolver: ::Resolvers::Groups::SavedRepliesResolver, - description: 'Saved replies available to the group. Available only when feature flag ' \ - '`group_saved_replies_flag` is enabled. This field can only be resolved ' \ - 'for one group in any single request.', - experiment: { milestone: '16.10' } + description: 'Saved replies available to the group. This field can only be resolved ' \ + 'for one group in any single request.' field :saved_reply, resolver: ::Resolvers::Groups::SavedReplyResolver, - description: 'Saved reply in the group. Available only when feature flag ' \ - '`group_saved_replies_flag` is enabled. This field can only ' \ - 'be resolved for one group in any single request.', - experiment: { milestone: '16.10' } + description: 'Saved reply in the group. This field can only ' \ + 'be resolved for one group in any single request.' field :value_stream_analytics, ::Types::Analytics::ValueStreamAnalyticsType, diff --git a/ee/app/models/ee/group.rb b/ee/app/models/ee/group.rb index cb2590e3495da7..ce0692fb6a7523 100644 --- a/ee/app/models/ee/group.rb +++ b/ee/app/models/ee/group.rb @@ -298,7 +298,7 @@ def epic_and_work_item_associations_unification_enabled? override :supports_saved_replies? def supports_saved_replies? - ::Feature.enabled?(:group_saved_replies_flag, self, type: :beta) && licensed_feature_available?(:group_saved_replies) + licensed_feature_available?(:group_saved_replies) end def licensed_ai_features_available? diff --git a/ee/config/feature_flags/beta/group_saved_replies_flag.yml b/ee/config/feature_flags/beta/group_saved_replies_flag.yml deleted file mode 100644 index d9f48cec311866..00000000000000 --- a/ee/config/feature_flags/beta/group_saved_replies_flag.yml +++ /dev/null @@ -1,9 +0,0 @@ ---- -name: group_saved_replies_flag -feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/330098 -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/143660 -rollout_issue_url: -milestone: '16.9' -group: group::code review -type: beta -default_enabled: true diff --git a/ee/spec/policies/group_policy_spec.rb b/ee/spec/policies/group_policy_spec.rb index 357fb500d0bc76..b42cdc217cef80 100644 --- a/ee/spec/policies/group_policy_spec.rb +++ b/ee/spec/policies/group_policy_spec.rb @@ -4067,14 +4067,6 @@ def create_member_role(member, abilities = member_role_abilities) context 'saved replies permissions' do let(:current_user) { owner } - context 'when group_saved_replies_flag feature flag is disabled' do - before do - stub_feature_flags(group_saved_replies_flag: false) - end - - it { is_expected.to be_disallowed(:read_saved_replies, :create_saved_replies, :update_saved_replies, :destroy_saved_replies) } - end - context 'when no license is present' do before do stub_licensed_features(group_saved_replies: false) diff --git a/ee/spec/requests/api/graphql/groups/saved_replies/create_spec.rb b/ee/spec/requests/api/graphql/groups/saved_replies/create_spec.rb index 550ffd50a0ea81..fc019fd15edd59 100644 --- a/ee/spec/requests/api/graphql/groups/saved_replies/create_spec.rb +++ b/ee/spec/requests/api/graphql/groups/saved_replies/create_spec.rb @@ -13,19 +13,6 @@ let(:mutation) { graphql_mutation(:group_saved_reply_create, input) } let(:mutation_response) { graphql_mutation_response(:group_saved_reply_create) } - context 'with group_saved_replies_flag disabled' do - before do - stub_feature_flags(group_saved_replies_flag: false) - stub_licensed_features(group_saved_replies: true) - end - - it 'returns null' do - post_graphql_mutation(mutation, current_user: current_user) - - expect(mutation_response).to be_nil - end - end - context 'when license is invalid' do before do stub_licensed_features(group_saved_replies: false) diff --git a/ee/spec/requests/api/graphql/groups/saved_replies/destroy_spec.rb b/ee/spec/requests/api/graphql/groups/saved_replies/destroy_spec.rb index e659f1caf74109..9613791cfb7d9f 100644 --- a/ee/spec/requests/api/graphql/groups/saved_replies/destroy_spec.rb +++ b/ee/spec/requests/api/graphql/groups/saved_replies/destroy_spec.rb @@ -14,19 +14,6 @@ let(:mutation) { graphql_mutation(:group_saved_reply_destroy, input) } let(:mutation_response) { graphql_mutation_response(:group_saved_reply_destroy) } - context 'with group_saved_replies_flag disabled' do - before do - stub_feature_flags(group_saved_replies_flag: false) - stub_licensed_features(group_saved_replies: true) - end - - it 'returns null' do - post_graphql_mutation(mutation, current_user: current_user) - - expect(mutation_response).to be_nil - end - end - context 'when license is invalid' do before do stub_licensed_features(group_saved_replies: false) diff --git a/ee/spec/requests/api/graphql/groups/saved_replies/update_spec.rb b/ee/spec/requests/api/graphql/groups/saved_replies/update_spec.rb index 13cc58a22e5286..9962161c8a2c16 100644 --- a/ee/spec/requests/api/graphql/groups/saved_replies/update_spec.rb +++ b/ee/spec/requests/api/graphql/groups/saved_replies/update_spec.rb @@ -14,19 +14,6 @@ let(:mutation) { graphql_mutation(:group_saved_reply_update, input) } let(:mutation_response) { graphql_mutation_response(:group_saved_reply_update) } - context 'with group_saved_replies_flag disabled' do - before do - stub_feature_flags(group_saved_replies_flag: false) - stub_licensed_features(group_saved_replies: true) - end - - it 'returns null' do - post_graphql_mutation(mutation, current_user: current_user) - - expect(mutation_response).to be_nil - end - end - context 'when license is invalid' do before do stub_licensed_features(group_saved_replies: false) diff --git a/ee/spec/requests/api/graphql/groups/saved_replies_spec.rb b/ee/spec/requests/api/graphql/groups/saved_replies_spec.rb index 31dbd115d9e08f..8163c9336b028b 100644 --- a/ee/spec/requests/api/graphql/groups/saved_replies_spec.rb +++ b/ee/spec/requests/api/graphql/groups/saved_replies_spec.rb @@ -51,19 +51,6 @@ end end - context 'when group_saved_replies_flag feature flag is disabled' do - before do - stub_feature_flags(group_saved_replies_flag: false) - stub_licensed_features(group_saved_replies: true) - end - - it 'returns nil' do - post_query - - expect(saved_reply_graphl_response).to be_nil - end - end - context 'when license is valid' do before do stub_licensed_features(group_saved_replies: true) diff --git a/ee/spec/requests/api/graphql/groups/saved_reply_spec.rb b/ee/spec/requests/api/graphql/groups/saved_reply_spec.rb index 03a10c666c3fad..027d548606f9ff 100644 --- a/ee/spec/requests/api/graphql/groups/saved_reply_spec.rb +++ b/ee/spec/requests/api/graphql/groups/saved_reply_spec.rb @@ -48,19 +48,6 @@ end end - context 'when group_saved_replies_flag feature flag is disabled' do - before do - stub_feature_flags(group_saved_replies_flag: false) - stub_licensed_features(group_saved_replies: true) - end - - it 'returns null' do - post_query - - expect(saved_reply_graphl_response).to be_nil - end - end - context 'when license is valid' do before do stub_licensed_features(group_saved_replies: true) diff --git a/ee/spec/requests/groups/comment_templates_controller_spec.rb b/ee/spec/requests/groups/comment_templates_controller_spec.rb index 46682b6021048e..7f27dd84f10efb 100644 --- a/ee/spec/requests/groups/comment_templates_controller_spec.rb +++ b/ee/spec/requests/groups/comment_templates_controller_spec.rb @@ -18,17 +18,6 @@ it { expect(response).to have_gitlab_http_status(:not_found) } end - context 'when group_saved_replies_flag feature flag is disabled' do - before do - stub_feature_flags(group_saved_replies_flag: false) - stub_licensed_features(group_saved_replies: true) - - get group_comment_templates_path(group) - end - - it { expect(response).to have_gitlab_http_status(:not_found) } - end - context 'when license is valid' do before do stub_licensed_features(group_saved_replies: true) @@ -61,17 +50,6 @@ it { expect(response).to have_gitlab_http_status(:not_found) } end - context 'when group_saved_replies_flag feature flag is disabled' do - before do - stub_feature_flags(group_saved_replies_flag: false) - stub_licensed_features(group_saved_replies: true) - - get group_comment_templates_path(group) - end - - it { expect(response).to have_gitlab_http_status(:not_found) } - end - context 'when license is valid' do before do stub_licensed_features(group_saved_replies: true) @@ -104,17 +82,6 @@ it { expect(response).to have_gitlab_http_status(:not_found) } end - context 'when group_saved_replies_flag feature flag is disabled' do - before do - stub_feature_flags(group_saved_replies_flag: false) - stub_licensed_features(group_saved_replies: true) - - get group_comment_templates_path(group) - end - - it { expect(response).to have_gitlab_http_status(:not_found) } - end - context 'when license is valid' do before do stub_licensed_features(group_saved_replies: true) diff --git a/ee/spec/services/saved_replies/create_service_spec.rb b/ee/spec/services/saved_replies/create_service_spec.rb index ba7e72cc0a7c3b..fd8b1ec0fbca0a 100644 --- a/ee/spec/services/saved_replies/create_service_spec.rb +++ b/ee/spec/services/saved_replies/create_service_spec.rb @@ -12,17 +12,6 @@ subject(:service) { described_class.new(object: group, name: name, content: content).execute } - context 'when feature flag is disabled' do - before do - stub_feature_flags(group_saved_replies_flag: false) - end - - it 'returns an error' do - expect(service[:status]).to eq(:error) - expect(service[:message]).to eq(_('You have insufficient permissions to create a saved reply')) - end - end - context 'when not licensed' do before do stub_licensed_features(group_saved_replies: false) -- GitLab