You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* add legal presets, file-based compliance artifacts
Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
* add unit test coverage for new config defaults and outputs
Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
* document legal preset flag and default artifacts
Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
* update lockfile
Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
* bump version to pass checks
Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
* update lockfile to match new version
Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
* handle missing SBOM and package data in legal artifacts
Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
* update tests to check for missing data issues
Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
* add opt-in FOSSA-compatible legal artifact mode
Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
* cover FOSSA-compatible legal outputs/sample scenarios
Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
* update README docs to include FOSSA compatibility mode
Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
* bump version for release
Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
* update uv lockfile version
Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
* fix compatibility unit tests
Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
* bump version for release
Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
* fix version check sync logic to check pypi properly
Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
* test: add FOSSA reference fixtures and parity harness
* fix: emit fossa project.id as <locator>\$<revision>
Real FOSSA artifacts use \$ as the revision separator in project.id, not
\-. Update _build_project_metadata and add two tests that pin the correct
separator and fallback behaviour.
* test: lock fossa analyze top-level keyset invariants
* fix: source vulnerability version ranges from Socket field names
* fix: emit consistent defaults for FOSSA fields with no Socket source
Adds customRiskScore: None to vulnerability entries (FOSSA samples
include this field, sometimes null). Documents all gap fields and their
defaults in the module docstring. Locks the new key in EXPECTED_VULNERABILITY_KEYS.
* feat: reshape fossa-sbom.json to 5-key attribution top-level
Replaces the 2-key {project, dependencies} shape with the real FOSSA
attribution shape: copyrightsByLicense, deepDependencies,
directDependencies, licenses, project.
The SBOM project field is now the 2-key {name, revision} subset rather
than the 6-key analyze project shape. _partition_dependencies is a stub
returning ([], []) until Tasks 7-9 fill in per-dependency entries.
* feat: build FOSSA-shape Dependency entries with attribution text
Add _build_dependency_entry and _build_dependency_licenses to produce
the 14-key per-dependency dict that matches real FOSSA attribution
output. License entries prefer licenseAttrib (full attribText + spdxExpr),
fall back to declared license string, or emit [] when unlicensed.
Also removes the stale test_fossa_attribution_payload_shape_is_stable
test, which asserted the pre-Task-6 two-key shape and was already
failing.
* feat: partition SBOM dependencies into direct and deep
* feat: compute SBOM dependencyPaths from topLevelAncestors
Replaces the stub that always returned [package.name] with real logic:
direct deps emit just their name; transitive deps emit one
"<ancestor> > <package>" chain per top-level ancestor, falling back to
name-only when ancestors are absent or not in the lookup.
* fix: write fossa-sbom.json with indent=2 for consistency
* test: assert structural parity against real FOSSA fixtures
* test: update legacy FOSSA-shape assertions for wrapper parity
Pin project.id to dollar separator, replace 2-key SBOM with 5-key
shape, and update per-dependency assertions to the 14-key
_build_dependency_entry contract.
* docs: document partialFix/completeFix collapse and otherLicenses gap
* style: apply ruff --fix to touched files
* fix: always include unchanged alerts in FOSSA output
FOSSA's /api/v2/issues endpoint returns a point-in-time snapshot of all
issues at the scan revision, not only diff-new ones. The previous
implementation only included unchanged alerts when --strict-blocking
was set, causing FOSSA-mode output to under-represent project-wide
findings compared to the typical FOSSA pipeline.
* test: sanitize customer references in FOSSA reference fixtures
Replace customer org ID and project name with generic placeholders
(1234/example-validation-project) across all four fixtures and the README.
Structural shape, key sets, value types, and per-field cardinality are
unchanged. Parity tests assert keysets only, so the substitution is
transparent to test behavior.
* docs: correct README description of FOSSA SBOM shape
The SBOM artifact now matches FOSSA's `report --json attribution`
shape with five top-level keys, not the previously documented
`project` / `dependencies` two-key payload.
---------
Signed-off-by: lelia <2418071+lelia@users.noreply.github.com>
Co-authored-by: Eric Hibbs <eric@socket.dev>
This preset enables license generation and writes default artifacts unless you override them:
145
+
-`socket-report.json`
146
+
-`socket-summary.txt`
147
+
-`socket-report-link.txt`
148
+
-`socket-sbom.json`
149
+
-`socket-license.json`
150
+
151
+
FOSSA-compatibility shaped legal artifacts:
152
+
153
+
```bash
154
+
socketcli --legal-format fossa --target-path .
155
+
```
156
+
157
+
This switches the JSON report and legal artifact payloads to FOSSA-style compatibility shapes:
158
+
- the analyze artifact becomes a `project` / `vulnerability` / `licensing` / `quality` report
159
+
- the SBOM artifact becomes a FOSSA-attribution-style payload with `copyrightsByLicense`, `deepDependencies`, `directDependencies`, `licenses`, and `project` keys
160
+
161
+
When `--legal-format fossa` is used without explicit output paths, the defaults are closer to the FOSSA pipeline contract:
0 commit comments