avana-cli 2.12.0 → 2.12.1
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/README.md +41 -35
- package/dist/cli.js +26 -16
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -29,7 +29,7 @@ Avana prevents costly security breaches by detecting hardcoded secrets, API keys
|
|
|
29
29
|
### Installation
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
|
-
# Install globally
|
|
32
|
+
# Install globally (recommended)
|
|
33
33
|
npm install -g avana-cli
|
|
34
34
|
|
|
35
35
|
# Verify installation
|
|
@@ -37,6 +37,7 @@ avana --help
|
|
|
37
37
|
|
|
38
38
|
# Or use with npx (no installation required)
|
|
39
39
|
npx avana-cli scan
|
|
40
|
+
npx avana-cli --help
|
|
40
41
|
```
|
|
41
42
|
|
|
42
43
|
### Troubleshooting Installation
|
|
@@ -72,6 +73,7 @@ avana doctor
|
|
|
72
73
|
|
|
73
74
|
### Basic Usage
|
|
74
75
|
|
|
76
|
+
**With Global Installation:**
|
|
75
77
|
```bash
|
|
76
78
|
# Scan current directory
|
|
77
79
|
avana scan
|
|
@@ -82,20 +84,26 @@ avana scan --verbose
|
|
|
82
84
|
# Scan specific path
|
|
83
85
|
avana scan --path ./my-project
|
|
84
86
|
|
|
85
|
-
# Scan with JSON output
|
|
86
|
-
avana scan --json
|
|
87
|
-
|
|
88
87
|
# Scan with custom ignore patterns
|
|
89
88
|
avana scan --ignore "**/*.md" --ignore "tests/**"
|
|
90
89
|
|
|
91
|
-
# Scan with memory and worker limits
|
|
92
|
-
avana scan --max-memory 1000 --workers 4
|
|
93
|
-
|
|
94
90
|
# Install Git pre-commit hooks
|
|
95
91
|
avana install
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**With NPX (no installation required):**
|
|
95
|
+
```bash
|
|
96
|
+
# Scan current directory
|
|
97
|
+
npx avana-cli scan
|
|
98
|
+
|
|
99
|
+
# Scan with verbose output
|
|
100
|
+
npx avana-cli scan --verbose
|
|
96
101
|
|
|
97
|
-
#
|
|
98
|
-
avana
|
|
102
|
+
# Scan specific path
|
|
103
|
+
npx avana-cli scan --path ./my-project
|
|
104
|
+
|
|
105
|
+
# Show help
|
|
106
|
+
npx avana-cli --help
|
|
99
107
|
```
|
|
100
108
|
|
|
101
109
|
### Git Hook Integration
|
|
@@ -247,7 +255,7 @@ scan-reports/
|
|
|
247
255
|
|
|
248
256
|
```bash
|
|
249
257
|
# Scan command
|
|
250
|
-
avana scan [options]
|
|
258
|
+
avana-cli scan [options]
|
|
251
259
|
|
|
252
260
|
Options:
|
|
253
261
|
--path <path> Path to scan (default: current directory)
|
|
@@ -255,9 +263,6 @@ Options:
|
|
|
255
263
|
--verbose, -v Show detailed output
|
|
256
264
|
--debug Show debug information
|
|
257
265
|
--quiet Show minimal output
|
|
258
|
-
--json Save results to JSON file
|
|
259
|
-
--output-json Save results to JSON file (alias for --json)
|
|
260
|
-
--output-md Save results to Markdown file
|
|
261
266
|
--no-progress Disable progress bar
|
|
262
267
|
--fail-on-high Exit with code 1 on high severity issues
|
|
263
268
|
--max-memory <mb> Set memory limit in MB (default: 500)
|
|
@@ -266,18 +271,22 @@ Options:
|
|
|
266
271
|
--help, -h Show help message
|
|
267
272
|
|
|
268
273
|
# Git hook commands
|
|
269
|
-
avana install Install Git pre-commit hooks
|
|
270
|
-
avana uninstall Remove Git pre-commit hooks
|
|
274
|
+
avana-cli install Install Git pre-commit hooks
|
|
275
|
+
avana-cli uninstall Remove Git pre-commit hooks
|
|
271
276
|
|
|
272
|
-
# Examples
|
|
273
|
-
avana scan
|
|
274
|
-
avana scan --path ./my-project
|
|
275
|
-
avana scan --staged
|
|
276
|
-
avana scan --verbose --debug
|
|
277
|
-
avana scan --
|
|
278
|
-
avana scan --
|
|
279
|
-
avana scan --
|
|
280
|
-
|
|
277
|
+
# Examples with NPX (recommended)
|
|
278
|
+
npx avana-cli scan
|
|
279
|
+
npx avana-cli scan --path ./my-project
|
|
280
|
+
npx avana-cli scan --staged
|
|
281
|
+
npx avana-cli scan --verbose --debug
|
|
282
|
+
npx avana-cli scan --fail-on-high
|
|
283
|
+
npx avana-cli scan --max-memory 1000 --workers 4
|
|
284
|
+
npx avana-cli scan --ignore "**/*.md" --ignore "tests/**"
|
|
285
|
+
|
|
286
|
+
# Examples with Global Installation
|
|
287
|
+
avana scan # after npm install -g avana-cli
|
|
288
|
+
avana scan --verbose
|
|
289
|
+
avana install
|
|
281
290
|
```
|
|
282
291
|
|
|
283
292
|
### Exit Codes
|
|
@@ -376,16 +385,16 @@ When using `avana install`:
|
|
|
376
385
|
**Memory Issues**
|
|
377
386
|
```bash
|
|
378
387
|
# Increase memory limit
|
|
379
|
-
avana scan --max-memory 1000
|
|
388
|
+
npx avana-cli scan --max-memory 1000
|
|
380
389
|
|
|
381
390
|
# Reduce worker count
|
|
382
|
-
avana scan --workers 2
|
|
391
|
+
npx avana-cli scan --workers 2
|
|
383
392
|
```
|
|
384
393
|
|
|
385
394
|
**Performance Issues**
|
|
386
395
|
```bash
|
|
387
396
|
# Add ignore patterns for large directories
|
|
388
|
-
avana scan --ignore "node_modules/**" --ignore "dist/**"
|
|
397
|
+
npx avana-cli scan --ignore "node_modules/**" --ignore "dist/**"
|
|
389
398
|
|
|
390
399
|
# Use .avanaignore file for persistent patterns
|
|
391
400
|
echo "large-data/**" >> .avanaignore
|
|
@@ -394,16 +403,13 @@ echo "large-data/**" >> .avanaignore
|
|
|
394
403
|
**False Positives**
|
|
395
404
|
```bash
|
|
396
405
|
# Use ignore patterns for test files
|
|
397
|
-
avana scan --ignore "**/*.test.ts" --ignore "fixtures/**"
|
|
398
|
-
|
|
399
|
-
# Check pattern confidence scores in JSON output
|
|
400
|
-
avana scan --json
|
|
406
|
+
npx avana-cli scan --ignore "**/*.test.ts" --ignore "fixtures/**"
|
|
401
407
|
```
|
|
402
408
|
|
|
403
409
|
**Binary File Warnings**
|
|
404
410
|
```bash
|
|
405
411
|
# Enable debug mode to see file processing details
|
|
406
|
-
avana scan --debug
|
|
412
|
+
npx avana-cli scan --debug
|
|
407
413
|
|
|
408
414
|
# Binary files are automatically skipped
|
|
409
415
|
```
|
|
@@ -434,7 +440,7 @@ jobs:
|
|
|
434
440
|
with:
|
|
435
441
|
node-version: '18'
|
|
436
442
|
- name: Run Avana Security Scan
|
|
437
|
-
run: npx avana scan
|
|
443
|
+
run: npx avana-cli scan
|
|
438
444
|
- name: Upload scan results
|
|
439
445
|
if: always()
|
|
440
446
|
uses: actions/upload-artifact@v3
|
|
@@ -449,7 +455,7 @@ jobs:
|
|
|
449
455
|
security_scan:
|
|
450
456
|
stage: test
|
|
451
457
|
script:
|
|
452
|
-
- npx avana scan --
|
|
458
|
+
- npx avana-cli scan --fail-on-high
|
|
453
459
|
artifacts:
|
|
454
460
|
when: always
|
|
455
461
|
paths:
|
|
@@ -469,7 +475,7 @@ pipeline {
|
|
|
469
475
|
stages {
|
|
470
476
|
stage('Security Scan') {
|
|
471
477
|
steps {
|
|
472
|
-
sh 'npx avana scan
|
|
478
|
+
sh 'npx avana-cli scan'
|
|
473
479
|
archiveArtifacts artifacts: 'scan-reports/*', allowEmptyArchive: true
|
|
474
480
|
publishHTML([
|
|
475
481
|
allowMissing: false,
|
package/dist/cli.js
CHANGED
|
@@ -109,12 +109,12 @@ async function main() {
|
|
|
109
109
|
🔒 Avana CLI
|
|
110
110
|
|
|
111
111
|
Usage:
|
|
112
|
-
avana scan [options] Scan project for security issues
|
|
113
|
-
avana install Install Git pre-commit hooks
|
|
114
|
-
avana uninstall Remove Git pre-commit hooks
|
|
115
|
-
avana troubleshoot Run diagnostics and troubleshooting
|
|
116
|
-
avana doctor Alias for troubleshoot
|
|
117
|
-
avana --help Show this help message
|
|
112
|
+
avana-cli scan [options] Scan project for security issues
|
|
113
|
+
avana-cli install Install Git pre-commit hooks
|
|
114
|
+
avana-cli uninstall Remove Git pre-commit hooks
|
|
115
|
+
avana-cli troubleshoot Run diagnostics and troubleshooting
|
|
116
|
+
avana-cli doctor Alias for troubleshoot
|
|
117
|
+
avana-cli --help Show this help message
|
|
118
118
|
|
|
119
119
|
Scan Options:
|
|
120
120
|
--path <path> Path to scan (default: current directory)
|
|
@@ -135,16 +135,26 @@ Exit Codes:
|
|
|
135
135
|
3 Unexpected error occurred
|
|
136
136
|
|
|
137
137
|
Examples:
|
|
138
|
-
avana scan
|
|
139
|
-
avana scan --path ./my-project
|
|
140
|
-
avana scan --staged
|
|
141
|
-
avana scan --verbose --debug
|
|
142
|
-
avana scan --fail-on-high
|
|
143
|
-
avana scan --max-memory 1000 --workers 4
|
|
144
|
-
avana scan --ignore "**/*.md" --ignore "tests/**"
|
|
145
|
-
avana install
|
|
146
|
-
avana uninstall
|
|
147
|
-
avana troubleshoot
|
|
138
|
+
avana-cli scan
|
|
139
|
+
avana-cli scan --path ./my-project
|
|
140
|
+
avana-cli scan --staged
|
|
141
|
+
avana-cli scan --verbose --debug
|
|
142
|
+
avana-cli scan --fail-on-high
|
|
143
|
+
avana-cli scan --max-memory 1000 --workers 4
|
|
144
|
+
avana-cli scan --ignore "**/*.md" --ignore "tests/**"
|
|
145
|
+
avana-cli install
|
|
146
|
+
avana-cli uninstall
|
|
147
|
+
avana-cli troubleshoot
|
|
148
|
+
|
|
149
|
+
NPX Usage (recommended for trying out):
|
|
150
|
+
npx avana-cli scan
|
|
151
|
+
npx avana-cli --help
|
|
152
|
+
npx avana-cli scan --verbose
|
|
153
|
+
|
|
154
|
+
Global Installation (for shorter commands):
|
|
155
|
+
npm install -g avana-cli
|
|
156
|
+
avana scan # after global install
|
|
157
|
+
avana --help
|
|
148
158
|
|
|
149
159
|
Troubleshooting:
|
|
150
160
|
If you're experiencing issues, run 'avana troubleshoot' for comprehensive
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|