From 46022a551664dbd17262140b09526d464547bfca Mon Sep 17 00:00:00 2001 From: Sarah Edwards Date: Tue, 11 Jun 2024 07:48:38 -0700 Subject: [PATCH 1/3] Move articles (#51100) --- content/copilot/index.md | 6 +++--- .../configuring-github-copilot-in-your-environment.md | 1 + .../configuring-network-settings-for-github-copilot.md | 2 ++ .../configure-personal-settings}/index.md | 7 ++++--- ...ing-the-github-copilot-extension-in-your-environment.md | 2 ++ content/copilot/managing-copilot/index.md | 2 ++ .../managing-copilot-as-an-individual-subscriber/index.md | 3 ++- ...naging-copilot-policies-as-an-individual-subscriber.md} | 5 +++-- 8 files changed, 19 insertions(+), 9 deletions(-) rename content/copilot/{configuring-github-copilot => managing-copilot/configure-personal-settings}/configuring-github-copilot-in-your-environment.md (99%) rename content/copilot/{configuring-github-copilot => managing-copilot/configure-personal-settings}/configuring-network-settings-for-github-copilot.md (99%) rename content/copilot/{configuring-github-copilot => managing-copilot/configure-personal-settings}/index.md (75%) rename content/copilot/{configuring-github-copilot => managing-copilot/configure-personal-settings}/installing-the-github-copilot-extension-in-your-environment.md (99%) rename content/copilot/{configuring-github-copilot/configuring-your-personal-github-copilot-settings-on-githubcom.md => managing-copilot/managing-copilot-as-an-individual-subscriber/managing-copilot-policies-as-an-individual-subscriber.md} (95%) diff --git a/content/copilot/index.md b/content/copilot/index.md index 583ada7c3e..ce27409ecc 100644 --- a/content/copilot/index.md +++ b/content/copilot/index.md @@ -14,8 +14,8 @@ featuredLinks: - /copilot/using-github-copilot/using-github-copilot-code-suggestions-in-your-editor popular: - /billing/managing-billing-for-github-copilot/about-billing-for-github-copilot - - /copilot/configuring-github-copilot/configuring-github-copilot-in-your-environment - - /copilot/configuring-github-copilot/configuring-your-personal-github-copilot-settings-on-githubcom + - /copilot/managing-copilot/configure-personal-settings/configuring-github-copilot-in-your-environment + - /copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/managing-copilot-policies-as-an-individual-subscriber layout: product-landing versions: feature: copilot @@ -29,8 +29,8 @@ children: - /managing-copilot - /github-copilot-chat - /github-copilot-in-the-cli - - /configuring-github-copilot - /troubleshooting-github-copilot topics: - Copilot --- + diff --git a/content/copilot/configuring-github-copilot/configuring-github-copilot-in-your-environment.md b/content/copilot/managing-copilot/configure-personal-settings/configuring-github-copilot-in-your-environment.md similarity index 99% rename from content/copilot/configuring-github-copilot/configuring-github-copilot-in-your-environment.md rename to content/copilot/managing-copilot/configure-personal-settings/configuring-github-copilot-in-your-environment.md index 6b0faabc50..5eb6956760 100644 --- a/content/copilot/configuring-github-copilot/configuring-github-copilot-in-your-environment.md +++ b/content/copilot/managing-copilot/configure-personal-settings/configuring-github-copilot-in-your-environment.md @@ -8,6 +8,7 @@ redirect_from: - /copilot/configuring-github-copilot/configuring-github-copilot-in-visual-studio-code - /copilot/configuring-github-copilot/configuring-github-copilot-in-a-jetbrains-ide - /copilot/configuring-github-copilot/configuring-github-copilot-in-neovim + - /copilot/configuring-github-copilot/configuring-github-copilot-in-your-environment topics: - Copilot versions: diff --git a/content/copilot/configuring-github-copilot/configuring-network-settings-for-github-copilot.md b/content/copilot/managing-copilot/configure-personal-settings/configuring-network-settings-for-github-copilot.md similarity index 99% rename from content/copilot/configuring-github-copilot/configuring-network-settings-for-github-copilot.md rename to content/copilot/managing-copilot/configure-personal-settings/configuring-network-settings-for-github-copilot.md index fce48398f2..edb609677e 100644 --- a/content/copilot/configuring-github-copilot/configuring-network-settings-for-github-copilot.md +++ b/content/copilot/managing-copilot/configure-personal-settings/configuring-network-settings-for-github-copilot.md @@ -7,6 +7,8 @@ topics: - Copilot versions: feature: copilot +redirect_from: + - /copilot/configuring-github-copilot/configuring-network-settings-for-github-copilot --- {% visualstudio %} diff --git a/content/copilot/configuring-github-copilot/index.md b/content/copilot/managing-copilot/configure-personal-settings/index.md similarity index 75% rename from content/copilot/configuring-github-copilot/index.md rename to content/copilot/managing-copilot/configure-personal-settings/index.md index 7b578036b7..d9f1b7e435 100644 --- a/content/copilot/configuring-github-copilot/index.md +++ b/content/copilot/managing-copilot/configure-personal-settings/index.md @@ -1,14 +1,15 @@ --- -title: Configuring GitHub Copilot -shortTitle: Configure GitHub Copilot +title: Configuring personal settings +shortTitle: Configure personal settings intro: 'You can manage the configuration of {% data variables.product.prodname_copilot %} in a supported IDE, in your organization, or on {% data variables.product.prodname_dotcom_the_website %}.' versions: feature: copilot topics: - Copilot children: - - /configuring-your-personal-github-copilot-settings-on-githubcom - /configuring-github-copilot-in-your-environment - /installing-the-github-copilot-extension-in-your-environment - /configuring-network-settings-for-github-copilot +redirect_from: + - /copilot/configuring-github-copilot --- diff --git a/content/copilot/configuring-github-copilot/installing-the-github-copilot-extension-in-your-environment.md b/content/copilot/managing-copilot/configure-personal-settings/installing-the-github-copilot-extension-in-your-environment.md similarity index 99% rename from content/copilot/configuring-github-copilot/installing-the-github-copilot-extension-in-your-environment.md rename to content/copilot/managing-copilot/configure-personal-settings/installing-the-github-copilot-extension-in-your-environment.md index 62af4baaf0..ac8f9aa99e 100644 --- a/content/copilot/configuring-github-copilot/installing-the-github-copilot-extension-in-your-environment.md +++ b/content/copilot/managing-copilot/configure-personal-settings/installing-the-github-copilot-extension-in-your-environment.md @@ -7,6 +7,8 @@ versions: defaultTool: vscode topics: - Copilot +redirect_from: + - /copilot/configuring-github-copilot/installing-the-github-copilot-extension-in-your-environment --- {% azure_data_studio %} diff --git a/content/copilot/managing-copilot/index.md b/content/copilot/managing-copilot/index.md index 8d000f4973..486ef44c23 100644 --- a/content/copilot/managing-copilot/index.md +++ b/content/copilot/managing-copilot/index.md @@ -10,4 +10,6 @@ children: - /managing-copilot-for-your-enterprise - /managing-github-copilot-in-your-organization - /managing-copilot-as-an-individual-subscriber + - /configure-personal-settings --- + diff --git a/content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/index.md b/content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/index.md index 0c614a901d..be924caeb8 100644 --- a/content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/index.md +++ b/content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/index.md @@ -1,13 +1,14 @@ --- title: Managing Copilot as an individual subscriber shortTitle: Manage for individual -intro: "Individual users can subscribe to {% data variables.product.prodname_copilot_individuals_short %} for personal use." +intro: 'Individual users can subscribe to {% data variables.product.prodname_copilot_individuals_short %} for personal use.' versions: feature: copilot topics: - Copilot children: - /subscribing-to-copilot-as-an-individual-user + - /managing-copilot-policies-as-an-individual-subscriber - /modifying-your-copilot-subscription-as-an-individual-user - /canceling-your-copilot-trial-as-an-individual-user - /canceling-copilot-as-an-individual-user diff --git a/content/copilot/configuring-github-copilot/configuring-your-personal-github-copilot-settings-on-githubcom.md b/content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/managing-copilot-policies-as-an-individual-subscriber.md similarity index 95% rename from content/copilot/configuring-github-copilot/configuring-your-personal-github-copilot-settings-on-githubcom.md rename to content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/managing-copilot-policies-as-an-individual-subscriber.md index 2bd034efab..3206a44d73 100644 --- a/content/copilot/configuring-github-copilot/configuring-your-personal-github-copilot-settings-on-githubcom.md +++ b/content/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/managing-copilot-policies-as-an-individual-subscriber.md @@ -1,6 +1,6 @@ --- -title: Configuring your personal GitHub Copilot settings on GitHub.com -shortTitle: Copilot on GitHub.com +title: Managing Copilot policies as an individual subscriber +shortTitle: Manage policies intro: 'Find out how to change your personal settings on {% data variables.product.prodname_dotcom_the_website %} to configure {% data variables.product.prodname_copilot %}''s behavior.' product: '{% data variables.product.prodname_copilot_for_individuals %}' topics: @@ -11,6 +11,7 @@ redirect_from: - /copilot/configuring-github-copilot/configuring-github-copilot-settings-on-githubcom - /github/copilot/about-github-copilot-telemetry - /github/copilot/github-copilot-telemetry-terms + - /copilot/configuring-github-copilot/configuring-your-personal-github-copilot-settings-on-githubcom --- ## About {% data variables.product.prodname_copilot %} settings on {% data variables.product.prodname_dotcom_the_website %} From ad1fa4c1d17ca0638bf5d4c05c951e0d4285683e Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 11 Jun 2024 11:03:16 -0400 Subject: [PATCH 2/3] Port `block-robots.js` to TypeScript (#51114) --- .../{block-robots.js => block-robots.ts} | 14 ++++++++------ src/frame/middleware/index.ts | 2 +- .../tests/{block-robots.js => block-robots.ts} | 9 +++++---- src/languages/tests/{frame.js => frame.ts} | 16 ++++++++-------- src/products/lib/all-products.d.ts | 7 +++++++ src/types.ts | 12 ++++++------ 6 files changed, 35 insertions(+), 25 deletions(-) rename src/frame/middleware/{block-robots.js => block-robots.ts} (58%) rename src/frame/tests/{block-robots.js => block-robots.ts} (90%) rename src/languages/tests/{frame.js => frame.ts} (89%) create mode 100644 src/products/lib/all-products.d.ts diff --git a/src/frame/middleware/block-robots.js b/src/frame/middleware/block-robots.ts similarity index 58% rename from src/frame/middleware/block-robots.js rename to src/frame/middleware/block-robots.ts index 25ca2f8e5c..f071184094 100644 --- a/src/frame/middleware/block-robots.js +++ b/src/frame/middleware/block-robots.ts @@ -1,13 +1,15 @@ -import { productMap } from '#src/products/lib/all-products.js' -import { deprecated } from '#src/versions/lib/enterprise-server-releases.js' +import type { Request, Response, NextFunction } from 'express' -const pathRegExps = [ +import { productMap } from '@/products/lib/all-products.js' +import { deprecated } from '@/versions/lib/enterprise-server-releases.js' + +const pathRegExps: RegExp[] = [ // Disallow indexing of WIP products ...Object.values(productMap) .filter((product) => product.wip || product.hidden) .map((product) => [ new RegExp(`^/.*?${product.href}`, 'i'), - ...product.versions.map((version) => new RegExp(`^/.*?${version}/${product.id}`, 'i')), + ...product.versions!.map((version) => new RegExp(`^/.*?${version}/${product.id}`, 'i')), ]), // Disallow indexing of deprecated enterprise versions @@ -17,11 +19,11 @@ const pathRegExps = [ ]), ].flat() -export function blockIndex(path) { +export function blockIndex(path: string) { return pathRegExps.some((pathRe) => pathRe.test(path)) } -const middleware = function blockRobots(req, res, next) { +const middleware = function blockRobots(req: Request, res: Response, next: NextFunction) { if (blockIndex(req.path)) res.set('x-robots-tag', 'noindex') return next() } diff --git a/src/frame/middleware/index.ts b/src/frame/middleware/index.ts index cc470946f4..0ea85c3516 100644 --- a/src/frame/middleware/index.ts +++ b/src/frame/middleware/index.ts @@ -24,7 +24,7 @@ import shortVersions from '@/versions/middleware/short-versions.js' import languageCodeRedirects from '@/redirects/middleware/language-code-redirects' import handleRedirects from '@/redirects/middleware/handle-redirects' import findPage from './find-page.js' -import blockRobots from './block-robots.js' +import blockRobots from './block-robots' import archivedEnterpriseVersionsAssets from '@/archives/middleware/archived-enterprise-versions-assets.js' import api from './api' import healthz from './healthz' diff --git a/src/frame/tests/block-robots.js b/src/frame/tests/block-robots.ts similarity index 90% rename from src/frame/tests/block-robots.js rename to src/frame/tests/block-robots.ts index fe62cfaf29..a8fa3d175f 100644 --- a/src/frame/tests/block-robots.js +++ b/src/frame/tests/block-robots.ts @@ -1,10 +1,10 @@ import { describe, expect, test } from 'vitest' -import { blockIndex } from '#src/frame/middleware/block-robots.js' -import { productMap } from '#src/products/lib/all-products.js' -import enterpriseServerReleases from '#src/versions/lib/enterprise-server-releases.js' +import { blockIndex } from '@/frame/middleware/block-robots' +import { productMap } from '@/products/lib/all-products.js' +import enterpriseServerReleases from '@/versions/lib/enterprise-server-releases.js' -function allowIndex(path) { +function allowIndex(path: string) { return !blockIndex(path) } @@ -43,6 +43,7 @@ describe('block robots', () => { hiddenProductIds.forEach((id) => { const { versions } = productMap[id] + if (!versions) return const blockedPaths = versions .map((version) => { return [`/en/${version}/${id}`, `/en/${version}/${id}/some-early-access-article`] diff --git a/src/languages/tests/frame.js b/src/languages/tests/frame.ts similarity index 89% rename from src/languages/tests/frame.js rename to src/languages/tests/frame.ts index c76d60d524..d75ee9a484 100644 --- a/src/languages/tests/frame.js +++ b/src/languages/tests/frame.ts @@ -1,9 +1,9 @@ import { describe, expect, test, vi } from 'vitest' -import { languageKeys } from '#src/languages/lib/languages.js' -import { blockIndex } from '#src/frame/middleware/block-robots.js' -import { get, getDOMCached as getDOM } from '#src/tests/helpers/e2etest.js' -import Page from '#src/frame/lib/page.js' +import { languageKeys } from '@/languages/lib/languages.js' +import { blockIndex } from '@/frame/middleware/block-robots' +import { get, getDOMCached as getDOM } from '@/tests/helpers/e2etest.js' +import Page from '@/frame/lib/page.js' const langs = languageKeys.filter((lang) => lang !== 'en') @@ -23,7 +23,7 @@ describe('frame', () => { test.each(langs)('homepage links go to %s pages', async (lang) => { const $ = await getDOM(`/${lang}`) const $links = $('[data-testid=bump-link]') - $links.each((i, el) => { + $links.each((i: number, el: Element) => { const linkUrl = $(el).attr('href') expect(linkUrl.startsWith(`/${lang}/`)).toBe(true) }) @@ -96,10 +96,10 @@ describe('release notes', () => { // // This is useful because if we test every single individual version of // every plan the test just takes way too long. - const getReleaseNotesVersionCombinations = (langs) => { + const getReleaseNotesVersionCombinations = (langs: string[]) => { const combinations = [] - const prefixes = [] - for (const version of page.applicableVersions) { + const prefixes: string[] = [] + for (const version of page!.applicableVersions) { const prefix = version.split('@')[0] if (prefixes.includes(prefix)) { continue diff --git a/src/products/lib/all-products.d.ts b/src/products/lib/all-products.d.ts new file mode 100644 index 0000000000..755864c34f --- /dev/null +++ b/src/products/lib/all-products.d.ts @@ -0,0 +1,7 @@ +import type { Product } from '@/types' + +export const { data }: Record + +export const productIds: string[] + +export const productMap: Record diff --git a/src/types.ts b/src/types.ts index 3089692dec..2dddf80c89 100644 --- a/src/types.ts +++ b/src/types.ts @@ -14,15 +14,15 @@ export type ExtendedRequest = Request & { // Add more properties here as needed } -type Product = { +export type Product = { id: string name: string href: string - dir: string - toc: string - wip: boolean - hidden: boolean - versions: string[] + dir?: string + toc?: string + wip?: boolean + hidden?: boolean + versions?: string[] } type ProductMap = { From b2866b022c91e198f9c4cb07e6b3eefe6deaf86c Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 11 Jun 2024 11:05:30 -0400 Subject: [PATCH 3/3] Use search aggregate filter on GHES URLs (#51116) --- src/search/middleware/contextualize.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/search/middleware/contextualize.js b/src/search/middleware/contextualize.js index 3d7b6027d9..3428ec9d6c 100644 --- a/src/search/middleware/contextualize.js +++ b/src/search/middleware/contextualize.js @@ -46,8 +46,10 @@ export default async function contextualizeSearch(req, res, next) { } } - // Feature flag for now XXX - if (req.context.currentVersion === 'enterprise-cloud@latest') { + // Feature flag + if ( + ['enterprise-cloud', 'enterprise-server'].includes(req.context.currentVersion.split('@')[0]) + ) { search.aggregate = ['toplevel'] }