diff --git a/.github/workflows/e2e-nodejs-copilot-studio.yml b/.github/workflows/e2e-nodejs-copilot-studio.yml index 5c2fce2f..b851a5f3 100644 --- a/.github/workflows/e2e-nodejs-copilot-studio.yml +++ b/.github/workflows/e2e-nodejs-copilot-studio.yml @@ -31,7 +31,7 @@ jobs: nodejs-copilot-studio: name: Node.js Copilot Studio Agent runs-on: windows-latest - + steps: - name: Checkout repository uses: actions/checkout@v4 @@ -74,7 +74,8 @@ jobs: -ClientId "${{ secrets.MCP_CLIENT_ID }}" ` -TenantId "${{ secrets.MCP_TENANT_ID }}" ` -Username "${{ secrets.MCP_TEST_USERNAME }}" ` - -Password "${{ secrets.MCP_TEST_PASSWORD }}" + -Password "${{ secrets.MCP_TEST_PASSWORD }}" ` + -Scope "https://api.powerplatform.com/CopilotStudio.Copilots.Invoke" echo "BEARER_TOKEN=$token" >> $env:GITHUB_OUTPUT echo "::add-mask::$token" diff --git a/nodejs/copilot-studio/sample-agent/src/client.ts b/nodejs/copilot-studio/sample-agent/src/client.ts index 3b1942a7..b22d53e3 100644 --- a/nodejs/copilot-studio/sample-agent/src/client.ts +++ b/nodejs/copilot-studio/sample-agent/src/client.ts @@ -186,17 +186,22 @@ export async function getClient( // Load Copilot Studio connection settings from environment const settings = loadCopilotStudioConnectionSettingsFromEnv(); - // Acquire token for Copilot Studio API - const tokenResult = await authorization.exchangeToken(turnContext, authHandlerName, { - scopes: ['https://api.powerplatform.com/.default'] - }); + let authtoken = process.env.BEARER_TOKEN; + if (!authtoken) { + // Acquire token for Copilot Studio API + const tokenResult = await authorization.exchangeToken(turnContext, authHandlerName, { + scopes: ['https://api.powerplatform.com/.default'] + }); + + if (!tokenResult?.token) { + throw new Error('Failed to acquire token for Copilot Studio. User may need to sign in.'); + } - if (!tokenResult?.token) { - throw new Error('Failed to acquire token for Copilot Studio. User may need to sign in.'); + authtoken = tokenResult.token; } // Create the Copilot Studio client with the token - const copilotClient = new CopilotStudioClient(settings, tokenResult.token); + const copilotClient = new CopilotStudioClient(settings, authtoken); return new McsClient(copilotClient); }