code-foundry 1.33.0 → 1.33.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/CHANGELOG.md +12 -0
- package/docs/WORKFLOWS.md +4 -0
- package/package.json +1 -1
- package/src/runtime-core.mjs +21 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.33.1](https://github.com/0xPlayerOne/code-foundry/compare/v1.33.0...v1.33.1) (2026-09-25)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* **security:** stop a clean pip-audit result from failing the audit gate ([#643](https://github.com/0xPlayerOne/code-foundry/issues/643)) ([7260291](https://github.com/0xPlayerOne/code-foundry/commit/7260291fc24e851678ddbf9cc9dfcf99bea48f59))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Maintenance
|
|
12
|
+
|
|
13
|
+
* **perf:** recalibrate the packed artifact budget ([#645](https://github.com/0xPlayerOne/code-foundry/issues/645)) ([64b6504](https://github.com/0xPlayerOne/code-foundry/commit/64b65049ba313f01f6989bf52a83efe31d2b91dd))
|
|
14
|
+
|
|
3
15
|
## [1.33.0](https://github.com/0xPlayerOne/code-foundry/compare/v1.32.0...v1.33.0) (2026-09-22)
|
|
4
16
|
|
|
5
17
|
|
package/docs/WORKFLOWS.md
CHANGED
|
@@ -282,6 +282,10 @@ The repository's format and lint jobs are ordinary CI checks. Set `codeql:
|
|
|
282
282
|
false` or `dependency_review: false` when a public repository also needs those
|
|
283
283
|
checks disabled.
|
|
284
284
|
|
|
285
|
+
The Python audit fails only on a reported advisory: `pip-audit` can report a
|
|
286
|
+
clean result with a non-zero status, so the runtime decides from the report,
|
|
287
|
+
replays it to the job log, and emits a `::warning::` when it downgrades.
|
|
288
|
+
|
|
285
289
|
## Branch protection
|
|
286
290
|
|
|
287
291
|
Use repository rulesets (or legacy branch protection settings) to mirror the
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "code-foundry",
|
|
3
|
-
"version": "1.33.
|
|
3
|
+
"version": "1.33.1",
|
|
4
4
|
"description": "A fast, language-aware repository factory for agent-ready workflows, testing, security, and release automation.",
|
|
5
5
|
"homepage": "https://github.com/0xPlayerOne/code-foundry#readme",
|
|
6
6
|
"bugs": {
|
package/src/runtime-core.mjs
CHANGED
|
@@ -432,6 +432,25 @@ function run(command, args = [], options = {}) {
|
|
|
432
432
|
if (result.status !== 0) process.exit(result.status ?? 1)
|
|
433
433
|
}
|
|
434
434
|
|
|
435
|
+
// pip-audit can report its clean result with a non-zero status when the
|
|
436
|
+
// inspected environment hits a resolution problem, so decide from the report.
|
|
437
|
+
const CLEAN_AUDIT = 'No known vulnerabilities found'
|
|
438
|
+
const ADVISORY = /\b(?:PYSEC|GHSA|CVE|OSV)-[A-Za-z0-9._-]+/
|
|
439
|
+
|
|
440
|
+
/** @param {string} command @param {string[]} [args] */
|
|
441
|
+
function runAudited(command, args = []) {
|
|
442
|
+
const result = spawnSync(command, args, { cwd: root, encoding: 'utf8', env: process.env })
|
|
443
|
+
if (result.error) throw result.error
|
|
444
|
+
const stdout = result.stdout ?? ''
|
|
445
|
+
const stderr = result.stderr ?? ''
|
|
446
|
+
if (stdout) process.stdout.write(stdout)
|
|
447
|
+
if (stderr) process.stderr.write(stderr)
|
|
448
|
+
if (result.status === 0) return
|
|
449
|
+
const report = `${stdout}\n${stderr}`
|
|
450
|
+
if (!report.includes(CLEAN_AUDIT) || ADVISORY.test(report)) process.exit(result.status ?? 1)
|
|
451
|
+
console.warn(`::warning::${command} exited ${result.status} with no known vulnerabilities`)
|
|
452
|
+
}
|
|
453
|
+
|
|
435
454
|
/** @param {string} command @param {string[]} [args] */
|
|
436
455
|
function capture(command, args = []) {
|
|
437
456
|
const result = spawnSync(command, args, { cwd: root, encoding: 'utf8', env: process.env })
|
|
@@ -879,10 +898,10 @@ function security(task, ecosystem) {
|
|
|
879
898
|
const auditArgs =
|
|
880
899
|
requirement && !['project', 'none'].includes(requirement) ? ['-r', requirement] : []
|
|
881
900
|
if (commandExists('uv'))
|
|
882
|
-
|
|
901
|
+
runAudited('uv', ['tool', 'run', '--from', 'pip-audit==2.10.1', 'pip-audit', ...auditArgs])
|
|
883
902
|
else {
|
|
884
903
|
run('python', ['-m', 'pip', 'install', '--quiet', 'pip-audit==2.10.1'])
|
|
885
|
-
|
|
904
|
+
runAudited('python', ['-m', 'pip_audit', ...auditArgs])
|
|
886
905
|
}
|
|
887
906
|
}
|
|
888
907
|
}
|