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 9a7bc3251512d4af38540f033d7480834b2d839f..7b919952db8a6a16bc4877bd61516541982a621d 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 e5bc8c4146b50445d38d11728f16899e04649353..39ef18fc65d2ff90741a667e9c075bbbb4f7be0d 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 e03ca6526df9b10197375dce512e64fb51583566..8ad9ad9d4cd8104fabea5932b8b7f745868c1ef3 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 6a10d603ad7bedf403860a2416dda918b5eeb0fe..2d7a3d698f03ac6469982f93ab1cec66c6da4b68 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 f0084b6ce6c0889693451835b8e1bde3ff09bfd1..1d02dad5abe6ce6d8b5ead33fe9bc01827588506 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 0000000000000000000000000000000000000000..a6b1f155f9c1b568948f773fe5f635baba654d47 --- /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 401d75fd1ceda0bbed5f67da1d41368c9351bfe7..a0ef5ad8797907a29967febfb0f1e06813563171 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 9a102fe02123ff3a967ae91008884d715f41179a..e78447b636be69150420caae8bb4318bb653ae28 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 2d469627e2889cbe5097f88df41151b04745ca19..46326ab6c8f14d95e6b3f04854215c40a3a00e19 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 89bc348b48ddfd4b900fe316093f9f6c1e89c0f6..16f4ee1e3d621f722a7f794851502026f2a5bc52 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);