@principal-ai/quality-lens-cli 0.1.2 → 0.1.4
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 +77 -30
- package/dist/cli.js +101 -0
- package/dist/cli.js.map +1 -1
- package/dist/output/JsonFormatter.d.ts +6 -28
- package/dist/output/JsonFormatter.d.ts.map +1 -1
- package/dist/output/JsonFormatter.js +92 -0
- package/dist/output/JsonFormatter.js.map +1 -1
- package/dist/service/QualityLensService.d.ts.map +1 -1
- package/dist/service/QualityLensService.js +6 -0
- package/dist/service/QualityLensService.js.map +1 -1
- package/package.json +12 -4
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Quality Lens CLI
|
|
2
2
|
|
|
3
|
-
A standalone CLI tool for running quality lenses (ESLint, Jest, TypeScript, Knip, Git) on codebases in CI/CD pipelines.
|
|
3
|
+
A standalone CLI tool for running quality lenses (ESLint, Jest, TypeScript, Knip, Git, Alexandria) on codebases in CI/CD pipelines.
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
@@ -8,8 +8,51 @@ A standalone CLI tool for running quality lenses (ESLint, Jest, TypeScript, Knip
|
|
|
8
8
|
npm install -g @principal-ai/quality-lens-cli
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
+
## Quick Start
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# 1. Install the CLI
|
|
15
|
+
npm install -g @principal-ai/quality-lens-cli
|
|
16
|
+
|
|
17
|
+
# 2. See what quality tools are available in your project
|
|
18
|
+
quality-lens list
|
|
19
|
+
|
|
20
|
+
# 3. Set up the GitHub Action
|
|
21
|
+
quality-lens init
|
|
22
|
+
|
|
23
|
+
# 4. Commit and push to start tracking quality
|
|
24
|
+
git add .github/workflows/quality-lens.yml
|
|
25
|
+
git commit -m "Add Quality Lens workflow"
|
|
26
|
+
git push
|
|
27
|
+
```
|
|
28
|
+
|
|
11
29
|
## Usage
|
|
12
30
|
|
|
31
|
+
### Initialize GitHub Action
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# Set up the workflow in current directory
|
|
35
|
+
quality-lens init
|
|
36
|
+
|
|
37
|
+
# Set up in specific directory
|
|
38
|
+
quality-lens init /path/to/repo
|
|
39
|
+
|
|
40
|
+
# Overwrite existing workflow
|
|
41
|
+
quality-lens init --force
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### List available lenses
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# See what lenses are available and what's missing
|
|
48
|
+
quality-lens list
|
|
49
|
+
|
|
50
|
+
# Example output:
|
|
51
|
+
# @my-project/core:
|
|
52
|
+
# Available: eslint, typescript, test, prettier
|
|
53
|
+
# Missing: knip, alexandria
|
|
54
|
+
```
|
|
55
|
+
|
|
13
56
|
### Run quality lenses
|
|
14
57
|
|
|
15
58
|
```bash
|
|
@@ -20,7 +63,7 @@ quality-lens run
|
|
|
20
63
|
quality-lens run /path/to/repo
|
|
21
64
|
|
|
22
65
|
# Run specific lenses only
|
|
23
|
-
quality-lens run --lenses eslint,jest,typescript
|
|
66
|
+
quality-lens run --lenses eslint,jest,typescript,alexandria
|
|
24
67
|
|
|
25
68
|
# Output to JSON file
|
|
26
69
|
quality-lens run --output results.json --format json
|
|
@@ -29,20 +72,10 @@ quality-lens run --output results.json --format json
|
|
|
29
72
|
quality-lens run --format console
|
|
30
73
|
```
|
|
31
74
|
|
|
32
|
-
### List available lenses
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
# List lenses in current directory
|
|
36
|
-
quality-lens list
|
|
37
|
-
|
|
38
|
-
# List lenses in specific directory
|
|
39
|
-
quality-lens list /path/to/repo
|
|
40
|
-
```
|
|
41
|
-
|
|
42
75
|
## Options
|
|
43
76
|
|
|
44
77
|
- `--output, -o`: Output file path for results (JSON format)
|
|
45
|
-
- `--lenses`: Comma-separated list of lenses to run (eslint,jest,typescript,knip,git)
|
|
78
|
+
- `--lenses`: Comma-separated list of lenses to run (eslint,jest,typescript,knip,git,alexandria)
|
|
46
79
|
- `--format`: Output format - `json` or `console` (default: console)
|
|
47
80
|
|
|
48
81
|
## GitHub Actions Integration
|
|
@@ -60,7 +93,6 @@ on:
|
|
|
60
93
|
|
|
61
94
|
jobs:
|
|
62
95
|
analyze:
|
|
63
|
-
environment: production # Required for NPM_TOKEN secret
|
|
64
96
|
runs-on: ubuntu-latest
|
|
65
97
|
|
|
66
98
|
steps:
|
|
@@ -73,11 +105,6 @@ jobs:
|
|
|
73
105
|
node-version: '20'
|
|
74
106
|
cache: 'npm'
|
|
75
107
|
|
|
76
|
-
- name: Configure npm authentication
|
|
77
|
-
run: |
|
|
78
|
-
echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc
|
|
79
|
-
echo "@principal-ai:registry=https://registry.npmjs.org/" >> ~/.npmrc
|
|
80
|
-
|
|
81
108
|
- name: Install dependencies
|
|
82
109
|
run: npm ci
|
|
83
110
|
|
|
@@ -89,14 +116,14 @@ jobs:
|
|
|
89
116
|
node bin/quality-lens.js run . \
|
|
90
117
|
--output results.json \
|
|
91
118
|
--format json \
|
|
92
|
-
--lenses eslint,typescript
|
|
119
|
+
--lenses eslint,typescript,knip,test,alexandria
|
|
93
120
|
continue-on-error: true
|
|
94
121
|
|
|
95
122
|
- name: Upload results artifact
|
|
96
123
|
if: always()
|
|
97
124
|
uses: actions/upload-artifact@v4
|
|
98
125
|
with:
|
|
99
|
-
name: quality-lens-results
|
|
126
|
+
name: quality-lens-results-${{ github.sha }}
|
|
100
127
|
path: results.json
|
|
101
128
|
if-no-files-found: warn
|
|
102
129
|
|
|
@@ -142,13 +169,7 @@ jobs:
|
|
|
142
169
|
});
|
|
143
170
|
```
|
|
144
171
|
|
|
145
|
-
###
|
|
146
|
-
|
|
147
|
-
1. **NPM Token**: Add `NPM_TOKEN` to your repository's production environment secrets at:
|
|
148
|
-
`https://github.com/your-org/your-repo/settings/secrets/actions`
|
|
149
|
-
|
|
150
|
-
2. **Production Environment**: Create a production environment in your repository settings if it doesn't exist:
|
|
151
|
-
`https://github.com/your-org/your-repo/settings/environments`
|
|
172
|
+
### What the Workflow Does
|
|
152
173
|
|
|
153
174
|
The workflow will:
|
|
154
175
|
- Run quality lenses on push and pull requests
|
|
@@ -156,6 +177,17 @@ The workflow will:
|
|
|
156
177
|
- Automatically comment on PRs with analysis summary
|
|
157
178
|
- Continue workflow execution even if quality checks fail
|
|
158
179
|
|
|
180
|
+
## Retrieving Artifacts from GitHub Actions
|
|
181
|
+
|
|
182
|
+
For detailed instructions on retrieving quality analysis artifacts from GitHub Actions and integrating them with your UI (e.g., Quality Hexagon visualization), see the [Artifact Retrieval Guide](./ARTIFACT_RETRIEVAL_GUIDE.md).
|
|
183
|
+
|
|
184
|
+
The guide covers:
|
|
185
|
+
- Authentication setup (fine-grained tokens, classic tokens, GitHub Apps)
|
|
186
|
+
- Retrieval methods (GitHub CLI, REST API, Octokit)
|
|
187
|
+
- Integration examples for Electron apps
|
|
188
|
+
- Quality Hexagon visualization integration
|
|
189
|
+
- Best practices for caching and error handling
|
|
190
|
+
|
|
159
191
|
## Output Format
|
|
160
192
|
|
|
161
193
|
### JSON Output
|
|
@@ -166,7 +198,12 @@ The workflow will:
|
|
|
166
198
|
"timestamp": "2025-10-16T20:00:00.000Z",
|
|
167
199
|
"version": "1.0.0",
|
|
168
200
|
"totalPackages": 2,
|
|
169
|
-
"totalLenses": 6
|
|
201
|
+
"totalLenses": 6,
|
|
202
|
+
"git": {
|
|
203
|
+
"commit": "1741fd5abc123def456789",
|
|
204
|
+
"branch": "main",
|
|
205
|
+
"repository": "owner/repo"
|
|
206
|
+
}
|
|
170
207
|
},
|
|
171
208
|
"results": [
|
|
172
209
|
{
|
|
@@ -188,7 +225,17 @@ The workflow will:
|
|
|
188
225
|
"metrics": {},
|
|
189
226
|
"qualityContext": {}
|
|
190
227
|
}
|
|
191
|
-
]
|
|
228
|
+
],
|
|
229
|
+
"qualityMetrics": {
|
|
230
|
+
"hexagon": {
|
|
231
|
+
"tests": 100,
|
|
232
|
+
"deadCode": 98.5,
|
|
233
|
+
"formatting": 95,
|
|
234
|
+
"linting": 85,
|
|
235
|
+
"types": 100,
|
|
236
|
+
"documentation": 70
|
|
237
|
+
}
|
|
238
|
+
}
|
|
192
239
|
}
|
|
193
240
|
```
|
|
194
241
|
|
package/dist/cli.js
CHANGED
|
@@ -11,6 +11,65 @@ const ConsoleReporter_1 = require("./output/ConsoleReporter");
|
|
|
11
11
|
const repository_abstraction_1 = require("@principal-ai/repository-abstraction");
|
|
12
12
|
const fs = tslib_1.__importStar(require("fs/promises"));
|
|
13
13
|
const path = tslib_1.__importStar(require("path"));
|
|
14
|
+
const WORKFLOW_TEMPLATE = `name: Quality Lens Analysis
|
|
15
|
+
|
|
16
|
+
on:
|
|
17
|
+
push:
|
|
18
|
+
branches: [main]
|
|
19
|
+
pull_request:
|
|
20
|
+
branches: [main]
|
|
21
|
+
|
|
22
|
+
jobs:
|
|
23
|
+
analyze:
|
|
24
|
+
runs-on: ubuntu-latest
|
|
25
|
+
|
|
26
|
+
steps:
|
|
27
|
+
- name: Checkout code
|
|
28
|
+
uses: actions/checkout@v4
|
|
29
|
+
|
|
30
|
+
- name: Setup Node.js
|
|
31
|
+
uses: actions/setup-node@v4
|
|
32
|
+
with:
|
|
33
|
+
node-version: '20'
|
|
34
|
+
cache: 'npm'
|
|
35
|
+
|
|
36
|
+
- name: Install dependencies
|
|
37
|
+
run: npm ci
|
|
38
|
+
|
|
39
|
+
- name: Install Quality Lens CLI
|
|
40
|
+
run: npm install -g @principal-ai/quality-lens-cli
|
|
41
|
+
|
|
42
|
+
- name: Run quality lenses
|
|
43
|
+
run: |
|
|
44
|
+
quality-lens run . \\
|
|
45
|
+
--output results.json \\
|
|
46
|
+
--format json
|
|
47
|
+
continue-on-error: true
|
|
48
|
+
|
|
49
|
+
- name: Display results summary
|
|
50
|
+
if: always()
|
|
51
|
+
run: |
|
|
52
|
+
if [ -f results.json ]; then
|
|
53
|
+
echo "Quality Lens Analysis Complete"
|
|
54
|
+
node -e "
|
|
55
|
+
const fs = require('fs');
|
|
56
|
+
const results = JSON.parse(fs.readFileSync('results.json', 'utf8'));
|
|
57
|
+
const total = results.results.length;
|
|
58
|
+
const passed = results.results.filter(r => r.execution?.success).length;
|
|
59
|
+
console.log('Total Checks:', total);
|
|
60
|
+
console.log('Passed:', passed);
|
|
61
|
+
console.log('Failed:', total - passed);
|
|
62
|
+
"
|
|
63
|
+
fi
|
|
64
|
+
|
|
65
|
+
- name: Upload results artifact
|
|
66
|
+
if: always()
|
|
67
|
+
uses: actions/upload-artifact@v4
|
|
68
|
+
with:
|
|
69
|
+
name: quality-lens-results-\${{ github.sha }}
|
|
70
|
+
path: results.json
|
|
71
|
+
if-no-files-found: warn
|
|
72
|
+
`;
|
|
14
73
|
async function buildFileTree(dirPath) {
|
|
15
74
|
const paths = await collectPaths(dirPath, '');
|
|
16
75
|
const builder = new repository_abstraction_1.PathsFileTreeBuilder();
|
|
@@ -181,6 +240,48 @@ async function runCommand(argv) {
|
|
|
181
240
|
console.log(` Available: ${pkg.qualityMetrics?.availableLenses?.join(', ') || 'none'}`);
|
|
182
241
|
console.log(` Missing: ${pkg.qualityMetrics?.missingLenses?.join(', ') || 'none'}`);
|
|
183
242
|
});
|
|
243
|
+
})
|
|
244
|
+
.command('init [path]', 'Initialize Quality Lens GitHub Action in repository', (yargs) => {
|
|
245
|
+
return yargs
|
|
246
|
+
.positional('path', {
|
|
247
|
+
describe: 'Repository path',
|
|
248
|
+
type: 'string',
|
|
249
|
+
default: process.cwd(),
|
|
250
|
+
})
|
|
251
|
+
.option('force', {
|
|
252
|
+
alias: 'f',
|
|
253
|
+
describe: 'Overwrite existing workflow file',
|
|
254
|
+
type: 'boolean',
|
|
255
|
+
default: false,
|
|
256
|
+
});
|
|
257
|
+
}, async (argv) => {
|
|
258
|
+
const repoPath = path.resolve(argv.path);
|
|
259
|
+
const workflowDir = path.join(repoPath, '.github', 'workflows');
|
|
260
|
+
const workflowPath = path.join(workflowDir, 'quality-lens.yml');
|
|
261
|
+
try {
|
|
262
|
+
try {
|
|
263
|
+
await fs.access(workflowPath);
|
|
264
|
+
if (!argv.force) {
|
|
265
|
+
console.log(`Workflow already exists at ${workflowPath}`);
|
|
266
|
+
console.log('Use --force to overwrite');
|
|
267
|
+
process.exit(1);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
catch {
|
|
271
|
+
}
|
|
272
|
+
await fs.mkdir(workflowDir, { recursive: true });
|
|
273
|
+
await fs.writeFile(workflowPath, WORKFLOW_TEMPLATE, 'utf-8');
|
|
274
|
+
console.log('Quality Lens GitHub Action initialized!');
|
|
275
|
+
console.log(`\nCreated: ${workflowPath}`);
|
|
276
|
+
console.log('\nNext steps:');
|
|
277
|
+
console.log(' 1. Run "quality-lens list" to see available lenses');
|
|
278
|
+
console.log(' 2. Commit and push to trigger the workflow');
|
|
279
|
+
console.log(' 3. Check the Actions tab in GitHub for results');
|
|
280
|
+
}
|
|
281
|
+
catch (error) {
|
|
282
|
+
console.error('Failed to initialize workflow:', error.message);
|
|
283
|
+
process.exit(1);
|
|
284
|
+
}
|
|
184
285
|
})
|
|
185
286
|
.demandCommand()
|
|
186
287
|
.help()
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;AAEA,0DAA0B;AAC1B,2CAAwC;AACxC,mEAAgE;AAChE,qEAAkE;AAClE,0DAAiF;AACjF,8DAA2D;AAE3D,iFAA2F;AAC3F,wDAAkC;AAClC,mDAA6B;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import type { QualityHexagonMetrics, FormattedResults, GitMetadata } from '@principal-ai/codebase-quality-lenses';
|
|
1
2
|
import type { ToolExecutionResponse } from '../service/QualityLensService';
|
|
3
|
+
export type { QualityHexagonMetrics, FormattedResults, GitMetadata };
|
|
2
4
|
export interface LensExecutionResult {
|
|
3
5
|
package: string;
|
|
4
6
|
packagePath?: string;
|
|
@@ -8,35 +10,11 @@ export interface LensExecutionResult {
|
|
|
8
10
|
error?: string;
|
|
9
11
|
timestamp: number;
|
|
10
12
|
}
|
|
11
|
-
export interface FormattedResults {
|
|
12
|
-
metadata: {
|
|
13
|
-
timestamp: string;
|
|
14
|
-
version: string;
|
|
15
|
-
totalPackages: number;
|
|
16
|
-
totalLenses: number;
|
|
17
|
-
};
|
|
18
|
-
results: Array<{
|
|
19
|
-
package: {
|
|
20
|
-
name: string;
|
|
21
|
-
path?: string;
|
|
22
|
-
};
|
|
23
|
-
lens: {
|
|
24
|
-
id: string;
|
|
25
|
-
command: string;
|
|
26
|
-
};
|
|
27
|
-
execution: {
|
|
28
|
-
success: boolean;
|
|
29
|
-
exitCode?: number;
|
|
30
|
-
duration?: number;
|
|
31
|
-
timestamp: number;
|
|
32
|
-
};
|
|
33
|
-
issues: any[];
|
|
34
|
-
metrics: Record<string, any>;
|
|
35
|
-
qualityContext: Record<string, any>;
|
|
36
|
-
error?: string;
|
|
37
|
-
}>;
|
|
38
|
-
}
|
|
39
13
|
export declare class JsonFormatter {
|
|
14
|
+
private mapLensToHexagonDimension;
|
|
15
|
+
private extractQualityScore;
|
|
16
|
+
private calculateHexagonMetrics;
|
|
17
|
+
private getGitMetadata;
|
|
40
18
|
format(results: LensExecutionResult[]): string;
|
|
41
19
|
}
|
|
42
20
|
//# sourceMappingURL=JsonFormatter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonFormatter.d.ts","sourceRoot":"","sources":["../../src/output/JsonFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"JsonFormatter.d.ts","sourceRoot":"","sources":["../../src/output/JsonFormatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,EACZ,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAG3E,YAAY,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAC;AAKrE,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,qBAAqB,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD,qBAAa,aAAa;IAIxB,OAAO,CAAC,yBAAyB;IAwBjC,OAAO,CAAC,mBAAmB;IAiD3B,OAAO,CAAC,uBAAuB;IA4B/B,OAAO,CAAC,cAAc;IA8BtB,MAAM,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,MAAM;CA2C/C"}
|
|
@@ -2,13 +2,99 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.JsonFormatter = void 0;
|
|
4
4
|
class JsonFormatter {
|
|
5
|
+
mapLensToHexagonDimension(lensId) {
|
|
6
|
+
const mapping = {
|
|
7
|
+
jest: 'tests',
|
|
8
|
+
test: 'tests',
|
|
9
|
+
knip: 'deadCode',
|
|
10
|
+
deadcode: 'deadCode',
|
|
11
|
+
prettier: 'formatting',
|
|
12
|
+
format: 'formatting',
|
|
13
|
+
eslint: 'linting',
|
|
14
|
+
lint: 'linting',
|
|
15
|
+
typescript: 'types',
|
|
16
|
+
typecheck: 'types',
|
|
17
|
+
tsc: 'types',
|
|
18
|
+
alexandria: 'documentation',
|
|
19
|
+
};
|
|
20
|
+
return mapping[lensId.toLowerCase()] || null;
|
|
21
|
+
}
|
|
22
|
+
extractQualityScore(result) {
|
|
23
|
+
if (result.result?.lensResult?.qualityScore !== undefined &&
|
|
24
|
+
result.result.lensResult.qualityScore !== null) {
|
|
25
|
+
return result.result.lensResult.qualityScore;
|
|
26
|
+
}
|
|
27
|
+
const metrics = result.result?.lensResult?.metrics;
|
|
28
|
+
if (metrics) {
|
|
29
|
+
if (!result.result?.success) {
|
|
30
|
+
return 0;
|
|
31
|
+
}
|
|
32
|
+
const totalIssues = metrics.totalIssues || 0;
|
|
33
|
+
const filesAnalyzed = metrics.filesAnalyzed || 1;
|
|
34
|
+
if (totalIssues === 0) {
|
|
35
|
+
return 100;
|
|
36
|
+
}
|
|
37
|
+
const issuesBySeverity = metrics.issuesBySeverity || {};
|
|
38
|
+
const errorWeight = (issuesBySeverity.error || 0) * 3;
|
|
39
|
+
const warningWeight = (issuesBySeverity.warning || 0) * 2;
|
|
40
|
+
const infoWeight = (issuesBySeverity.info || 0) * 1;
|
|
41
|
+
const hintWeight = (issuesBySeverity.hint || 0) * 0.5;
|
|
42
|
+
const weightedIssues = errorWeight + warningWeight + infoWeight + hintWeight;
|
|
43
|
+
const issuesPerFile = weightedIssues / filesAnalyzed;
|
|
44
|
+
const score = Math.max(0, 100 - issuesPerFile * 10);
|
|
45
|
+
return Math.round(score);
|
|
46
|
+
}
|
|
47
|
+
return 0;
|
|
48
|
+
}
|
|
49
|
+
calculateHexagonMetrics(results) {
|
|
50
|
+
const hexagon = {
|
|
51
|
+
tests: 0,
|
|
52
|
+
deadCode: 0,
|
|
53
|
+
formatting: 0,
|
|
54
|
+
linting: 0,
|
|
55
|
+
types: 0,
|
|
56
|
+
documentation: 0,
|
|
57
|
+
};
|
|
58
|
+
for (const result of results) {
|
|
59
|
+
const dimension = this.mapLensToHexagonDimension(result.lens);
|
|
60
|
+
if (dimension) {
|
|
61
|
+
const score = this.extractQualityScore(result);
|
|
62
|
+
hexagon[dimension] = Math.max(hexagon[dimension], score);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return hexagon;
|
|
66
|
+
}
|
|
67
|
+
getGitMetadata() {
|
|
68
|
+
const metadata = {};
|
|
69
|
+
if (process.env['GITHUB_SHA']) {
|
|
70
|
+
metadata.commit = process.env['GITHUB_SHA'];
|
|
71
|
+
}
|
|
72
|
+
if (process.env['GITHUB_REF']) {
|
|
73
|
+
const ref = process.env['GITHUB_REF'];
|
|
74
|
+
if (ref.startsWith('refs/heads/')) {
|
|
75
|
+
metadata.branch = ref.replace('refs/heads/', '');
|
|
76
|
+
}
|
|
77
|
+
else if (ref.startsWith('refs/pull/')) {
|
|
78
|
+
metadata.branch = ref;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
if (process.env['GITHUB_REPOSITORY']) {
|
|
82
|
+
metadata.repository = process.env['GITHUB_REPOSITORY'];
|
|
83
|
+
}
|
|
84
|
+
if (Object.keys(metadata).length === 0) {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
return metadata;
|
|
88
|
+
}
|
|
5
89
|
format(results) {
|
|
90
|
+
const gitMetadata = this.getGitMetadata();
|
|
6
91
|
const formatted = {
|
|
7
92
|
metadata: {
|
|
8
93
|
timestamp: new Date().toISOString(),
|
|
9
94
|
version: '1.0.0',
|
|
10
95
|
totalPackages: new Set(results.map((r) => r.package)).size,
|
|
11
96
|
totalLenses: results.length,
|
|
97
|
+
...(gitMetadata && { git: gitMetadata }),
|
|
12
98
|
},
|
|
13
99
|
results: results.map((r) => ({
|
|
14
100
|
package: {
|
|
@@ -27,10 +113,16 @@ class JsonFormatter {
|
|
|
27
113
|
},
|
|
28
114
|
issues: r.result?.lensResult?.issues || [],
|
|
29
115
|
metrics: r.result?.lensResult?.metrics || {},
|
|
116
|
+
coverage: r.result?.lensResult?.coverage,
|
|
30
117
|
qualityContext: r.result?.qualityContext || {},
|
|
31
118
|
error: r.error,
|
|
32
119
|
})),
|
|
33
120
|
};
|
|
121
|
+
if (results.length > 0) {
|
|
122
|
+
formatted.qualityMetrics = {
|
|
123
|
+
hexagon: this.calculateHexagonMetrics(results),
|
|
124
|
+
};
|
|
125
|
+
}
|
|
34
126
|
return JSON.stringify(formatted, null, 2);
|
|
35
127
|
}
|
|
36
128
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonFormatter.js","sourceRoot":"","sources":["../../src/output/JsonFormatter.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"JsonFormatter.js","sourceRoot":"","sources":["../../src/output/JsonFormatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QualityLensService.d.ts","sourceRoot":"","sources":["../../src/service/QualityLensService.ts"],"names":[],"mappings":"AAKA,OAAO,
|
|
1
|
+
{"version":3,"file":"QualityLensService.d.ts","sourceRoot":"","sources":["../../src/service/QualityLensService.ts"],"names":[],"mappings":"AAKA,OAAO,EASL,KAAK,UAAU,EAChB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAMvF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAKD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,cAAc,CAAC,EAAE;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;QAC3B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;KAC1B,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAKD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,MAAM,CAAoB;;IAclC,OAAO,CAAC,gBAAgB;IAqCX,WAAW,CACtB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;YAgBnB,uBAAuB;YAgGvB,qBAAqB;IAwCnC,OAAO,CAAC,kBAAkB;IA0B1B,OAAO,CAAC,oBAAoB;IAqC5B,OAAO,CAAC,mBAAmB;IAuBpB,kBAAkB,IAAI,MAAM,EAAE;IAO9B,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAGjD"}
|
|
@@ -24,8 +24,14 @@ class QualityLensService {
|
|
|
24
24
|
const knipLens = new codebase_quality_lenses_1.KnipLens(this.executor);
|
|
25
25
|
this.lenses.set('knip', knipLens);
|
|
26
26
|
this.lenses.set('deadcode', knipLens);
|
|
27
|
+
const prettierLens = new codebase_quality_lenses_1.PrettierLens(this.executor);
|
|
28
|
+
this.lenses.set('prettier', prettierLens);
|
|
29
|
+
this.lenses.set('format', prettierLens);
|
|
27
30
|
const gitLens = new codebase_quality_lenses_1.GitLens(this.executor);
|
|
28
31
|
this.lenses.set('git', gitLens);
|
|
32
|
+
const alexandriaLens = new codebase_quality_lenses_1.AlexandriaLens(this.executor);
|
|
33
|
+
this.lenses.set('alexandria', alexandriaLens);
|
|
34
|
+
this.lenses.set('docs', alexandriaLens);
|
|
29
35
|
}
|
|
30
36
|
async executeTool(request) {
|
|
31
37
|
const startTime = Date.now();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QualityLensService.js","sourceRoot":"","sources":["../../src/service/QualityLensService.ts"],"names":[],"mappings":";;;AAKA,
|
|
1
|
+
{"version":3,"file":"QualityLensService.js","sourceRoot":"","sources":["../../src/service/QualityLensService.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@principal-ai/quality-lens-cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "CLI tool for running quality lenses on codebases in CI/CD pipelines",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -15,10 +15,15 @@
|
|
|
15
15
|
"lint": "eslint . --ext .ts",
|
|
16
16
|
"lint:fix": "eslint . --ext .ts --fix",
|
|
17
17
|
"typecheck": "tsc --noEmit",
|
|
18
|
+
"knip": "knip",
|
|
18
19
|
"test": "jest",
|
|
19
20
|
"test:integration": "jest --config jest.config.integration.js",
|
|
20
21
|
"test:watch": "jest --watch",
|
|
21
|
-
"test:all": "npm run test && npm run test:integration"
|
|
22
|
+
"test:all": "npm run test && npm run test:integration",
|
|
23
|
+
"prettier": "prettier --check .",
|
|
24
|
+
"prettier:fix": "prettier --write .",
|
|
25
|
+
"docs": "alexandria lint",
|
|
26
|
+
"alexandria": "alexandria lint"
|
|
22
27
|
},
|
|
23
28
|
"keywords": [
|
|
24
29
|
"quality",
|
|
@@ -27,6 +32,7 @@
|
|
|
27
32
|
"typescript",
|
|
28
33
|
"eslint",
|
|
29
34
|
"jest",
|
|
35
|
+
"knip",
|
|
30
36
|
"ci",
|
|
31
37
|
"cd",
|
|
32
38
|
"github-actions"
|
|
@@ -34,8 +40,8 @@
|
|
|
34
40
|
"author": "Principal AI",
|
|
35
41
|
"license": "MIT",
|
|
36
42
|
"dependencies": {
|
|
37
|
-
"@principal-ai/codebase-composition": "^0.2.
|
|
38
|
-
"@principal-ai/codebase-quality-lenses": "^0.1.
|
|
43
|
+
"@principal-ai/codebase-composition": "^0.2.9",
|
|
44
|
+
"@principal-ai/codebase-quality-lenses": "^0.1.19",
|
|
39
45
|
"@principal-ai/repository-abstraction": "^0.2.0",
|
|
40
46
|
"chalk": "^5.3.0",
|
|
41
47
|
"tslib": "^2.8.1",
|
|
@@ -49,6 +55,8 @@
|
|
|
49
55
|
"@typescript-eslint/parser": "^6.0.0",
|
|
50
56
|
"eslint": "^8.0.0",
|
|
51
57
|
"jest": "^29.7.0",
|
|
58
|
+
"knip": "^5.66.2",
|
|
59
|
+
"prettier": "^3.6.2",
|
|
52
60
|
"ts-jest": "^29.4.5",
|
|
53
61
|
"typescript": "^5.0.0"
|
|
54
62
|
},
|