diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3f0e0d7..def6811 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,8 +24,6 @@ jobs: with: node-version: 20.x cache: npm - - name: Install Docker - run: apt install docker.io - run: npm ci - run: npm run build - run: npm run format-check diff --git a/src/create-pull-request.ts b/src/create-pull-request.ts index be7b50b..a8971a7 100644 --- a/src/create-pull-request.ts +++ b/src/create-pull-request.ts @@ -51,8 +51,8 @@ export async function createPullRequest(inputs: Inputs): Promise<void> { core.startGroup('Determining the base and head repositories') const baseRemote = gitConfigHelper.getGitRemote() // Init the GitHub clients - const apiUrl = await GitHubHelper.determineApiUrl(baseRemote.hostname) - core.info(`Using API base URL: ${apiUrl}`) + const apiUrl = await GitHubHelper.determineApiUrl(baseRemote.hostname); + core.info(`Using API base URL: ${apiUrl}`); const ghBranch = new GitHubHelper(apiUrl, inputs.branchToken) const ghPull = new GitHubHelper(apiUrl, inputs.token) // Determine the head repository; the target for the pull request branch diff --git a/src/github-helper.ts b/src/github-helper.ts index 60546dc..15efc16 100644 --- a/src/github-helper.ts +++ b/src/github-helper.ts @@ -46,47 +46,42 @@ export class GitHubHelper { if (token) { options.auth = `${token}` } - options.baseUrl = apiUrl + options.baseUrl = apiUrl; options.throttle = throttleOptions this.octokit = new Octokit(options) } static async determineApiUrl(hostname: string): Promise<string> { if (hostname === 'github.com') { - return 'https://api.github.com' + return "https://api.github.com"; } - const baseUrl = `https://${hostname}` - const possiblePaths = [ - '/api/v4/version', - '/api/forgejo/v1/version', - '/api/v1/version' - ] + const baseUrl = `https://${hostname}`; + const possiblePaths = ['/api/v4/version', '/api/forgejo/v1/version', '/api/v1/version']; for (const path of possiblePaths) { try { - const url = `${baseUrl}${path}` - const response = await fetch(url, {method: 'GET', redirect: 'manual'}) // GitLab redirects - // invalid API paths - // to login prompt - // which returns 200 + const url = `${baseUrl}${path}`; + const response = await fetch(url, { method: 'GET', redirect: 'manual' }); // GitLab redirects + // invalid API paths + // to login prompt + // which returns 200 - const contentType = response.headers.get('Content-Type') || '' + const contentType = response.headers.get('Content-Type') || ''; if ( (response.ok || [401, 403].includes(response.status)) && // We might get 401, 403 - // as we're unauthorised + // as we're unauthorised contentType.includes('application/json') ) { - return path.includes('/version') ? url.replace('/version', '') : url + return path.includes('/version') ? url.replace('/version', '') : url; } + } catch (error) { - // Ignore errors and try the next path + // Ignore errors and try the next path } } - throw new Error( - `Unable to determine API base URL for hostname: ${hostname}` - ) + throw new Error(`Unable to determine API base URL for hostname: ${hostname}`); } private parseRepository(repository: string): Repository {