diff --git a/.eslintrc.yml b/.eslintrc.yml index 1bb28aae21aa432cd6ed5a41133809d9c1988b6f..b0ed0343b5db72c599fba51399a2bf3c19467c43 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -117,6 +117,14 @@ rules: message: 'Migrate to GlSkeletonLoader, or import GlDeprecatedSkeletonLoading.' - selector: ImportSpecifier[imported.name='GlSafeHtmlDirective'] message: 'Use directive at ~/vue_shared/directives/safe_html.js instead.' + - selector: Literal[value=/docs.gitlab.+\u002Fee/] + message: 'No hard coded url, use `DOCS_URL_IN_EE_DIR` in `jh_else_ce/lib/utils/url_utility`' + - selector: Literal[value=/(?=.*docs.gitlab.*)(?=^(?!.*\u002Fee\b).*$)/] + message: 'No hard coded url, use `DOCS_URL` in `jh_else_ce/lib/utils/url_utility`' + - selector: Literal[value=/(?=.*about.gitlab.*)(?=^(?!.*\u002Fblog\b).*$)/] + message: 'No hard coded url, use `PROMO_URL` in `jh_else_ce/lib/utils/url_utility`' + - selector: TemplateLiteral[expressions.0.name=DOCS_URL] > TemplateElement[value.cooked=/\u002Fjh/] + message: '`/ee` or `/jh` path found in docs url, use `DOCS_URL_IN_EE_DIR` in `jh_else_ce/lib/utils/url_utility`' no-restricted-imports: - error - paths: diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml index a4addfce491723a9ba93ccc367ca1074acac8873..9f225dabd440b7e8b26bb344e7fd6240cef2fd3e 100644 --- a/.gitlab/ci/rules.gitlab-ci.yml +++ b/.gitlab/ci/rules.gitlab-ci.yml @@ -465,7 +465,7 @@ - ".stylelintrc" - "Dockerfile.assets" - "vendor/assets/**/*" - - ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" + - ".{eslintrc.yml,eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" - "*_VERSION" - "{,jh/}Gemfile{,.lock}" - "Rakefile" @@ -492,7 +492,7 @@ - ".stylelintrc" - "Dockerfile.assets" - "vendor/assets/**/*" - - ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" + - ".{eslintrc.yml,eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" - ".gitlab-ci.yml" - "*_VERSION" - "{,jh/}Gemfile{,.lock}" diff --git a/app/assets/javascripts/lib/logger/hello.js b/app/assets/javascripts/lib/logger/hello.js index ccfdfe91e60f23c76899af7c04f66485d10a68af..4ad99ec09d827ed87549abe8174024066f1855c4 100644 --- a/app/assets/javascripts/lib/logger/hello.js +++ b/app/assets/javascripts/lib/logger/hello.js @@ -1,4 +1,5 @@ import { s__, sprintf } from '~/locale'; +import { PROMO_URL } from 'jh_else_ce/lib/utils/url_utility'; const HANDSHAKE = String.fromCodePoint(0x1f91d); const MAG = String.fromCodePoint(0x1f50e); @@ -15,7 +16,7 @@ ${s__( ${sprintf(s__('HelloMessage|%{handshake_emoji} Contribute to GitLab: %{contribute_link}'), { handshake_emoji: `${HANDSHAKE}`, - contribute_link: 'https://about.gitlab.com/community/contribute/', + contribute_link: `${PROMO_URL}/community/contribute/`, })} ${sprintf(s__('HelloMessage|%{magnifier_emoji} Create a new GitLab issue: %{new_issue_link}'), { magnifier_emoji: `${MAG}`, @@ -27,7 +28,7 @@ ${ s__( 'HelloMessage|%{rocket_emoji} We like your curiosity! Help us improve GitLab by joining the team: %{jobs_page_link}', ), - { rocket_emoji: `${ROCKET}`, jobs_page_link: 'https://about.gitlab.com/jobs/' }, + { rocket_emoji: `${ROCKET}`, jobs_page_link: `${PROMO_URL}/jobs/` }, )}` : '' }`, diff --git a/app/assets/javascripts/projects/compare/constants.js b/app/assets/javascripts/projects/compare/constants.js index f689d543455383dc7356cd1a788205f43b4f5df7..2f07cf57521fa15a2e6b720de9d9e99239bbc31b 100644 --- a/app/assets/javascripts/projects/compare/constants.js +++ b/app/assets/javascripts/projects/compare/constants.js @@ -1,4 +1,5 @@ import { __, s__ } from '~/locale'; +import { DOCS_URL_IN_EE_DIR } from 'jh_else_ce/lib/utils/url_utility'; export const COMPARE_OPTIONS_INPUT_NAME = 'straight'; export const COMPARE_OPTIONS = [ @@ -21,5 +22,4 @@ export const I18N = { openMr: s__('CompareRevisions|Create merge request'), }; -export const COMPARE_REVISIONS_DOCS_URL = - 'https://docs.gitlab.com/ee/user/project/repository/branches/#compare-branches'; +export const COMPARE_REVISIONS_DOCS_URL = `${DOCS_URL_IN_EE_DIR}/user/project/repository/branches/#compare-branches`; diff --git a/ee/app/assets/javascripts/admin/subscriptions/show/components/subscription_activation_errors.vue b/ee/app/assets/javascripts/admin/subscriptions/show/components/subscription_activation_errors.vue index 7684ce352e69f6b188255cd4033c5a485eab39e7..bcd721fd2b2dea1458e6cf6333cca07add1b8538 100644 --- a/ee/app/assets/javascripts/admin/subscriptions/show/components/subscription_activation_errors.vue +++ b/ee/app/assets/javascripts/admin/subscriptions/show/components/subscription_activation_errors.vue @@ -2,6 +2,7 @@ import { GlAlert, GlLink, GlSprintf } from '@gitlab/ui'; import { s__ } from '~/locale'; import { helpPagePath } from '~/helpers/help_page_helper'; +import { PROMO_URL, DOCS_URL_IN_EE_DIR } from 'jh_else_ce/lib/utils/url_utility'; import { CONNECTIVITY_ERROR, howToActivateSubscription, @@ -62,7 +63,7 @@ export const i18n = Object.freeze({ }); export const links = Object.freeze({ - purchaseSubscriptionLink: 'https://about.gitlab.com/pricing/', + purchaseSubscriptionLink: `${PROMO_URL}/pricing/`, supportLink, licenseSupportLink: 'https://support.gitlab.com/hc/en-us/requests/new?ticket_form_id=360000071293', @@ -70,10 +71,9 @@ export const links = Object.freeze({ troubleshootingHelpLink: helpPagePath('/user/admin_area/license.html', { anchor: 'cannot-activate-instance-due-to-connectivity-error', }), - addSeats: 'https://docs.gitlab.com/ee/subscriptions/self_managed/#add-seats-to-a-subscription', - deactivateUser: - 'https://docs.gitlab.com/ee/user/admin_area/moderate_users.html#deactivate-a-user', - blockUser: 'https://docs.gitlab.com/ee/user/admin_area/moderate_users.html#block-a-user', + addSeats: `${DOCS_URL_IN_EE_DIR}/subscriptions/self_managed/#add-seats-to-a-subscription`, + deactivateUser: `${DOCS_URL_IN_EE_DIR}/user/admin_area/moderate_users.html#deactivate-a-user`, + blockUser: `${DOCS_URL_IN_EE_DIR}/user/admin_area/moderate_users.html#block-a-user`, }); export default { diff --git a/ee/app/assets/javascripts/admin/subscriptions/show/components/subscription_details_user_info.vue b/ee/app/assets/javascripts/admin/subscriptions/show/components/subscription_details_user_info.vue index b62419f0980fe16eda3040c85ad9e914b134d829..5a79ef5fe4aa123b4586a39792f7a7831167bb06 100644 --- a/ee/app/assets/javascripts/admin/subscriptions/show/components/subscription_details_user_info.vue +++ b/ee/app/assets/javascripts/admin/subscriptions/show/components/subscription_details_user_info.vue @@ -2,12 +2,12 @@ import { GlCard, GlLink, GlSprintf } from '@gitlab/ui'; import { helpPagePath } from '~/helpers/help_page_helper'; import { s__, n__, __ } from '~/locale'; +import { PROMO_URL } from 'jh_else_ce/lib/utils/url_utility'; export const billableUsersURL = helpPagePath('subscriptions/self_managed/index', { anchor: 'billable-users', }); -export const trueUpURL = - 'https://about.gitlab.com/pricing/licensing-faq/#what-does-users-over-license-mean'; +export const trueUpURL = `${PROMO_URL}/pricing/licensing-faq/#what-does-users-over-license-mean`; export const usersInSubscriptionUnlimited = __('Unlimited'); diff --git a/ee/app/assets/javascripts/billings/qrtly_reconciliation/constants.js b/ee/app/assets/javascripts/billings/qrtly_reconciliation/constants.js index f5a19cab556af21e0ebd10b474e276b1c7b1df86..013f420b05dc14ea4d8f2e62de391479f376c2bb 100644 --- a/ee/app/assets/javascripts/billings/qrtly_reconciliation/constants.js +++ b/ee/app/assets/javascripts/billings/qrtly_reconciliation/constants.js @@ -1,5 +1,6 @@ import { helpPagePath } from '~/helpers/help_page_helper'; import { s__, __ } from '~/locale'; +import { PROMO_URL } from 'jh_else_ce/lib/utils/url_utility'; const qrtlyReconciliationHelpPageUrl = helpPagePath('subscriptions/quarterly_reconciliation'); @@ -22,7 +23,7 @@ Otherwise, you will receive an invoice. For more information about the timing of }, secondary: { text: __('Contact support'), - link: 'https://about.gitlab.com/support/#contact-support', + link: `${PROMO_URL}/support/#contact-support`, }, }, }; diff --git a/ee/app/assets/javascripts/billings/verification_reminder/constants.js b/ee/app/assets/javascripts/billings/verification_reminder/constants.js index 574cd322d97481da1184800a4213370e482f9c85..fc9d4e26a1c4176cbb904c7843807e38ae5b49da 100644 --- a/ee/app/assets/javascripts/billings/verification_reminder/constants.js +++ b/ee/app/assets/javascripts/billings/verification_reminder/constants.js @@ -1,7 +1,8 @@ import { s__ } from '~/locale'; +import { DOCS_URL } from 'jh_else_ce/lib/utils/url_utility'; export const FEATURE_NAME = 'verification_reminder'; -export const DOCS_LINK = 'https://docs.gitlab.com/runner/install/'; +export const DOCS_LINK = `${DOCS_URL}/runner/install/`; export const EVENT_LABEL = 'verification_reminder'; export const MOUNTED_EVENT = 'shown'; export const DISMISS_EVENT = 'dismissed'; diff --git a/ee/app/assets/javascripts/ci/runner/constants.js b/ee/app/assets/javascripts/ci/runner/constants.js index 66cb3f391982410c3b7e86b01afd7bdf6ff6378b..6b21545f7530c6ff474ab3b2424a373e752ead1b 100644 --- a/ee/app/assets/javascripts/ci/runner/constants.js +++ b/ee/app/assets/javascripts/ci/runner/constants.js @@ -1,4 +1,5 @@ import { s__ } from '~/locale'; +import { DOCS_URL } from 'jh_else_ce/lib/utils/url_utility'; // Filtered search parameter names // - Used for URL params names @@ -24,7 +25,7 @@ export const I18N_UPGRADE_STATUS_RECOMMENDED_TOOLTIP = s__( // Runner install help page is external from this repo, must be // hardcoded because is located at https://gitlab.com/gitlab-org/gitlab-runner -const RUNNER_HELP_PATH = 'https://docs.gitlab.com/runner'; +const RUNNER_HELP_PATH = `${DOCS_URL}/runner`; export const RUNNER_INSTALL_HELP_PATH = `${RUNNER_HELP_PATH}/install/`; diff --git a/ee/app/assets/javascripts/dependencies/components/dependencies_table.vue b/ee/app/assets/javascripts/dependencies/components/dependencies_table.vue index 6c6e7bacc4e9a582eea1c22b38da92e57fa2cb4a..50ba658c937ee87ba4067cf2db9137006d39fb0b 100644 --- a/ee/app/assets/javascripts/dependencies/components/dependencies_table.vue +++ b/ee/app/assets/javascripts/dependencies/components/dependencies_table.vue @@ -10,6 +10,7 @@ import { } from '@gitlab/ui'; import { cloneDeep } from 'lodash'; import { s__ } from '~/locale'; +import { DOCS_URL_IN_EE_DIR } from 'jh_else_ce/lib/utils/url_utility'; import { NAMESPACE_PROJECT } from '../constants'; import DependencyLicenseLinks from './dependency_license_links.vue'; import DependencyLocation from './dependency_location.vue'; @@ -103,8 +104,7 @@ export default { { key: 'projects', label: s__('Dependencies|Projects'), tdClass: tdClass() }, ], DEPENDENCIES_PER_PAGE: 20, - DEPENDENCY_PATH_LINK: - 'https://docs.gitlab.com/ee/user/application_security/dependency_list/#dependency-paths', + DEPENDENCY_PATH_LINK: `${DOCS_URL_IN_EE_DIR}/user/application_security/dependency_list/#dependency-paths`, i18n: { tooltipText: s__( 'Dependencies|The component dependency path is based on the lock file. There may be several paths. In these cases, the longest path is displayed.', diff --git a/ee/app/assets/javascripts/dora/components/deployment_frequency_charts.vue b/ee/app/assets/javascripts/dora/components/deployment_frequency_charts.vue index 5357b62eacb0e42737a7e6769f0c1b8c3618a9a6..22e6bf536d69d0e874d11906788836697466bc8a 100644 --- a/ee/app/assets/javascripts/dora/components/deployment_frequency_charts.vue +++ b/ee/app/assets/javascripts/dora/components/deployment_frequency_charts.vue @@ -14,6 +14,7 @@ import { nDaysAfter } from '~/lib/utils/datetime_utility'; import { SUMMARY_METRICS_REQUEST } from '~/analytics/cycle_analytics/constants'; import CiCdAnalyticsCharts from '~/vue_shared/components/ci_cd_analytics/ci_cd_analytics_charts.vue'; import glFeaturesFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; +import { PROMO_URL } from 'jh_else_ce/lib/utils/url_utility'; import DoraChartHeader from './dora_chart_header.vue'; import { allChartDefinitions, @@ -34,7 +35,7 @@ const VISIBLE_METRICS = ['deploys', 'deployment-frequency', 'deployment_frequenc const filterFn = (data) => data.filter((d) => VISIBLE_METRICS.includes(d.identifier)).map(({ links, ...rest }) => rest); -const TESTING_TERMS_URL = 'https://about.gitlab.com/handbook/legal/testing-agreement/'; +const TESTING_TERMS_URL = `${PROMO_URL}/handbook/legal/testing-agreement/`; export default { name: 'DeploymentFrequencyCharts', diff --git a/ee/app/assets/javascripts/subscriptions/new/constants.js b/ee/app/assets/javascripts/subscriptions/new/constants.js index fecf95b7989c243a755c007662022703dd7877ee..3175b1bdf9fa90788be269b9c7164bc7effce73d 100644 --- a/ee/app/assets/javascripts/subscriptions/new/constants.js +++ b/ee/app/assets/javascripts/subscriptions/new/constants.js @@ -1,4 +1,5 @@ import { s__ } from '~/locale'; +import { PROMO_URL } from 'jh_else_ce/lib/utils/url_utility'; export const TAX_RATE = 0; export const NEW_GROUP = 'new_group'; @@ -30,4 +31,4 @@ export const PROMO_CODE_OFFER_TEXT = s__( 'Checkout|Pricing reflective of %{linkStart}limited-time offer%{linkEnd}.', ); -export const PROMO_CODE_TERMS_LINK = 'https://about.gitlab.com/pricing/terms/'; +export const PROMO_CODE_TERMS_LINK = `${PROMO_URL}/pricing/terms/`; diff --git a/ee/app/assets/javascripts/vue_shared/discover/constants.js b/ee/app/assets/javascripts/vue_shared/discover/constants.js index 0b7036a8c1cb1a5aa898dab35ce0449d5653a381..e975376ca661b8d5e5c63e79e911a8fa1df4ebaa 100644 --- a/ee/app/assets/javascripts/vue_shared/discover/constants.js +++ b/ee/app/assets/javascripts/vue_shared/discover/constants.js @@ -1,2 +1,3 @@ -export const DISCOVER_PLANS_MORE_INFO_LINK = - 'https://about.gitlab.com/pricing/saas/feature-comparison/'; +import { PROMO_URL } from 'jh_else_ce/lib/utils/url_utility'; + +export const DISCOVER_PLANS_MORE_INFO_LINK = `${PROMO_URL}/pricing/saas/feature-comparison/`; diff --git a/ee/app/assets/javascripts/vue_shared/purchase_flow/constants.js b/ee/app/assets/javascripts/vue_shared/purchase_flow/constants.js index 1626a897637c1d77333fc0a0ce3b4ff775a9d9a7..4c57623634150401a708e93ae72ca530b2100f22 100644 --- a/ee/app/assets/javascripts/vue_shared/purchase_flow/constants.js +++ b/ee/app/assets/javascripts/vue_shared/purchase_flow/constants.js @@ -1,5 +1,6 @@ import { s__ } from '~/locale'; import { helpPagePath } from '~/helpers/help_page_helper'; +import { PROMO_URL, DOMAIN } from 'jh_else_ce/lib/utils/url_utility'; export const GENERAL_ERROR_MESSAGE = s__( 'PurchaseStep|An error occurred in the purchase step. If the problem persists please contact support at https://support.gitlab.com.', @@ -7,8 +8,8 @@ export const GENERAL_ERROR_MESSAGE = s__( export const licensingAndRenewalsProblemsLink = 'https://support.gitlab.com/hc/en-us/requests/new?ticket_form_id=360000071293'; -export const salesLink = 'https://about.gitlab.com/sales/'; -export const userProfileLink = 'https://gitlab.com/-/profile'; +export const salesLink = `${PROMO_URL}/sales/`; +export const userProfileLink = `https://${DOMAIN}/-/profile`; export const linkCustomersPortalHelpLink = helpPagePath('subscriptions/customers_portal', { anchor: '#change-the-linked-account', });