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 5b856db72e9a46b98720321c658dac6c09cab15e..3378b253374b320e3721f559578f2afc5cf379b6 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 e4de98776d5919f2e4994365d43cc125eb1af73c..0238f3190731102396137b605856906e92de8096 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 651b7b6f355d31f21fc47f838e802d0e68f4a445..aeca0ca0e132107092e193c4831b580d9c533ab4 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 71207981fdd7e35419a34f40c983dae8a42221ab..ac7918fabfbeb3eb7be99c6cf51313bc95cec45f 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 73e0a4ffdab5bf572f4839d94f604d633193627a..8ef2876e3bc52dc81837004cd83c5fa02889e9be 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 fc77d2d620484609e68cbb88fa51addedad64f36..513af51ce8f44dbb7b240ebfc6de2526f4c717bb 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);