diff --git a/src/cli.ts b/src/cli.ts index d13fcca..37eb966 100644 --- a/src/cli.ts +++ b/src/cli.ts @@ -1,5 +1,5 @@ import axios from "axios"; -import { program } from "commander"; +import { program, Option } from "commander"; import { ExecuteTestsOptions, GetTestReportOptions, @@ -82,6 +82,7 @@ export async function executeTests(options: ExecuteTestsOptions) { }, }, environmentName: options.environment, + tags: options.tags, }; const response = await apiCall( @@ -348,10 +349,12 @@ export async function deleteEnvironment(options: DeleteEnvironmentOptions) { console.log("Environment deleted successfully!"); } +const apiKeyOption = new Option("-k, --api-key ", "the api key for authentication").env("API_KEY").makeOptionMandatory(); + function createCommandWithCommonOptions(command: string) { return program .command(command) - .requiredOption("-k, --api-key ", "Octomind API key") + .addOption(apiKeyOption) .option("-j, --json", "Output raw JSON response"); } @@ -359,7 +362,7 @@ export function run() { // CLI program setup program .name("octomind-cli") - .description( + .description( "Octomind CLI tool. see https://octomind.dev/docs/api-reference/", ); @@ -369,6 +372,7 @@ export function run() { .requiredOption("-u, --url ", "URL to test") .option("-e, --environment ", "Environment name", "default") .option("-d, --description ", "Test description") + .option("-g --tags ", "comma separated list of tags") .action(executeTests); createCommandWithCommonOptions("report") diff --git a/src/types.ts b/src/types.ts index e4a7967..7a5a7ea 100644 --- a/src/types.ts +++ b/src/types.ts @@ -18,6 +18,7 @@ export interface TestTargetExecutionRequest { url: string; context: ExecutionContext; environmentName?: string; + tags?: string[]; } export interface TestResult { @@ -66,6 +67,7 @@ export interface ExecuteTestsOptions { environment?: string; description?: string; json?: boolean; + tags?: string[]; } export interface GetTestReportOptions {