From c17d55b90dcdb3d554d0027a6c180a7adc2daf78 Mon Sep 17 00:00:00 2001 From: Salman Muin Kayser Chishti Date: Thu, 9 Apr 2026 18:14:12 +0000 Subject: [PATCH] ci: add getOctokit integration test job --- .github/workflows/integration.yml | 53 +++++++++++++++++++++++++------ 1 file changed, 43 insertions(+), 10 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 06827f2..5b5f18e 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -42,7 +42,8 @@ jobs: result-encoding: string - run: | echo "- Validating relative require output" - if [[ "${{steps.relative-require.outputs.result}}" != "@actions/github-script" ]]; then + expected="@actions/github-script" + if [[ "${{steps.relative-require.outputs.result}}" != "$expected" ]]; then echo $'::error::\u274C' "Expected '$expected', got ${{steps.relative-require.outputs.result}}" exit 1 fi @@ -154,22 +155,54 @@ jobs: return endpoint({}).headers['user-agent'] result-encoding: string - run: | + # User-agent format: [actions_orchestration_id/] octokit-core.js/ ... + # When ACTIONS_ORCHESTRATION_ID is set, the orchestration ID is inserted after the prefix echo "- Validating user-agent default" - expected="actions/github-script octokit-core.js/" - if [[ "${{steps.user-agent-default.outputs.result}}" != "$expected"* ]]; then - echo $'::error::\u274C' "Expected user-agent to start with '$expected', got ${{steps.user-agent-default.outputs.result}}" + ua="${{steps.user-agent-default.outputs.result}}" + if [[ "$ua" != "actions/github-script"* ]] || [[ "$ua" != *"octokit-core.js/"* ]]; then + echo $'::error::\u274C' "Expected user-agent to start with 'actions/github-script' and contain 'octokit-core.js/', got $ua" exit 1 fi echo "- Validating user-agent set to a value" - expected="foobar octokit-core.js/" - if [[ "${{steps.user-agent-set.outputs.result}}" != "$expected"* ]]; then - echo $'::error::\u274C' "Expected user-agent to start with '$expected', got ${{steps.user-agent-set.outputs.result}}" + ua="${{steps.user-agent-set.outputs.result}}" + if [[ "$ua" != "foobar"* ]] || [[ "$ua" != *"octokit-core.js/"* ]]; then + echo $'::error::\u274C' "Expected user-agent to start with 'foobar' and contain 'octokit-core.js/', got $ua" exit 1 fi echo "- Validating user-agent set to an empty string" - expected="actions/github-script octokit-core.js/" - if [[ "${{steps.user-agent-empty.outputs.result}}" != "$expected"* ]]; then - echo $'::error::\u274C' "Expected user-agent to start with '$expected', got ${{steps.user-agent-empty.outputs.result}}" + ua="${{steps.user-agent-empty.outputs.result}}" + if [[ "$ua" != "actions/github-script"* ]] || [[ "$ua" != *"octokit-core.js/"* ]]; then + echo $'::error::\u274C' "Expected user-agent to start with 'actions/github-script' and contain 'octokit-core.js/', got $ua" + exit 1 + fi + echo $'\u2705 Test passed' | tee -a $GITHUB_STEP_SUMMARY + + test-get-octokit: + name: 'Integration test: getOctokit with token' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: ./.github/actions/install-dependencies + - id: secondary-client + name: Create a second client with getOctokit + uses: ./ + env: + APP_TOKEN: ${{ github.token }} + with: + script: | + const appOctokit = getOctokit(process.env.APP_TOKEN) + const {data} = await appOctokit.rest.repos.get({ + owner: context.repo.owner, + repo: context.repo.repo + }) + + return `${appOctokit !== github}:${data.full_name}` + result-encoding: string + - run: | + echo "- Validating secondary client output" + expected="true:${{ github.repository }}" + if [[ "${{steps.secondary-client.outputs.result}}" != "$expected" ]]; then + echo $'::error::\u274C' "Expected '$expected', got ${{steps.secondary-client.outputs.result}}" exit 1 fi echo $'\u2705 Test passed' | tee -a $GITHUB_STEP_SUMMARY