From d1e8b5efc2b81c23940699e493baed6f547f69b9 Mon Sep 17 00:00:00 2001 From: Nataliia Radina <nradina@gitlab.com> Date: Tue, 9 Apr 2024 13:32:59 +0000 Subject: [PATCH] Add new FF for branch rules Changelog: changed --- .../settings/branch_rules/components/view/index.vue | 8 ++++---- .../projects/settings/repository/branch_rules/app.vue | 4 ++-- .../projects/settings/branch_rules_controller.rb | 1 + .../projects/settings/repository_controller.rb | 2 +- app/controllers/projects_controller.rb | 2 +- config/feature_flags/beta/edit_branch_rules.yml | 9 +++++++++ qa/qa/page/project/settings/branch_rules.rb | 2 +- .../3_create/repository/add_new_branch_rule_spec.rb | 2 +- .../settings/branch_rules/components/view/index_spec.js | 6 +++--- .../settings/repository/branch_rules/app_spec.js | 6 +++--- 10 files changed, 26 insertions(+), 16 deletions(-) create mode 100644 config/feature_flags/beta/edit_branch_rules.yml diff --git a/app/assets/javascripts/projects/settings/branch_rules/components/view/index.vue b/app/assets/javascripts/projects/settings/branch_rules/components/view/index.vue index 9a7bc3251512d..7b919952db8a6 100644 --- a/app/assets/javascripts/projects/settings/branch_rules/components/view/index.vue +++ b/app/assets/javascripts/projects/settings/branch_rules/components/view/index.vue @@ -239,7 +239,7 @@ export default { <div class="gl-display-flex gl-justify-content-space-between gl-align-items-center"> <h3 class="gl-mb-5">{{ $options.i18n.pageTitle }}</h3> <gl-button - v-if="glFeatures.addBranchRule && branchRule" + v-if="glFeatures.editBranchRules && branchRule" v-gl-modal="$options.deleteModalId" data-testid="delete-rule-button" category="secondary" @@ -255,7 +255,7 @@ export default { <div class="gl-display-flex gl-justify-content-space-between"> <strong>{{ $options.i18n.targetRule }}</strong> <gl-button - v-if="glFeatures.addBranchRule" + v-if="glFeatures.addBranchRule || glFeatures.editBranchRules" v-gl-modal="$options.editModalId" data-testid="edit-rule-button" size="small" @@ -377,7 +377,7 @@ export default { </template> <!-- EE end --> <gl-modal - v-if="glFeatures.addBranchRule" + v-if="glFeatures.editBranchRules" :ref="$options.deleteModalId" :modal-id="$options.deleteModalId" :title="$options.i18n.deleteRuleModalTitle" @@ -389,7 +389,7 @@ export default { </gl-modal> <branch-rule-modal - v-if="glFeatures.addBranchRule" + v-if="glFeatures.editBranchRules" :id="$options.editModalId" :ref="$options.editModalId" :title="$options.i18n.updateTargetRule" diff --git a/app/assets/javascripts/projects/settings/repository/branch_rules/app.vue b/app/assets/javascripts/projects/settings/repository/branch_rules/app.vue index e5bc8c4146b50..39ef18fc65d2f 100644 --- a/app/assets/javascripts/projects/settings/repository/branch_rules/app.vue +++ b/app/assets/javascripts/projects/settings/repository/branch_rules/app.vue @@ -147,7 +147,7 @@ export default { </div> </div> <gl-disclosure-dropdown - v-if="glFeatures.addBranchRule" + v-if="glFeatures.editBranchRules" :toggle-text="$options.i18n.addBranchRule" :items="addRuleItems" size="small" @@ -181,7 +181,7 @@ export default { </div> </ul> <branch-rule-modal - v-if="glFeatures.addBranchRule" + v-if="glFeatures.editBranchRules" :id="$options.modalId" :ref="$options.modalId" :title="$options.i18n.createBranchRule" diff --git a/app/controllers/projects/settings/branch_rules_controller.rb b/app/controllers/projects/settings/branch_rules_controller.rb index e03ca6526df9b..8ad9ad9d4cd81 100644 --- a/app/controllers/projects/settings/branch_rules_controller.rb +++ b/app/controllers/projects/settings/branch_rules_controller.rb @@ -7,6 +7,7 @@ class BranchRulesController < Projects::ApplicationController before_action do push_frontend_feature_flag(:add_branch_rule, @project) push_frontend_feature_flag(:approval_rules_drawer, @project) + push_frontend_feature_flag(:edit_branch_rules, @project) end feature_category :source_code_management diff --git a/app/controllers/projects/settings/repository_controller.rb b/app/controllers/projects/settings/repository_controller.rb index 6a10d603ad7be..2d7a3d698f03a 100644 --- a/app/controllers/projects/settings/repository_controller.rb +++ b/app/controllers/projects/settings/repository_controller.rb @@ -8,7 +8,7 @@ class RepositoryController < Projects::ApplicationController before_action :define_variables, only: [:create_deploy_token] before_action do - push_frontend_feature_flag(:add_branch_rule, @project) + push_frontend_feature_flag(:edit_branch_rules, @project) end feature_category :source_code_management, [:show, :cleanup, :update] diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index f0084b6ce6c08..1d02dad5abe6c 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -41,7 +41,7 @@ class ProjectsController < Projects::ApplicationController push_frontend_feature_flag(:remove_monitor_metrics, @project) push_frontend_feature_flag(:explain_code_chat, current_user) push_frontend_feature_flag(:issue_email_participants, @project) - push_frontend_feature_flag(:add_branch_rule, @project) + push_frontend_feature_flag(:edit_branch_rules, @project) # TODO: We need to remove the FF eventually when we rollout page_specific_styles push_frontend_feature_flag(:page_specific_styles, current_user) push_licensed_feature(:file_locks) if @project.present? && @project.licensed_feature_available?(:file_locks) diff --git a/config/feature_flags/beta/edit_branch_rules.yml b/config/feature_flags/beta/edit_branch_rules.yml new file mode 100644 index 0000000000000..a6b1f155f9c1b --- /dev/null +++ b/config/feature_flags/beta/edit_branch_rules.yml @@ -0,0 +1,9 @@ +--- +name: edit_branch_rules +feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/435948 +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140319 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/454501 +milestone: '16.11' +group: group::source code +type: beta +default_enabled: false diff --git a/qa/qa/page/project/settings/branch_rules.rb b/qa/qa/page/project/settings/branch_rules.rb index 401d75fd1ceda..a0ef5ad879790 100644 --- a/qa/qa/page/project/settings/branch_rules.rb +++ b/qa/qa/page/project/settings/branch_rules.rb @@ -14,7 +14,7 @@ class BranchRules < Page::Base element 'details-button' end - def click_add_branch_rule + def click_edit_branch_rules click_element('add-branch-rule-button') click_button('Create protected branch') end diff --git a/qa/qa/specs/features/browser_ui/3_create/repository/add_new_branch_rule_spec.rb b/qa/qa/specs/features/browser_ui/3_create/repository/add_new_branch_rule_spec.rb index 9a102fe02123f..e78447b636be6 100644 --- a/qa/qa/specs/features/browser_ui/3_create/repository/add_new_branch_rule_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/repository/add_new_branch_rule_spec.rb @@ -26,7 +26,7 @@ module QA Page::Project::Settings::Repository.perform(&:expand_branch_rules) - Page::Project::Settings::BranchRules.perform(&:click_add_branch_rule) + Page::Project::Settings::BranchRules.perform(&:click_edit_branch_rules) Page::Project::Settings::ProtectedBranches.perform do |settings| settings.select_branch(branch_name) diff --git a/spec/frontend/projects/settings/branch_rules/components/view/index_spec.js b/spec/frontend/projects/settings/branch_rules/components/view/index_spec.js index 2d469627e2889..46326ab6c8f14 100644 --- a/spec/frontend/projects/settings/branch_rules/components/view/index_spec.js +++ b/spec/frontend/projects/settings/branch_rules/components/view/index_spec.js @@ -76,7 +76,7 @@ describe('View branch rules', () => { const errorHandler = jest.fn().mockRejectedValue('error'); const createComponent = async ( - glFeatures = { addBranchRule: true }, + glFeatures = { editBranchRules: true }, mockResponse, deleteMutationHandler = deleteBranchRuleSuccessHandler, editMutationHandler = editBranchRuleSuccessHandler, @@ -207,7 +207,7 @@ describe('View branch rules', () => { }); it('if error happens it shows an alert', async () => { - await createComponent({ addBranchRule: true }, branchProtectionsMockResponse, errorHandler); + await createComponent({ editBranchRules: true }, branchProtectionsMockResponse, errorHandler); findDeleteRuleModal().vm.$emit('ok'); await nextTick(); await waitForPromises(); @@ -313,7 +313,7 @@ describe('View branch rules', () => { }); describe('When add branch rules is FF disabled', () => { - beforeEach(() => createComponent({ addBranchRule: false })); + beforeEach(() => createComponent({ editBranchRule: false })); it('does not render delete rule button and modal when ff is disabled', () => { expect(findDeleteRuleButton().exists()).toBe(false); expect(findDeleteRuleModal().exists()).toBe(false); diff --git a/spec/frontend/projects/settings/repository/branch_rules/app_spec.js b/spec/frontend/projects/settings/repository/branch_rules/app_spec.js index 89bc348b48ddf..16f4ee1e3d621 100644 --- a/spec/frontend/projects/settings/repository/branch_rules/app_spec.js +++ b/spec/frontend/projects/settings/repository/branch_rules/app_spec.js @@ -46,7 +46,7 @@ describe('Branch rules app', () => { .mockResolvedValue(protectableBranchesMockResponse); const createComponent = async ({ - glFeatures = { addBranchRule: true }, + glFeatures = { editBranchRules: true }, queryHandler = branchRulesQuerySuccessHandler, mutationHandler = addRuleMutationSuccessHandler, } = {}) => { @@ -157,9 +157,9 @@ describe('Branch rules app', () => { }); }); - describe('Add branch rule when addBranchRule FF disabled', () => { + describe('Add branch rule when editBranchRule FF disabled', () => { beforeEach(() => { - createComponent({ glFeatures: { addBranchRule: false } }); + createComponent({ glFeatures: { editBranchRule: false } }); }); it('renders an Add branch rule button', () => { expect(findAddBranchRuleButton().exists()).toBe(true); -- GitLab