diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-10-14 21:06:30 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-10-14 21:06:30 +0000 |
commit | 565fa11a26c6824b1c6072d2dc5459979345ee57 (patch) | |
tree | 2668b631d925341e121c06b7b77cfe12954a015a /app | |
parent | 8c30d396c5a789080345303330069981aa06e4af (diff) | |
download | gitlab-ce-565fa11a26c6824b1c6072d2dc5459979345ee57.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
18 files changed, 305 insertions, 117 deletions
diff --git a/app/assets/javascripts/boards/components/boards_selector.vue b/app/assets/javascripts/boards/components/boards_selector.vue index 0484c88c587..334c162954e 100644 --- a/app/assets/javascripts/boards/components/boards_selector.vue +++ b/app/assets/javascripts/boards/components/boards_selector.vue @@ -316,6 +316,7 @@ export default { <gl-dropdown-item v-if="showDelete" class="text-danger" + data-qa-selector="delete_board_button" @click.prevent="showPage('delete')" > {{ s__('IssueBoards|Delete board') }} diff --git a/app/assets/javascripts/create_cluster/eks_cluster/components/create_eks_cluster.vue b/app/assets/javascripts/create_cluster/eks_cluster/components/create_eks_cluster.vue index ce2e4b883e4..b865c9deb72 100644 --- a/app/assets/javascripts/create_cluster/eks_cluster/components/create_eks_cluster.vue +++ b/app/assets/javascripts/create_cluster/eks_cluster/components/create_eks_cluster.vue @@ -7,8 +7,16 @@ export default { ServiceCredentialsForm, EksClusterConfigurationForm, }, + props: { + gitlabManagedClusterHelpPath: { + type: String, + required: true, + }, + }, }; </script> <template> - <eks-cluster-configuration-form /> + <eks-cluster-configuration-form + :gitlab-managed-cluster-help-path="gitlabManagedClusterHelpPath" + /> </template> diff --git a/app/assets/javascripts/create_cluster/eks_cluster/components/eks_cluster_configuration_form.vue b/app/assets/javascripts/create_cluster/eks_cluster/components/eks_cluster_configuration_form.vue index 94a446f1721..d451516dd35 100644 --- a/app/assets/javascripts/create_cluster/eks_cluster/components/eks_cluster_configuration_form.vue +++ b/app/assets/javascripts/create_cluster/eks_cluster/components/eks_cluster_configuration_form.vue @@ -1,9 +1,11 @@ <script> import { createNamespacedHelpers, mapState, mapActions } from 'vuex'; import { sprintf, s__ } from '~/locale'; +import _ from 'underscore'; +import { GlFormInput, GlFormCheckbox } from '@gitlab/ui'; import ClusterFormDropdown from './cluster_form_dropdown.vue'; import RegionDropdown from './region_dropdown.vue'; -import SecurityGroupDropdown from './security_group_dropdown.vue'; +import { KUBERNETES_VERSIONS } from '../constants'; const { mapState: mapRolesState, mapActions: mapRolesActions } = createNamespacedHelpers('roles'); const { mapState: mapRegionsState, mapActions: mapRegionsActions } = createNamespacedHelpers( @@ -16,20 +18,36 @@ const { mapState: mapVpcsState, mapActions: mapVpcActions } = createNamespacedHe const { mapState: mapSubnetsState, mapActions: mapSubnetActions } = createNamespacedHelpers( 'subnets', ); +const { + mapState: mapSecurityGroupsState, + mapActions: mapSecurityGroupsActions, +} = createNamespacedHelpers('securityGroups'); export default { components: { ClusterFormDropdown, RegionDropdown, - SecurityGroupDropdown, + GlFormInput, + GlFormCheckbox, + }, + props: { + gitlabManagedClusterHelpPath: { + type: String, + required: true, + }, }, computed: { ...mapState([ + 'clusterName', + 'environmentScope', + 'kubernetesVersion', 'selectedRegion', 'selectedKeyPair', 'selectedVpc', 'selectedSubnet', 'selectedRole', + 'selectedSecurityGroup', + 'gitlabManagedCluster', ]), ...mapRolesState({ roles: 'items', @@ -56,6 +74,14 @@ export default { isLoadingSubnets: 'isLoadingItems', loadingSubnetsError: 'loadingItemsError', }), + ...mapSecurityGroupsState({ + securityGroups: 'items', + isLoadingSecurityGroups: 'isLoadingItems', + loadingSecurityGroupsError: 'loadingItemsError', + }), + kubernetesVersions() { + return KUBERNETES_VERSIONS; + }, vpcDropdownDisabled() { return !this.selectedRegion; }, @@ -65,6 +91,9 @@ export default { subnetDropdownDisabled() { return !this.selectedVpc; }, + securityGroupDropdownDisabled() { + return !this.selectedVpc; + }, roleDropdownHelpText() { return sprintf( s__( @@ -117,18 +146,57 @@ export default { false, ); }, + securityGroupDropdownHelpText() { + return sprintf( + s__( + 'ClusterIntegration|Choose the %{startLink}security groups%{endLink} to apply to the EKS-managed Elastic Network Interfaces that are created in your worker node subnets.', + ), + { + startLink: + '<a href="https://console.aws.amazon.com/vpc/home?#securityGroups" target="_blank" rel="noopener noreferrer">', + endLink: '</a>', + }, + false, + ); + }, + gitlabManagedHelpText() { + const escapedUrl = _.escape(this.gitlabManagedClusterHelpPath); + + return sprintf( + s__( + 'ClusterIntegration|Allow GitLab to manage namespace and service accounts for this cluster. %{startLink}More information%{endLink}', + ), + { + startLink: `<a href="${escapedUrl}" target="_blank" rel="noopener noreferrer">`, + endLink: '</a>', + }, + false, + ); + }, }, mounted() { this.fetchRegions(); this.fetchRoles(); }, methods: { - ...mapActions(['setRegion', 'setVpc', 'setSubnet', 'setRole', 'setKeyPair']), + ...mapActions([ + 'setClusterName', + 'setEnvironmentScope', + 'setKubernetesVersion', + 'setRegion', + 'setVpc', + 'setSubnet', + 'setRole', + 'setKeyPair', + 'setSecurityGroup', + 'setGitlabManagedCluster', + ]), ...mapRegionsActions({ fetchRegions: 'fetchItems' }), ...mapVpcActions({ fetchVpcs: 'fetchItems' }), ...mapSubnetActions({ fetchSubnets: 'fetchItems' }), ...mapRolesActions({ fetchRoles: 'fetchItems' }), ...mapKeyPairsActions({ fetchKeyPairs: 'fetchItems' }), + ...mapSecurityGroupsActions({ fetchSecurityGroups: 'fetchItems' }), setRegionAndFetchVpcsAndKeyPairs(region) { this.setRegion({ region }); this.fetchVpcs({ region }); @@ -137,6 +205,7 @@ export default { setVpcAndFetchSubnets(vpc) { this.setVpc({ vpc }); this.fetchSubnets({ vpc }); + this.fetchSecurityGroups({ vpc }); }, }, }; @@ -144,6 +213,40 @@ export default { <template> <form name="eks-cluster-configuration-form"> <div class="form-group"> + <label class="label-bold" for="eks-cluster-name">{{ + s__('ClusterIntegration|Kubernetes cluster name') + }}</label> + <gl-form-input + id="eks-cluster-name" + :value="clusterName" + @input="setClusterName({ clusterName: $event })" + /> + </div> + <div class="form-group"> + <label class="label-bold" for="eks-environment-scope">{{ + s__('ClusterIntegration|Environment scope') + }}</label> + <gl-form-input + id="eks-environment-scope" + :value="environmentScope" + @input="setEnvironmentScope({ environmentScope: $event })" + /> + </div> + <div class="form-group"> + <label class="label-bold" for="eks-kubernetes-version">{{ + s__('ClusterIntegration|Kubernetes version') + }}</label> + <cluster-form-dropdown + field-id="eks-kubernetes-version" + field-name="eks-kubernetes-version" + :value="kubernetesVersion" + :items="kubernetesVersions" + :empty-text="s__('ClusterIntegration|Kubernetes version not found')" + @input="setKubernetesVersion({ kubernetesVersion: $event })" + /> + <p class="form-text text-muted" v-html="roleDropdownHelpText"></p> + </div> + <div class="form-group"> <label class="label-bold" for="eks-role">{{ s__('ClusterIntegration|Role name') }}</label> <cluster-form-dropdown field-id="eks-role" @@ -233,5 +336,37 @@ export default { /> <p class="form-text text-muted" v-html="subnetDropdownHelpText"></p> </div> + <div class="form-group"> + <label class="label-bold" for="eks-security-group">{{ + s__('ClusterIntegration|Security groups') + }}</label> + <cluster-form-dropdown + field-id="eks-security-group" + field-name="eks-security-group" + :input="selectedSecurityGroup" + :items="securityGroups" + :loading="isLoadingSecurityGroups" + :disabled="securityGroupDropdownDisabled" + :disabled-text="s__('ClusterIntegration|Select a VPC to choose a security group')" + :loading-text="s__('ClusterIntegration|Loading security groups')" + :placeholder="s__('ClusterIntergation|Select a security group')" + :search-field-placeholder="s__('ClusterIntegration|Search security groups')" + :empty-text="s__('ClusterIntegration|No security group found')" + :has-errors="Boolean(loadingSecurityGroupsError)" + :error-message=" + s__('ClusterIntegration|Could not load security groups for the selected VPC') + " + @input="setSecurityGroup({ securityGroup: $event })" + /> + <p class="form-text text-muted" v-html="securityGroupDropdownHelpText"></p> + </div> + <div class="form-group"> + <gl-form-checkbox + :checked="gitlabManagedCluster" + @input="setGitlabManagedCluster({ gitlabManagedCluster: $event })" + >{{ s__('ClusterIntegration|GitLab-managed cluster') }}</gl-form-checkbox + > + <p class="form-text text-muted" v-html="gitlabManagedHelpText"></p> + </div> </form> </template> diff --git a/app/assets/javascripts/create_cluster/eks_cluster/components/security_group_dropdown.vue b/app/assets/javascripts/create_cluster/eks_cluster/components/security_group_dropdown.vue deleted file mode 100644 index e69de29bb2d..00000000000 --- a/app/assets/javascripts/create_cluster/eks_cluster/components/security_group_dropdown.vue +++ /dev/null diff --git a/app/assets/javascripts/create_cluster/eks_cluster/constants.js b/app/assets/javascripts/create_cluster/eks_cluster/constants.js new file mode 100644 index 00000000000..339642f991e --- /dev/null +++ b/app/assets/javascripts/create_cluster/eks_cluster/constants.js @@ -0,0 +1,7 @@ +// eslint-disable-next-line import/prefer-default-export +export const KUBERNETES_VERSIONS = [ + { name: '1.14', value: '1.14' }, + { name: '1.13', value: '1.13' }, + { name: '1.12', value: '1.12' }, + { name: '1.11', value: '1.11' }, +]; diff --git a/app/assets/javascripts/create_cluster/eks_cluster/index.js b/app/assets/javascripts/create_cluster/eks_cluster/index.js index 9365fc41f4c..77454a2bc00 100644 --- a/app/assets/javascripts/create_cluster/eks_cluster/index.js +++ b/app/assets/javascripts/create_cluster/eks_cluster/index.js @@ -12,7 +12,18 @@ export default () => components: { CreateEksCluster, }, + data() { + const { gitlabManagedClusterHelpPath } = document.querySelector(this.$options.el).dataset; + + return { + gitlabManagedClusterHelpPath, + }; + }, render(createElement) { - return createElement('create-eks-cluster'); + return createElement('create-eks-cluster', { + props: { + gitlabManagedClusterHelpPath: this.gitlabManagedClusterHelpPath, + }, + }); }, }); diff --git a/app/assets/javascripts/create_cluster/eks_cluster/services/aws_services_facade.js b/app/assets/javascripts/create_cluster/eks_cluster/services/aws_services_facade.js index 98ad33d6651..d982e4db4c1 100644 --- a/app/assets/javascripts/create_cluster/eks_cluster/services/aws_services_facade.js +++ b/app/assets/javascripts/create_cluster/eks_cluster/services/aws_services_facade.js @@ -1,96 +1,84 @@ import EC2 from 'aws-sdk/clients/ec2'; import IAM from 'aws-sdk/clients/iam'; -export const fetchRoles = () => - new Promise((resolve, reject) => { - const iam = new IAM(); - - iam - .listRoles() - .on('success', ({ data: { Roles: roles } }) => { - const transformedRoles = roles.map(({ RoleName: name }) => ({ name })); - - resolve(transformedRoles); - }) - .on('error', error => { - reject(error); - }) - .send(); - }); - -export const fetchKeyPairs = () => - new Promise((resolve, reject) => { - const ec2 = new EC2(); - - ec2 - .describeKeyPairs() - .on('success', ({ data: { KeyPairs: keyPairs } }) => { - const transformedKeyPairs = keyPairs.map(({ RegionName: name }) => ({ name })); - - resolve(transformedKeyPairs); - }) - .on('error', error => { - reject(error); - }) - .send(); - }); - -export const fetchRegions = () => - new Promise((resolve, reject) => { - const ec2 = new EC2(); - - ec2 - .describeRegions() - .on('success', ({ data: { Regions: regions } }) => { - const transformedRegions = regions.map(({ RegionName: name }) => ({ name })); - - resolve(transformedRegions); - }) - .on('error', error => { - reject(error); - }) - .send(); - }); - -export const fetchVpcs = () => - new Promise((resolve, reject) => { - const ec2 = new EC2(); - - ec2 - .describeVpcs() - .on('success', ({ data: { Vpcs: vpcs } }) => { - const transformedVpcs = vpcs.map(({ VpcId: id }) => ({ id, name: id })); - - resolve(transformedVpcs); - }) - .on('error', error => { - reject(error); - }) - .send(); - }); - -export const fetchSubnets = ({ vpc }) => - new Promise((resolve, reject) => { - const ec2 = new EC2(); - - ec2 - .describeSubnets({ - Filters: [ - { - Name: 'vpc-id', - Values: [vpc.id], - }, - ], - }) - .on('success', ({ data: { Subnets: subnets } }) => { - const transformedSubnets = subnets.map(({ SubnetId: id }) => ({ id, name: id })); - - resolve(transformedSubnets); - }) - .on('error', error => { - reject(error); - }) - .send(); - }); +export const fetchRoles = () => { + const iam = new IAM(); + + return iam + .listRoles() + .promise() + .then(({ Roles: roles }) => roles.map(({ RoleName: name }) => ({ name }))); +}; + +export const fetchKeyPairs = () => { + const ec2 = new EC2(); + + return ec2 + .describeKeyPairs() + .promise() + .then(({ KeyPairs: keyPairs }) => keyPairs.map(({ RegionName: name }) => ({ name }))); +}; + +export const fetchRegions = () => { + const ec2 = new EC2(); + + return ec2 + .describeRegions() + .promise() + .then(({ Regions: regions }) => + regions.map(({ RegionName: name }) => ({ + name, + value: name, + })), + ); +}; + +export const fetchVpcs = () => { + const ec2 = new EC2(); + + return ec2 + .describeVpcs() + .promise() + .then(({ Vpcs: vpcs }) => + vpcs.map(({ VpcId: id }) => ({ + value: id, + name: id, + })), + ); +}; + +export const fetchSubnets = ({ vpc }) => { + const ec2 = new EC2(); + + return ec2 + .describeSubnets({ + Filters: [ + { + Name: 'vpc-id', + Values: [vpc], + }, + ], + }) + .promise() + .then(({ Subnets: subnets }) => subnets.map(({ SubnetId: id }) => ({ id, name: id }))); +}; + +export const fetchSecurityGroups = ({ vpc }) => { + const ec2 = new EC2(); + + return ec2 + .describeSecurityGroups({ + Filters: [ + { + Name: 'vpc-id', + Values: [vpc], + }, + ], + }) + .promise() + .then(({ SecurityGroups: securityGroups }) => + securityGroups.map(({ GroupName: name, GroupId: value }) => ({ name, value })), + ); +}; export default () => {}; diff --git a/app/assets/javascripts/create_cluster/eks_cluster/store/actions.js b/app/assets/javascripts/create_cluster/eks_cluster/store/actions.js index f2abc121f57..917c8da6c3e 100644 --- a/app/assets/javascripts/create_cluster/eks_cluster/store/actions.js +++ b/app/assets/javascripts/create_cluster/eks_cluster/store/actions.js @@ -1,5 +1,17 @@ import * as types from './mutation_types'; +export const setClusterName = ({ commit }, payload) => { + commit(types.SET_CLUSTER_NAME, payload); +}; + +export const setEnvironmentScope = ({ commit }, payload) => { + commit(types.SET_ENVIRONMENT_SCOPE, payload); +}; + +export const setKubernetesVersion = ({ commit }, payload) => { + commit(types.SET_KUBERNETES_VERSION, payload); +}; + export const setRegion = ({ commit }, payload) => { commit(types.SET_REGION, payload); }; @@ -20,4 +32,12 @@ export const setRole = ({ commit }, payload) => { commit(types.SET_ROLE, payload); }; +export const setSecurityGroup = ({ commit }, payload) => { + commit(types.SET_SECURITY_GROUP, payload); +}; + +export const setGitlabManagedCluster = ({ commit }, payload) => { + commit(types.SET_GITLAB_MANAGED_CLUSTER, payload); +}; + export default () => {}; diff --git a/app/assets/javascripts/create_cluster/eks_cluster/store/index.js b/app/assets/javascripts/create_cluster/eks_cluster/store/index.js index 584cd267d8c..d575deafd19 100644 --- a/app/assets/javascripts/create_cluster/eks_cluster/store/index.js +++ b/app/assets/javascripts/create_cluster/eks_cluster/store/index.js @@ -35,6 +35,10 @@ const createStore = () => namespaced: true, ...clusterDropdownStore(awsServices.fetchSubnets), }, + securityGroups: { + namespaced: true, + ...clusterDropdownStore(awsServices.fetchSecurityGroups), + }, }, }); diff --git a/app/assets/javascripts/create_cluster/eks_cluster/store/mutation_types.js b/app/assets/javascripts/create_cluster/eks_cluster/store/mutation_types.js index b9af9c1d5a4..82eb512ac07 100644 --- a/app/assets/javascripts/create_cluster/eks_cluster/store/mutation_types.js +++ b/app/assets/javascripts/create_cluster/eks_cluster/store/mutation_types.js @@ -1,5 +1,10 @@ +export const SET_CLUSTER_NAME = 'SET_CLUSTER_NAME'; +export const SET_ENVIRONMENT_SCOPE = 'SET_ENVIRONMENT_SCOPE'; +export const SET_KUBERNETES_VERSION = 'SET_KUBERNETES_VERSION'; export const SET_REGION = 'SET_REGION'; export const SET_VPC = 'SET_VPC'; export const SET_KEY_PAIR = 'SET_KEY_PAIR'; export const SET_SUBNET = 'SET_SUBNET'; export const SET_ROLE = 'SET_ROLE'; +export const SET_SECURITY_GROUP = 'SET_SECURITY_GROUP'; +export const SET_GITLAB_MANAGED_CLUSTER = 'SET_GITLAB_MANAGED_CLUSTER'; diff --git a/app/assets/javascripts/create_cluster/eks_cluster/store/mutations.js b/app/assets/javascripts/create_cluster/eks_cluster/store/mutations.js index 748a78e0b1e..79950ac7dce 100644 --- a/app/assets/javascripts/create_cluster/eks_cluster/store/mutations.js +++ b/app/assets/javascripts/create_cluster/eks_cluster/store/mutations.js @@ -1,6 +1,15 @@ import * as types from './mutation_types'; export default { + [types.SET_CLUSTER_NAME](state, { clusterName }) { + state.clusterName = clusterName; + }, + [types.SET_ENVIRONMENT_SCOPE](state, { environmentScope }) { + state.environmentScope = environmentScope; + }, + [types.SET_KUBERNETES_VERSION](state, { kubernetesVersion }) { + state.kubernetesVersion = kubernetesVersion; + }, [types.SET_REGION](state, { region }) { state.selectedRegion = region; }, @@ -16,4 +25,10 @@ export default { [types.SET_ROLE](state, { role }) { state.selectedRole = role; }, + [types.SET_SECURITY_GROUP](state, { securityGroup }) { + state.selectedSecurityGroup = securityGroup; + }, + [types.SET_GITLAB_MANAGED_CLUSTER](state, { gitlabManagedCluster }) { + state.gitlabManagedCluster = gitlabManagedCluster; + }, }; diff --git a/app/assets/javascripts/create_cluster/eks_cluster/store/state.js b/app/assets/javascripts/create_cluster/eks_cluster/store/state.js index 6ed174d247b..bf74213bdce 100644 --- a/app/assets/javascripts/create_cluster/eks_cluster/store/state.js +++ b/app/assets/javascripts/create_cluster/eks_cluster/store/state.js @@ -1,11 +1,18 @@ +import { KUBERNETES_VERSIONS } from '../constants'; + export default () => ({ isValidatingCredentials: false, validCredentials: false, + clusterName: '', + environmentScope: '*', + kubernetesVersion: [KUBERNETES_VERSIONS].value, selectedRegion: '', selectedRole: '', selectedKeyPair: '', selectedVpc: '', selectedSubnet: '', selectedSecurityGroup: '', + + gitlabManagedCluster: true, }); diff --git a/app/assets/javascripts/jobs/components/log/line_number.vue b/app/assets/javascripts/jobs/components/log/line_number.vue index 6c76bef13d3..08c4a7ed330 100644 --- a/app/assets/javascripts/jobs/components/log/line_number.vue +++ b/app/assets/javascripts/jobs/components/log/line_number.vue @@ -48,7 +48,7 @@ export default { <template> <gl-link :id="lineNumberId" - class="d-inline-block text-right position-absolute line-number" + class="d-inline-block text-right line-number" :href="buildLineNumber" >{{ parsedLineNumber }}</gl-link > diff --git a/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js b/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js index 99d32ffe424..f51d0fa4f52 100644 --- a/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js +++ b/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js @@ -169,6 +169,7 @@ export default class MergeRequestStore { this.mergeRequestPipelinesHelpPath = data.merge_request_pipelines_docs_path; this.conflictsDocsPath = data.conflicts_docs_path; this.ciEnvironmentsStatusPath = data.ci_environments_status_path; + this.securityApprovalsHelpPagePath = data.security_approvals_help_page_path; } get isNothingToMergeState() { diff --git a/app/assets/stylesheets/framework/job_log.scss b/app/assets/stylesheets/framework/job_log.scss index ba163aa46ae..f26c475c3c1 100644 --- a/app/assets/stylesheets/framework/job_log.scss +++ b/app/assets/stylesheets/framework/job_log.scss @@ -9,6 +9,7 @@ border-radius: $border-radius-small; min-height: 42px; background-color: $builds-trace-bg; + white-space: pre-wrap; } .log-line { @@ -17,7 +18,7 @@ } .line-number { - color: $gl-text-color-inverted; + color: $gl-gray-500; padding: 0 $gl-padding-8; min-width: $job-line-number-width; margin-left: -$job-line-number-margin; @@ -27,7 +28,7 @@ &:active, &:visited { text-decoration: underline; - color: $gl-text-color-inverted; + color: $gl-gray-500; } } diff --git a/app/helpers/releases_helper.rb b/app/helpers/releases_helper.rb index 4d9fe345edf..3186bbd9322 100644 --- a/app/helpers/releases_helper.rb +++ b/app/helpers/releases_helper.rb @@ -12,27 +12,11 @@ module ReleasesHelper help_page_path(DOCUMENTATION_PATH) end - def url_for_merge_requests - project_merge_requests_url(@project, params_for_issue_and_mr_paths) - end - - def url_for_issues - project_issues_url(@project, params_for_issue_and_mr_paths) - end - def data_for_releases_page { project_id: @project.id, illustration_path: illustration, - documentation_path: help_page, - merge_requests_url: url_for_merge_requests, - issues_url: url_for_issues + documentation_path: help_page } end - - private - - def params_for_issue_and_mr_paths - { scope: 'all', state: 'opened' } - end end diff --git a/app/views/clusters/clusters/eks/_index.html.haml b/app/views/clusters/clusters/eks/_index.html.haml index ca8e9ba527a..0e9334948ab 100644 --- a/app/views/clusters/clusters/eks/_index.html.haml +++ b/app/views/clusters/clusters/eks/_index.html.haml @@ -1 +1 @@ -.js-create-eks-cluster-form-container +.js-create-eks-cluster-form-container{ data: { 'gitlab-managed-cluster-help-path' => help_page_path('user/project/clusters/index.md', anchor: 'gitlab-managed-clusters') } } diff --git a/app/views/projects/merge_requests/show.html.haml b/app/views/projects/merge_requests/show.html.haml index da90c41e2f5..dee6bc8bae4 100644 --- a/app/views/projects/merge_requests/show.html.haml +++ b/app/views/projects/merge_requests/show.html.haml @@ -24,6 +24,7 @@ window.gl.mrWidgetData.squash_before_merge_help_path = '#{help_page_path("user/project/merge_requests/squash_and_merge")}'; window.gl.mrWidgetData.troubleshooting_docs_path = '#{help_page_path('user/project/merge_requests/index.md', anchor: 'troubleshooting')}'; + window.gl.mrWidgetData.security_approvals_help_page_path = '#{help_page_path('user/application_security/index.html', anchor: 'security-approvals-in-merge-requests-ultimate')}'; #js-vue-mr-widget.mr-widget |