UNPKG

@aikidosec/ci-api-client

Version:

CLI api client to easily integrate the Aikido public CI API into custom deploy scripts

35 lines (29 loc) 1.08 kB
import { Argument, Command } from 'commander'; import { setApiKey } from '../configuration.js'; import { outputError, outputLog } from '../output.js'; const API_KEY_REGEX = /^(?:AIK_CI_|AIK_CI_US_|AIK_CI_ME_)[A-Za-z0-9]{64}$/; function cli(apiKey: string): void { const isValidApiKey = API_KEY_REGEX.test(apiKey) || apiKey.trim().length === 128; if (apiKey && !isValidApiKey) { outputError('That does not seem right, please verify your api key'); } setApiKey(apiKey); outputLog( apiKey ? 'Your new Aikido API key has been set' : 'Your Aikido API key has been removed' ); } export const cliSetup = (program: Command): Command => program .command('apikey') .addArgument( new Argument( '<key>', 'Your Aikido public CI API key. See also: https://app.aikido.dev/settings/integrations/continuous-integration. To remove your apikey, leave the <key> argument value empty.' ).argOptional() ) .description('Set (or remove) your Aikido public CI API key.') .action(cli); export default { cli, cliSetup };