async login()

in src/Cli/AzureCliLogin.ts [18:66]


    async login() {
        core.info(`Running Azure CLI Login.`);
        this.azPath = await io.which("az", true);
        core.debug(`Azure CLI path: ${this.azPath}`);

        let output: string = "";
        const execOptions: any = {
            listeners: {
                stdout: (data: Buffer) => {
                    output += data.toString();
                }
            }
        };

        await this.executeAzCliCommand(["version"], true, execOptions);
        core.debug(`Azure CLI version used:\n${output}`);
        try {
            this.azVersion = JSON.parse(output)["azure-cli"];
        }
        catch (error) {
            core.warning("Failed to parse Azure CLI version.");
        }
        await this.registerAzurestackEnvIfNecessary();

        await this.executeAzCliCommand(["cloud", "set", "-n", this.loginConfig.environment], false);
        core.info(`Done setting cloud: "${this.loginConfig.environment}"`);

        if (this.loginConfig.authType === LoginConfig.AUTH_TYPE_SERVICE_PRINCIPAL) {
            let args = ["--service-principal",
                "--username", this.loginConfig.servicePrincipalId,
                "--tenant", this.loginConfig.tenantId
            ];
            if (this.loginConfig.servicePrincipalSecret) {
                await this.loginWithSecret(args);
            }
            else {
                await this.loginWithOIDC(args);
            }
        }
        else {
            let args = ["--identity"];
            if (this.loginConfig.servicePrincipalId) {
                await this.loginWithUserAssignedIdentity(args);
            }
            else {
                await this.loginWithSystemAssignedIdentity(args);
            }
        }
    }