From 824f137035e570abf95d01f0aee8ee3fedd2b583 Mon Sep 17 00:00:00 2001 From: Julia Miocene Date: Thu, 22 May 2025 12:52:08 +0200 Subject: [PATCH 1/2] Add configuration options to the project creation form --- .../new_v2/components/blank_project_form.vue | 105 +++++++++++++++++- .../javascripts/projects/new_v2/index.js | 2 + .../multiple_choice_selector_item.vue | 8 +- app/views/projects/new.html.haml | 1 + locale/gitlab.pot | 3 + .../components/blank_project_form_spec.js | 24 +++- 6 files changed, 137 insertions(+), 6 deletions(-) diff --git a/app/assets/javascripts/projects/new_v2/components/blank_project_form.vue b/app/assets/javascripts/projects/new_v2/components/blank_project_form.vue index 5b856db72e9a46..067c6fa05beaa0 100644 --- a/app/assets/javascripts/projects/new_v2/components/blank_project_form.vue +++ b/app/assets/javascripts/projects/new_v2/components/blank_project_form.vue @@ -1,14 +1,28 @@ @@ -35,7 +63,80 @@ export default { :namespace="namespace" @onSelectNamespace="onSelectNamespace" /> - + + + + + + + + + + + {{ s__('ProjectsNew|Use SHA-256 for repository hashing algorithm') }} + + + + + diff --git a/app/assets/javascripts/projects/new_v2/index.js b/app/assets/javascripts/projects/new_v2/index.js index e4de98776d5919..0238f319073110 100644 --- a/app/assets/javascripts/projects/new_v2/index.js +++ b/app/assets/javascripts/projects/new_v2/index.js @@ -29,6 +29,7 @@ export function initNewProjectForm() { canSelectNamespace, canCreateProject, userProjectLimit, + displaySha256Repository, restrictedVisibilityLevels, defaultProjectVisibility, importHistoryPath, @@ -70,6 +71,7 @@ export function initNewProjectForm() { canSelectNamespace: parseBoolean(canSelectNamespace), canCreateProject: parseBoolean(canCreateProject), userProjectLimit: parseInt(userProjectLimit, 10), + displaySha256Repository: parseBoolean(displaySha256Repository), restrictedVisibilityLevels: JSON.parse(restrictedVisibilityLevels), defaultProjectVisibility, importHistoryPath, diff --git a/app/assets/javascripts/vue_shared/components/multiple_choice_selector_item.vue b/app/assets/javascripts/vue_shared/components/multiple_choice_selector_item.vue index 651b7b6f355d31..aeca0ca0e13210 100644 --- a/app/assets/javascripts/vue_shared/components/multiple_choice_selector_item.vue +++ b/app/assets/javascripts/vue_shared/components/multiple_choice_selector_item.vue @@ -53,9 +53,11 @@ export default { v-safe-html="disabledMessage" class="help-text !gl-text-warning" >

-

- {{ description }} -

+ +

+ {{ description }} +

+
diff --git a/app/views/projects/new.html.haml b/app/views/projects/new.html.haml index 71207981fdd7e3..ac7918fabfbeb3 100644 --- a/app/views/projects/new.html.haml +++ b/app/views/projects/new.html.haml @@ -24,6 +24,7 @@ can_select_namespace: current_user.can_select_namespace?.to_s, can_create_project: current_user.can_create_project?.to_s, user_project_limit: current_user.projects_limit, + display_sha256_repository: Feature.enabled?(:support_sha256_repositories, current_user), restricted_visibility_levels: restricted_visibility_levels, default_project_visibility: default_project_visibility, import_history_path: import_history_index_path, diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 73e0a4ffdab5bf..fb27d2ba807da6 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -49286,6 +49286,9 @@ msgstr "" msgid "ProjectsNew|Analyze your source code for known security vulnerabilities." msgstr "" +msgid "ProjectsNew|Analyze your source code for known security vulnerabilities. %{linkStart}Learn more.%{linkEnd}" +msgstr "" + msgid "ProjectsNew|Authenticate through GitHub" msgstr "" diff --git a/spec/frontend/projects/new_v2/components/blank_project_form_spec.js b/spec/frontend/projects/new_v2/components/blank_project_form_spec.js index fc77d2d6204846..513af51ce8f44d 100644 --- a/spec/frontend/projects/new_v2/components/blank_project_form_spec.js +++ b/spec/frontend/projects/new_v2/components/blank_project_form_spec.js @@ -17,12 +17,15 @@ describe('Blank Project Form', () => { }, }; - const createComponent = (props = {}) => { + const createComponent = ({ props = {}, provide = {} } = {}) => { wrapper = shallowMountExtended(BlankProjectForm, { propsData: { ...defaultProps, ...props, }, + provide: { + ...provide, + }, }); }; @@ -49,6 +52,25 @@ describe('Blank Project Form', () => { }); }); + describe('configuraqtion block', () => { + it('renders the block', () => { + expect(wrapper.findByTestId('configuration-form-group').exists()).toBe(true); + }); + + it('does not render SHA-256 option by default', () => { + expect(wrapper.findByTestId('initialize-with-sha-256-checkbox').exists()).toBe(false); + }); + + it('renders SHA-256 option when it is available', () => { + createComponent({ provide: { displaySha256Repository: true } }); + expect(wrapper.findByTestId('initialize-with-sha-256-checkbox').exists()).toBe(true); + }); + + it('check readme option by default', () => { + expect(wrapper.findByTestId('configuration-selector').attributes('checked')).toBe('readme'); + }); + }); + it('renders the option to Create Project as disabled', () => { expect(findCreateButton().text()).toBe('Create project'); expect(findCreateButton().props('disabled')).toBe(true); -- GitLab From c306d1e5f814ae9c572626629a49e47bc75f18ea Mon Sep 17 00:00:00 2001 From: Julia Miocene Date: Tue, 17 Jun 2025 15:08:33 +0200 Subject: [PATCH 2/2] Place a comma outside the link --- .../projects/new_v2/components/blank_project_form.vue | 2 +- locale/gitlab.pot | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/projects/new_v2/components/blank_project_form.vue b/app/assets/javascripts/projects/new_v2/components/blank_project_form.vue index 067c6fa05beaa0..3378b253374b32 100644 --- a/app/assets/javascripts/projects/new_v2/components/blank_project_form.vue +++ b/app/assets/javascripts/projects/new_v2/components/blank_project_form.vue @@ -101,7 +101,7 @@ export default { diff --git a/locale/gitlab.pot b/locale/gitlab.pot index fb27d2ba807da6..8ef2876e3bc52d 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -49286,7 +49286,7 @@ msgstr "" msgid "ProjectsNew|Analyze your source code for known security vulnerabilities." msgstr "" -msgid "ProjectsNew|Analyze your source code for known security vulnerabilities. %{linkStart}Learn more.%{linkEnd}" +msgid "ProjectsNew|Analyze your source code for known security vulnerabilities. %{linkStart}Learn more%{linkEnd}." msgstr "" msgid "ProjectsNew|Authenticate through GitHub" -- GitLab