@cto.ai/ops
Version:
💻 CTO.ai - The CLI built for Teams 🚀
84 lines (83 loc) • 3.75 kB
TypeScript
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>;
}