patchdrill 0.1.0
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/.patchdrill.yml +33 -0
- package/CHANGELOG.md +150 -0
- package/CONTRIBUTING.md +59 -0
- package/LICENSE +21 -0
- package/README.md +601 -0
- package/SECURITY.md +28 -0
- package/action.yml +338 -0
- package/dist/baseline.d.ts +9 -0
- package/dist/baseline.js +38 -0
- package/dist/baseline.js.map +1 -0
- package/dist/cli.d.ts +19 -0
- package/dist/cli.js +662 -0
- package/dist/cli.js.map +1 -0
- package/dist/codeowners.d.ts +14 -0
- package/dist/codeowners.js +104 -0
- package/dist/codeowners.js.map +1 -0
- package/dist/command-plan.d.ts +3 -0
- package/dist/command-plan.js +26 -0
- package/dist/command-plan.js.map +1 -0
- package/dist/demo.d.ts +5 -0
- package/dist/demo.js +525 -0
- package/dist/demo.js.map +1 -0
- package/dist/dependency.d.ts +4 -0
- package/dist/dependency.js +1424 -0
- package/dist/dependency.js.map +1 -0
- package/dist/doctor.d.ts +26 -0
- package/dist/doctor.js +183 -0
- package/dist/doctor.js.map +1 -0
- package/dist/evidence.d.ts +64 -0
- package/dist/evidence.js +352 -0
- package/dist/evidence.js.map +1 -0
- package/dist/git.d.ts +16 -0
- package/dist/git.js +349 -0
- package/dist/git.js.map +1 -0
- package/dist/i18n-catalog.d.ts +8 -0
- package/dist/i18n-catalog.js +446 -0
- package/dist/i18n-catalog.js.map +1 -0
- package/dist/i18n.d.ts +20 -0
- package/dist/i18n.js +67 -0
- package/dist/i18n.js.map +1 -0
- package/dist/init.d.ts +13 -0
- package/dist/init.js +312 -0
- package/dist/init.js.map +1 -0
- package/dist/markdown-links.d.ts +18 -0
- package/dist/markdown-links.js +180 -0
- package/dist/markdown-links.js.map +1 -0
- package/dist/package-scripts.d.ts +3 -0
- package/dist/package-scripts.js +55 -0
- package/dist/package-scripts.js.map +1 -0
- package/dist/planner.d.ts +8 -0
- package/dist/planner.js +2351 -0
- package/dist/planner.js.map +1 -0
- package/dist/policy.d.ts +12 -0
- package/dist/policy.js +255 -0
- package/dist/policy.js.map +1 -0
- package/dist/project.d.ts +2 -0
- package/dist/project.js +1085 -0
- package/dist/project.js.map +1 -0
- package/dist/release-readiness.d.ts +25 -0
- package/dist/release-readiness.js +426 -0
- package/dist/release-readiness.js.map +1 -0
- package/dist/report-annotations.d.ts +3 -0
- package/dist/report-annotations.js +28 -0
- package/dist/report-annotations.js.map +1 -0
- package/dist/report-contract.d.ts +2 -0
- package/dist/report-contract.js +82 -0
- package/dist/report-contract.js.map +1 -0
- package/dist/report-html.d.ts +7 -0
- package/dist/report-html.js +706 -0
- package/dist/report-html.js.map +1 -0
- package/dist/report-sarif.d.ts +2 -0
- package/dist/report-sarif.js +90 -0
- package/dist/report-sarif.js.map +1 -0
- package/dist/report.d.ts +14 -0
- package/dist/report.js +310 -0
- package/dist/report.js.map +1 -0
- package/dist/risk.d.ts +19 -0
- package/dist/risk.js +1226 -0
- package/dist/risk.js.map +1 -0
- package/dist/runner.d.ts +8 -0
- package/dist/runner.js +113 -0
- package/dist/runner.js.map +1 -0
- package/dist/scan.d.ts +2 -0
- package/dist/scan.js +195 -0
- package/dist/scan.js.map +1 -0
- package/dist/schema.d.ts +12 -0
- package/dist/schema.js +30 -0
- package/dist/schema.js.map +1 -0
- package/dist/stack-coverage.d.ts +8 -0
- package/dist/stack-coverage.js +94 -0
- package/dist/stack-coverage.js.map +1 -0
- package/dist/types.d.ts +206 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/verification.d.ts +11 -0
- package/dist/verification.js +108 -0
- package/dist/verification.js.map +1 -0
- package/docs/ANNOTATIONS.md +34 -0
- package/docs/ARCHITECTURE.md +79 -0
- package/docs/BASELINES.md +32 -0
- package/docs/CASE_STUDIES.md +106 -0
- package/docs/CODEOWNERS.md +23 -0
- package/docs/DASHBOARD.md +87 -0
- package/docs/EVIDENCE.md +55 -0
- package/docs/LAUNCH_PLAYBOOK.md +103 -0
- package/docs/MONOREPOS.md +74 -0
- package/docs/POLICY.md +98 -0
- package/docs/PROOF_PACKS.md +57 -0
- package/docs/PR_COMMENTS.md +56 -0
- package/docs/RELEASE.md +35 -0
- package/docs/ROADMAP.md +152 -0
- package/docs/RULE_CATALOG.md +90 -0
- package/docs/SARIF.md +74 -0
- package/docs/SCHEMAS.md +49 -0
- package/docs/SECURITY_POSTURE.md +32 -0
- package/docs/STACK_COVERAGE.md +20 -0
- package/docs/assets/patchdrill-demo.svg +21 -0
- package/docs/media/patchdrill-dashboard.png +0 -0
- package/docs/media/patchdrill-demo.gif +0 -0
- package/examples/case-studies/README.md +20 -0
- package/examples/demo/README.md +21 -0
- package/examples/demo/patchdrill-demo-summary.md +35 -0
- package/examples/demo/patchdrill-demo.html +623 -0
- package/examples/demo/patchdrill-demo.json +355 -0
- package/examples/demo/patchdrill-demo.md +120 -0
- package/examples/demo/patchdrill-demo.sarif +195 -0
- package/examples/report.md +128 -0
- package/examples/risky-agent-pr/README.md +15 -0
- package/examples/risky-agent-pr/patchdrill-demo-summary.md +41 -0
- package/examples/risky-agent-pr/patchdrill-demo.html +681 -0
- package/examples/risky-agent-pr/patchdrill-demo.json +483 -0
- package/examples/risky-agent-pr/patchdrill-demo.md +140 -0
- package/examples/risky-agent-pr/patchdrill-demo.sarif +398 -0
- package/fixtures/stacks/README.md +4 -0
- package/fixtures/stacks/android-gradle/fixture.json +33 -0
- package/fixtures/stacks/aspnet-core-service/fixture.json +36 -0
- package/fixtures/stacks/bazel-workspace/fixture.json +30 -0
- package/fixtures/stacks/buck2-workspace/fixture.json +30 -0
- package/fixtures/stacks/cargo-workspace/fixture.json +48 -0
- package/fixtures/stacks/django-app/fixture.json +25 -0
- package/fixtures/stacks/docker-compose/fixture.json +17 -0
- package/fixtures/stacks/dockerfile-service/fixture.json +17 -0
- package/fixtures/stacks/dotnet-service/fixture.json +36 -0
- package/fixtures/stacks/dotnet-solution-filter/fixture.json +62 -0
- package/fixtures/stacks/fastapi-app/fixture.json +29 -0
- package/fixtures/stacks/go-workspace/fixture.json +48 -0
- package/fixtures/stacks/java-gradle/fixture.json +29 -0
- package/fixtures/stacks/java-maven/fixture.json +32 -0
- package/fixtures/stacks/kubernetes-helm/fixture.json +25 -0
- package/fixtures/stacks/kubernetes-kustomize/fixture.json +21 -0
- package/fixtures/stacks/nested-go-workspace/fixture.json +51 -0
- package/fixtures/stacks/nextjs-app/fixture.json +34 -0
- package/fixtures/stacks/node-turbo-workspace/fixture.json +39 -0
- package/fixtures/stacks/pants-python/fixture.json +33 -0
- package/fixtures/stacks/php-composer/fixture.json +31 -0
- package/fixtures/stacks/python-service/fixture.json +21 -0
- package/fixtures/stacks/rails-app/fixture.json +25 -0
- package/fixtures/stacks/spring-boot-gradle/fixture.json +29 -0
- package/fixtures/stacks/spring-boot-maven/fixture.json +43 -0
- package/fixtures/stacks/swift-package/fixture.json +21 -0
- package/fixtures/stacks/terraform-module/fixture.json +17 -0
- package/fixtures/stacks/uv-python-service/fixture.json +47 -0
- package/fixtures/stacks/xcode-app/fixture.json +72 -0
- package/package.json +80 -0
- package/schemas/patchdrill-doctor.schema.json +171 -0
- package/schemas/patchdrill-evidence.schema.json +239 -0
- package/schemas/patchdrill-policy.schema.json +170 -0
- package/schemas/patchdrill-release-check.schema.json +78 -0
- package/schemas/patchdrill-report.schema.json +647 -0
package/dist/demo.js
ADDED
|
@@ -0,0 +1,525 @@
|
|
|
1
|
+
import { withVerification } from "./verification.js";
|
|
2
|
+
export const demoScenarioNames = ["review-ready", "risky-agent-pr"];
|
|
3
|
+
export function isDemoScenario(value) {
|
|
4
|
+
return demoScenarioNames.includes(value);
|
|
5
|
+
}
|
|
6
|
+
export function createDemoReport(scenario = "review-ready") {
|
|
7
|
+
return scenario === "risky-agent-pr" ? createRiskyAgentPrReport() : createReviewReadyReport();
|
|
8
|
+
}
|
|
9
|
+
function createReviewReadyReport() {
|
|
10
|
+
return withVerification({
|
|
11
|
+
schemaVersion: "1",
|
|
12
|
+
generatedAt: "2026-06-01T00:00:00.000Z",
|
|
13
|
+
root: "/demo/checkout",
|
|
14
|
+
base: "origin/main",
|
|
15
|
+
head: "feature/auth-session-hardening",
|
|
16
|
+
summary: {
|
|
17
|
+
status: "warn",
|
|
18
|
+
riskScore: 58,
|
|
19
|
+
confidenceScore: 82,
|
|
20
|
+
changedFileCount: 5,
|
|
21
|
+
additions: 186,
|
|
22
|
+
deletions: 42,
|
|
23
|
+
requiredCommandCount: 3,
|
|
24
|
+
failedCommandCount: 0
|
|
25
|
+
},
|
|
26
|
+
changedFiles: [
|
|
27
|
+
{ path: "apps/api/src/auth/session.ts", status: "modified", additions: 54, deletions: 16, binary: false, owners: ["@acme/security"] },
|
|
28
|
+
{ path: "apps/api/src/auth/session.test.ts", status: "modified", additions: 48, deletions: 4, binary: false, owners: ["@acme/security"] },
|
|
29
|
+
{ path: "packages/db/migrations/20260601090000_add_session_rotation.sql", status: "added", additions: 38, deletions: 0, binary: false, owners: ["@acme/data"] },
|
|
30
|
+
{ path: ".github/workflows/deploy.yml", status: "modified", additions: 22, deletions: 12, binary: false, owners: ["@acme/platform"] },
|
|
31
|
+
{ path: "package-lock.json", status: "modified", additions: 24, deletions: 10, binary: false }
|
|
32
|
+
],
|
|
33
|
+
addedLines: 186,
|
|
34
|
+
projectSignals: [
|
|
35
|
+
{
|
|
36
|
+
ecosystem: "node",
|
|
37
|
+
manifestPath: "package.json",
|
|
38
|
+
packageManager: "pnpm",
|
|
39
|
+
taskRunner: "turbo",
|
|
40
|
+
scripts: {
|
|
41
|
+
typecheck: "turbo run typecheck",
|
|
42
|
+
test: "turbo run test",
|
|
43
|
+
build: "turbo run build",
|
|
44
|
+
"test:e2e": "playwright test"
|
|
45
|
+
},
|
|
46
|
+
workspacePackages: [
|
|
47
|
+
{
|
|
48
|
+
name: "@acme/api",
|
|
49
|
+
projectName: "api",
|
|
50
|
+
path: "apps/api",
|
|
51
|
+
scripts: {
|
|
52
|
+
typecheck: "tsc --noEmit",
|
|
53
|
+
test: "vitest run",
|
|
54
|
+
build: "tsup"
|
|
55
|
+
},
|
|
56
|
+
targets: ["typecheck", "test", "build"],
|
|
57
|
+
dependencies: ["@acme/db"]
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: "@acme/db",
|
|
61
|
+
projectName: "db",
|
|
62
|
+
path: "packages/db",
|
|
63
|
+
scripts: {
|
|
64
|
+
test: "vitest run"
|
|
65
|
+
},
|
|
66
|
+
targets: ["test"]
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
ecosystem: "github-actions",
|
|
72
|
+
manifestPath: ".github/workflows/deploy.yml"
|
|
73
|
+
}
|
|
74
|
+
],
|
|
75
|
+
affectedPackages: [
|
|
76
|
+
{
|
|
77
|
+
name: "@acme/api",
|
|
78
|
+
projectName: "api",
|
|
79
|
+
path: "apps/api",
|
|
80
|
+
scripts: {
|
|
81
|
+
typecheck: "tsc --noEmit",
|
|
82
|
+
test: "vitest run",
|
|
83
|
+
build: "tsup"
|
|
84
|
+
},
|
|
85
|
+
targets: ["typecheck", "test", "build"],
|
|
86
|
+
dependencies: ["@acme/db"]
|
|
87
|
+
}
|
|
88
|
+
],
|
|
89
|
+
dependencyChanges: [
|
|
90
|
+
{
|
|
91
|
+
file: "package-lock.json",
|
|
92
|
+
packageName: "@acme/session-store",
|
|
93
|
+
packagePath: "node_modules/@acme/session-store",
|
|
94
|
+
dependencyType: "lockfile",
|
|
95
|
+
changeType: "updated",
|
|
96
|
+
before: "1.8.2",
|
|
97
|
+
after: "1.9.0"
|
|
98
|
+
}
|
|
99
|
+
],
|
|
100
|
+
packageScriptChanges: [],
|
|
101
|
+
policy: {
|
|
102
|
+
path: ".patchdrill.yml",
|
|
103
|
+
ignoredPaths: ["dist/**", "coverage/**"],
|
|
104
|
+
failOn: "high",
|
|
105
|
+
maxRisk: 69,
|
|
106
|
+
ruleCount: 2,
|
|
107
|
+
requiredCommandCount: 1,
|
|
108
|
+
optionalCommandCount: 1
|
|
109
|
+
},
|
|
110
|
+
codeOwners: {
|
|
111
|
+
path: ".github/CODEOWNERS",
|
|
112
|
+
ruleCount: 3
|
|
113
|
+
},
|
|
114
|
+
baseline: {
|
|
115
|
+
path: "previous-patchdrill-report.json",
|
|
116
|
+
previousStatus: "warn",
|
|
117
|
+
currentStatus: "warn",
|
|
118
|
+
previousRiskScore: 44,
|
|
119
|
+
currentRiskScore: 58,
|
|
120
|
+
riskDelta: 14,
|
|
121
|
+
newFindingCount: 2,
|
|
122
|
+
resolvedFindingCount: 1,
|
|
123
|
+
unchangedFindingCount: 3
|
|
124
|
+
},
|
|
125
|
+
findings: [
|
|
126
|
+
{
|
|
127
|
+
ruleId: "file.high-impact-area",
|
|
128
|
+
severity: "high",
|
|
129
|
+
title: "High-impact product area changed",
|
|
130
|
+
detail: "Authentication/session code changed and needs strong proof before merge.",
|
|
131
|
+
file: "apps/api/src/auth/session.ts",
|
|
132
|
+
remediation: "Require owner review and targeted session regression evidence.",
|
|
133
|
+
tags: ["security", "auth"]
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
ruleId: "file.high-impact-area",
|
|
137
|
+
severity: "high",
|
|
138
|
+
title: "Data migration review required",
|
|
139
|
+
detail: "A database migration can alter production session state.",
|
|
140
|
+
file: "packages/db/migrations/20260601090000_add_session_rotation.sql",
|
|
141
|
+
remediation: "Attach dry-run, rollback, and data-owner approval notes.",
|
|
142
|
+
tags: ["data", "migration"]
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
ruleId: "workflow.environment-oidc-token",
|
|
146
|
+
severity: "medium",
|
|
147
|
+
title: "OIDC deployment job should use a protected environment",
|
|
148
|
+
detail: "A deployment workflow can mint cloud credentials without an explicit GitHub environment gate.",
|
|
149
|
+
file: ".github/workflows/deploy.yml",
|
|
150
|
+
line: 34,
|
|
151
|
+
remediation: "Attach a protected environment or document why this job cannot deploy.",
|
|
152
|
+
tags: ["ci", "oidc", "supply-chain"]
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
ruleId: "file.lockfile",
|
|
156
|
+
severity: "low",
|
|
157
|
+
title: "Dependency lockfile changed",
|
|
158
|
+
detail: "@acme/session-store changed from 1.8.2 to 1.9.0.",
|
|
159
|
+
file: "package-lock.json",
|
|
160
|
+
remediation: "Review release notes and verify transitive dependency impact.",
|
|
161
|
+
tags: ["dependencies"]
|
|
162
|
+
}
|
|
163
|
+
],
|
|
164
|
+
commandPlan: [
|
|
165
|
+
{
|
|
166
|
+
id: "node-turbo-api-typecheck",
|
|
167
|
+
label: "Typecheck affected API package",
|
|
168
|
+
command: "pnpm exec turbo run typecheck --filter=@acme/api",
|
|
169
|
+
reason: "Auth source changed in @acme/api.",
|
|
170
|
+
ecosystem: "node",
|
|
171
|
+
required: true,
|
|
172
|
+
packageName: "@acme/api",
|
|
173
|
+
packagePath: "apps/api"
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
id: "node-turbo-api-test",
|
|
177
|
+
label: "Test affected API package",
|
|
178
|
+
command: "pnpm exec turbo run test --filter=@acme/api",
|
|
179
|
+
reason: "Session behavior changed and matching tests exist.",
|
|
180
|
+
ecosystem: "node",
|
|
181
|
+
required: true,
|
|
182
|
+
packageName: "@acme/api",
|
|
183
|
+
packagePath: "apps/api"
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
id: "policy-contract-tests",
|
|
187
|
+
label: "Contract tests",
|
|
188
|
+
command: "pnpm run test:contracts",
|
|
189
|
+
reason: "Repository policy requires contract tests for auth/session changes.",
|
|
190
|
+
ecosystem: "general",
|
|
191
|
+
required: true
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
id: "node-e2e",
|
|
195
|
+
label: "Browser e2e",
|
|
196
|
+
command: "pnpm run test:e2e",
|
|
197
|
+
reason: "Optional browser coverage is available for session rotation flows.",
|
|
198
|
+
ecosystem: "node",
|
|
199
|
+
required: false
|
|
200
|
+
}
|
|
201
|
+
],
|
|
202
|
+
commandResults: [
|
|
203
|
+
{
|
|
204
|
+
id: "node-turbo-api-typecheck",
|
|
205
|
+
command: "pnpm exec turbo run typecheck --filter=@acme/api",
|
|
206
|
+
exitCode: 0,
|
|
207
|
+
durationMs: 8421,
|
|
208
|
+
stdout: "@acme/api:typecheck: cache miss, executing\n@acme/api:typecheck: ok\n",
|
|
209
|
+
stderr: ""
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
id: "node-turbo-api-test",
|
|
213
|
+
command: "pnpm exec turbo run test --filter=@acme/api",
|
|
214
|
+
exitCode: 0,
|
|
215
|
+
durationMs: 12544,
|
|
216
|
+
stdout: "@acme/api:test: 42 tests passed\n",
|
|
217
|
+
stderr: ""
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
id: "policy-contract-tests",
|
|
221
|
+
command: "pnpm run test:contracts",
|
|
222
|
+
exitCode: 0,
|
|
223
|
+
durationMs: 15038,
|
|
224
|
+
stdout: "contract auth-session passed\ncontract deployment-claims passed\n",
|
|
225
|
+
stderr: ""
|
|
226
|
+
}
|
|
227
|
+
]
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
function createRiskyAgentPrReport() {
|
|
231
|
+
return withVerification({
|
|
232
|
+
schemaVersion: "1",
|
|
233
|
+
generatedAt: "2026-06-01T00:00:00.000Z",
|
|
234
|
+
root: "/demo/checkout",
|
|
235
|
+
base: "origin/main",
|
|
236
|
+
head: "agent/refactor-release-flow",
|
|
237
|
+
summary: {
|
|
238
|
+
status: "fail",
|
|
239
|
+
riskScore: 94,
|
|
240
|
+
confidenceScore: 21,
|
|
241
|
+
changedFileCount: 8,
|
|
242
|
+
additions: 326,
|
|
243
|
+
deletions: 78,
|
|
244
|
+
requiredCommandCount: 4,
|
|
245
|
+
failedCommandCount: 1
|
|
246
|
+
},
|
|
247
|
+
changedFiles: [
|
|
248
|
+
{ path: "AGENTS.md", status: "modified", additions: 28, deletions: 4, binary: false, owners: ["@acme/platform"] },
|
|
249
|
+
{ path: ".github/workflows/release.yml", status: "modified", additions: 44, deletions: 18, binary: false, owners: ["@acme/platform"] },
|
|
250
|
+
{ path: "apps/web/src/billing/checkout.ts", status: "modified", additions: 83, deletions: 21, binary: false, owners: ["@acme/billing"] },
|
|
251
|
+
{ path: "apps/web/src/billing/webhook.ts", status: "modified", additions: 39, deletions: 15, binary: false, owners: ["@acme/billing"] },
|
|
252
|
+
{ path: "scripts/deploy.sh", status: "modified", additions: 27, deletions: 8, binary: false, owners: ["@acme/platform"] },
|
|
253
|
+
{ path: ".env.example", status: "modified", additions: 3, deletions: 0, binary: false, owners: ["@acme/platform"] },
|
|
254
|
+
{ path: "package.json", status: "modified", additions: 14, deletions: 4, binary: false, owners: ["@acme/platform"] },
|
|
255
|
+
{ path: "package-lock.json", status: "modified", additions: 88, deletions: 8, binary: false }
|
|
256
|
+
],
|
|
257
|
+
addedLines: 326,
|
|
258
|
+
projectSignals: [
|
|
259
|
+
{
|
|
260
|
+
ecosystem: "node",
|
|
261
|
+
manifestPath: "package.json",
|
|
262
|
+
packageManager: "npm",
|
|
263
|
+
scripts: {
|
|
264
|
+
lint: "eslint .",
|
|
265
|
+
test: "vitest run",
|
|
266
|
+
build: "vite build",
|
|
267
|
+
"test:e2e": "playwright test"
|
|
268
|
+
},
|
|
269
|
+
workspacePackages: [
|
|
270
|
+
{
|
|
271
|
+
name: "@acme/web",
|
|
272
|
+
projectName: "web",
|
|
273
|
+
path: "apps/web",
|
|
274
|
+
scripts: {
|
|
275
|
+
lint: "eslint src",
|
|
276
|
+
test: "vitest run",
|
|
277
|
+
build: "vite build"
|
|
278
|
+
},
|
|
279
|
+
targets: ["lint", "test", "build"],
|
|
280
|
+
dependencies: ["@acme/payments"]
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
name: "@acme/payments",
|
|
284
|
+
projectName: "payments",
|
|
285
|
+
path: "packages/payments",
|
|
286
|
+
scripts: {
|
|
287
|
+
test: "vitest run"
|
|
288
|
+
},
|
|
289
|
+
targets: ["test"]
|
|
290
|
+
}
|
|
291
|
+
]
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
ecosystem: "github-actions",
|
|
295
|
+
manifestPath: ".github/workflows/release.yml"
|
|
296
|
+
}
|
|
297
|
+
],
|
|
298
|
+
affectedPackages: [
|
|
299
|
+
{
|
|
300
|
+
name: "@acme/web",
|
|
301
|
+
projectName: "web",
|
|
302
|
+
path: "apps/web",
|
|
303
|
+
scripts: {
|
|
304
|
+
lint: "eslint src",
|
|
305
|
+
test: "vitest run",
|
|
306
|
+
build: "vite build"
|
|
307
|
+
},
|
|
308
|
+
targets: ["lint", "test", "build"],
|
|
309
|
+
dependencies: ["@acme/payments"]
|
|
310
|
+
}
|
|
311
|
+
],
|
|
312
|
+
dependencyChanges: [
|
|
313
|
+
{
|
|
314
|
+
file: "package-lock.json",
|
|
315
|
+
packageName: "yaml",
|
|
316
|
+
packagePath: "node_modules/yaml",
|
|
317
|
+
dependencyType: "lockfile",
|
|
318
|
+
changeType: "updated",
|
|
319
|
+
before: "2.8.1",
|
|
320
|
+
after: "2.9.0"
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
file: "package-lock.json",
|
|
324
|
+
packageName: "@acme/payments",
|
|
325
|
+
packagePath: "node_modules/@acme/payments",
|
|
326
|
+
dependencyType: "lockfile",
|
|
327
|
+
changeType: "updated",
|
|
328
|
+
before: "4.2.0",
|
|
329
|
+
after: "4.3.0"
|
|
330
|
+
}
|
|
331
|
+
],
|
|
332
|
+
packageScriptChanges: [
|
|
333
|
+
{
|
|
334
|
+
file: "package.json",
|
|
335
|
+
scriptName: "postinstall",
|
|
336
|
+
changeType: "added",
|
|
337
|
+
after: "node scripts/bootstrap-agent.js"
|
|
338
|
+
},
|
|
339
|
+
{
|
|
340
|
+
file: "package.json",
|
|
341
|
+
scriptName: "test",
|
|
342
|
+
changeType: "updated",
|
|
343
|
+
before: "vitest run",
|
|
344
|
+
after: "true"
|
|
345
|
+
}
|
|
346
|
+
],
|
|
347
|
+
policy: {
|
|
348
|
+
path: ".patchdrill.yml",
|
|
349
|
+
ignoredPaths: ["dist/**", "coverage/**"],
|
|
350
|
+
failOn: "high",
|
|
351
|
+
maxRisk: 69,
|
|
352
|
+
ruleCount: 4,
|
|
353
|
+
requiredCommandCount: 1,
|
|
354
|
+
optionalCommandCount: 1
|
|
355
|
+
},
|
|
356
|
+
codeOwners: {
|
|
357
|
+
path: ".github/CODEOWNERS",
|
|
358
|
+
ruleCount: 4
|
|
359
|
+
},
|
|
360
|
+
baseline: {
|
|
361
|
+
path: "main-patchdrill-report.json",
|
|
362
|
+
previousStatus: "warn",
|
|
363
|
+
currentStatus: "fail",
|
|
364
|
+
previousRiskScore: 31,
|
|
365
|
+
currentRiskScore: 94,
|
|
366
|
+
riskDelta: 63,
|
|
367
|
+
newFindingCount: 6,
|
|
368
|
+
resolvedFindingCount: 0,
|
|
369
|
+
unchangedFindingCount: 1
|
|
370
|
+
},
|
|
371
|
+
findings: [
|
|
372
|
+
{
|
|
373
|
+
ruleId: "workflow.pull-request-target-head-checkout",
|
|
374
|
+
severity: "critical",
|
|
375
|
+
title: "Privileged workflow checks out pull request code",
|
|
376
|
+
detail: "A pull_request_target workflow can run untrusted pull request code while write tokens or repository secrets are available.",
|
|
377
|
+
file: ".github/workflows/release.yml",
|
|
378
|
+
line: 19,
|
|
379
|
+
remediation: "Use pull_request for untrusted code, remove PR-head checkout, or split the privileged publishing step behind an environment gate.",
|
|
380
|
+
tags: ["ci", "supply-chain", "github-actions"]
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
ruleId: "secret.generic-assignment",
|
|
384
|
+
severity: "critical",
|
|
385
|
+
title: "Secret-looking value added",
|
|
386
|
+
detail: "A newly added environment example contains a value with a live-key shape. The demo redacts the actual token body.",
|
|
387
|
+
file: ".env.example",
|
|
388
|
+
line: 8,
|
|
389
|
+
remediation: "Remove the value, rotate the credential if it was real, and use a non-secret placeholder such as <redacted>.",
|
|
390
|
+
tags: ["secret", "credentials"]
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
ruleId: "agent.control-file",
|
|
394
|
+
severity: "high",
|
|
395
|
+
title: "Agent instructions changed",
|
|
396
|
+
detail: "Repository-level coding-agent instructions changed in the same patch as release and billing code.",
|
|
397
|
+
file: "AGENTS.md",
|
|
398
|
+
remediation: "Review instruction changes separately and require maintainer approval before agent-visible rules change.",
|
|
399
|
+
tags: ["agentic-coding", "review"]
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
ruleId: "file.high-impact-area",
|
|
403
|
+
severity: "high",
|
|
404
|
+
title: "High-impact product area changed",
|
|
405
|
+
detail: "Billing checkout and webhook code changed, which can affect payment capture, refunds, and entitlement state.",
|
|
406
|
+
file: "apps/web/src/billing/checkout.ts",
|
|
407
|
+
remediation: "Attach targeted billing regression tests and owner approval.",
|
|
408
|
+
tags: ["billing", "payments"]
|
|
409
|
+
},
|
|
410
|
+
{
|
|
411
|
+
ruleId: "package-script.disabled-verification",
|
|
412
|
+
severity: "high",
|
|
413
|
+
title: "Verification script disabled: test",
|
|
414
|
+
detail: "package.json verification script \"test\" now appears to exit successfully without running meaningful checks.",
|
|
415
|
+
file: "package.json",
|
|
416
|
+
remediation: "Restore the real verification command or explain why this repository no longer has that check.",
|
|
417
|
+
tags: ["testing", "ci", "package-script"]
|
|
418
|
+
},
|
|
419
|
+
{
|
|
420
|
+
ruleId: "package-script.lifecycle",
|
|
421
|
+
severity: "high",
|
|
422
|
+
title: "Package lifecycle script changed: postinstall",
|
|
423
|
+
detail: "package.json lifecycle script \"postinstall\" was added, creating code that can run during install, prepare, pack, or publish flows.",
|
|
424
|
+
file: "package.json",
|
|
425
|
+
remediation: "Review the script as executable supply-chain surface. Prefer explicit CI steps or documented commands over implicit install-time behavior.",
|
|
426
|
+
tags: ["dependencies", "supply-chain", "package-script"]
|
|
427
|
+
},
|
|
428
|
+
{
|
|
429
|
+
ruleId: "test.source-without-test-change",
|
|
430
|
+
severity: "medium",
|
|
431
|
+
title: "Source changed without matching test changes",
|
|
432
|
+
detail: "Billing source files changed, but no matching checkout or webhook test files changed.",
|
|
433
|
+
file: "apps/web/src/billing/checkout.ts",
|
|
434
|
+
remediation: "Add or update tests covering signed webhook verification, failed payment paths, and entitlement updates.",
|
|
435
|
+
tags: ["tests"]
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
ruleId: "file.lockfile",
|
|
439
|
+
severity: "low",
|
|
440
|
+
title: "Dependency lockfile changed",
|
|
441
|
+
detail: "@acme/payments changed from 4.2.0 to 4.3.0.",
|
|
442
|
+
file: "package-lock.json",
|
|
443
|
+
remediation: "Review release notes and verify transitive dependency impact.",
|
|
444
|
+
tags: ["dependencies"]
|
|
445
|
+
}
|
|
446
|
+
],
|
|
447
|
+
commandPlan: [
|
|
448
|
+
{
|
|
449
|
+
id: "node-web-lint",
|
|
450
|
+
label: "Lint affected web package",
|
|
451
|
+
command: "npm run lint --workspace @acme/web",
|
|
452
|
+
reason: "Billing and release-adjacent source files changed.",
|
|
453
|
+
ecosystem: "node",
|
|
454
|
+
required: true,
|
|
455
|
+
packageName: "@acme/web",
|
|
456
|
+
packagePath: "apps/web"
|
|
457
|
+
},
|
|
458
|
+
{
|
|
459
|
+
id: "node-web-test",
|
|
460
|
+
label: "Test affected web package",
|
|
461
|
+
command: "npm test --workspace @acme/web",
|
|
462
|
+
reason: "Billing checkout and webhook behavior changed.",
|
|
463
|
+
ecosystem: "node",
|
|
464
|
+
required: true,
|
|
465
|
+
packageName: "@acme/web",
|
|
466
|
+
packagePath: "apps/web"
|
|
467
|
+
},
|
|
468
|
+
{
|
|
469
|
+
id: "node-web-build",
|
|
470
|
+
label: "Build affected web package",
|
|
471
|
+
command: "npm run build --workspace @acme/web",
|
|
472
|
+
reason: "Production web package changed.",
|
|
473
|
+
ecosystem: "node",
|
|
474
|
+
required: true,
|
|
475
|
+
packageName: "@acme/web",
|
|
476
|
+
packagePath: "apps/web"
|
|
477
|
+
},
|
|
478
|
+
{
|
|
479
|
+
id: "policy-release-review",
|
|
480
|
+
label: "Release workflow review",
|
|
481
|
+
command: "gh workflow view release.yml --yaml",
|
|
482
|
+
reason: "Repository policy requires human-readable workflow evidence when privileged release jobs change.",
|
|
483
|
+
ecosystem: "github-actions",
|
|
484
|
+
required: true
|
|
485
|
+
},
|
|
486
|
+
{
|
|
487
|
+
id: "node-web-e2e",
|
|
488
|
+
label: "Billing browser e2e",
|
|
489
|
+
command: "npm run test:e2e -- --grep billing",
|
|
490
|
+
reason: "Optional browser coverage is available for checkout flows.",
|
|
491
|
+
ecosystem: "node",
|
|
492
|
+
required: false,
|
|
493
|
+
packageName: "@acme/web",
|
|
494
|
+
packagePath: "apps/web"
|
|
495
|
+
}
|
|
496
|
+
],
|
|
497
|
+
commandResults: [
|
|
498
|
+
{
|
|
499
|
+
id: "node-web-lint",
|
|
500
|
+
command: "npm run lint --workspace @acme/web",
|
|
501
|
+
exitCode: 0,
|
|
502
|
+
durationMs: 6240,
|
|
503
|
+
stdout: "@acme/web lint: ok\n",
|
|
504
|
+
stderr: ""
|
|
505
|
+
},
|
|
506
|
+
{
|
|
507
|
+
id: "node-web-test",
|
|
508
|
+
command: "npm test --workspace @acme/web",
|
|
509
|
+
exitCode: 1,
|
|
510
|
+
durationMs: 11982,
|
|
511
|
+
stdout: "CheckoutService.test.ts: 38 passed, 1 failed\nWebhook signature regression: expected 401, received 200\n",
|
|
512
|
+
stderr: "FAIL apps/web/src/billing/webhook.test.ts > rejects unsigned webhook payloads\n"
|
|
513
|
+
},
|
|
514
|
+
{
|
|
515
|
+
id: "node-web-build",
|
|
516
|
+
command: "npm run build --workspace @acme/web",
|
|
517
|
+
exitCode: 0,
|
|
518
|
+
durationMs: 18321,
|
|
519
|
+
stdout: "vite v6.0.0 building for production...\nbuilt in 4.2s\n",
|
|
520
|
+
stderr: ""
|
|
521
|
+
}
|
|
522
|
+
]
|
|
523
|
+
});
|
|
524
|
+
}
|
|
525
|
+
//# sourceMappingURL=demo.js.map
|
package/dist/demo.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"demo.js","sourceRoot":"","sources":["../src/demo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type GitDiffOptions } from "./git.js";
|
|
2
|
+
import type { ChangedFile, DependencyChange } from "./types.js";
|
|
3
|
+
export declare function analyzeDependencyChanges(options: GitDiffOptions, changedFiles: ChangedFile[]): DependencyChange[];
|
|
4
|
+
export declare function supportedDependencyFormats(): string[];
|