From d319f8f5b55ea40916b869b2ca9ae2f059c60abf Mon Sep 17 00:00:00 2001 From: Josh Gross Date: Fri, 17 Nov 2023 11:59:30 -0500 Subject: [PATCH] Avoid setting `baseUrl` to undefined when input is not provided --- .github/workflows/integration.yml | 75 +++++++++++++++++++++++++++++++ dist/index.js | 8 +++- src/main.ts | 9 +++- 3 files changed, 88 insertions(+), 4 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 603d5ad9..13494d98 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -248,3 +248,78 @@ jobs: done <<< "$tests" echo $'\u2705 Test passed' | tee -a $GITHUB_STEP_SUMMARY + + test-base-url: + name: 'Integration test: base-url option' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: ./.github/actions/install-dependencies + + - id: base-url-default + name: API URL with base-url not set + uses: ./ + with: + script: | + const endpoint = github.request.endpoint + return endpoint({}).url + result-encoding: string + + - id: base-url-default-graphql + name: GraphQL URL with base-url not set + uses: ./ + with: + script: | + const endpoint = github.request.endpoint + return endpoint({url: "/graphql"}).url + result-encoding: string + + - id: base-url-set + name: API URL with base-url set + uses: ./ + with: + base-url: https://my.github-enterprise-server.com/api/v3 + script: | + const endpoint = github.request.endpoint + return endpoint({}).url + result-encoding: string + + - id: base-url-set-graphql + name: GraphQL URL with base-url set + uses: ./ + with: + base-url: https://my.github-enterprise-server.com/api/v3 + script: | + const endpoint = github.request.endpoint + return endpoint({url: "/graphql"}).url + result-encoding: string + + - run: | + echo "- Validating API URL default" + expected="https://api.github.com/" + actual="${{steps.base-url-default.outputs.result}}" + if [[ "$expected" != "$actual" ]]; then + echo $'::error::\u274C' "Expected base-url to equal '$expected', got $actual" + exit 1 + fi + echo "- Validating GraphQL URL default" + expected="https://api.github.com/graphql" + actual="${{steps.base-url-default-graphql.outputs.result}}" + if [[ "$expected" != "$actual" ]]; then + echo $'::error::\u274C' "Expected base-url to equal '$expected', got $actual" + exit 1 + fi + echo "- Validating base-url set to a value" + expected="https://my.github-enterprise-server.com/api/v3/" + actual="${{steps.base-url-set.outputs.result}}" + if [[ "$expected" != "$actual" ]]; then + echo $'::error::\u274C' "Expected base-url to equal '$expected', got $actual" + exit 1 + fi + echo "- Validating GraphQL URL with base-url set to a value" + expected="https://my.github-enterprise-server.com/api/v3/graphql" + actual="${{steps.base-url-set-graphql.outputs.result}}" + if [[ "$expected" != "$actual" ]]; then + echo $'::error::\u274C' "Expected base-url to equal '$expected', got $actual" + exit 1 + fi diff --git a/dist/index.js b/dist/index.js index db5b5fa9..98846689 100644 --- a/dist/index.js +++ b/dist/index.js @@ -35509,9 +35509,13 @@ async function main() { userAgent: userAgent || undefined, previews: previews ? previews.split(',') : undefined, retry: retryOpts, - request: requestOpts, - baseUrl: baseUrl || undefined + request: requestOpts }; + // Setting `baseUrl` to undefined will prevent the default value from being used + // https://github.com/actions/github-script/issues/436 + if (baseUrl) { + opts.baseUrl = baseUrl; + } const github = (0,lib_github.getOctokit)(token, opts, plugin_retry_dist_node.retry, dist_node.requestLog); const script = core.getInput('script', { required: true }); // Using property/value shorthand on `require` (e.g. `{require}`) causes compilation errors. diff --git a/src/main.ts b/src/main.ts index 96551515..81df4f0e 100644 --- a/src/main.ts +++ b/src/main.ts @@ -44,8 +44,13 @@ async function main(): Promise { userAgent: userAgent || undefined, previews: previews ? previews.split(',') : undefined, retry: retryOpts, - request: requestOpts, - baseUrl: baseUrl || undefined + request: requestOpts + } + + // Setting `baseUrl` to undefined will prevent the default value from being used + // https://github.com/actions/github-script/issues/436 + if (baseUrl) { + opts.baseUrl = baseUrl } const github = getOctokit(token, opts, retry, requestLog)