corgea-cli 1.8.7__tar.gz → 1.9.0__tar.gz
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.
- corgea_cli-1.9.0/.codex/hooks.json +14 -0
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/.github/workflows/release.yml +35 -0
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/.github/workflows/test.yml +10 -3
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/.gitignore +4 -0
- corgea_cli-1.9.0/AGENTS.md +24 -0
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/Cargo.lock +89 -6
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/Cargo.toml +4 -1
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/PKG-INFO +1 -1
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/README.md +23 -0
- corgea_cli-1.9.0/examples/deps_skill.rs +31 -0
- corgea_cli-1.9.0/harness +357 -0
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/skills/corgea/SKILL.md +22 -0
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/src/authorize.rs +62 -57
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/src/cicd.rs +3 -4
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/src/config.rs +22 -8
- corgea_cli-1.9.0/src/deps/detect.rs +103 -0
- corgea_cli-1.9.0/src/deps/diff.rs +151 -0
- corgea_cli-1.9.0/src/deps/ecosystems/evaluate.rs +304 -0
- corgea_cli-1.9.0/src/deps/ecosystems/maven.rs +247 -0
- corgea_cli-1.9.0/src/deps/ecosystems/mod.rs +139 -0
- corgea_cli-1.9.0/src/deps/ecosystems/npm.rs +350 -0
- corgea_cli-1.9.0/src/deps/ecosystems/pypi.rs +471 -0
- corgea_cli-1.9.0/src/deps/explain.rs +82 -0
- corgea_cli-1.9.0/src/deps/findings.rs +38 -0
- corgea_cli-1.9.0/src/deps/mod.rs +95 -0
- corgea_cli-1.9.0/src/deps/model.rs +239 -0
- corgea_cli-1.9.0/src/deps/parse/mod.rs +4 -0
- corgea_cli-1.9.0/src/deps/parse/npm_lock.rs +10 -0
- corgea_cli-1.9.0/src/deps/parse/python_lock.rs +10 -0
- corgea_cli-1.9.0/src/deps/policy.rs +92 -0
- corgea_cli-1.9.0/src/deps/report.rs +172 -0
- corgea_cli-1.9.0/src/deps/run.rs +872 -0
- corgea_cli-1.9.0/src/deps/skill.rs +185 -0
- corgea_cli-1.9.0/src/deps/tests/common.rs +15 -0
- corgea_cli-1.9.0/src/deps/tests/correctness_tests.rs +46 -0
- corgea_cli-1.9.0/src/deps/tests/detect_tests.rs +50 -0
- corgea_cli-1.9.0/src/deps/tests/diff_tests.rs +132 -0
- corgea_cli-1.9.0/src/deps/tests/explain_tests.rs +20 -0
- corgea_cli-1.9.0/src/deps/tests/findings_tests.rs +25 -0
- corgea_cli-1.9.0/src/deps/tests/maven_tests.rs +129 -0
- corgea_cli-1.9.0/src/deps/tests/mod.rs +13 -0
- corgea_cli-1.9.0/src/deps/tests/npm_tests.rs +350 -0
- corgea_cli-1.9.0/src/deps/tests/policy_tests.rs +44 -0
- corgea_cli-1.9.0/src/deps/tests/pypi_tests.rs +183 -0
- corgea_cli-1.9.0/src/deps/tests/report_tests.rs +29 -0
- corgea_cli-1.9.0/src/deps/tests/robustness_tests.rs +105 -0
- corgea_cli-1.9.0/src/deps/tests/slice0_tests.rs +16 -0
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/src/inspect.rs +51 -34
- corgea_cli-1.9.0/src/lib.rs +1 -0
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/src/list.rs +117 -77
- corgea_cli-1.9.0/src/log.rs +8 -0
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/src/main.rs +285 -69
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/src/scan.rs +178 -110
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/src/scanners/blast.rs +207 -153
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/src/scanners/fortify.rs +17 -8
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/src/scanners/parsers/checkmarx.rs +25 -16
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/src/scanners/parsers/coverity.rs +32 -12
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/src/scanners/parsers/mod.rs +7 -6
- corgea_cli-1.9.0/src/scanners/parsers/sarif.rs +121 -0
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/src/scanners/parsers/semgrep.rs +7 -7
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/src/setup_hooks.rs +25 -16
- corgea_cli-1.9.0/src/skill.rs +367 -0
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/src/targets.rs +84 -83
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/src/utils/api.rs +613 -188
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/src/utils/generic.rs +91 -35
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/src/utils/terminal.rs +65 -35
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/src/wait.rs +27 -21
- corgea_cli-1.9.0/tests/cli_deps.rs +913 -0
- corgea_cli-1.9.0/tests/cli_deps_skill.rs +10 -0
- corgea_cli-1.9.0/tests/fixtures/README.md +23 -0
- corgea_cli-1.9.0/tests/fixtures/go-mod-smoke/go.mod +5 -0
- corgea_cli-1.9.0/tests/fixtures/go-mod-smoke/go.sum +2 -0
- corgea_cli-1.9.0/tests/fixtures/java-gradle/build.gradle +10 -0
- corgea_cli-1.9.0/tests/fixtures/java-gradle/gradle.lockfile +6 -0
- corgea_cli-1.9.0/tests/fixtures/java-maven/pom.xml +35 -0
- corgea_cli-1.9.0/tests/fixtures/malformed/not-xml-pom.xml +1 -0
- corgea_cli-1.9.0/tests/fixtures/malformed/package-lock.json +6 -0
- corgea_cli-1.9.0/tests/fixtures/malformed/package.json +4 -0
- corgea_cli-1.9.0/tests/fixtures/malformed/poetry.lock +3 -0
- corgea_cli-1.9.0/tests/fixtures/malformed/pyproject.toml +6 -0
- corgea_cli-1.9.0/tests/fixtures/malformed/truncated-poetry.lock +3 -0
- corgea_cli-1.9.0/tests/fixtures/node-app/.corgea/deps.yml +8 -0
- corgea_cli-1.9.0/tests/fixtures/node-app/package-lock.json +44 -0
- corgea_cli-1.9.0/tests/fixtures/node-app/package.json +13 -0
- corgea_cli-1.9.0/tests/fixtures/node-monorepo/package-lock.json +11 -0
- corgea_cli-1.9.0/tests/fixtures/node-monorepo/package.json +6 -0
- corgea_cli-1.9.0/tests/fixtures/node-monorepo/packages/a/package.json +1 -0
- corgea_cli-1.9.0/tests/fixtures/node-monorepo/packages/b/package.json +1 -0
- corgea_cli-1.9.0/tests/fixtures/node-pnpm/package.json +7 -0
- corgea_cli-1.9.0/tests/fixtures/node-pnpm/pnpm-lock.yaml +5 -0
- corgea_cli-1.9.0/tests/fixtures/node-stale/package-lock.json +15 -0
- corgea_cli-1.9.0/tests/fixtures/node-stale/package.json +5 -0
- corgea_cli-1.9.0/tests/fixtures/node-transitive/package-lock.json +34 -0
- corgea_cli-1.9.0/tests/fixtures/node-transitive/package.json +7 -0
- corgea_cli-1.9.0/tests/fixtures/node-yarn/package.json +7 -0
- corgea_cli-1.9.0/tests/fixtures/node-yarn/yarn.lock +4 -0
- corgea_cli-1.9.0/tests/fixtures/python-pip-nolock/requirements.txt +4 -0
- corgea_cli-1.9.0/tests/fixtures/python-poetry/poetry.lock +31 -0
- corgea_cli-1.9.0/tests/fixtures/python-poetry/pyproject.toml +11 -0
- corgea_cli-1.9.0/tests/fixtures/python-poetry-multi/poetry.lock +34 -0
- corgea_cli-1.9.0/tests/fixtures/python-poetry-multi/pyproject.toml +8 -0
- corgea_cli-1.9.0/tests/fixtures/python-uv-requirements/pyproject.toml +3 -0
- corgea_cli-1.9.0/tests/fixtures/python-uv-requirements/requirements.txt +1 -0
- corgea_cli-1.9.0/tests/fixtures/python-uv-requirements/uv.lock +2 -0
- corgea_cli-1.9.0/tests/logging_e2e.rs +103 -0
- corgea_cli-1.8.7/src/log.rs +0 -8
- corgea_cli-1.8.7/src/scanners/parsers/sarif.rs +0 -70
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/.github/workflows/npm-publish.yml +0 -0
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/.github/workflows/release-binaries.yml +0 -0
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/.github/workflows/update_docs..yml +0 -0
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/LICENSE +0 -0
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/bin/corgea.js +0 -0
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/build_release.sh +0 -0
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/package.json +0 -0
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/pyproject.toml +0 -0
- {corgea_cli-1.8.7 → corgea_cli-1.9.0}/scripts/npm/bundle-binaries.js +0 -0
|
@@ -22,6 +22,7 @@ jobs:
|
|
|
22
22
|
linux-x86:
|
|
23
23
|
runs-on: ${{ matrix.platform.runner }}
|
|
24
24
|
strategy:
|
|
25
|
+
fail-fast: false
|
|
25
26
|
matrix:
|
|
26
27
|
platform:
|
|
27
28
|
- runner: ubuntu-latest
|
|
@@ -31,12 +32,26 @@ jobs:
|
|
|
31
32
|
|
|
32
33
|
steps:
|
|
33
34
|
- uses: actions/checkout@v4
|
|
35
|
+
- name: Prepare resilient maturin download for manylinux Docker
|
|
36
|
+
run: |
|
|
37
|
+
bin_dir="${RUNNER_TEMP}/maturin-docker-bin"
|
|
38
|
+
mkdir -p "$bin_dir"
|
|
39
|
+
cat > "$bin_dir/curl" <<'EOF'
|
|
40
|
+
#!/bin/bash
|
|
41
|
+
set -euo pipefail
|
|
42
|
+
if [[ " $* " == *" PyO3/maturin/releases "* ]]; then
|
|
43
|
+
exec /usr/bin/curl --fail --retry 5 --retry-delay 3 --retry-all-errors "$@"
|
|
44
|
+
fi
|
|
45
|
+
exec /usr/bin/curl "$@"
|
|
46
|
+
EOF
|
|
47
|
+
chmod +x "$bin_dir/curl"
|
|
34
48
|
- name: Build wheels
|
|
35
49
|
uses: PyO3/maturin-action@v1
|
|
36
50
|
with:
|
|
37
51
|
target: ${{ matrix.platform.target }}
|
|
38
52
|
args: --release --out dist
|
|
39
53
|
manylinux: auto
|
|
54
|
+
docker-options: -v ${{ runner.temp }}/maturin-docker-bin/curl:/usr/local/bin/curl:ro
|
|
40
55
|
before-script-linux: |
|
|
41
56
|
# If we're running on rhel centos, install needed packages.
|
|
42
57
|
if command -v yum &> /dev/null; then
|
|
@@ -45,6 +60,26 @@ jobs:
|
|
|
45
60
|
# If we're running on debian-based system.
|
|
46
61
|
apt update -y && apt-get install -y libssl-dev openssl pkg-config musl-tools
|
|
47
62
|
fi
|
|
63
|
+
- name: Assert manylinux wheel compatibility tags
|
|
64
|
+
run: |
|
|
65
|
+
shopt -s nullglob
|
|
66
|
+
wheels=(dist/*.whl)
|
|
67
|
+
if ((${#wheels[@]} == 0)); then
|
|
68
|
+
echo "No wheels found in dist/"
|
|
69
|
+
exit 1
|
|
70
|
+
fi
|
|
71
|
+
for wheel in "${wheels[@]}"; do
|
|
72
|
+
base=$(basename "$wheel")
|
|
73
|
+
if [[ "$base" == *manylinux_2_3[0-9]* ]]; then
|
|
74
|
+
echo "Wheel tag too new for broad Linux support: $base"
|
|
75
|
+
exit 1
|
|
76
|
+
fi
|
|
77
|
+
if [[ ! "$base" =~ manylinux2014 ]]; then
|
|
78
|
+
echo "Expected manylinux2014 compatibility tag, got: $base"
|
|
79
|
+
exit 1
|
|
80
|
+
fi
|
|
81
|
+
echo "OK: $base"
|
|
82
|
+
done
|
|
48
83
|
- name: Upload wheels
|
|
49
84
|
uses: actions/upload-artifact@v4
|
|
50
85
|
with:
|
|
@@ -17,10 +17,17 @@ jobs:
|
|
|
17
17
|
|
|
18
18
|
- name: Setup Rust
|
|
19
19
|
uses: dtolnay/rust-toolchain@stable
|
|
20
|
+
with:
|
|
21
|
+
components: llvm-tools-preview
|
|
22
|
+
|
|
23
|
+
- name: Install cargo-llvm-cov
|
|
24
|
+
uses: taiki-e/install-action@cargo-llvm-cov
|
|
25
|
+
|
|
26
|
+
- name: Install cargo-audit
|
|
27
|
+
uses: taiki-e/install-action@cargo-audit
|
|
20
28
|
|
|
21
29
|
- name: Cache cargo
|
|
22
30
|
uses: Swatinem/rust-cache@v2
|
|
23
31
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
run: cargo test
|
|
32
|
+
- name: CI gate
|
|
33
|
+
run: ./harness ci
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# AGENTS.md
|
|
2
|
+
|
|
3
|
+
This subproject is the Corgea developer CLI (Rust → npm + pip via maturin).
|
|
4
|
+
|
|
5
|
+
## Commands
|
|
6
|
+
|
|
7
|
+
- After edits: `./harness check` — clippy fix, format, tests, suppression report
|
|
8
|
+
- Pre-commit: `./harness pre-commit` — staged Rust files only (auto via git hook)
|
|
9
|
+
- CI: `./harness ci` — strict clippy (`-D warnings`), format check, dep audit, tests + coverage gate (min 13%)
|
|
10
|
+
- Audit: `./harness audit` — `cargo audit` for known dep vulnerabilities
|
|
11
|
+
- Coverage: `./harness coverage [--min=N]` — cargo-llvm-cov; HTML report under `target/llvm-cov/`; fails if line coverage < N (default 13)
|
|
12
|
+
- Lint: `./harness lint` — clippy + format check, no fixes
|
|
13
|
+
- Test: `./harness test` — `cargo test`
|
|
14
|
+
- Fix: `./harness fix` — clippy fix + format
|
|
15
|
+
- Setup: `./harness setup-hooks` — install `.git/hooks/pre-commit`
|
|
16
|
+
- Auto-format: `./harness post-edit` — runs `cargo fmt` on changed Rust files (wire into your editor/agent's post-edit hook)
|
|
17
|
+
|
|
18
|
+
Add `--verbose` to stream raw command output instead of the quiet summary.
|
|
19
|
+
|
|
20
|
+
Coverage needs LLVM's `llvm-cov`/`llvm-profdata`. On a rustup toolchain, run
|
|
21
|
+
`rustup component add llvm-tools-preview`. On a non-rustup toolchain (e.g.
|
|
22
|
+
Homebrew Rust) those are missing, so point cargo-llvm-cov at a system LLVM:
|
|
23
|
+
`LLVM_COV="$(brew --prefix llvm)/bin/llvm-cov" LLVM_PROFDATA="$(brew --prefix llvm)/bin/llvm-profdata" ./harness coverage`.
|
|
24
|
+
CI uses its own toolchain and is unaffected.
|
|
@@ -340,11 +340,12 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
|
|
|
340
340
|
|
|
341
341
|
[[package]]
|
|
342
342
|
name = "corgea"
|
|
343
|
-
version = "1.
|
|
343
|
+
version = "1.9.0"
|
|
344
344
|
dependencies = [
|
|
345
345
|
"chrono",
|
|
346
346
|
"clap",
|
|
347
347
|
"dirs",
|
|
348
|
+
"env_logger",
|
|
348
349
|
"git2",
|
|
349
350
|
"globset",
|
|
350
351
|
"http",
|
|
@@ -352,6 +353,7 @@ dependencies = [
|
|
|
352
353
|
"hyper",
|
|
353
354
|
"hyper-util",
|
|
354
355
|
"ignore",
|
|
356
|
+
"log",
|
|
355
357
|
"open",
|
|
356
358
|
"openssl",
|
|
357
359
|
"quick-xml",
|
|
@@ -360,6 +362,7 @@ dependencies = [
|
|
|
360
362
|
"serde",
|
|
361
363
|
"serde_derive",
|
|
362
364
|
"serde_json",
|
|
365
|
+
"serde_yaml_ng",
|
|
363
366
|
"tempfile",
|
|
364
367
|
"termcolor",
|
|
365
368
|
"tokio",
|
|
@@ -523,6 +526,29 @@ version = "1.15.0"
|
|
|
523
526
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
524
527
|
checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
|
|
525
528
|
|
|
529
|
+
[[package]]
|
|
530
|
+
name = "env_filter"
|
|
531
|
+
version = "1.0.0"
|
|
532
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
533
|
+
checksum = "7a1c3cc8e57274ec99de65301228b537f1e4eedc1b8e0f9411c6caac8ae7308f"
|
|
534
|
+
dependencies = [
|
|
535
|
+
"log",
|
|
536
|
+
"regex",
|
|
537
|
+
]
|
|
538
|
+
|
|
539
|
+
[[package]]
|
|
540
|
+
name = "env_logger"
|
|
541
|
+
version = "0.11.9"
|
|
542
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
543
|
+
checksum = "b2daee4ea451f429a58296525ddf28b45a3b64f1acf6587e2067437bb11e218d"
|
|
544
|
+
dependencies = [
|
|
545
|
+
"anstream",
|
|
546
|
+
"anstyle",
|
|
547
|
+
"env_filter",
|
|
548
|
+
"jiff",
|
|
549
|
+
"log",
|
|
550
|
+
]
|
|
551
|
+
|
|
526
552
|
[[package]]
|
|
527
553
|
name = "equivalent"
|
|
528
554
|
version = "1.0.2"
|
|
@@ -1092,6 +1118,30 @@ version = "1.0.15"
|
|
|
1092
1118
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1093
1119
|
checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
|
|
1094
1120
|
|
|
1121
|
+
[[package]]
|
|
1122
|
+
name = "jiff"
|
|
1123
|
+
version = "0.2.28"
|
|
1124
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1125
|
+
checksum = "4603d3033e49e2b0e31229fcab20a5d40089c607d975cd9c80551dc69eed9102"
|
|
1126
|
+
dependencies = [
|
|
1127
|
+
"jiff-static",
|
|
1128
|
+
"log",
|
|
1129
|
+
"portable-atomic",
|
|
1130
|
+
"portable-atomic-util",
|
|
1131
|
+
"serde_core",
|
|
1132
|
+
]
|
|
1133
|
+
|
|
1134
|
+
[[package]]
|
|
1135
|
+
name = "jiff-static"
|
|
1136
|
+
version = "0.2.28"
|
|
1137
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1138
|
+
checksum = "782d32378dddf207193ac91cefb848ad41abb58195c95168e1291227a0832b47"
|
|
1139
|
+
dependencies = [
|
|
1140
|
+
"proc-macro2",
|
|
1141
|
+
"quote",
|
|
1142
|
+
"syn",
|
|
1143
|
+
]
|
|
1144
|
+
|
|
1095
1145
|
[[package]]
|
|
1096
1146
|
name = "jobserver"
|
|
1097
1147
|
version = "0.1.34"
|
|
@@ -1321,15 +1371,14 @@ dependencies = [
|
|
|
1321
1371
|
|
|
1322
1372
|
[[package]]
|
|
1323
1373
|
name = "openssl"
|
|
1324
|
-
version = "0.10.
|
|
1374
|
+
version = "0.10.80"
|
|
1325
1375
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1326
|
-
checksum = "
|
|
1376
|
+
checksum = "a45fa2aa886c42762255da344f0a0d313e254066c46aad76f300c3d3da62d967"
|
|
1327
1377
|
dependencies = [
|
|
1328
1378
|
"bitflags",
|
|
1329
1379
|
"cfg-if",
|
|
1330
1380
|
"foreign-types",
|
|
1331
1381
|
"libc",
|
|
1332
|
-
"once_cell",
|
|
1333
1382
|
"openssl-macros",
|
|
1334
1383
|
"openssl-sys",
|
|
1335
1384
|
]
|
|
@@ -1362,9 +1411,9 @@ dependencies = [
|
|
|
1362
1411
|
|
|
1363
1412
|
[[package]]
|
|
1364
1413
|
name = "openssl-sys"
|
|
1365
|
-
version = "0.9.
|
|
1414
|
+
version = "0.9.116"
|
|
1366
1415
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1367
|
-
checksum = "
|
|
1416
|
+
checksum = "f28a22dc7140cda5f096e5e7724a6962ca81a7f8bfd2979f9b18c11af56318c4"
|
|
1368
1417
|
dependencies = [
|
|
1369
1418
|
"cc",
|
|
1370
1419
|
"libc",
|
|
@@ -1442,6 +1491,21 @@ version = "0.3.32"
|
|
|
1442
1491
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1443
1492
|
checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c"
|
|
1444
1493
|
|
|
1494
|
+
[[package]]
|
|
1495
|
+
name = "portable-atomic"
|
|
1496
|
+
version = "1.13.1"
|
|
1497
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1498
|
+
checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49"
|
|
1499
|
+
|
|
1500
|
+
[[package]]
|
|
1501
|
+
name = "portable-atomic-util"
|
|
1502
|
+
version = "0.2.7"
|
|
1503
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1504
|
+
checksum = "c2a106d1259c23fac8e543272398ae0e3c0b8d33c88ed73d0cc71b0f1d902618"
|
|
1505
|
+
dependencies = [
|
|
1506
|
+
"portable-atomic",
|
|
1507
|
+
]
|
|
1508
|
+
|
|
1445
1509
|
[[package]]
|
|
1446
1510
|
name = "potential_utf"
|
|
1447
1511
|
version = "0.1.3"
|
|
@@ -1760,6 +1824,19 @@ dependencies = [
|
|
|
1760
1824
|
"serde",
|
|
1761
1825
|
]
|
|
1762
1826
|
|
|
1827
|
+
[[package]]
|
|
1828
|
+
name = "serde_yaml_ng"
|
|
1829
|
+
version = "0.10.0"
|
|
1830
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1831
|
+
checksum = "7b4db627b98b36d4203a7b458cf3573730f2bb591b28871d916dfa9efabfd41f"
|
|
1832
|
+
dependencies = [
|
|
1833
|
+
"indexmap",
|
|
1834
|
+
"itoa",
|
|
1835
|
+
"ryu",
|
|
1836
|
+
"serde",
|
|
1837
|
+
"unsafe-libyaml",
|
|
1838
|
+
]
|
|
1839
|
+
|
|
1763
1840
|
[[package]]
|
|
1764
1841
|
name = "sha1"
|
|
1765
1842
|
version = "0.10.6"
|
|
@@ -2170,6 +2247,12 @@ version = "1.0.19"
|
|
|
2170
2247
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2171
2248
|
checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d"
|
|
2172
2249
|
|
|
2250
|
+
[[package]]
|
|
2251
|
+
name = "unsafe-libyaml"
|
|
2252
|
+
version = "0.2.11"
|
|
2253
|
+
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2254
|
+
checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861"
|
|
2255
|
+
|
|
2173
2256
|
[[package]]
|
|
2174
2257
|
name = "url"
|
|
2175
2258
|
version = "2.5.7"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "corgea"
|
|
3
|
-
version = "1.
|
|
3
|
+
version = "1.9.0"
|
|
4
4
|
edition = "2021"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
|
|
@@ -18,6 +18,8 @@ reqwest = { version = "0.12.23", default-features = false, features = [
|
|
|
18
18
|
"system-proxy",
|
|
19
19
|
] }
|
|
20
20
|
toml = "0.8.8"
|
|
21
|
+
log = "0.4"
|
|
22
|
+
env_logger = "0.11"
|
|
21
23
|
serde = { version = "1.0.195", features = ["derive"] }
|
|
22
24
|
serde_json = "1.0.111"
|
|
23
25
|
serde_derive = "1.0.195"
|
|
@@ -40,6 +42,7 @@ http-body-util = "0.1"
|
|
|
40
42
|
url = "2.5"
|
|
41
43
|
open = "5.0"
|
|
42
44
|
urlencoding = "2.1"
|
|
45
|
+
serde_yaml_ng = "0.10"
|
|
43
46
|
|
|
44
47
|
[target.'cfg(not(target_os = "windows"))'.dependencies]
|
|
45
48
|
openssl = { version = "0.10", features = ["vendored"] }
|
|
@@ -26,6 +26,29 @@ Once the binary is installed, login with your token from the Corgea app.
|
|
|
26
26
|
corgea login <token>
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
+
## Dependency Inventory (offline)
|
|
30
|
+
|
|
31
|
+
`corgea deps` builds a dependency inventory from npm, Python, and Java manifests
|
|
32
|
+
and lockfiles, then evaluates a pinning policy (DEP rules). Runs fully offline —
|
|
33
|
+
no token or network required.
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
corgea deps scan # table report for the current directory
|
|
37
|
+
corgea deps scan --format agent # compact TSV for coding agents
|
|
38
|
+
corgea deps scan --format json # JSON inventory on stdout
|
|
39
|
+
corgea deps scan --format quiet # no stdout; exit code still applies
|
|
40
|
+
corgea deps scan --fail-on high # exit 1 if any finding is >= high
|
|
41
|
+
corgea deps scan --out-format json # machine-readable (json or sarif)
|
|
42
|
+
corgea deps graph --format json # print the resolved dependency graph
|
|
43
|
+
corgea deps explain <package> --format agent # show why a package is present
|
|
44
|
+
corgea deps diff --base origin/main --format json
|
|
45
|
+
corgea deps sbom --format cyclonedx # emit a CycloneDX SBOM
|
|
46
|
+
corgea deps policy init --exist-ok # write starter policy, or keep existing file
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
`corgea deps` defaults to `--format agent` when an agent environment is detected (`AI_AGENT`, `CODEX_SANDBOX`, `CLAUDECODE`, and related agent variables). Use `--format human` to force the normal terminal output.
|
|
50
|
+
|
|
51
|
+
See [Dependency Scanning (CLI)](https://docs.corgea.app/cli/deps) for the full flag and exit-code reference.
|
|
29
52
|
|
|
30
53
|
## Development Setup
|
|
31
54
|
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
use std::path::Path;
|
|
2
|
+
use std::process::ExitCode;
|
|
3
|
+
|
|
4
|
+
use corgea::deps::skill::{check_skill_file, generated_marked_section, update_skill_file};
|
|
5
|
+
|
|
6
|
+
const SKILL_PATH: &str = "skills/corgea/SKILL.md";
|
|
7
|
+
|
|
8
|
+
fn main() -> ExitCode {
|
|
9
|
+
let mode = std::env::args()
|
|
10
|
+
.nth(1)
|
|
11
|
+
.unwrap_or_else(|| "print".to_string());
|
|
12
|
+
let skill_path = Path::new(SKILL_PATH);
|
|
13
|
+
|
|
14
|
+
let result = match mode.as_str() {
|
|
15
|
+
"print" => {
|
|
16
|
+
println!("{}", generated_marked_section());
|
|
17
|
+
Ok(())
|
|
18
|
+
}
|
|
19
|
+
"check" => check_skill_file(skill_path),
|
|
20
|
+
"update" => update_skill_file(skill_path),
|
|
21
|
+
_ => Err("usage: cargo run --example deps_skill -- [print|check|update]".to_string()),
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
match result {
|
|
25
|
+
Ok(()) => ExitCode::SUCCESS,
|
|
26
|
+
Err(message) => {
|
|
27
|
+
eprintln!("{message}");
|
|
28
|
+
ExitCode::FAILURE
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|