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|Allows you to immediately clone this project’s repository. Skip this if you plan to push up an existing repository.',
+ )
+ }}
+
+
+
+
+
+
+
+
+ {{ content }}
+
+
+
+
+
+
+
+ {{ 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);