@vibe-validate/cli 0.17.0-rc.7 ā 0.17.0-rc.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/config-templates/minimal.yaml +19 -8
- package/config-templates/typescript-library.yaml +19 -8
- package/config-templates/typescript-nodejs.yaml +19 -8
- package/config-templates/typescript-react.yaml +19 -8
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +116 -99
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/pre-commit.d.ts.map +1 -1
- package/dist/commands/pre-commit.js +126 -47
- package/dist/commands/pre-commit.js.map +1 -1
- package/dist/services/ci-providers/github-actions.d.ts.map +1 -1
- package/dist/services/ci-providers/github-actions.js +3 -2
- package/dist/services/ci-providers/github-actions.js.map +1 -1
- package/dist/utils/git-detection.d.ts.map +1 -1
- package/dist/utils/git-detection.js +18 -18
- package/dist/utils/git-detection.js.map +1 -1
- package/dist/utils/project-id.d.ts +1 -2
- package/dist/utils/project-id.d.ts.map +1 -1
- package/dist/utils/project-id.js +6 -11
- package/dist/utils/project-id.js.map +1 -1
- package/dist/utils/secret-scanning.d.ts +72 -0
- package/dist/utils/secret-scanning.d.ts.map +1 -0
- package/dist/utils/secret-scanning.js +205 -0
- package/dist/utils/secret-scanning.js.map +1 -0
- package/package.json +6 -6
|
@@ -9,7 +9,7 @@ import { getRemoteBranch } from '@vibe-validate/config';
|
|
|
9
9
|
import { loadConfig } from '../utils/config-loader.js';
|
|
10
10
|
import { detectContext } from '../utils/context-detector.js';
|
|
11
11
|
import { runValidateWorkflow } from '../utils/validate-workflow.js';
|
|
12
|
-
import {
|
|
12
|
+
import { selectToolsToRun, runSecretScan, showPerformanceWarning, showSecretsDetectedError, formatToolName, hasGitleaksConfig, isGitleaksAvailable, } from '../utils/secret-scanning.js';
|
|
13
13
|
import chalk from 'chalk';
|
|
14
14
|
export function preCommitCommand(program) {
|
|
15
15
|
program
|
|
@@ -55,56 +55,50 @@ export function preCommitCommand(program) {
|
|
|
55
55
|
const verbose = options.verbose ?? false;
|
|
56
56
|
// Step 5: Run secret scanning if enabled
|
|
57
57
|
const secretScanning = config.hooks?.preCommit?.secretScanning;
|
|
58
|
-
if (secretScanning?.enabled
|
|
58
|
+
if (secretScanning?.enabled) {
|
|
59
59
|
console.log(chalk.blue('\nš Running secret scanning...'));
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
// Show scan output if verbose
|
|
66
|
-
if (verbose && result) {
|
|
67
|
-
console.log(chalk.gray(result));
|
|
68
|
-
}
|
|
69
|
-
console.log(chalk.green('ā
No secrets detected'));
|
|
60
|
+
// Determine which tools to run (autodetect or explicit command)
|
|
61
|
+
const toolsToRun = selectToolsToRun(secretScanning.scanCommand);
|
|
62
|
+
if (toolsToRun.length === 0) {
|
|
63
|
+
console.warn(chalk.yellow('ā ļø No secret scanning tools configured or available'));
|
|
64
|
+
console.warn(chalk.gray(' Install gitleaks or add .secretlintrc.json'));
|
|
70
65
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
else if (error && typeof error === 'object' && 'stderr' in error && 'stdout' in error) {
|
|
85
|
-
// Tool ran but found secrets
|
|
86
|
-
const stderr = 'stderr' in error && error.stderr ? String(error.stderr) : '';
|
|
87
|
-
const stdout = 'stdout' in error && error.stdout ? String(error.stdout) : '';
|
|
88
|
-
console.error(chalk.red('\nā Secret scanning detected potential secrets in staged files\n'));
|
|
89
|
-
// Show scan output
|
|
90
|
-
if (stdout) {
|
|
91
|
-
console.error(stdout);
|
|
66
|
+
else {
|
|
67
|
+
const results = [];
|
|
68
|
+
// Run each tool
|
|
69
|
+
for (const { tool, command } of toolsToRun) {
|
|
70
|
+
const result = runSecretScan(tool, command, verbose);
|
|
71
|
+
results.push(result);
|
|
72
|
+
// Handle skipped scans (e.g., gitleaks not available but config exists)
|
|
73
|
+
if (result.skipped) {
|
|
74
|
+
if (hasGitleaksConfig() && !isGitleaksAvailable()) {
|
|
75
|
+
console.warn(chalk.yellow(`ā ļø Found .gitleaks.toml but gitleaks command not available, skipping`));
|
|
76
|
+
console.warn(chalk.gray(' Install gitleaks: brew install gitleaks'));
|
|
77
|
+
}
|
|
78
|
+
continue;
|
|
92
79
|
}
|
|
93
|
-
if
|
|
94
|
-
|
|
80
|
+
// Show verbose output if requested
|
|
81
|
+
if (verbose && result.output) {
|
|
82
|
+
console.log(chalk.gray(result.output));
|
|
83
|
+
}
|
|
84
|
+
// Show performance warning if scan was slow (hardcoded 5s threshold)
|
|
85
|
+
if (result.passed) {
|
|
86
|
+
showPerformanceWarning(tool, result.duration, 5000);
|
|
95
87
|
}
|
|
96
|
-
console.error(chalk.blue('\nš” Fix options:'));
|
|
97
|
-
console.error(chalk.gray(' 1. Remove secrets from staged files'));
|
|
98
|
-
console.error(chalk.gray(' 2. Use .gitleaksignore to mark false positives (if using gitleaks)'));
|
|
99
|
-
console.error(chalk.gray(' 3. Disable scanning: set hooks.preCommit.secretScanning.enabled=false'));
|
|
100
|
-
process.exit(1);
|
|
101
88
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
89
|
+
// Check if any scans failed
|
|
90
|
+
const failedScans = results.filter(r => !r.passed && !r.skipped);
|
|
91
|
+
if (failedScans.length > 0) {
|
|
92
|
+
showSecretsDetectedError(failedScans);
|
|
106
93
|
process.exit(1);
|
|
107
94
|
}
|
|
95
|
+
// Success message
|
|
96
|
+
const ranTools = results.filter(r => !r.skipped);
|
|
97
|
+
if (ranTools.length > 0) {
|
|
98
|
+
const toolNames = ranTools.map(r => formatToolName(r.tool)).join(', ');
|
|
99
|
+
const totalDuration = ranTools.reduce((sum, r) => sum + r.duration, 0);
|
|
100
|
+
console.log(chalk.green(`ā
No secrets detected (${toolNames}, ${totalDuration}ms)`));
|
|
101
|
+
}
|
|
108
102
|
}
|
|
109
103
|
}
|
|
110
104
|
// Step 6: Run validation with caching
|
|
@@ -150,9 +144,10 @@ The \`pre-commit\` command runs a comprehensive pre-commit workflow to ensure yo
|
|
|
150
144
|
|
|
151
145
|
## How It Works
|
|
152
146
|
|
|
153
|
-
1. Runs
|
|
154
|
-
2. Runs
|
|
155
|
-
3.
|
|
147
|
+
1. Runs secret scanning (if enabled in config)
|
|
148
|
+
2. Runs sync-check (fails if branch behind origin/main)
|
|
149
|
+
3. Runs validate (with caching)
|
|
150
|
+
4. Reports git status (warns about unstaged files)
|
|
156
151
|
|
|
157
152
|
## Options
|
|
158
153
|
|
|
@@ -200,6 +195,90 @@ echo "npx vibe-validate pre-commit" > .husky/pre-commit
|
|
|
200
195
|
git commit -m "Your message"
|
|
201
196
|
\`\`\`
|
|
202
197
|
|
|
198
|
+
## Secret Scanning
|
|
199
|
+
|
|
200
|
+
Secret scanning prevents accidental commits of credentials (API keys, tokens, passwords).
|
|
201
|
+
|
|
202
|
+
### Autodetect Mode (Recommended)
|
|
203
|
+
|
|
204
|
+
Enable in config without specifying \`scanCommand\`:
|
|
205
|
+
|
|
206
|
+
\`\`\`yaml
|
|
207
|
+
hooks:
|
|
208
|
+
preCommit:
|
|
209
|
+
secretScanning:
|
|
210
|
+
enabled: true
|
|
211
|
+
\`\`\`
|
|
212
|
+
|
|
213
|
+
Automatically runs tools based on config files:
|
|
214
|
+
- \`.gitleaks.toml\` or \`.gitleaksignore\` ā runs gitleaks
|
|
215
|
+
- \`.secretlintrc.json\` ā runs secretlint (via npx)
|
|
216
|
+
- Both files ā runs both tools (defense-in-depth)
|
|
217
|
+
|
|
218
|
+
### Tool Setup
|
|
219
|
+
|
|
220
|
+
**Option 1: gitleaks (recommended - fast, 160+ secret types)**
|
|
221
|
+
\`\`\`bash
|
|
222
|
+
# Install
|
|
223
|
+
macOS: brew install gitleaks
|
|
224
|
+
Linux: https://github.com/gitleaks/gitleaks#installation
|
|
225
|
+
Windows: winget install gitleaks
|
|
226
|
+
|
|
227
|
+
# Create config (empty file enables autodetect)
|
|
228
|
+
touch .gitleaksignore
|
|
229
|
+
|
|
230
|
+
# Handle false positives (add fingerprints from gitleaks output)
|
|
231
|
+
echo "path/to/file.txt:generic-api-key:123" >> .gitleaksignore
|
|
232
|
+
\`\`\`
|
|
233
|
+
|
|
234
|
+
**Option 2: secretlint (npm-based, always available)**
|
|
235
|
+
\`\`\`bash
|
|
236
|
+
# Install
|
|
237
|
+
npm install --save-dev @secretlint/secretlint-rule-preset-recommend secretlint
|
|
238
|
+
|
|
239
|
+
# Create config
|
|
240
|
+
cat > .secretlintrc.json << 'EOF'
|
|
241
|
+
{
|
|
242
|
+
"rules": [
|
|
243
|
+
{"id": "@secretlint/secretlint-rule-preset-recommend"}
|
|
244
|
+
]
|
|
245
|
+
}
|
|
246
|
+
EOF
|
|
247
|
+
|
|
248
|
+
# Handle false positives
|
|
249
|
+
cat > .secretlintignore << 'EOF'
|
|
250
|
+
.jscpd/
|
|
251
|
+
**/dist/**
|
|
252
|
+
**/node_modules/**
|
|
253
|
+
EOF
|
|
254
|
+
\`\`\`
|
|
255
|
+
|
|
256
|
+
**Option 3: Both (defense-in-depth)**
|
|
257
|
+
\`\`\`bash
|
|
258
|
+
# Set up both tools - autodetect runs both automatically
|
|
259
|
+
# gitleaks: fast native binary
|
|
260
|
+
# secretlint: npm-based with different detection patterns
|
|
261
|
+
\`\`\`
|
|
262
|
+
|
|
263
|
+
### Explicit Command Mode
|
|
264
|
+
|
|
265
|
+
For custom tools or specific flags:
|
|
266
|
+
|
|
267
|
+
\`\`\`yaml
|
|
268
|
+
hooks:
|
|
269
|
+
preCommit:
|
|
270
|
+
secretScanning:
|
|
271
|
+
enabled: true
|
|
272
|
+
scanCommand: "gitleaks protect --staged --verbose --config .gitleaks.toml"
|
|
273
|
+
\`\`\`
|
|
274
|
+
|
|
275
|
+
### Troubleshooting
|
|
276
|
+
|
|
277
|
+
- **"No secrets detected"** - Working correctly, no secrets found
|
|
278
|
+
- **"Secret scanning enabled but no tools available"** - Install gitleaks or create .secretlintrc.json
|
|
279
|
+
- **False positives** - Add to .gitleaksignore or .secretlintignore
|
|
280
|
+
- **Slow scans** - Warning shown if scan takes >5 seconds
|
|
281
|
+
|
|
203
282
|
## Error Recovery
|
|
204
283
|
|
|
205
284
|
### If sync check fails
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre-commit.js","sourceRoot":"","sources":["../../src/commands/pre-commit.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,
|
|
1
|
+
{"version":3,"file":"pre-commit.js","sourceRoot":"","sources":["../../src/commands/pre-commit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-actions.d.ts","sourceRoot":"","sources":["../../../src/services/ci-providers/github-actions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"github-actions.d.ts","sourceRoot":"","sources":["../../../src/services/ci-providers/github-actions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,WAAW,EAEX,WAAW,EACX,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;GAOG;AACH,qBAAa,qBAAsB,YAAW,UAAU;IACtD,QAAQ,CAAC,IAAI,oBAAoB;IAE3B,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAa/B,iBAAiB,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAoBhD,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAyB7D,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAkC3D,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,wBAAwB,GAAG,IAAI;IAatE;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAU9B;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAsBtC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAwB5B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgB1B;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAUtC;;OAEG;IACH,OAAO,CAAC,cAAc;IAkEtB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAkB9B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAuB9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyBzB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;CA2B5B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { execSync } from 'node:child_process';
|
|
2
2
|
import { parse as parseYaml } from 'yaml';
|
|
3
|
+
import { executeGitCommand } from '@vibe-validate/git';
|
|
3
4
|
/**
|
|
4
5
|
* GitHub Actions CI provider implementation
|
|
5
6
|
*
|
|
@@ -15,8 +16,8 @@ export class GitHubActionsProvider {
|
|
|
15
16
|
// Check if gh CLI is available
|
|
16
17
|
execSync('gh --version', { stdio: 'ignore' });
|
|
17
18
|
// Check if we're in a GitHub repo
|
|
18
|
-
const
|
|
19
|
-
return
|
|
19
|
+
const result = executeGitCommand(['remote', 'get-url', 'origin']);
|
|
20
|
+
return result.success && result.stdout.includes('github.com');
|
|
20
21
|
}
|
|
21
22
|
catch {
|
|
22
23
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github-actions.js","sourceRoot":"","sources":["../../../src/services/ci-providers/github-actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"github-actions.js","sourceRoot":"","sources":["../../../src/services/ci-providers/github-actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-detection.d.ts","sourceRoot":"","sources":["../../src/utils/git-detection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mFAAmF;IACnF,UAAU,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,YAAY,EAAE,MAAM,CAAC;IACrB,2FAA2F;IAC3F,QAAQ,EAAE,OAAO,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"git-detection.d.ts","sourceRoot":"","sources":["../../src/utils/git-detection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mFAAmF;IACnF,UAAU,EAAE,MAAM,CAAC;IACnB,8EAA8E;IAC9E,YAAY,EAAE,MAAM,CAAC;IACrB,2FAA2F;IAC3F,QAAQ,EAAE,OAAO,CAAC;CACnB;AA2ED,wBAAgB,eAAe,IAAI,iBAAiB,CA2CnD"}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* Shared utilities for detecting git configuration (main branch, remote origin).
|
|
5
5
|
* Used by both init and doctor commands.
|
|
6
6
|
*/
|
|
7
|
-
import { execSync } from 'node:child_process';
|
|
8
7
|
import { GIT_DEFAULTS } from '@vibe-validate/config';
|
|
8
|
+
import { executeGitCommand, isGitRepository } from '@vibe-validate/git';
|
|
9
9
|
/**
|
|
10
10
|
* Detects git configuration from the current repository.
|
|
11
11
|
*
|
|
@@ -45,11 +45,11 @@ function selectPreferredRemote(remotes) {
|
|
|
45
45
|
*/
|
|
46
46
|
function detectMainBranchFromHead(remote) {
|
|
47
47
|
try {
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
return
|
|
48
|
+
const result = executeGitCommand(['symbolic-ref', `refs/remotes/${remote}/HEAD`]);
|
|
49
|
+
if (!result.success) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
return result.stdout.trim().replace(`refs/remotes/${remote}/`, '');
|
|
53
53
|
}
|
|
54
54
|
catch {
|
|
55
55
|
return null;
|
|
@@ -60,10 +60,11 @@ function detectMainBranchFromHead(remote) {
|
|
|
60
60
|
*/
|
|
61
61
|
function detectMainBranchFromRemote(remote) {
|
|
62
62
|
try {
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
63
|
+
const result = executeGitCommand(['ls-remote', '--heads', remote]);
|
|
64
|
+
if (!result.success) {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
const branches = result.stdout.trim();
|
|
67
68
|
// Check for common main branch names in order of preference
|
|
68
69
|
if (branches.includes('refs/heads/main'))
|
|
69
70
|
return 'main';
|
|
@@ -83,18 +84,17 @@ export function detectGitConfig() {
|
|
|
83
84
|
remoteOrigin: GIT_DEFAULTS.REMOTE_ORIGIN,
|
|
84
85
|
detected: false,
|
|
85
86
|
};
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
execSync('git rev-parse --git-dir', { stdio: 'pipe' });
|
|
89
|
-
}
|
|
90
|
-
catch {
|
|
91
|
-
// Not a git repository - use defaults
|
|
87
|
+
// Check if we're in a git repository
|
|
88
|
+
if (!isGitRepository()) {
|
|
92
89
|
return defaults;
|
|
93
90
|
}
|
|
94
91
|
try {
|
|
95
92
|
// Get list of remotes
|
|
96
|
-
const
|
|
97
|
-
|
|
93
|
+
const result = executeGitCommand(['remote']);
|
|
94
|
+
if (!result.success) {
|
|
95
|
+
return defaults;
|
|
96
|
+
}
|
|
97
|
+
const remotes = result.stdout.trim().split('\n').filter(Boolean);
|
|
98
98
|
if (remotes.length === 0) {
|
|
99
99
|
return defaults;
|
|
100
100
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-detection.js","sourceRoot":"","sources":["../../src/utils/git-detection.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"git-detection.js","sourceRoot":"","sources":["../../src/utils/git-detection.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,10 +11,9 @@
|
|
|
11
11
|
* Tries to extract project name from git remote URL.
|
|
12
12
|
* Works for GitHub, GitLab, Bitbucket, and other git hosts.
|
|
13
13
|
*
|
|
14
|
-
* @param cwd - Directory to check (defaults to process.cwd())
|
|
15
14
|
* @returns Project ID or null
|
|
16
15
|
*/
|
|
17
|
-
export declare function getProjectIdFromGit(
|
|
16
|
+
export declare function getProjectIdFromGit(): string | null;
|
|
18
17
|
/**
|
|
19
18
|
* Get project ID from package.json
|
|
20
19
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-id.d.ts","sourceRoot":"","sources":["../../src/utils/project-id.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA8BH
|
|
1
|
+
{"version":3,"file":"project-id.d.ts","sourceRoot":"","sources":["../../src/utils/project-id.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA8BH;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAcnD;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAqBtF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAe1E"}
|
package/dist/utils/project-id.js
CHANGED
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
* Used when locking.concurrencyScope=project to ensure
|
|
6
6
|
* multiple directories (worktrees, clones) share the same lock.
|
|
7
7
|
*/
|
|
8
|
-
import { execSync } from 'node:child_process';
|
|
9
8
|
import { readFileSync, existsSync } from 'node:fs';
|
|
10
9
|
import { join } from 'node:path';
|
|
10
|
+
import { executeGitCommand } from '@vibe-validate/git';
|
|
11
11
|
/**
|
|
12
12
|
* Extract project name from git remote URL
|
|
13
13
|
*
|
|
@@ -35,21 +35,16 @@ function extractProjectFromGitUrl(remoteUrl) {
|
|
|
35
35
|
* Tries to extract project name from git remote URL.
|
|
36
36
|
* Works for GitHub, GitLab, Bitbucket, and other git hosts.
|
|
37
37
|
*
|
|
38
|
-
* @param cwd - Directory to check (defaults to process.cwd())
|
|
39
38
|
* @returns Project ID or null
|
|
40
39
|
*/
|
|
41
|
-
export function getProjectIdFromGit(
|
|
40
|
+
export function getProjectIdFromGit() {
|
|
42
41
|
try {
|
|
43
42
|
// Get remote URL for origin
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
encoding: 'utf8',
|
|
47
|
-
stdio: ['pipe', 'pipe', 'pipe'],
|
|
48
|
-
}).trim();
|
|
49
|
-
if (!remoteUrl) {
|
|
43
|
+
const result = executeGitCommand(['config', '--get', 'remote.origin.url']);
|
|
44
|
+
if (!result.success || !result.stdout.trim()) {
|
|
50
45
|
return null;
|
|
51
46
|
}
|
|
52
|
-
return extractProjectFromGitUrl(
|
|
47
|
+
return extractProjectFromGitUrl(result.stdout.trim());
|
|
53
48
|
}
|
|
54
49
|
catch {
|
|
55
50
|
// Not a git repo or no remote configured
|
|
@@ -97,7 +92,7 @@ export function getProjectIdFromPackageJson(cwd = process.cwd()) {
|
|
|
97
92
|
*/
|
|
98
93
|
export function detectProjectId(cwd = process.cwd()) {
|
|
99
94
|
// Try git remote first (most reliable for worktrees/clones)
|
|
100
|
-
const gitProject = getProjectIdFromGit(
|
|
95
|
+
const gitProject = getProjectIdFromGit();
|
|
101
96
|
if (gitProject) {
|
|
102
97
|
return gitProject;
|
|
103
98
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-id.js","sourceRoot":"","sources":["../../src/utils/project-id.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"project-id.js","sourceRoot":"","sources":["../../src/utils/project-id.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;;;;;;;;GAUG;AACH,SAAS,wBAAwB,CAAC,SAAiB;IACjD,gCAAgC;IAChC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAEhD,yCAAyC;IACzC,sCAAsC;IACtC,gCAAgC;IAChC,4JAA4J;IAC5J,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE3C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACjC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB;IACjC,IAAI,CAAC;QACH,4BAA4B;QAC5B,MAAM,MAAM,GAAG,iBAAiB,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC;QAE3E,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,wBAAwB,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,yCAAyC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACrE,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAElD,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;QAE9B,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,iDAAiD;QACjD,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,wCAAwC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACzD,4DAA4D;IAC5D,MAAM,UAAU,GAAG,mBAAmB,EAAE,CAAC;IACzC,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,4BAA4B;IAC5B,MAAM,cAAc,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC;IACxD,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,wBAAwB;IACxB,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secret Scanning Tool Detection and Execution
|
|
3
|
+
*
|
|
4
|
+
* Handles automatic detection and execution of secret scanning tools:
|
|
5
|
+
* - gitleaks (native binary, fast)
|
|
6
|
+
* - secretlint (npm-based, containerized-friendly)
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Secret scanning tool type
|
|
10
|
+
*/
|
|
11
|
+
export type SecretScanningTool = 'gitleaks' | 'secretlint';
|
|
12
|
+
/**
|
|
13
|
+
* Tool detection result
|
|
14
|
+
*/
|
|
15
|
+
export interface ToolDetection {
|
|
16
|
+
tool: SecretScanningTool;
|
|
17
|
+
available: boolean;
|
|
18
|
+
hasConfig: boolean;
|
|
19
|
+
defaultCommand: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Check if gitleaks command is available
|
|
23
|
+
*/
|
|
24
|
+
export declare function isGitleaksAvailable(): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Check if gitleaks config files exist
|
|
27
|
+
*/
|
|
28
|
+
export declare function hasGitleaksConfig(cwd?: string): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Check if secretlint config exists
|
|
31
|
+
*/
|
|
32
|
+
export declare function hasSecretlintConfig(cwd?: string): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Detect available secret scanning tools and their configurations
|
|
35
|
+
*/
|
|
36
|
+
export declare function detectSecretScanningTools(cwd?: string): ToolDetection[];
|
|
37
|
+
/**
|
|
38
|
+
* Determine which tools to run based on configuration and availability
|
|
39
|
+
*/
|
|
40
|
+
export declare function selectToolsToRun(scanCommand: string | undefined, cwd?: string): {
|
|
41
|
+
tool: SecretScanningTool;
|
|
42
|
+
command: string;
|
|
43
|
+
}[];
|
|
44
|
+
/**
|
|
45
|
+
* Result of a secret scan
|
|
46
|
+
*/
|
|
47
|
+
export interface ScanResult {
|
|
48
|
+
tool: SecretScanningTool;
|
|
49
|
+
passed: boolean;
|
|
50
|
+
duration: number;
|
|
51
|
+
skipped?: boolean;
|
|
52
|
+
skipReason?: string;
|
|
53
|
+
output?: string;
|
|
54
|
+
error?: string;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Run a secret scanning command
|
|
58
|
+
*/
|
|
59
|
+
export declare function runSecretScan(tool: SecretScanningTool, command: string, verbose?: boolean): ScanResult;
|
|
60
|
+
/**
|
|
61
|
+
* Format tool name for display
|
|
62
|
+
*/
|
|
63
|
+
export declare function formatToolName(tool: SecretScanningTool): string;
|
|
64
|
+
/**
|
|
65
|
+
* Show performance warning if scan was slow
|
|
66
|
+
*/
|
|
67
|
+
export declare function showPerformanceWarning(tool: SecretScanningTool, duration: number, threshold: number): void;
|
|
68
|
+
/**
|
|
69
|
+
* Show error message when secrets are detected
|
|
70
|
+
*/
|
|
71
|
+
export declare function showSecretsDetectedError(results: ScanResult[]): void;
|
|
72
|
+
//# sourceMappingURL=secret-scanning.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secret-scanning.d.ts","sourceRoot":"","sources":["../../src/utils/secret-scanning.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,YAAY,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,kBAAkB,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAO7C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAKtE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAExE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,GAAE,MAAsB,GAAG,aAAa,EAAE,CAmBtF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,GAAG,SAAS,EAC/B,GAAG,GAAE,MAAsB,GAC1B;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,CAoCjD;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,kBAAkB,EACxB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,OAAe,GACvB,UAAU,CAmEZ;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAE/D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,kBAAkB,EACxB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,IAAI,CAeN;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAsBpE"}
|