Skip to content

Commit 3840864

Browse files
committed
analyiss feature flags
1 parent 60c5af4 commit 3840864

2 files changed

Lines changed: 48 additions & 0 deletions

File tree

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import { fetchApi } from '../../utils/fetchApi.js';
2+
3+
export async function runAnalysisFeatureFlagsGet({ repo } = {}) {
4+
if (!repo) {
5+
const err = new Error('--repo is required');
6+
err.exitCode = 1;
7+
throw err;
8+
}
9+
return fetchApi('/extension/analysis/config/feature-flags/get', 'POST', { repo });
10+
}
11+
12+
export async function runAnalysisFeatureFlagsUpdate({ repo, flags } = {}) {
13+
if (!repo) {
14+
const err = new Error('--repo is required');
15+
err.exitCode = 1;
16+
throw err;
17+
}
18+
if (!flags) {
19+
const err = new Error('--flags is required');
20+
err.exitCode = 1;
21+
throw err;
22+
}
23+
let feature_flags;
24+
try {
25+
feature_flags = JSON.parse(flags);
26+
} catch {
27+
const err = new Error('--flags must be valid JSON (e.g. \'{"sast_analysis":"enabled"}\')');
28+
err.exitCode = 1;
29+
throw err;
30+
}
31+
return fetchApi('/extension/analysis/config/feature-flags/update', 'POST', { repo, feature_flags });
32+
}

‎src/commands/settings/index.js‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { runBranchesAll, runBranchesDefault, runBranchesUpdateDefault } from './branches.js';
22
import { runFeatureFlagsGet, runFeatureFlagsUpdate } from './feature-flags.js';
3+
import { runAnalysisFeatureFlagsGet, runAnalysisFeatureFlagsUpdate } from './analysis-feature-flags.js';
34

45
/**
56
* Register all `codeant settings <verb>` subcommands.
@@ -59,4 +60,19 @@ export default function registerSettingsCommands(program, { runCmd }) {
5960
.requiredOption('--flags <json>', 'Feature flags as a JSON string (e.g. \'{"pr_review":"enable"}\')')
6061
.option('--v2', 'Use v2 feature flags', false)
6162
.action((opts) => runCmd(() => runFeatureFlagsUpdate({ repo: opts.repo, flags: opts.flags, v2: opts.v2 })));
63+
64+
// ── analysis feature-flags get ─────────────────────────────────────────────
65+
settings
66+
.command('analysis-feature-flags-get')
67+
.description('Get analysis feature flags for a repository')
68+
.requiredOption('--repo <repo>', 'Repository (owner/repo)')
69+
.action((opts) => runCmd(() => runAnalysisFeatureFlagsGet({ repo: opts.repo })));
70+
71+
// ── analysis feature-flags update ─────────────────────────────────────────
72+
settings
73+
.command('analysis-feature-flags-update')
74+
.description('Update analysis feature flags for a repository')
75+
.requiredOption('--repo <repo>', 'Repository (owner/repo)')
76+
.requiredOption('--flags <json>', 'Feature flags as a JSON string (e.g. \'{"sast_analysis":"enabled"}\')')
77+
.action((opts) => runCmd(() => runAnalysisFeatureFlagsUpdate({ repo: opts.repo, flags: opts.flags })));
6278
}

0 commit comments

Comments
 (0)