@rushstack/rush-azure-storage-build-cache-plugin
Version:
Rush plugin for Azure storage cloud build cache
54 lines • 2.27 kB
TypeScript
import type { IRushPlugin, RushSession, RushConfiguration } from '@rushstack/rush-sdk';
import type { AzureEnvironmentName, LoginFlowType } from './AzureAuthenticationBase';
/**
* @public
*/
export interface IAzureInteractiveAuthOptions {
/**
* The name of the the Azure storage account to authenticate to.
*/
readonly storageAccountName: string;
/**
* The name of the container in the Azure storage account to authenticate to.
*/
readonly storageContainerName: string;
/**
* The Azure environment the storage account exists in. Defaults to AzureCloud.
*/
readonly azureEnvironment?: AzureEnvironmentName;
/**
* Login flow to use for interactive authentication.
* @defaultValue 'AdoCodespacesAuth' if on GitHub Codespaces, 'InteractiveBrowser' otherwise
*/
readonly loginFlow?: LoginFlowType;
/**
* If specified and a credential exists that will be valid for at least this many minutes from the time
* of execution, no action will be taken.
*/
readonly minimumValidityInMinutes?: number;
/**
* The set of Rush global commands before which credentials should be updated.
*/
readonly globalCommands?: string[];
/**
* The set of Rush phased commands before which credentials should be updated.
*/
readonly phasedCommands?: string[];
}
/**
* This plugin is for performing interactive authentication to an arbitrary Azure blob storage account.
* It is meant to be used for scenarios where custom commands may interact with Azure blob storage beyond
* the scope of the build cache (for build cache, use the RushAzureStorageBuildCachePlugin).
*
* However, since the authentication has the same dependencies, if the repository already uses the build
* cache plugin, the additional functionality for authentication can be provided at minimal cost.
*
* @public
*/
export default class RushAzureInteractieAuthPlugin implements IRushPlugin {
private readonly _options;
readonly pluginName: 'AzureInteractiveAuthPlugin';
constructor(options: IAzureInteractiveAuthOptions | undefined);
apply(rushSession: RushSession, rushConfig: RushConfiguration): void;
}
//# sourceMappingURL=RushAzureInteractiveAuthPlugin.d.ts.map