UNPKG

@cto.ai/ops

Version:

💻 CTO.ai - The CLI built for Teams 🚀

84 lines (83 loc) • 3.75 kB
import Command, { flags } from './../base'; import { Answers, Config, OpCommand, OpPipeline, OpsYml, OpWorkflow, RunCommandArgs } from './../types'; export interface IRunInputs { parsedArgs: RunCommandArgs; teamName: string; opName: string; opVersion: string; config: Config; commands: Array<OpCommand | OpPipeline | OpWorkflow>; pipelines: OpPipeline[]; selectedOp: OpCommand | OpPipeline | OpWorkflow; options: { nocache: boolean; }; } export default class Run extends Command { static description: string; static flags: flags.Input<any>; static strict: boolean; static args: { description: string; name: string; parse: (input: string) => string; }[]; customParse: (options: typeof Run, argv: string[]) => { args: any; flags: any; opParams: string[]; }; parseYamlFile: (relativePathToOpsYml: string) => Promise<OpsYml>; readOpsFromLocalManifest: (relativePathToOpsYml: string) => (inputs: IRunInputs) => Promise<IRunInputs>; addMissingApiFieldsToLocalOps: (inputs: IRunInputs) => Promise<IRunInputs>; filterLocalOps: (inputs: IRunInputs) => IRunInputs; formatOpEmoji: (op: OpCommand | OpPipeline | OpWorkflow) => string; formatOpName: (op: OpCommand | OpPipeline | OpWorkflow) => string; fuzzyFilterParams: (ops: Array<OpCommand | OpPipeline | OpWorkflow>) => { name: string; value: OpCommand | OpPipeline | OpWorkflow; }[]; autocompleteSearch: (ops: Array<OpCommand | OpPipeline | OpWorkflow>) => (_: Answers, input?: string) => Promise<{ name: string; value: OpCommand | OpPipeline | OpWorkflow; }[]>; selectOpOrWorkflowToRun: (inputs: IRunInputs) => Promise<IRunInputs>; printCustomHelp: (op: OpCommand) => void; checkForHelpMessage: (inputs: IRunInputs) => IRunInputs | void; getPublishedPipelines: (inputs: IRunInputs) => Promise<Array<OpCommand | OpWorkflow>>; isPipelinePublished: (inputs: IRunInputs) => Promise<boolean>; getPipelineJob: (teamName: string, opName: string, opVersion: string) => Promise<OpCommand | null>; executeOpService: (inputs: IRunInputs) => Promise<IRunInputs>; /** * Extracts the Workflow Team and Name from the input argument * @cto.ai/github -> { teamName: cto.ai, opname: github, opVersion: '' } * cto.ai/github -> { teamName: cto.ai, opname: github, opVersion: '' } * github -> { teamName: '', opname: github, opVersion: '' } * @cto.ai/github:0.1.0 -> { teamName: cto.ai, opname: github, opVersion: '0.1.0' } * cto.ai/github:customVersion -> { teamName: cto.ai, opname: github, opVersion: 'customVersion' } * github:myVersion -> { teamName: '', opname: github, opVersion: 'myVersion' } * cto.ai/extra/blah -> InvalidOpName * cto.ai/extra:version1:version2 -> InvalidOpName * null -> InvalidOpName */ parseTeamOpNameVersion: (inputs: IRunInputs) => { teamName: string; opName: string; opVersion: string | undefined; parsedArgs: RunCommandArgs; config: Config; commands: (OpCommand | OpPipeline | OpWorkflow)[]; pipelines: OpPipeline[]; selectedOp: OpCommand | OpPipeline | OpWorkflow; options: { nocache: boolean; }; }; parseYmlEnvVariables: (env: any, teamName: string) => Promise<string[]>; getEnvConfigs: (envs: string[], teamName: string) => Promise<string[]>; getEnvSecrets: (envs: string[], teamName: string) => Promise<string[]>; splitEnvKeys(e: string): any; getApiOps: (inputs: IRunInputs) => Promise<IRunInputs>; sendAnalytics: (inputs: IRunInputs) => Promise<IRunInputs>; run(): Promise<void>; }