socketsecurity 2.4.4__tar.gz → 2.4.6__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.
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/.github/workflows/dependency-review.yml +65 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/.github/workflows/e2e-test.yml +31 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/CHANGELOG.md +22 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/PKG-INFO +2 -2
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/docs/cli-reference.md +18 -7
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/pyproject.toml +2 -2
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/__init__.py +1 -1
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/uv.lock +68 -54
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/.github/CODEOWNERS +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/.github/PULL_REQUEST_TEMPLATE/bug-fix.md +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/.github/PULL_REQUEST_TEMPLATE/feature.md +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/.github/PULL_REQUEST_TEMPLATE/improvement.md +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/.github/actions/setup-docker/action.yml +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/.github/actions/setup-hatch/action.yml +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/.github/actions/setup-sfw/action.yml +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/.github/dependabot.yml +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/.github/workflows/docker-stable.yml +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/.github/workflows/pr-preview.yml +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/.github/workflows/python-tests.yml +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/.github/workflows/release.yml +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/.github/workflows/version-check.yml +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/.github/zizmor.yml +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/.gitignore +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/.hooks/sync_version.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/.pre-commit-config.yaml +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/.python-version +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/Dockerfile +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/LICENSE +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/Makefile +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/README.md +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/docs/ci-cd.md +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/docs/development.md +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/docs/troubleshooting.md +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/examples/config/sarif-dashboard-parity.json +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/examples/config/sarif-dashboard-parity.toml +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/examples/config/sarif-diff-ci-cd.json +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/examples/config/sarif-diff-ci-cd.toml +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/examples/config/sarif-instance-detail.json +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/examples/config/sarif-instance-detail.toml +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/instructions/gitlab-commit-status/uat.md +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/pytest.ini +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/scripts/build_container.sh +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/scripts/build_container_flexible.sh +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/scripts/deploy-test-docker.sh +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/scripts/deploy-test-pypi.sh +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/scripts/docker-entrypoint.sh +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/scripts/run.sh +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/session.md +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socket.yml +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/config.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/core/__init__.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/core/alert_selection.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/core/classes.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/core/cli_client.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/core/exceptions.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/core/git_interface.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/core/helper/__init__.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/core/helper/socket_facts_loader.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/core/lazy_file_loader.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/core/logging.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/core/messages.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/core/resource_utils.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/core/scm/__init__.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/core/scm/base.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/core/scm/client.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/core/scm/github.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/core/scm/gitlab.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/core/scm_comments.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/core/socket_config.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/core/tools/reachability.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/core/utils.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/fossa_compat.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/output.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/plugins/__init__.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/plugins/base.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/plugins/formatters/__init__.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/plugins/formatters/slack.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/plugins/jira.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/plugins/manager.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/plugins/slack.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/plugins/teams.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/plugins/webhook.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/socketcli.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/__init__.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/core/conftest.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/core/create_diff_input.json +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/core/test_diff_alerts.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/core/test_diff_generation.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/core/test_facts_compression.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/core/test_has_manifest_files.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/core/test_package_and_alerts.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/core/test_sdk_methods.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/core/test_supporting_methods.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/data/fullscans/create_response.json +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/data/fullscans/diff/stream_diff.json +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/data/fullscans/diff/stream_diff_full.json +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/data/fullscans/head_scan/metadata.json +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/data/fullscans/head_scan/stream_scan.json +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/data/fullscans/head_scan/stream_scan_full.json +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/data/fullscans/new_scan/metadata.json +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/data/fullscans/new_scan/stream_scan.json +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/data/repos/repo_info_error.json +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/data/repos/repo_info_no_head.json +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/data/repos/repo_info_success.json +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/data/settings/security-policy.json +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/e2e/fixtures/simple-npm/index.js +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/e2e/fixtures/simple-npm/package.json +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/e2e/fixtures/simple-pypi/requirements.txt +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/e2e/validate-gitlab.sh +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/e2e/validate-json.sh +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/e2e/validate-reachability.sh +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/e2e/validate-sarif.sh +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/e2e/validate-scan.sh +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/fixtures/fossa/README.md +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/fixtures/fossa/fossa-analyze-empty.json +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/fixtures/fossa/fossa-analyze-populated.json +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/fixtures/fossa/fossa-sbom-empty-deep.json +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/fixtures/fossa/fossa-sbom-populated.json +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/unit/__init__.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/unit/test_alert_selection.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/unit/test_cli_config.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/unit/test_client.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/unit/test_config.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/unit/test_dependency_overview.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/unit/test_disable_ignore.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/unit/test_exclude_paths.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/unit/test_fossa_compat.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/unit/test_fossa_parity.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/unit/test_gitlab_auth.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/unit/test_gitlab_auth_fallback.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/unit/test_gitlab_commit_status.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/unit/test_gitlab_format.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/unit/test_ignore_telemetry_filtering.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/unit/test_output.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/unit/test_reachability.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/unit/test_slack_plugin.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/unit/test_socketcli.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/unit/test_tier1_finalize.py +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/workflows/bitbucket-pipelines.yml +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/workflows/buildkite.yml +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/workflows/github-actions.yml +0 -0
- {socketsecurity-2.4.4 → socketsecurity-2.4.6}/workflows/gitlab-ci.yml +0 -0
|
@@ -586,3 +586,68 @@ jobs:
|
|
|
586
586
|
echo "This PR changes workflow, composite-action, or dependabot config files."
|
|
587
587
|
echo "Require explicit human review before merge."
|
|
588
588
|
} >> "$GITHUB_STEP_SUMMARY"
|
|
589
|
+
|
|
590
|
+
# Single required status check that aggregates the conditional smoke jobs
|
|
591
|
+
# above. Branch protection can't require those jobs individually: each is
|
|
592
|
+
# conditional (per-manifest, and Firewall-free vs -enterprise per author), so
|
|
593
|
+
# on any given PR most are legitimately skipped -- and a required check whose
|
|
594
|
+
# job is skipped sits at "Expected -- Waiting for status to be reported"
|
|
595
|
+
# forever, blocking merge (the same trap that stranded Dependabot PRs on the
|
|
596
|
+
# e2e-* checks).
|
|
597
|
+
#
|
|
598
|
+
# This gate always runs (if: always(), so it reports even when upstream jobs
|
|
599
|
+
# are skipped or fail) and collapses them into one pass/fail signal: it FAILS
|
|
600
|
+
# if any smoke job that ran ended in failure or was cancelled, and passes when
|
|
601
|
+
# everything either succeeded or was not applicable. 'skipped' is expected and
|
|
602
|
+
# allowed -- it just means the job didn't apply to this PR.
|
|
603
|
+
#
|
|
604
|
+
# Mark THIS check (dependency-review-gate) required in branch protection. It
|
|
605
|
+
# satisfies Dependabot/fork PRs (which run the Firewall-free job) and
|
|
606
|
+
# maintainer PRs (which run Firewall-enterprise) alike, and -- crucially -- a
|
|
607
|
+
# Socket Firewall BLOCK now fails the gate and blocks merge, instead of living
|
|
608
|
+
# in a non-required enterprise job that nobody is forced to run.
|
|
609
|
+
dependency-review-gate:
|
|
610
|
+
needs:
|
|
611
|
+
- inspect
|
|
612
|
+
- python-sfw-smoke-free
|
|
613
|
+
- python-sfw-smoke-enterprise
|
|
614
|
+
- fixture-npm-sfw-smoke-free
|
|
615
|
+
- fixture-npm-sfw-smoke-enterprise
|
|
616
|
+
- fixture-pypi-sfw-smoke-free
|
|
617
|
+
- fixture-pypi-sfw-smoke-enterprise
|
|
618
|
+
- dockerfile-smoke
|
|
619
|
+
if: always()
|
|
620
|
+
runs-on: ubuntu-latest
|
|
621
|
+
timeout-minutes: 2
|
|
622
|
+
steps:
|
|
623
|
+
- name: Verify no smoke job failed
|
|
624
|
+
env:
|
|
625
|
+
RESULTS: ${{ toJSON(needs) }}
|
|
626
|
+
run: |
|
|
627
|
+
echo "Upstream job results:"
|
|
628
|
+
printf '%s\n' "$RESULTS" | python3 -m json.tool
|
|
629
|
+
|
|
630
|
+
# Fail the gate if any needed job ended in failure or was cancelled.
|
|
631
|
+
# 'success' and 'skipped' both pass: skipped means the job did not
|
|
632
|
+
# apply to this PR (wrong manifest, or free-vs-enterprise mismatch).
|
|
633
|
+
failed="$(printf '%s\n' "$RESULTS" | python3 -c "
|
|
634
|
+
import json, sys
|
|
635
|
+
data = json.load(sys.stdin)
|
|
636
|
+
bad = [name for name, info in data.items()
|
|
637
|
+
if info.get('result') in ('failure', 'cancelled')]
|
|
638
|
+
print(' '.join(sorted(bad)))
|
|
639
|
+
")"
|
|
640
|
+
|
|
641
|
+
if [ -n "$failed" ]; then
|
|
642
|
+
echo "::error::dependency-review smoke job(s) failed: $failed"
|
|
643
|
+
{
|
|
644
|
+
echo "## Dependency Review Gate: FAILED"
|
|
645
|
+
echo "The following smoke job(s) failed or were cancelled: \`$failed\`"
|
|
646
|
+
echo "If a Socket Firewall job is listed, it likely BLOCKED an install --"
|
|
647
|
+
echo "inspect its uploaded sfw-artifacts/ report before merging."
|
|
648
|
+
} >> "$GITHUB_STEP_SUMMARY"
|
|
649
|
+
exit 1
|
|
650
|
+
fi
|
|
651
|
+
|
|
652
|
+
echo "All dependency-review smoke jobs passed or were not applicable."
|
|
653
|
+
echo "## Dependency Review Gate: PASSED" >> "$GITHUB_STEP_SUMMARY"
|
|
@@ -104,3 +104,34 @@ jobs:
|
|
|
104
104
|
env:
|
|
105
105
|
SOCKET_SECURITY_API_KEY: ${{ secrets.SOCKET_CLI_API_TOKEN }}
|
|
106
106
|
run: bash ${{ matrix.validate }}
|
|
107
|
+
|
|
108
|
+
# Branch protection requires the e2e-* checks, but the `e2e` job above is
|
|
109
|
+
# skipped on PRs that can't access repository secrets -- fork PRs and
|
|
110
|
+
# Dependabot PRs. A job skipped via a job-level `if` never expands its
|
|
111
|
+
# matrix, so the e2e-* check contexts are never created and the required
|
|
112
|
+
# checks sit at "Expected -- Waiting for status to be reported" forever,
|
|
113
|
+
# permanently blocking merge.
|
|
114
|
+
#
|
|
115
|
+
# This bypass reports a green status under the SAME e2e-* check names for
|
|
116
|
+
# exactly those PRs, satisfying branch protection without running the real
|
|
117
|
+
# tests (which need SOCKET_CLI_API_TOKEN). Its `if` is the precise negation
|
|
118
|
+
# of the e2e job's run condition, so the two are mutually exclusive: any
|
|
119
|
+
# given PR runs one or the other, never both, and never neither.
|
|
120
|
+
#
|
|
121
|
+
# Dependency-bump risk on these PRs is still covered by dependency-review.yml's
|
|
122
|
+
# Socket Firewall smoke jobs, which run without repository secrets.
|
|
123
|
+
e2e-bypass:
|
|
124
|
+
if: >-
|
|
125
|
+
github.event_name == 'pull_request' &&
|
|
126
|
+
(github.event.pull_request.head.repo.full_name != github.repository ||
|
|
127
|
+
github.event.pull_request.user.login == 'dependabot[bot]')
|
|
128
|
+
runs-on: ubuntu-latest
|
|
129
|
+
strategy:
|
|
130
|
+
matrix:
|
|
131
|
+
name: [scan, sarif, reachability, gitlab, json, pypi]
|
|
132
|
+
name: e2e-${{ matrix.name }}
|
|
133
|
+
steps:
|
|
134
|
+
- name: Report skip status
|
|
135
|
+
run: |
|
|
136
|
+
echo "Skipping e2e-${{ matrix.name }} for a PR without repository secrets"
|
|
137
|
+
echo "(fork or Dependabot). Dependency risk is covered by dependency-review.yml."
|
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.4.6
|
|
4
|
+
|
|
5
|
+
### Docs: reachability reference corrections
|
|
6
|
+
|
|
7
|
+
- Documented the `uv` and Enterprise-plan prerequisites the CLI enforces **before** running
|
|
8
|
+
reachability (exit code 3 if unmet), and clarified that per-ecosystem build toolchains
|
|
9
|
+
(JDK / .NET / Go / a compatible Python interpreter) are checked by the analysis engine at
|
|
10
|
+
runtime, not pre-checked by the CLI.
|
|
11
|
+
- Corrected the `--reach-min-severity` values to `info, low, moderate, high, critical`.
|
|
12
|
+
- Documented the previously-undocumented reachability flags: `--reach-enable-analysis-splitting`,
|
|
13
|
+
`--reach-detailed-analysis-log-file`, `--reach-lazy-mode`, and `--reach-use-only-pregenerated-sboms`.
|
|
14
|
+
- Clarified that `--only-facts-file` submits only the facts file when **creating** the full scan
|
|
15
|
+
(it does not require a pre-existing scan).
|
|
16
|
+
- Documentation-only; no functional code changes.
|
|
17
|
+
|
|
18
|
+
## 2.4.5
|
|
19
|
+
|
|
20
|
+
### Changed: Bump required SDK version to `>=3.2.1`
|
|
21
|
+
|
|
22
|
+
- Picks up `socketdev 3.2.1`.
|
|
23
|
+
- No CLI logic changes.
|
|
24
|
+
|
|
3
25
|
## 2.4.4
|
|
4
26
|
|
|
5
27
|
### Changed: Bump required SDK version to `>=3.2.0`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: socketsecurity
|
|
3
|
-
Version: 2.4.
|
|
3
|
+
Version: 2.4.6
|
|
4
4
|
Summary: Socket Security CLI for CI/CD
|
|
5
5
|
Project-URL: Homepage, https://socket.dev
|
|
6
6
|
Author-email: Douglas Coburn <douglas@socket.dev>
|
|
@@ -43,7 +43,7 @@ Requires-Dist: packaging
|
|
|
43
43
|
Requires-Dist: prettytable
|
|
44
44
|
Requires-Dist: python-dotenv
|
|
45
45
|
Requires-Dist: requests
|
|
46
|
-
Requires-Dist: socketdev<4.0.0,>=3.2.
|
|
46
|
+
Requires-Dist: socketdev<4.0.0,>=3.2.1
|
|
47
47
|
Provides-Extra: dev
|
|
48
48
|
Requires-Dist: hatch; extra == 'dev'
|
|
49
49
|
Requires-Dist: pre-commit; extra == 'dev'
|
|
@@ -154,7 +154,8 @@ socketcli [-h] [--api-token API_TOKEN] [--repo REPO] [--workspace WORKSPACE] [--
|
|
|
154
154
|
[--ignore-commit-files] [--disable-blocking] [--disable-ignore] [--enable-diff] [--scm SCM] [--timeout TIMEOUT] [--include-module-folders]
|
|
155
155
|
[--reach] [--reach-version REACH_VERSION] [--reach-analysis-timeout REACH_ANALYSIS_TIMEOUT]
|
|
156
156
|
[--reach-analysis-memory-limit REACH_ANALYSIS_MEMORY_LIMIT] [--reach-concurrency REACH_CONCURRENCY] [--reach-ecosystems REACH_ECOSYSTEMS]
|
|
157
|
-
[--reach-min-severity
|
|
157
|
+
[--reach-min-severity <level>] [--reach-skip-cache] [--reach-disable-analytics] [--reach-enable-analysis-splitting] [--reach-detailed-analysis-log-file]
|
|
158
|
+
[--reach-lazy-mode] [--reach-use-only-pregenerated-sboms] [--reach-debug] [--reach-disable-external-tool-checks]
|
|
158
159
|
[--reach-output-file REACH_OUTPUT_FILE] [--only-facts-file] [--version]
|
|
159
160
|
````
|
|
160
161
|
|
|
@@ -238,25 +239,35 @@ If you don't want to provide the Socket API Token every time then you can use th
|
|
|
238
239
|
#### Reachability Analysis
|
|
239
240
|
| Parameter | Required | Default | Description |
|
|
240
241
|
|:---------------------------------|:---------|:--------|:---------------------------------------------------------------------------------------------------------------------------|
|
|
241
|
-
| `--reach` | False | False | Enable reachability analysis to identify which vulnerable functions are actually called by your code
|
|
242
|
+
| `--reach` | False | False | Enable reachability analysis to identify which vulnerable functions are actually called by your code. Creates a tier-1 full-application reachability scan (`scan_type=socket_tier1`). |
|
|
242
243
|
| `--reach-version` | False | latest | Version of @coana-tech/cli to use for analysis |
|
|
243
244
|
| `--reach-analysis-timeout` | False | *coana* | Timeout in seconds for the reachability analysis. Omitted by default, so coana applies its own (currently 600s). Alias: `--reach-timeout` |
|
|
244
245
|
| `--reach-analysis-memory-limit` | False | *coana* | Memory limit in MB for the reachability analysis. Omitted by default, so coana applies its own (currently 8192). Alias: `--reach-memory-limit` |
|
|
245
246
|
| `--reach-concurrency` | False | *coana* | Control parallel analysis execution (must be >= 1). Omitted by default, so coana applies its own (currently 1) |
|
|
246
247
|
| `--reach-additional-params` | False | | Pass custom parameters to the coana CLI tool |
|
|
247
248
|
| `--reach-ecosystems` | False | | Comma-separated list of ecosystems to analyze (e.g., "npm,pypi"). If not specified, all supported ecosystems are analyzed |
|
|
248
|
-
| `--reach-min-severity` | False | | Minimum severity level for reporting reachability results (low,
|
|
249
|
+
| `--reach-min-severity` | False | | Minimum severity level for reporting reachability results (info, low, moderate, high, critical) |
|
|
249
250
|
| `--reach-skip-cache` | False | False | Skip cache and force fresh reachability analysis |
|
|
250
251
|
| `--reach-disable-analytics` | False | False | Disable analytics collection during reachability analysis |
|
|
252
|
+
| `--reach-enable-analysis-splitting` | False | False | Enable analysis splitting/bucketing (a legacy performance feature). Splitting is disabled by default. |
|
|
253
|
+
| `--reach-detailed-analysis-log-file` | False | False | Write a detailed analysis log file; its path is printed to stdout |
|
|
254
|
+
| `--reach-lazy-mode` | False | False | Enable lazy mode (experimental performance feature) |
|
|
255
|
+
| `--reach-use-only-pregenerated-sboms` | False | False | Build the scan only from pre-generated CycloneDX (CDX) and SPDX files in your project (requires --reach) |
|
|
251
256
|
| `--reach-debug` | False | False | Enable coana debug output (`--debug`) for the analysis, independent of the global `--enable-debug` |
|
|
252
257
|
| `--reach-disable-external-tool-checks` | False | False | Disable coana's external tool availability checks (passes `--disable-external-tool-checks`) |
|
|
253
258
|
| `--reach-output-file` | False | .socket.facts.json | Path where reachability analysis results should be saved |
|
|
254
259
|
| `--reach-exclude-paths` | False | | **[DEPRECATED — use `--exclude-paths`]** Comma-separated paths to exclude from reachability analysis. Still honored (unioned with `--exclude-paths`) but will be hidden in a future release |
|
|
255
|
-
| `--only-facts-file` | False | False | Submit only the .socket.facts.json file
|
|
260
|
+
| `--only-facts-file` | False | False | Submit only the .socket.facts.json file when creating the full scan (requires --reach) |
|
|
256
261
|
|
|
257
262
|
**Reachability Analysis Requirements:**
|
|
258
|
-
|
|
259
|
-
|
|
263
|
+
|
|
264
|
+
The Python CLI verifies the following **up front** (before invoking the analysis engine) and exits with code **3** if any are unmet:
|
|
265
|
+
- `npm` - Required to install and run `@coana-tech/cli` (the analysis engine)
|
|
266
|
+
- `npx` - Required to execute `@coana-tech/cli`
|
|
267
|
+
- `uv` - Required by the analysis engine
|
|
268
|
+
- An **Enterprise** Socket organization plan (any `enterprise*` plan, including Enterprise trials)
|
|
269
|
+
|
|
270
|
+
Separately, the analysis engine (coana) needs the **per-ecosystem build toolchain** for whatever languages your project uses — e.g. a compatible Python interpreter (3.11+, or PyPy) for Python, a JDK for Java/Kotlin/Scala, .NET 6+ for C#, the matching Go toolchain for Go, etc. These are validated by the engine **at analysis time** (the CLI does not pre-check them) and that validation can be skipped with `--reach-disable-external-tool-checks`.
|
|
260
271
|
|
|
261
272
|
## Config file support
|
|
262
273
|
|
|
@@ -302,7 +313,7 @@ Sample config files:
|
|
|
302
313
|
|
|
303
314
|
For CI-specific examples and guidance, see [`ci-cd.md`](ci-cd.md).
|
|
304
315
|
|
|
305
|
-
The CLI will automatically install `@coana-tech/cli` if not present. Use `--reach` to enable reachability analysis during a full scan, or
|
|
316
|
+
The CLI will automatically install `@coana-tech/cli` if not present. Use `--reach` to enable reachability analysis during a full scan, or add `--only-facts-file` (with `--reach`) to submit only the reachability facts file (`.socket.facts.json`) when creating the full scan.
|
|
306
317
|
|
|
307
318
|
#### Advanced Configuration
|
|
308
319
|
| Parameter | Required | Default | Description |
|
|
@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
name = "socketsecurity"
|
|
9
|
-
version = "2.4.
|
|
9
|
+
version = "2.4.6"
|
|
10
10
|
requires-python = ">= 3.11"
|
|
11
11
|
license = {"file" = "LICENSE"}
|
|
12
12
|
dependencies = [
|
|
@@ -16,7 +16,7 @@ dependencies = [
|
|
|
16
16
|
'GitPython',
|
|
17
17
|
'packaging',
|
|
18
18
|
'python-dotenv',
|
|
19
|
-
"socketdev>=3.2.
|
|
19
|
+
"socketdev>=3.2.1,<4.0.0",
|
|
20
20
|
"bs4>=0.0.2",
|
|
21
21
|
"markdown>=3.10",
|
|
22
22
|
"brotli>=1.0.9; platform_python_implementation == 'CPython'",
|
|
@@ -556,11 +556,11 @@ wheels = [
|
|
|
556
556
|
|
|
557
557
|
[[package]]
|
|
558
558
|
name = "filelock"
|
|
559
|
-
version = "3.
|
|
559
|
+
version = "3.29.1"
|
|
560
560
|
source = { registry = "https://pypi.org/simple" }
|
|
561
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
561
|
+
sdist = { url = "https://files.pythonhosted.org/packages/1f/f9/f38573ed5844586db374d085911740a501ccfa373b455fc9413f09f85237/filelock-3.29.1.tar.gz", hash = "sha256:d97e6b1b9757569626c58caa07dc4beb1613f4a2938b1e8cc81afca398906c9e", size = 59335, upload-time = "2026-06-03T15:19:04.053Z" }
|
|
562
562
|
wheels = [
|
|
563
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
563
|
+
{ url = "https://files.pythonhosted.org/packages/4c/a0/614c5fe402fd88951df45f4dda2fa3b4e17a99ecd92340771929169b3b95/filelock-3.29.1-py3-none-any.whl", hash = "sha256:85199dfd706869641b72b2e8955d5416a4b2b7dc4b0e8e6d97b4cc1299a6983b", size = 40750, upload-time = "2026-06-03T15:19:02.959Z" },
|
|
564
564
|
]
|
|
565
565
|
|
|
566
566
|
[[package]]
|
|
@@ -598,7 +598,7 @@ wheels = [
|
|
|
598
598
|
|
|
599
599
|
[[package]]
|
|
600
600
|
name = "hatch"
|
|
601
|
-
version = "1.16.
|
|
601
|
+
version = "1.16.5"
|
|
602
602
|
source = { registry = "https://pypi.org/simple" }
|
|
603
603
|
dependencies = [
|
|
604
604
|
{ name = "backports-zstd", marker = "python_full_version < '3.14'" },
|
|
@@ -611,6 +611,7 @@ dependencies = [
|
|
|
611
611
|
{ name = "pexpect" },
|
|
612
612
|
{ name = "platformdirs" },
|
|
613
613
|
{ name = "pyproject-hooks" },
|
|
614
|
+
{ name = "python-discovery" },
|
|
614
615
|
{ name = "rich" },
|
|
615
616
|
{ name = "shellingham" },
|
|
616
617
|
{ name = "tomli-w" },
|
|
@@ -619,9 +620,9 @@ dependencies = [
|
|
|
619
620
|
{ name = "uv" },
|
|
620
621
|
{ name = "virtualenv" },
|
|
621
622
|
]
|
|
622
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
623
|
+
sdist = { url = "https://files.pythonhosted.org/packages/d2/02/ce9c4c439fa3f195b21b4b5bb18b44d1076297c86477ef7e3d2de6064ec3/hatch-1.16.5.tar.gz", hash = "sha256:57bdeeaa72577859ce37091a5449583875331c06f9cb6af9077947ad40b3a1de", size = 5220741, upload-time = "2026-02-27T18:45:31.21Z" }
|
|
623
624
|
wheels = [
|
|
624
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
625
|
+
{ url = "https://files.pythonhosted.org/packages/e4/8a/11ae7e271870f0ad8fa0012e4265982bebe0fdc21766b161fb8b8fc3aefc/hatch-1.16.5-py3-none-any.whl", hash = "sha256:d9b8047f2cd10d3349eb6e8f278ad728a04f91495aace305c257d5c2747188fb", size = 141269, upload-time = "2026-02-27T18:45:29.573Z" },
|
|
625
626
|
]
|
|
626
627
|
|
|
627
628
|
[[package]]
|
|
@@ -795,11 +796,11 @@ wheels = [
|
|
|
795
796
|
|
|
796
797
|
[[package]]
|
|
797
798
|
name = "markdown"
|
|
798
|
-
version = "3.10"
|
|
799
|
+
version = "3.10.2"
|
|
799
800
|
source = { registry = "https://pypi.org/simple" }
|
|
800
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
801
|
+
sdist = { url = "https://files.pythonhosted.org/packages/2b/f4/69fa6ed85ae003c2378ffa8f6d2e3234662abd02c10d216c0ba96081a238/markdown-3.10.2.tar.gz", hash = "sha256:994d51325d25ad8aa7ce4ebaec003febcce822c3f8c911e3b17c52f7f589f950", size = 368805, upload-time = "2026-02-09T14:57:26.942Z" }
|
|
801
802
|
wheels = [
|
|
802
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
803
|
+
{ url = "https://files.pythonhosted.org/packages/de/1f/77fa3081e4f66ca3576c896ae5d31c3002ac6607f9747d2e3aa49227e464/markdown-3.10.2-py3-none-any.whl", hash = "sha256:e91464b71ae3ee7afd3017d9f358ef0baf158fd9a298db92f1d4761133824c36", size = 108180, upload-time = "2026-02-09T14:57:25.787Z" },
|
|
803
804
|
]
|
|
804
805
|
|
|
805
806
|
[[package]]
|
|
@@ -885,11 +886,11 @@ wheels = [
|
|
|
885
886
|
|
|
886
887
|
[[package]]
|
|
887
888
|
name = "packaging"
|
|
888
|
-
version = "
|
|
889
|
+
version = "26.2"
|
|
889
890
|
source = { registry = "https://pypi.org/simple" }
|
|
890
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
891
|
+
sdist = { url = "https://files.pythonhosted.org/packages/d7/f1/e7a6dd94a8d4a5626c03e4e99c87f241ba9e350cd9e6d75123f992427270/packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661", size = 228134, upload-time = "2026-04-24T20:15:23.917Z" }
|
|
891
892
|
wheels = [
|
|
892
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
893
|
+
{ url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e", size = 100195, upload-time = "2026-04-24T20:15:22.081Z" },
|
|
893
894
|
]
|
|
894
895
|
|
|
895
896
|
[[package]]
|
|
@@ -933,7 +934,7 @@ wheels = [
|
|
|
933
934
|
|
|
934
935
|
[[package]]
|
|
935
936
|
name = "pre-commit"
|
|
936
|
-
version = "4.
|
|
937
|
+
version = "4.6.0"
|
|
937
938
|
source = { registry = "https://pypi.org/simple" }
|
|
938
939
|
dependencies = [
|
|
939
940
|
{ name = "cfgv" },
|
|
@@ -942,9 +943,9 @@ dependencies = [
|
|
|
942
943
|
{ name = "pyyaml" },
|
|
943
944
|
{ name = "virtualenv" },
|
|
944
945
|
]
|
|
945
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
946
|
+
sdist = { url = "https://files.pythonhosted.org/packages/8e/22/2de9408ac81acbb8a7d05d4cc064a152ccf33b3d480ebe0cd292153db239/pre_commit-4.6.0.tar.gz", hash = "sha256:718d2208cef53fdc38206e40524a6d4d9576d103eb16f0fec11c875e7716e9d9", size = 198525, upload-time = "2026-04-21T20:31:41.613Z" }
|
|
946
947
|
wheels = [
|
|
947
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
948
|
+
{ url = "https://files.pythonhosted.org/packages/80/6e/4b28b62ecb6aae56769c34a8ff1d661473ec1e9519e2d5f8b2c150086b26/pre_commit-4.6.0-py2.py3-none-any.whl", hash = "sha256:e2cf246f7299edcabcf15f9b0571fdce06058527f0a06535068a86d38089f29b", size = 226472, upload-time = "2026-04-21T20:31:40.092Z" },
|
|
948
949
|
]
|
|
949
950
|
|
|
950
951
|
[[package]]
|
|
@@ -1013,29 +1014,29 @@ wheels = [
|
|
|
1013
1014
|
|
|
1014
1015
|
[[package]]
|
|
1015
1016
|
name = "pytest-asyncio"
|
|
1016
|
-
version = "1.
|
|
1017
|
+
version = "1.4.0"
|
|
1017
1018
|
source = { registry = "https://pypi.org/simple" }
|
|
1018
1019
|
dependencies = [
|
|
1019
1020
|
{ name = "pytest" },
|
|
1020
1021
|
{ name = "typing-extensions", marker = "python_full_version < '3.13'" },
|
|
1021
1022
|
]
|
|
1022
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1023
|
+
sdist = { url = "https://files.pythonhosted.org/packages/43/7c/d36d04db312ecf4298932ef77e6e4a9e8ad017906e24e34f0b0c361a2473/pytest_asyncio-1.4.0.tar.gz", hash = "sha256:c6c0d2259945122819f171a32ecea2c349ead889ee28176caaf492143424be42", size = 58514, upload-time = "2026-05-26T09:56:04.083Z" }
|
|
1023
1024
|
wheels = [
|
|
1024
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1025
|
+
{ url = "https://files.pythonhosted.org/packages/03/e2/08a497ef684b88559c9cc5f4ad53a37e7b99e727094a86d6ea32536d5d3c/pytest_asyncio-1.4.0-py3-none-any.whl", hash = "sha256:933ca923a23075a87fb7070c0ec272a6848489824d887c85c812670932835aa1", size = 16930, upload-time = "2026-05-26T09:56:02.576Z" },
|
|
1025
1026
|
]
|
|
1026
1027
|
|
|
1027
1028
|
[[package]]
|
|
1028
1029
|
name = "pytest-cov"
|
|
1029
|
-
version = "7.
|
|
1030
|
+
version = "7.1.0"
|
|
1030
1031
|
source = { registry = "https://pypi.org/simple" }
|
|
1031
1032
|
dependencies = [
|
|
1032
1033
|
{ name = "coverage", extra = ["toml"] },
|
|
1033
1034
|
{ name = "pluggy" },
|
|
1034
1035
|
{ name = "pytest" },
|
|
1035
1036
|
]
|
|
1036
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1037
|
+
sdist = { url = "https://files.pythonhosted.org/packages/b1/51/a849f96e117386044471c8ec2bd6cfebacda285da9525c9106aeb28da671/pytest_cov-7.1.0.tar.gz", hash = "sha256:30674f2b5f6351aa09702a9c8c364f6a01c27aae0c1366ae8016160d1efc56b2", size = 55592, upload-time = "2026-03-21T20:11:16.284Z" }
|
|
1037
1038
|
wheels = [
|
|
1038
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1039
|
+
{ url = "https://files.pythonhosted.org/packages/9d/7a/d968e294073affff457b041c2be9868a40c1c71f4a35fcc1e45e5493067b/pytest_cov-7.1.0-py3-none-any.whl", hash = "sha256:a0461110b7865f9a271aa1b51e516c9a95de9d696734a2f71e3e78f46e1d4678", size = 22876, upload-time = "2026-03-21T20:11:14.438Z" },
|
|
1039
1040
|
]
|
|
1040
1041
|
|
|
1041
1042
|
[[package]]
|
|
@@ -1062,6 +1063,19 @@ dependencies = [
|
|
|
1062
1063
|
]
|
|
1063
1064
|
sdist = { url = "https://files.pythonhosted.org/packages/36/47/ab65fc1d682befc318c439940f81a0de1026048479f732e84fe714cd69c0/pytest-watch-4.2.0.tar.gz", hash = "sha256:06136f03d5b361718b8d0d234042f7b2f203910d8568f63df2f866b547b3d4b9", size = 16340, upload-time = "2018-05-20T19:52:16.194Z" }
|
|
1064
1065
|
|
|
1066
|
+
[[package]]
|
|
1067
|
+
name = "python-discovery"
|
|
1068
|
+
version = "1.4.0"
|
|
1069
|
+
source = { registry = "https://pypi.org/simple" }
|
|
1070
|
+
dependencies = [
|
|
1071
|
+
{ name = "filelock" },
|
|
1072
|
+
{ name = "platformdirs" },
|
|
1073
|
+
]
|
|
1074
|
+
sdist = { url = "https://files.pythonhosted.org/packages/a6/12/38c1a0b1e64806780c9563e3fc9f6e472251839662587cfbe9bfaf2ae10a/python_discovery-1.4.0.tar.gz", hash = "sha256:eb8bc7daad3c226c147e45bb4e970a1feb1bf4048ee178e6db59e197b8010ce3", size = 68455, upload-time = "2026-05-28T01:15:37.639Z" }
|
|
1075
|
+
wheels = [
|
|
1076
|
+
{ url = "https://files.pythonhosted.org/packages/c8/8d/3d316429f65029532bb1e28ff77b797d86b5ac3915bb44ca4e19aa283d43/python_discovery-1.4.0-py3-none-any.whl", hash = "sha256:26ed78d703e234879a66244c7d4114563fb13ec5cd30a2d1357e5fb4850782da", size = 33217, upload-time = "2026-05-28T01:15:36.573Z" },
|
|
1077
|
+
]
|
|
1078
|
+
|
|
1065
1079
|
[[package]]
|
|
1066
1080
|
name = "python-dotenv"
|
|
1067
1081
|
version = "1.2.2"
|
|
@@ -1151,7 +1165,7 @@ wheels = [
|
|
|
1151
1165
|
|
|
1152
1166
|
[[package]]
|
|
1153
1167
|
name = "requests"
|
|
1154
|
-
version = "2.
|
|
1168
|
+
version = "2.34.2"
|
|
1155
1169
|
source = { registry = "https://pypi.org/simple" }
|
|
1156
1170
|
dependencies = [
|
|
1157
1171
|
{ name = "certifi" },
|
|
@@ -1159,9 +1173,9 @@ dependencies = [
|
|
|
1159
1173
|
{ name = "idna" },
|
|
1160
1174
|
{ name = "urllib3" },
|
|
1161
1175
|
]
|
|
1162
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1176
|
+
sdist = { url = "https://files.pythonhosted.org/packages/ac/c3/e2a2b89f2d3e2179abd6d00ebd70bff6273f37fb3e0cc209f48b39d00cbf/requests-2.34.2.tar.gz", hash = "sha256:f288924cae4e29463698d6d60bc6a4da69c89185ad1e0bcc4104f584e960b9ed", size = 142856, upload-time = "2026-05-14T19:25:27.735Z" }
|
|
1163
1177
|
wheels = [
|
|
1164
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1178
|
+
{ url = "https://files.pythonhosted.org/packages/a0/f4/c67b0b3f1b9245e8d266f0f112c500d50e5b4e83cb6f3b71b6528104182a/requests-2.34.2-py3-none-any.whl", hash = "sha256:2a0d60c172f83ac6ab31e4554906c0f3b3588d37b5cb939b1c061f4907e278e0", size = 73075, upload-time = "2026-05-14T19:25:26.443Z" },
|
|
1165
1179
|
]
|
|
1166
1180
|
|
|
1167
1181
|
[[package]]
|
|
@@ -1200,28 +1214,27 @@ wheels = [
|
|
|
1200
1214
|
|
|
1201
1215
|
[[package]]
|
|
1202
1216
|
name = "ruff"
|
|
1203
|
-
version = "0.14
|
|
1204
|
-
source = { registry = "https://pypi.org/simple" }
|
|
1205
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1206
|
-
wheels = [
|
|
1207
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1208
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1209
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1210
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1211
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1212
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1213
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1214
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1215
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1216
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1217
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1218
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1219
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1220
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1221
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1222
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1223
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1224
|
-
{ url = "https://files.pythonhosted.org/packages/74/31/b0e29d572670dca3674eeee78e418f20bdf97fa8aa9ea71380885e175ca0/ruff-0.14.10-py3-none-win_arm64.whl", hash = "sha256:e51d046cf6dda98a4633b8a8a771451107413b0f07183b2bef03f075599e44e6", size = 13729839, upload-time = "2025-12-18T19:28:48.636Z" },
|
|
1217
|
+
version = "0.15.14"
|
|
1218
|
+
source = { registry = "https://pypi.org/simple" }
|
|
1219
|
+
sdist = { url = "https://files.pythonhosted.org/packages/dc/8a/8bce2894573e9dae6ff4d77fe34ad727d79b9e6238ad288c5638990d90f6/ruff-0.15.14.tar.gz", hash = "sha256:48e866b165be4a9bdbf310f7d3c9a07edef2fe8cd63ffeb4e00bb590506ebf9f", size = 4700910, upload-time = "2026-05-21T14:34:55.177Z" }
|
|
1220
|
+
wheels = [
|
|
1221
|
+
{ url = "https://files.pythonhosted.org/packages/b9/c8/74a92c6ff9fcfb4f1f947126d3ebee8389276e161ecc85de5bda7cda51bd/ruff-0.15.14-py3-none-linux_armv6l.whl", hash = "sha256:8dd2db9416e487c8d4b01fa7056bb02c4d05969d4f8d17a08c229c2f4ff3c108", size = 10739177, upload-time = "2026-05-21T14:34:37.332Z" },
|
|
1222
|
+
{ url = "https://files.pythonhosted.org/packages/45/91/254a35c20acc38a7223c9d2d594af12e794432464f2cdeb52af1dc4a892d/ruff-0.15.14-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:be4ff55af755bd71a00ab3dc6bd7ffc467bd76e0df6881e286c2e3d23e8fb43b", size = 11144969, upload-time = "2026-05-21T14:34:43.978Z" },
|
|
1223
|
+
{ url = "https://files.pythonhosted.org/packages/56/9e/d13e40f83b8d0a94430e6778ce1d94a43b38cf2efe63278bdd2b4c65abbf/ruff-0.15.14-py3-none-macosx_11_0_arm64.whl", hash = "sha256:48d5909d7d06276ce7dde6d32bfa4b0d4cb2651145cd8ee4b440722cbc77832f", size = 10478207, upload-time = "2026-05-21T14:34:48.378Z" },
|
|
1224
|
+
{ url = "https://files.pythonhosted.org/packages/8d/f1/b15a7839fa4f332f8acec78e20564f26bb2d866e3d21710b877fd0263000/ruff-0.15.14-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca8cbfa94c4f90984a67561978602746d4cd27103568f745fa90eee3f0d4107d", size = 10818459, upload-time = "2026-05-21T14:34:22.318Z" },
|
|
1225
|
+
{ url = "https://files.pythonhosted.org/packages/45/33/53d651177f84f94b400a0e27f8824eeada3dddc9d5ee8aeb048f4352a520/ruff-0.15.14-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9a6bbc0333f1ab053423bcbf6226477d266ca7cec7738c4c8e3f55647803f3c4", size = 10541800, upload-time = "2026-05-21T14:34:20.209Z" },
|
|
1226
|
+
{ url = "https://files.pythonhosted.org/packages/b8/a6/868f87e0bf9786ed24b5d0d0ad8676b8a94fd1912f42cddf9cfc7857818a/ruff-0.15.14-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8a24a4f7605d7003a6674d4387651effd939dead3fddd0f36561eb77a9a2e542", size = 11342149, upload-time = "2026-05-21T14:34:46.365Z" },
|
|
1227
|
+
{ url = "https://files.pythonhosted.org/packages/a7/8b/38cd5c19faffdcc05a408d2b78edccc69492ab9720eadb49ea15ef80d768/ruff-0.15.14-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:049b5326e53ed80978f2fc041a280603f69dd6b0c95464342a2bb4572d9d9e2f", size = 12212563, upload-time = "2026-05-21T14:34:28.579Z" },
|
|
1228
|
+
{ url = "https://files.pythonhosted.org/packages/3e/4d/a3c5b874a556d5731e3e657aaf04311bb76f0a5c3ec220ed43051be6b64b/ruff-0.15.14-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d4ed42e6696c8dfa5f06728e6441993901f548eb92d73bc472cb5a38d1395fbf", size = 11493299, upload-time = "2026-05-21T14:34:41.836Z" },
|
|
1229
|
+
{ url = "https://files.pythonhosted.org/packages/1e/c0/56472c251d09858a53e51efbd485b09e1995d8731668b76d52e5dd6ee0f1/ruff-0.15.14-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:715c543cf450c4888251f91c52f1942a800541d9bddd7ac060aa4e6b77ae7cba", size = 11455931, upload-time = "2026-05-21T14:34:57.276Z" },
|
|
1230
|
+
{ url = "https://files.pythonhosted.org/packages/2c/4a/e2e7b4d8dbf233d4eace59c75bc3435fa6d8bd3bae82d351d4e4300c0fd1/ruff-0.15.14-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:72ebab6013ec887d439d8b7593737a0a4ffb06d45d209d4e4bf2e92813082d3f", size = 11400794, upload-time = "2026-05-21T14:34:39.773Z" },
|
|
1231
|
+
{ url = "https://files.pythonhosted.org/packages/97/c7/83c0539fe34c3e09136204d1e75d6052492364e0b3cb05e9465423f567d7/ruff-0.15.14-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:49072d36abdbe97a8dd7f480afe9c675699c0c495d4c84076e2c1203c4550581", size = 10804759, upload-time = "2026-05-21T14:34:31.045Z" },
|
|
1232
|
+
{ url = "https://files.pythonhosted.org/packages/86/a6/18f2bfc095a2ab4a78745644e428205532ce6653a5d0fa8501572891534d/ruff-0.15.14-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:958522aee105068640c2c2ceae08f413ae44d922f52a1374ac13d6a96032fc93", size = 10539517, upload-time = "2026-05-21T14:34:53.064Z" },
|
|
1233
|
+
{ url = "https://files.pythonhosted.org/packages/54/3a/5a8b3b69c654d4e4bf1d246ac5b49cbcdac6eaab6905925f8915f31e3b80/ruff-0.15.14-py3-none-musllinux_1_2_i686.whl", hash = "sha256:f3707da619a143a2e8830e2abab8224478d69ace2d28cb6c20543ae97c36bf61", size = 11065169, upload-time = "2026-05-21T14:34:24.484Z" },
|
|
1234
|
+
{ url = "https://files.pythonhosted.org/packages/ed/c5/8864e4e7925b836ea354b31d57641ec03830564e281a8b6f061f8c3e0ec1/ruff-0.15.14-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:bb01d645694e3ec0102105d07ef2d53703970407d59c04e59d3ba0b7a1d53553", size = 11560214, upload-time = "2026-05-21T14:34:50.975Z" },
|
|
1235
|
+
{ url = "https://files.pythonhosted.org/packages/36/38/012bf76752e1f89ed50b77b99532d90f3a3e287bc7918e1fc0948ac866ac/ruff-0.15.14-py3-none-win32.whl", hash = "sha256:6d0c1ad2a0ab718d39b6d8fd2217981ce4d625cd96a720095f798fb47d8b13e6", size = 10805548, upload-time = "2026-05-21T14:34:33.453Z" },
|
|
1236
|
+
{ url = "https://files.pythonhosted.org/packages/d1/b7/4ea2c170f10ad760fff2a5250beb18897719dc8b52b53a24cddbb9dd3f19/ruff-0.15.14-py3-none-win_amd64.whl", hash = "sha256:802342981e056db3851a7836e5b070f8f15f67d4a685ae2a6160939d364b2902", size = 11939523, upload-time = "2026-05-21T14:34:18.077Z" },
|
|
1237
|
+
{ url = "https://files.pythonhosted.org/packages/62/d5/bc97ff895ec35cf3925d4bd60f3b39d822f377a446906ec9bcc87405e59b/ruff-0.15.14-py3-none-win_arm64.whl", hash = "sha256:ff47b90a9ef6a40c9e2f3b479c1fb78531adf055b94c1eba0a7ba04b31951826", size = 11208607, upload-time = "2026-05-21T14:34:26.525Z" },
|
|
1225
1238
|
]
|
|
1226
1239
|
|
|
1227
1240
|
[[package]]
|
|
@@ -1257,20 +1270,20 @@ wheels = [
|
|
|
1257
1270
|
|
|
1258
1271
|
[[package]]
|
|
1259
1272
|
name = "socketdev"
|
|
1260
|
-
version = "3.2.
|
|
1273
|
+
version = "3.2.1"
|
|
1261
1274
|
source = { registry = "https://pypi.org/simple" }
|
|
1262
1275
|
dependencies = [
|
|
1263
1276
|
{ name = "requests" },
|
|
1264
1277
|
{ name = "typing-extensions" },
|
|
1265
1278
|
]
|
|
1266
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1279
|
+
sdist = { url = "https://files.pythonhosted.org/packages/21/65/07df2bf6e490c56544fb06e4cfde059b2572fdd5b02ff352c766b1d5f7ce/socketdev-3.2.1.tar.gz", hash = "sha256:7db910a98628473e8ec06822deb01b6bd465b385e9e8ea405f2b7526e8258074", size = 179279, upload-time = "2026-06-03T18:08:19.806Z" }
|
|
1267
1280
|
wheels = [
|
|
1268
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1281
|
+
{ url = "https://files.pythonhosted.org/packages/53/01/fff70923755b3a187ca971189fb078a2aaedcad42d682abfdd06f3445def/socketdev-3.2.1-py3-none-any.whl", hash = "sha256:6dc762d78baea8011dc22f2afe49c84c926e640a6879bd7b58c3abdd4e29e8bb", size = 67266, upload-time = "2026-06-03T18:08:18.029Z" },
|
|
1269
1282
|
]
|
|
1270
1283
|
|
|
1271
1284
|
[[package]]
|
|
1272
1285
|
name = "socketsecurity"
|
|
1273
|
-
version = "2.4.
|
|
1286
|
+
version = "2.4.6"
|
|
1274
1287
|
source = { editable = "." }
|
|
1275
1288
|
dependencies = [
|
|
1276
1289
|
{ name = "brotli", marker = "platform_python_implementation == 'CPython'" },
|
|
@@ -1327,7 +1340,7 @@ requires-dist = [
|
|
|
1327
1340
|
{ name = "python-dotenv" },
|
|
1328
1341
|
{ name = "requests" },
|
|
1329
1342
|
{ name = "ruff", marker = "extra == 'dev'", specifier = ">=0.3.0" },
|
|
1330
|
-
{ name = "socketdev", specifier = ">=3.2.
|
|
1343
|
+
{ name = "socketdev", specifier = ">=3.2.1,<4.0.0" },
|
|
1331
1344
|
{ name = "twine", marker = "extra == 'dev'" },
|
|
1332
1345
|
{ name = "uv", marker = "extra == 'dev'", specifier = ">=0.1.0" },
|
|
1333
1346
|
]
|
|
@@ -1499,16 +1512,17 @@ wheels = [
|
|
|
1499
1512
|
|
|
1500
1513
|
[[package]]
|
|
1501
1514
|
name = "virtualenv"
|
|
1502
|
-
version = "
|
|
1515
|
+
version = "21.4.2"
|
|
1503
1516
|
source = { registry = "https://pypi.org/simple" }
|
|
1504
1517
|
dependencies = [
|
|
1505
1518
|
{ name = "distlib" },
|
|
1506
1519
|
{ name = "filelock" },
|
|
1507
1520
|
{ name = "platformdirs" },
|
|
1521
|
+
{ name = "python-discovery" },
|
|
1508
1522
|
]
|
|
1509
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
1523
|
+
sdist = { url = "https://files.pythonhosted.org/packages/e1/0d/4e93c8e6d1001a75763f87d8f5ecda8ebc7f4aa2153dddfaf4ae8892821a/virtualenv-21.4.2.tar.gz", hash = "sha256:38e6ee0a555615c0ea9da2ac7e9998fe8dc3b911dd33ad8eaad2020957653b0c", size = 7613326, upload-time = "2026-05-31T17:01:22.827Z" }
|
|
1510
1524
|
wheels = [
|
|
1511
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
1525
|
+
{ url = "https://files.pythonhosted.org/packages/bf/c4/557dc082be035381b85fdb2b74e21d3d21b57750b74f2b47a32f3a639ff9/virtualenv-21.4.2-py3-none-any.whl", hash = "sha256:854210ca524a1a4d0d744734f4acbc721c3ffe163b85bbf5d56d14d5ae2f0fae", size = 7594079, upload-time = "2026-05-31T17:01:20.735Z" },
|
|
1512
1526
|
]
|
|
1513
1527
|
|
|
1514
1528
|
[[package]]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{socketsecurity-2.4.4 → socketsecurity-2.4.6}/socketsecurity/core/helper/socket_facts_loader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/data/fullscans/diff/stream_diff_full.json
RENAMED
|
File without changes
|
|
File without changes
|
{socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/data/fullscans/head_scan/stream_scan.json
RENAMED
|
File without changes
|
{socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/data/fullscans/head_scan/stream_scan_full.json
RENAMED
|
File without changes
|
|
File without changes
|
{socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/data/fullscans/new_scan/stream_scan.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/e2e/fixtures/simple-pypi/requirements.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/fixtures/fossa/fossa-analyze-populated.json
RENAMED
|
File without changes
|
{socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/fixtures/fossa/fossa-sbom-empty-deep.json
RENAMED
|
File without changes
|
{socketsecurity-2.4.4 → socketsecurity-2.4.6}/tests/fixtures/fossa/fossa-sbom-populated.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|