Path: blob/main/build/azure-pipelines/common/getPublishAuthTokens.js
3520 views
"use strict";1Object.defineProperty(exports, "__esModule", { value: true });2exports.getAccessToken = getAccessToken;3const msal_node_1 = require("@azure/msal-node");4function e(name) {5const result = process.env[name];6if (typeof result !== 'string') {7throw new Error(`Missing env: ${name}`);8}9return result;10}11async function getAccessToken(endpoint, tenantId, clientId, idToken) {12const app = new msal_node_1.ConfidentialClientApplication({13auth: {14clientId,15authority: `https://login.microsoftonline.com/${tenantId}`,16clientAssertion: idToken17}18});19const result = await app.acquireTokenByClientCredential({ scopes: [`${endpoint}.default`] });20if (!result) {21throw new Error('Failed to get access token');22}23return {24token: result.accessToken,25expiresOnTimestamp: result.expiresOn.getTime(),26refreshAfterTimestamp: result.refreshOn?.getTime()27};28}29async function main() {30const cosmosDBAccessToken = await getAccessToken(e('AZURE_DOCUMENTDB_ENDPOINT'), e('AZURE_TENANT_ID'), e('AZURE_CLIENT_ID'), e('AZURE_ID_TOKEN'));31const blobServiceAccessToken = await getAccessToken(`https://${e('VSCODE_STAGING_BLOB_STORAGE_ACCOUNT_NAME')}.blob.core.windows.net/`, process.env['AZURE_TENANT_ID'], process.env['AZURE_CLIENT_ID'], process.env['AZURE_ID_TOKEN']);32console.log(JSON.stringify({ cosmosDBAccessToken, blobServiceAccessToken }));33}34if (require.main === module) {35main().then(() => {36process.exit(0);37}, err => {38console.error(err);39process.exit(1);40});41}42//# sourceMappingURL=getPublishAuthTokens.js.map4344