From bce63914b11c29799e4b978c70dfe76a80e785f3 Mon Sep 17 00:00:00 2001 From: "James M. Greene" Date: Fri, 5 Aug 2022 12:13:23 -0500 Subject: [PATCH] Incorporate the spirit of changes from https://github.com/actions/configure-pages/pull/10 --- src/api-client.js | 10 +++++++--- src/api-client.test.js | 21 +++++++++++++++++++++ 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/src/api-client.js b/src/api-client.js index 0b2e224..b413a0f 100644 --- a/src/api-client.js +++ b/src/api-client.js @@ -1,8 +1,12 @@ const axios = require('axios') const core = require('@actions/core') +function getApiBaseUrl() { + return process.env.GITHUB_API_URL || 'https://api.github.com' +} + async function enablePagesSite({ repositoryNwo, githubToken }) { - const pagesEndpoint = `https://api.github.com/repos/${repositoryNwo}/pages` + const pagesEndpoint = `${getApiBaseUrl()}/repos/${repositoryNwo}/pages` try { const response = await axios.post( @@ -30,7 +34,7 @@ async function enablePagesSite({ repositoryNwo, githubToken }) { async function getPagesSite({ repositoryNwo, githubToken }) { try { - const pagesEndpoint = `https://api.github.com/repos/${repositoryNwo}/pages` + const pagesEndpoint = `${getApiBaseUrl()}/repos/${repositoryNwo}/pages` const response = await axios.get(pagesEndpoint, { headers: { @@ -84,4 +88,4 @@ async function findOrCreatePagesSite({ repositoryNwo, githubToken, enablement = return pageObject } -module.exports = { findOrCreatePagesSite, enablePagesSite, getPagesSite } +module.exports = { findOrCreatePagesSite, enablePagesSite, getPagesSite, getApiBaseUrl } diff --git a/src/api-client.test.js b/src/api-client.test.js index 5aa9f9d..05588f5 100644 --- a/src/api-client.test.js +++ b/src/api-client.test.js @@ -18,6 +18,27 @@ describe('apiClient', () => { jest.spyOn(core, 'debug').mockImplementation(jest.fn()) }) + describe('getApiBaseUrl', () => { + it('returns GITHUB_API_URL environment variable when set', async () => { + const expectedBaseUrl = 'https://api.ghe.com' + process.env.GITHUB_API_URL = expectedBaseUrl + const result = apiClient.getApiBaseUrl() + delete process.env.GITHUB_API_URL + expect(result).toEqual(expectedBaseUrl) + }) + + it('defaults to GitHub API if GITHUB_API_URL environment variable is empty', async () => { + process.env.GITHUB_API_URL = '' + const result = apiClient.getApiBaseUrl() + delete process.env.GITHUB_API_URL + expect(result).toEqual('https://api.github.com') + }) + + it('defaults to GitHub API if GITHUB_API_URL environment variable is not set', async () => { + const result = apiClient.getApiBaseUrl() + expect(result).toEqual('https://api.github.com') + }) + }) describe('enablePagesSite', () => { it('makes a request to create a page', async () => {