socketsecurity 2.2.91__tar.gz → 2.2.92__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.2.91 → socketsecurity-2.2.92}/PKG-INFO +1 -1
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/pyproject.toml +1 -1
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/__init__.py +1 -1
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/core/__init__.py +32 -3
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/core/test_package_and_alerts.py +76 -1
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/uv.lock +1 -1
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/.github/CODEOWNERS +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/.github/PULL_REQUEST_TEMPLATE/bug-fix.md +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/.github/PULL_REQUEST_TEMPLATE/feature.md +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/.github/PULL_REQUEST_TEMPLATE/improvement.md +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/.github/workflows/docker-stable.yml +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/.github/workflows/e2e-test.yml +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/.github/workflows/pr-preview.yml +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/.github/workflows/python-tests.yml +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/.github/workflows/release.yml +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/.github/workflows/version-check.yml +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/.github/zizmor.yml +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/.gitignore +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/.hooks/sync_version.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/.pre-commit-config.yaml +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/.python-version +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/CHANGELOG.md +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/Dockerfile +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/LICENSE +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/Makefile +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/README.md +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/docs/ci-cd.md +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/docs/cli-reference.md +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/docs/development.md +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/docs/troubleshooting.md +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/examples/config/sarif-dashboard-parity.json +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/examples/config/sarif-dashboard-parity.toml +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/examples/config/sarif-diff-ci-cd.json +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/examples/config/sarif-diff-ci-cd.toml +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/examples/config/sarif-instance-detail.json +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/examples/config/sarif-instance-detail.toml +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/instructions/gitlab-commit-status/uat.md +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/pytest.ini +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/scripts/build_container.sh +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/scripts/build_container_flexible.sh +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/scripts/deploy-test-docker.sh +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/scripts/deploy-test-pypi.sh +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/scripts/docker-entrypoint.sh +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/scripts/run.sh +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/session.md +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socket.yml +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/config.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/core/alert_selection.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/core/classes.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/core/cli_client.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/core/exceptions.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/core/git_interface.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/core/helper/__init__.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/core/helper/socket_facts_loader.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/core/lazy_file_loader.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/core/logging.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/core/messages.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/core/resource_utils.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/core/scm/__init__.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/core/scm/base.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/core/scm/client.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/core/scm/github.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/core/scm/gitlab.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/core/scm_comments.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/core/socket_config.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/core/tools/reachability.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/core/utils.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/fossa_compat.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/output.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/plugins/__init__.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/plugins/base.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/plugins/formatters/__init__.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/plugins/formatters/slack.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/plugins/jira.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/plugins/manager.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/plugins/slack.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/plugins/teams.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/plugins/webhook.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/socketcli.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/__init__.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/core/conftest.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/core/create_diff_input.json +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/core/test_diff_alerts.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/core/test_diff_generation.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/core/test_has_manifest_files.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/core/test_sdk_methods.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/core/test_supporting_methods.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/data/fullscans/create_response.json +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/data/fullscans/diff/stream_diff.json +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/data/fullscans/diff/stream_diff_full.json +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/data/fullscans/head_scan/metadata.json +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/data/fullscans/head_scan/stream_scan.json +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/data/fullscans/head_scan/stream_scan_full.json +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/data/fullscans/new_scan/metadata.json +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/data/fullscans/new_scan/stream_scan.json +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/data/repos/repo_info_error.json +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/data/repos/repo_info_no_head.json +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/data/repos/repo_info_success.json +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/data/settings/security-policy.json +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/e2e/fixtures/simple-npm/index.js +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/e2e/fixtures/simple-npm/package.json +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/e2e/fixtures/simple-pypi/requirements.txt +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/e2e/validate-gitlab.sh +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/e2e/validate-json.sh +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/e2e/validate-reachability.sh +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/e2e/validate-sarif.sh +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/e2e/validate-scan.sh +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/fixtures/fossa/README.md +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/fixtures/fossa/fossa-analyze-empty.json +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/fixtures/fossa/fossa-analyze-populated.json +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/fixtures/fossa/fossa-sbom-empty-deep.json +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/fixtures/fossa/fossa-sbom-populated.json +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/unit/__init__.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/unit/test_alert_selection.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/unit/test_cli_config.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/unit/test_client.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/unit/test_config.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/unit/test_dependency_overview.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/unit/test_disable_ignore.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/unit/test_fossa_compat.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/unit/test_fossa_parity.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/unit/test_gitlab_auth.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/unit/test_gitlab_auth_fallback.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/unit/test_gitlab_commit_status.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/unit/test_gitlab_format.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/unit/test_ignore_telemetry_filtering.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/unit/test_output.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/unit/test_slack_plugin.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/unit/test_socketcli.py +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/workflows/bitbucket-pipelines.yml +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/workflows/buildkite.yml +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/workflows/github-actions.yml +0 -0
- {socketsecurity-2.2.91 → socketsecurity-2.2.92}/workflows/gitlab-ci.yml +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
import os
|
|
3
|
+
import re
|
|
3
4
|
import sys
|
|
4
5
|
import tarfile
|
|
5
6
|
import tempfile
|
|
@@ -44,6 +45,26 @@ __all__ = [
|
|
|
44
45
|
version = __version__
|
|
45
46
|
log = logging.getLogger("socketdev")
|
|
46
47
|
|
|
48
|
+
_ALERT_TYPE_TITLE_OVERRIDES = {
|
|
49
|
+
"gptDidYouMean": "Possible typosquat attack (GPT)",
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
_HUMANIZE_BOUNDARY = re.compile(r"(?<=[a-z0-9])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])")
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def _humanize_alert_type(alert_type: str) -> str:
|
|
56
|
+
"""Convert a camelCase/PascalCase alert type into a Title-Cased label.
|
|
57
|
+
|
|
58
|
+
Used as a last-resort fallback when the SDK does not have metadata for an
|
|
59
|
+
alert type and there is no explicit override. Adjacent capitals are kept
|
|
60
|
+
together so acronyms like 'SQL' survive ('SQLInjection' -> 'SQL Injection').
|
|
61
|
+
"""
|
|
62
|
+
if not alert_type:
|
|
63
|
+
return ""
|
|
64
|
+
parts = _HUMANIZE_BOUNDARY.split(alert_type)
|
|
65
|
+
return " ".join(part[:1].upper() + part[1:] for part in parts if part)
|
|
66
|
+
|
|
67
|
+
|
|
47
68
|
class Core:
|
|
48
69
|
"""Main class for interacting with Socket Security API and processing scan results."""
|
|
49
70
|
|
|
@@ -1402,11 +1423,19 @@ class Core:
|
|
|
1402
1423
|
alert = Alert(**alert_item)
|
|
1403
1424
|
props = getattr(self.config.all_issues, alert.type, default_props)
|
|
1404
1425
|
introduced_by = self.get_source_data(package, packages)
|
|
1405
|
-
|
|
1406
|
-
#
|
|
1426
|
+
|
|
1427
|
+
# Title resolution order:
|
|
1428
|
+
# 1. SDK-provided title (props.title) if non-empty
|
|
1429
|
+
# 2. Explicit override for known-but-unmapped alert types (e.g. gptDidYouMean)
|
|
1430
|
+
# 3. Hard-coded special cases (e.g. licenseSpdxDisj)
|
|
1431
|
+
# 4. Humanized alert.type as last-resort fallback
|
|
1407
1432
|
title = props.title
|
|
1408
|
-
if
|
|
1433
|
+
if not title:
|
|
1434
|
+
title = _ALERT_TYPE_TITLE_OVERRIDES.get(alert.type, "")
|
|
1435
|
+
if not title and alert.type == "licenseSpdxDisj":
|
|
1409
1436
|
title = "License Policy Violation"
|
|
1437
|
+
if not title:
|
|
1438
|
+
title = _humanize_alert_type(alert.type)
|
|
1410
1439
|
|
|
1411
1440
|
issue_alert = Issue(
|
|
1412
1441
|
pkg_type=package.type,
|
|
@@ -4,7 +4,7 @@ from unittest.mock import Mock
|
|
|
4
4
|
import pytest
|
|
5
5
|
from socketdev import socketdev
|
|
6
6
|
|
|
7
|
-
from socketsecurity.core import Core
|
|
7
|
+
from socketsecurity.core import Core, _humanize_alert_type
|
|
8
8
|
from socketsecurity.core.classes import Issue, Package
|
|
9
9
|
from socketsecurity.core.socket_config import SocketConfig
|
|
10
10
|
|
|
@@ -166,6 +166,62 @@ class TestPackageAndAlerts:
|
|
|
166
166
|
assert alert.type == "networkAccess"
|
|
167
167
|
assert alert.severity == "high"
|
|
168
168
|
|
|
169
|
+
def test_gpt_did_you_mean_gets_typosquat_title(self, core):
|
|
170
|
+
"""gptDidYouMean alerts must render a non-empty title (CUS2-2)."""
|
|
171
|
+
package = self.make_package(
|
|
172
|
+
alerts=[{
|
|
173
|
+
"type": "gptDidYouMean",
|
|
174
|
+
"key": "gpt-did-you-mean-alert",
|
|
175
|
+
"severity": "middle",
|
|
176
|
+
}],
|
|
177
|
+
topLevelAncestors=[],
|
|
178
|
+
)
|
|
179
|
+
|
|
180
|
+
result = core.add_package_alerts_to_collection(
|
|
181
|
+
package, alerts_collection={}, packages={package.id: package}
|
|
182
|
+
)
|
|
183
|
+
|
|
184
|
+
alert = result["gpt-did-you-mean-alert"][0]
|
|
185
|
+
assert alert.type == "gptDidYouMean"
|
|
186
|
+
assert alert.title, "title should not be empty for gptDidYouMean"
|
|
187
|
+
assert "typosquat" in alert.title.lower()
|
|
188
|
+
|
|
189
|
+
def test_unknown_alert_type_falls_back_to_humanized_title(self, core):
|
|
190
|
+
"""Any alert type not present in the SDK should still render a non-empty title."""
|
|
191
|
+
package = self.make_package(
|
|
192
|
+
alerts=[{
|
|
193
|
+
"type": "someBrandNewAlertType",
|
|
194
|
+
"key": "future-alert",
|
|
195
|
+
"severity": "low",
|
|
196
|
+
}],
|
|
197
|
+
topLevelAncestors=[],
|
|
198
|
+
)
|
|
199
|
+
|
|
200
|
+
result = core.add_package_alerts_to_collection(
|
|
201
|
+
package, alerts_collection={}, packages={package.id: package}
|
|
202
|
+
)
|
|
203
|
+
|
|
204
|
+
alert = result["future-alert"][0]
|
|
205
|
+
assert alert.title == "Some Brand New Alert Type"
|
|
206
|
+
|
|
207
|
+
def test_license_spdx_disj_keeps_explicit_title(self, core):
|
|
208
|
+
"""licenseSpdxDisj must keep its hard-coded fallback (regression guard for CUS2-2 fix)."""
|
|
209
|
+
package = self.make_package(
|
|
210
|
+
alerts=[{
|
|
211
|
+
"type": "licenseSpdxDisj",
|
|
212
|
+
"key": "license-alert",
|
|
213
|
+
"severity": "high",
|
|
214
|
+
}],
|
|
215
|
+
topLevelAncestors=[],
|
|
216
|
+
)
|
|
217
|
+
|
|
218
|
+
result = core.add_package_alerts_to_collection(
|
|
219
|
+
package, alerts_collection={}, packages={package.id: package}
|
|
220
|
+
)
|
|
221
|
+
|
|
222
|
+
alert = result["license-alert"][0]
|
|
223
|
+
assert alert.title == "License Policy Violation"
|
|
224
|
+
|
|
169
225
|
|
|
170
226
|
|
|
171
227
|
def test_get_capabilities_for_added_packages(self, core):
|
|
@@ -266,3 +322,22 @@ class TestPackageAndAlerts:
|
|
|
266
322
|
)
|
|
267
323
|
assert result["npm/lodash@4.18.1"].licenseAttrib == [{"name": "MIT"}]
|
|
268
324
|
assert result["npm/lodash@4.18.1"].licenseDetails == [{"license": "MIT"}]
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
class TestHumanizeAlertType:
|
|
328
|
+
def test_humanizes_camel_case(self):
|
|
329
|
+
assert _humanize_alert_type("gptDidYouMean") == "Gpt Did You Mean"
|
|
330
|
+
|
|
331
|
+
def test_humanizes_single_word(self):
|
|
332
|
+
assert _humanize_alert_type("malware") == "Malware"
|
|
333
|
+
|
|
334
|
+
def test_humanizes_pascal_case(self):
|
|
335
|
+
assert _humanize_alert_type("UnsafeShellAccess") == "Unsafe Shell Access"
|
|
336
|
+
|
|
337
|
+
def test_empty_input_returns_empty_string(self):
|
|
338
|
+
assert _humanize_alert_type("") == ""
|
|
339
|
+
|
|
340
|
+
def test_handles_acronyms_conservatively(self):
|
|
341
|
+
"""Adjacent capitals are kept together: SQLInjection -> 'SQL Injection'."""
|
|
342
|
+
assert _humanize_alert_type("SQLInjection") == "SQL Injection"
|
|
343
|
+
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{socketsecurity-2.2.91 → socketsecurity-2.2.92}/.github/PULL_REQUEST_TEMPLATE/improvement.md
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{socketsecurity-2.2.91 → socketsecurity-2.2.92}/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
|
{socketsecurity-2.2.91 → socketsecurity-2.2.92}/socketsecurity/plugins/formatters/__init__.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
|
{socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/data/fullscans/diff/stream_diff_full.json
RENAMED
|
File without changes
|
{socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/data/fullscans/head_scan/metadata.json
RENAMED
|
File without changes
|
{socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/data/fullscans/head_scan/stream_scan.json
RENAMED
|
File without changes
|
{socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/data/fullscans/head_scan/stream_scan_full.json
RENAMED
|
File without changes
|
|
File without changes
|
{socketsecurity-2.2.91 → socketsecurity-2.2.92}/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.2.91 → socketsecurity-2.2.92}/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
|
{socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/fixtures/fossa/fossa-analyze-empty.json
RENAMED
|
File without changes
|
{socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/fixtures/fossa/fossa-analyze-populated.json
RENAMED
|
File without changes
|
{socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/fixtures/fossa/fossa-sbom-empty-deep.json
RENAMED
|
File without changes
|
{socketsecurity-2.2.91 → socketsecurity-2.2.92}/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
|
{socketsecurity-2.2.91 → socketsecurity-2.2.92}/tests/unit/test_ignore_telemetry_filtering.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
|