mirror of
https://github.com/azure/login.git
synced 2026-03-15 09:20:56 -04:00
* Initial commit
* updating package version
* adding secret info link in logs
* adding user-agent
* Update README.md
* Added changes for azure powershell login
Changes in loginAzurePowerShell.ts
using latest version
Added getlatestazmodule version
changes in runner info
code refactor
changes in loginAzurePowerShell
code refactor
Code refactor
Code refactor
added review comments
changes in scriptbuilder
changes in setmodulepath
added paths in tsconfig.json
Revert "added paths in tsconfig.json"
This reverts commit cb2f4176bf.
changes in action.yml
changes in main
added review comments
Added changes for review comments
Modified description in action.yml
Added telemetry info
Code refactor
added review comments
added review comments
removed tslint from package.json
added log in ServicePrincipalLogin
added boolean for error log
Added Unit tests (#15)
* Added unit tests for Azure PowerShell
* Added unit tests
* changes in utils
* removed babel
* changed variable name of enable-PSSession
* refactor
* added ci.yml
* changes in utils test
making login calls silent (#19)
Co-authored-by: Deepak Sattiraju <desattir@microsoft.com>
update utils test (#16)
* update utils test
* update utils test
* update serviceprincipallogin test
Co-authored-by: Microsoft GitHub User <msftgits@microsoft.com>
Co-authored-by: Sumiran Aggarwal <suaggar@microsoft.com>
Co-authored-by: UshaN <ushan@microsoft.com>
57 lines
2.3 KiB
TypeScript
57 lines
2.3 KiB
TypeScript
import * as core from '@actions/core';
|
|
|
|
import Utils from './Utilities/Utils';
|
|
import PowerShellToolRunner from './Utilities/PowerShellToolRunner';
|
|
import ScriptBuilder from './Utilities/ScriptBuilder';
|
|
import Constants from './Constants';
|
|
|
|
export class ServicePrincipalLogin implements IAzurePowerShellSession {
|
|
static readonly environment: string = Constants.AzureCloud;
|
|
static readonly scopeLevel: string = Constants.Subscription;
|
|
static readonly scheme: string = Constants.ServicePrincipal;
|
|
servicePrincipalId: string;
|
|
servicePrincipalKey: string;
|
|
tenantId: string;
|
|
subscriptionId: string;
|
|
|
|
constructor(servicePrincipalId: string, servicePrincipalKey: string, tenantId: string, subscriptionId: string) {
|
|
this.servicePrincipalId = servicePrincipalId;
|
|
this.servicePrincipalKey = servicePrincipalKey;
|
|
this.tenantId = tenantId;
|
|
this.subscriptionId = subscriptionId;
|
|
}
|
|
|
|
async initialize() {
|
|
Utils.setPSModulePath();
|
|
const azLatestVersion: string = await Utils.getLatestModule(Constants.moduleName);
|
|
core.debug(`Az Module version used: ${azLatestVersion}`);
|
|
Utils.setPSModulePath(`${Constants.prefix}${azLatestVersion}`);
|
|
}
|
|
|
|
async login() {
|
|
let output: string = "";
|
|
const options: any = {
|
|
listeners: {
|
|
stdout: (data: Buffer) => {
|
|
output += data.toString();
|
|
}
|
|
}
|
|
};
|
|
const args: any = {
|
|
servicePrincipalId: this.servicePrincipalId,
|
|
servicePrincipalKey: this.servicePrincipalKey,
|
|
subscriptionId: this.subscriptionId,
|
|
environment: ServicePrincipalLogin.environment,
|
|
scopeLevel: ServicePrincipalLogin.scopeLevel
|
|
}
|
|
const script: string = new ScriptBuilder().getAzPSLoginScript(ServicePrincipalLogin.scheme, this.tenantId, args);
|
|
await PowerShellToolRunner.init();
|
|
await PowerShellToolRunner.executePowerShellScriptBlock(script, options);
|
|
const result: any = JSON.parse(output.trim());
|
|
if (!(Constants.Success in result)) {
|
|
throw new Error(`Azure PowerShell login failed with error: ${result[Constants.Error]}`);
|
|
}
|
|
console.log(`Azure PowerShell session successfully initialized`);
|
|
}
|
|
|
|
} |