From 0beadebc68cdae8a58b2cb3cbf5bf0d0020ba6fc Mon Sep 17 00:00:00 2001 From: John Wesley Walker III <81404201+jww3@users.noreply.github.com> Date: Fri, 18 Oct 2024 13:31:47 +0200 Subject: [PATCH 1/4] Revise `isGhes` logic --- src/utils.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/utils.ts b/src/utils.ts index f3aa1ef1..aac0a19b 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -116,7 +116,13 @@ export function isGhes(): boolean { const ghUrl = new URL( process.env['GITHUB_SERVER_URL'] || 'https://github.com' ); - return ghUrl.hostname.toUpperCase() !== 'GITHUB.COM'; + + const hostname = ghUrl.hostname.trimEnd().toUpperCase() + const isGitHubHost = hostname === 'GITHUB.COM' + const isGitHubEnterpriseCloudHost = hostname.endsWith('.GHE.COM') + const isLocalHost = hostname.endsWith('.LOCALHOST') + + return !isGitHubHost && !isGitHubEnterpriseCloudHost && !isLocalHost } export function isCacheFeatureAvailable(): boolean { From 1e08474f57a8eb7a3183452884bd604328f1dfd3 Mon Sep 17 00:00:00 2001 From: John Wesley Walker III <81404201+jww3@users.noreply.github.com> Date: Fri, 18 Oct 2024 13:33:10 +0000 Subject: [PATCH 2/4] ran `npm run format` --- dist/setup/index.js | 6 +++++- src/utils.ts | 10 +++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/dist/setup/index.js b/dist/setup/index.js index f1e3e297..e56f9660 100644 --- a/dist/setup/index.js +++ b/dist/setup/index.js @@ -92017,7 +92017,11 @@ function validatePythonVersionFormatForPyPy(version) { exports.validatePythonVersionFormatForPyPy = validatePythonVersionFormatForPyPy; function isGhes() { const ghUrl = new URL(process.env['GITHUB_SERVER_URL'] || 'https://github.com'); - return ghUrl.hostname.toUpperCase() !== 'GITHUB.COM'; + const hostname = ghUrl.hostname.trimEnd().toUpperCase(); + const isGitHubHost = hostname === 'GITHUB.COM'; + const isGitHubEnterpriseCloudHost = hostname.endsWith('.GHE.COM'); + const isLocalHost = hostname.endsWith('.LOCALHOST'); + return !isGitHubHost && !isGitHubEnterpriseCloudHost && !isLocalHost; } exports.isGhes = isGhes; function isCacheFeatureAvailable() { diff --git a/src/utils.ts b/src/utils.ts index aac0a19b..a6dab63e 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -117,12 +117,12 @@ export function isGhes(): boolean { process.env['GITHUB_SERVER_URL'] || 'https://github.com' ); - const hostname = ghUrl.hostname.trimEnd().toUpperCase() - const isGitHubHost = hostname === 'GITHUB.COM' - const isGitHubEnterpriseCloudHost = hostname.endsWith('.GHE.COM') - const isLocalHost = hostname.endsWith('.LOCALHOST') + const hostname = ghUrl.hostname.trimEnd().toUpperCase(); + const isGitHubHost = hostname === 'GITHUB.COM'; + const isGitHubEnterpriseCloudHost = hostname.endsWith('.GHE.COM'); + const isLocalHost = hostname.endsWith('.LOCALHOST'); - return !isGitHubHost && !isGitHubEnterpriseCloudHost && !isLocalHost + return !isGitHubHost && !isGitHubEnterpriseCloudHost && !isLocalHost; } export function isCacheFeatureAvailable(): boolean { From 1d333e3853b781ee61a2820bc07b8e732efd0538 Mon Sep 17 00:00:00 2001 From: John Wesley Walker III <81404201+jww3@users.noreply.github.com> Date: Fri, 18 Oct 2024 16:59:28 +0000 Subject: [PATCH 3/4] add unit test --- __tests__/utils.test.ts | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/__tests__/utils.test.ts b/__tests__/utils.test.ts index c2c6bca5..057a781c 100644 --- a/__tests__/utils.test.ts +++ b/__tests__/utils.test.ts @@ -13,6 +13,7 @@ import { getVersionInputFromPlainFile, getVersionInputFromTomlFile, getNextPageUrl, + isGhes, IS_WINDOWS, getDownloadFileName } from '../src/utils'; @@ -195,3 +196,42 @@ describe('getDownloadFileName', () => { } }); }); + + +describe('isGhes', () => { + const pristineEnv = process.env; + + beforeEach(() => { + jest.resetModules(); + process.env = { ...pristineEnv }; + }); + + afterAll(() => { + process.env = pristineEnv; + }); + + it('returns false when the GITHUB_SERVER_URL environment variable is not defined', async () => { + delete process.env['GITHUB_SERVER_URL']; + expect(isGhes()).toBeFalsy(); + }); + + it('returns false when the GITHUB_SERVER_URL environment variable is set to github.com', async () => { + process.env['GITHUB_SERVER_URL'] = 'https://github.com'; + expect(isGhes()).toBeFalsy(); + }); + + it('returns false when the GITHUB_SERVER_URL environment variable is set to a GitHub Enterprise Cloud-style URL', async () => { + process.env['GITHUB_SERVER_URL'] = 'https://contoso.ghe.com'; + expect(isGhes()).toBeFalsy(); + }); + + it('returns false when the GITHUB_SERVER_URL environment variable has a .localhost suffix', async () => { + process.env['GITHUB_SERVER_URL'] = 'https://mock-github.localhost'; + expect(isGhes()).toBeFalsy(); + }); + + it('returns true when the GITHUB_SERVER_URL environment variable is set to some other URL', async () => { + process.env['GITHUB_SERVER_URL'] = 'https://src.onpremise.fabrikam.com'; + expect(isGhes()).toBeTruthy(); + }); +}); From 5acab22d9a762ee077542e45f10be7adb23918a8 Mon Sep 17 00:00:00 2001 From: John Wesley Walker III <81404201+jww3@users.noreply.github.com> Date: Fri, 18 Oct 2024 17:35:55 +0000 Subject: [PATCH 4/4] ran `npm run format` --- __tests__/utils.test.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/__tests__/utils.test.ts b/__tests__/utils.test.ts index 057a781c..eac39ab6 100644 --- a/__tests__/utils.test.ts +++ b/__tests__/utils.test.ts @@ -197,18 +197,17 @@ describe('getDownloadFileName', () => { }); }); - describe('isGhes', () => { const pristineEnv = process.env; beforeEach(() => { jest.resetModules(); - process.env = { ...pristineEnv }; + process.env = {...pristineEnv}; }); afterAll(() => { process.env = pristineEnv; - }); + }); it('returns false when the GITHUB_SERVER_URL environment variable is not defined', async () => { delete process.env['GITHUB_SERVER_URL'];