Cockpit is a web-based graphical interface for servers.
This report summarizes scanner evidence for cockpit-project/cockpit, a JavaScript project with 15,201 GitHub stars. SynthScan examined 174,366 lines of code across 878 source files, recording 445 pattern matches distributed across 17 syntactic categories. The legacy adjusted pattern signal is 4.4 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 276 finding(s).
Are imports declared and package/API names verified? 65 finding(s).
Are wrappers, guards, and repeated structures necessary? 210 finding(s).
Which changes need focused human review? 445 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 445 distinct pattern matches across 17 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | test/pytest/test_packages.py | 73 | (confdir / 'basic.override.json').write_text('{"description": null, "priority": 5, "does-not-exist": null}') | CODE |
| HIGH⚡ | test/common/storagelib.py | 115 | ls -la /sys/block/{os.path.basename(dev)}/holders/ >&2 || true | CODE |
| HIGH⚡ | test/common/storagelib.py | 116 | fuser -v {dev} >&2 || true | CODE |
| HIGH⚡ | test/common/storagelib.py | 605 | ! test -f /etc/kernel/cmdline || mv /etc/kernel/cmdline /etc/kernel/cmdline.stowed | CODE |
| HIGH⚡ | test/common/storagelib.py | 608 | ! test -f /etc/kernel/cmdline.stowed || mv /etc/kernel/cmdline.stowed /etc/kernel/cmdline | CODE |
| HIGH⚡ | test/common/storagelib.py | 611 | ! test -f /etc/kernel/cmdline || cp /etc/kernel/cmdline /new-root/etc/kernel/cmdline | CODE |
| HIGH | test/common/storagelib.py | 55 | dev = self.machine.execute('while true; do O=$(ls /sys/bus/pseudo/drivers/scsi_debug/adapter*/host*/target*/*:*/ | CODE |
| HIGH | test/common/storagelib.py | 56 | '[ -n "$O" ] && break || sleep 0.1; done; echo "/dev/$O"').strip() | CODE |
| HIGH | test/common/storagelib.py | 103 | systemctl stop udisks2 || true | CODE |
| HIGH | test/common/storagelib.py | 235 | result.push(lis[i].textContent); | CODE |
| HIGH | test/common/storagelib.py | 719 | ver = self.machine.execute("busctl --system get-property org.freedesktop.UDisks2 /org/freedesktop/UDisks2/Manage | STRING |
| HIGH | test/common/storagelib.py | 728 | crypto_types = self.machine.execute("busctl --system get-property org.freedesktop.UDisks2 /org/freedesktop/UDisk | STRING |
| HIGH⚡ | test/common/testlib.py | 1957 | " umount $d || true; dmsetup remove --force $d || true; " | CODE |
| HIGH⚡ | test/common/testlib.py | 1960 | " umount /dev/$dev || true; " | CODE |
| HIGH⚡ | test/common/testlib.py | 1970 | loginctl terminate-user $u 2>/dev/null || true | CODE |
| HIGH⚡ | test/common/testlib.py | 1971 | loginctl kill-user $u 2>/dev/null || true | CODE |
| HIGH⚡ | test/common/testlib.py | 1972 | pkill -9 -u $u || true | CODE |
| HIGH | test/common/testlib.py | 276 | sizzle_js = sizzle_js.replace('context = context || document;', 'context = context || window.document;') | CODE |
| HIGH | test/common/testlib.py | 1946 | m.execute("systemctl try-restart sssd || true") | CODE |
| HIGH | test/common/testlib.py | 2466 | cmd = f"umount {path} || {{ fuser -uvk {path} {path}/* >&2 || true; sleep 1; umount {path}; }}" | CODE |
| HIGH | test/common/testlib.py | 2566 | self.machine.execute("test -f /home/admin/.ssh/id_rsa || ssh-keygen -f /home/admin/.ssh/id_rsa -t rsa -N ''") | CODE |
| HIGH | test/common/netlib.py | 112 | if 'default' in m.execute("virsh net-list --name || true"): | CODE |
| HIGH | test/common/packagelib.py | 58 | self.addCleanup(self.machine.execute, "systemctl stop packagekit; systemctl reset-failed packagekit || true") | CODE |
| HIGH⚡ | test/common/packagelib.py | 80 | self.machine.execute("test -d /var/lib/PackageKit/alpm && rm -r /var/lib/PackageKit/alpm || true") | CODE |
| HIGH⚡ | test/common/packagelib.py | 80 | self.machine.execute("test -d /var/lib/PackageKit/alpm && rm -r /var/lib/PackageKit/alpm || true") | CODE |
| HIGH⚡ | test/common/packagelib.py | 84 | fuser -k /var/lib/pacman/db.lck || true; | CODE |
| HIGH | test/common/packagelib.py | 114 | self.machine.execute("systemctl kill --signal=SIGKILL packagekit || true; rm -rf /var/cache/PackageKit") | STRING |
| HIGH | test/common/packagelib.py | 115 | self.machine.execute("systemctl reset-failed packagekit || true") | STRING |
| HIGH⚡ | test/common/packagelib.py | 129 | self.machine.execute("rm -r /etc/systemd/system/dnf-automatic* && systemctl daemon-reload || true") | STRING |
| HIGH⚡ | test/common/packagelib.py | 133 | self.addCleanup(self.machine.execute, "systemctl disable --now dnf5-automatic.timer 2>/dev/null || true") | STRING |
| HIGH⚡ | test/common/packagelib.py | 135 | "rm -r /etc/systemd/system/dnf5-automatic*.d && systemctl daemon-reload || true") | STRING |
| HIGH⚡ | test/common/packagelib.py | 135 | "rm -r /etc/systemd/system/dnf5-automatic*.d && systemctl daemon-reload || true") | STRING |
| HIGH | test/common/packagelib.py | 225 | self.addCleanup(m.execute, f"dpkg -P --force-depends --force-remove-reinstreq {name} 2>/dev/null || true") | STRING |
| HIGH | test/common/packagelib.py | 312 | self.addCleanup(self.machine.execute, f"rpm -e --nodeps {name} 2>/dev/null || true") | STRING |
| HIGH | test/common/packagelib.py | 403 | self.addCleanup(self.machine.execute, f"pacman -Rdd --noconfirm {name} 2>/dev/null || true") | STRING |
| HIGH | test/common/packagelib.py | 483 | self.addCleanup(self.machine.execute, "kill %i || true" % pid) | STRING |
| HIGH | test/common/packagelib.py | 495 | if 'testrepo' not in self.machine.execute('grep testrepo /etc/pacman.conf || true'): | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | test/pytest/conftest.py | 72 | except ChildProcessError: | CODE |
| HIGH | test/pytest/test_bridge.py | 1519 | except KeyError: | CODE |
| HIGH | test/pytest/test_bridge.py | 1524 | except KeyError: | CODE |
| HIGH | test/pytest/ws/mocksessionsocket.py | 148 | except (BrokenPipeError, ConnectionResetError): | CODE |
| HIGH | test/verify/conftest.py | 60 | except AttributeError: | CODE |
| HIGH | test/common/testlib.py | 278 | except FileNotFoundError: | CODE |
| HIGH | test/common/testlib.py | 1710 | except FileNotFoundError: | CODE |
| HIGH | test/common/webdriver_bidi.py | 180 | except ProcessLookupError: | CODE |
| HIGH | pkg/storaged/mount-users.py | 98 | except OSError: | CODE |
| HIGH | pkg/storaged/crypto/luksmeta-monitor-hack.py | 91 | except (subprocess.CalledProcessError, FileNotFoundError): | CODE |
| HIGH | pkg/storaged/crypto/luksmeta-monitor-hack.py | 110 | except subprocess.CalledProcessError: | CODE |
| HIGH | pkg/storaged/nfs/nfs-mounts.py | 163 | except OSError: | CODE |
| HIGH | pkg/storaged/nfs/nfs-mounts.py | 181 | except subprocess.CalledProcessError: | CODE |
| HIGH | pkg/storaged/legacy-vdo/vdo-monitor.py | 106 | except AttributeError: | CODE |
| HIGH | pkg/apps/watch-appstream.py | 326 | except KeyError: | CODE |
| HIGH | src/build_backend.py | 24 | except FileNotFoundError: # ...but not present in tarball... | CODE |
| HIGH | src/cockpit/bridge.py | 198 | except (BrokenPipeError, ConnectionResetError): | CODE |
| HIGH | src/cockpit/peer.py | 73 | except asyncio.CancelledError: # we did that (below) | CODE |
| HIGH | src/cockpit/peer.py | 123 | except (OSError, PeerExited, CockpitProblem, asyncio.CancelledError): | CODE |
| HIGH | src/cockpit/polkit.py | 85 | except ProcessLookupError: | CODE |
| HIGH | src/cockpit/router.py | 343 | except (BrokenPipeError, ConnectionResetError): | CODE |
| HIGH | src/cockpit/beiboot.py | 490 | except BrokenPipeError: | CODE |
| HIGH | src/cockpit/misc/bootloader.py | 48 | except OSError: | CODE |
| HIGH | src/cockpit/misc/bootloader.py | 28 | except OSError: | CODE |
| HIGH | src/cockpit/misc/print.py | 187 | except EOFError: | CODE |
| HIGH | src/cockpit/channels/pcp.py | 592 | except IndexError: | CODE |
| HIGH | src/cockpit/channels/dbus.py | 128 | except KeyError: | CODE |
| HIGH | src/cockpit/channels/dbus.py | 134 | except BusError: | CODE |
| HIGH | src/cockpit/channels/dbus.py | 452 | except BusError: | CODE |
| HIGH | src/cockpit/channels/dbus.py | 282 | except InterruptedError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/pytest/test_packages.py | 34 | def test_parse_accept_language(test_input: str, expected: 'tuple[str]') -> None: | CODE |
| LOW | test/pytest/test_packages.py | 92 | def test_override_invalid_json(pkgdir: Path, caplog: pytest.LogCaptureFixture) -> None: | CODE |
| LOW | test/pytest/test_packages.py | 104 | def test_override_invalid_json_does_not_hide_later_ones( | CODE |
| LOW | test/pytest/test_packages.py | 195 | def test_condition_hides_priority(pkgdir: Path) -> None: | CODE |
| LOW | test/pytest/test_packages.py | 272 | def test_conditions_any_errors(pkgdir: Path) -> None: | CODE |
| LOW | test/pytest/test_packages.py | 376 | def test_filename_gz_suffix_only(pkgdir: Path) -> None: | CODE |
| LOW | test/pytest/test_packages.py | 396 | def test_overlapping_minified(pkgdir: Path) -> None: | CODE |
| LOW | test/pytest/test_http_channel.py | 125 | async def test_tls_request_no_validate(transport: MockTransport, tls_server: int) -> None: | CODE |
| LOW | test/pytest/test_pcp.py | 253 | def unsupported_metric_archive(tmpdir_factory): | CODE |
| LOW | test/pytest/test_pcp.py | 384 | async def test_pcp_instances_option(transport, instances_archive): | CODE |
| LOW | test/pytest/test_pcp.py | 409 | async def test_pcp_omit_instances_option(transport, instances_archive): | CODE |
| LOW | test/pytest/test_pcp.py | 483 | async def test_pcp_negative_timestamp(transport, timestamps_archive): | CODE |
| LOW | test/pytest/test_pcp.py | 539 | async def test_pcp_instances_change(transport, instances_change_archive): | CODE |
| LOW | test/pytest/test_pcp.py | 568 | async def test_pcp_scale_memory_unit(transport, mem_avail_archive): | CODE |
| LOW | test/pytest/test_pcp.py | 654 | async def test_pcp_unsupported_metric(transport, unsupported_metric_archive): | CODE |
| LOW | test/pytest/test_transport.py | 532 | async def test_write_backlog_eof_and_close(self) -> None: | CODE |
| LOW | test/pytest/test_browser.py | 107 | async def test_timeformat_timezones( | CODE |
| LOW | test/pytest/test_peer.py | 84 | async def test_shutdown_before_init(monkeypatch, transport, rule): | CODE |
| LOW | test/pytest/test_peer.py | 125 | async def test_await_broken_connect(bridge): | CODE |
| LOW | test/pytest/test_peer.py | 137 | async def test_await_broken_after_connect(bridge): | CODE |
| LOW | test/pytest/test_peer.py | 163 | async def test_await_cancellable_connect_init(bridge): | CODE |
| LOW | test/pytest/test_peer.py | 173 | async def test_await_cancellable_connect_close(monkeypatch, bridge): | CODE |
| LOW | test/pytest/test_samples.py | 119 | def test_temperature_descriptions(): | CODE |
| LOW | test/pytest/test_samples.py | 150 | def test_cpu_temperature_zero_reading(hwmon_mock): | CODE |
| LOW | test/pytest/test_bridge.py | 177 | async def verify_root_bridge_not_running(bridge: Bridge, transport: MockTransport) -> None: | CODE |
| LOW | test/pytest/test_bridge.py | 186 | async def verify_root_bridge_running(bridge: Bridge, transport: MockTransport) -> None: | CODE |
| LOW | test/pytest/test_bridge.py | 267 | async def test_superuser_dbus_wrong_pw(bridge: Bridge, transport: MockTransport, monkeypatch) -> None: | CODE |
| LOW | test/pytest/test_bridge.py | 1330 | async def test_fsinfo_nofollow_watch(transport: MockTransport) -> None: | CODE |
| LOW | test/pytest/test_bridge.py | 1335 | async def test_fsinfo_nofollow_targets(transport: MockTransport) -> None: | CODE |
| LOW | test/pytest/test_bridge.py | 1384 | async def test_fsinfo_onlydir_watch(transport: MockTransport, fsinfo_test_cases: 'dict[Path, JsonObject]') -> None: | CODE |
| LOW | test/pytest/test_bridge.py | 1403 | async def test_fsinfo_watch_identity_changes( | CODE |
| LOW | test/pytest/test_bridge.py | 1647 | def test_is_valid_superuser_config_sudo_askpass(tmp_path: Path, *, supports_askpass: bool) -> None: | STRING |
| LOW | test/pytest/test_bridge.py | 1659 | def test_is_valid_superuser_config_not_sudo(tmp_path: Path) -> None: | STRING |
| LOW | test/pytest/test_bridge.py | 1677 | async def test_is_valid_superuser_config( | STRING |
| LOW | test/pytest/ws/test_authorize.py | 73 | def test_parse_subject_invalid(challenge: str) -> None: | CODE |
| LOW | test/pytest/ws/test_authorize.py | 111 | def test_build_basic_roundtrip() -> None: | CODE |
| LOW | test/pytest/ws/test_authorize.py | 127 | def test_build_basic_with_known_hosts() -> None: | CODE |
| LOW | test/pytest/ws/test_authorize.py | 153 | def test_parse_negotiate_invalid(response: str) -> None: | CODE |
| LOW | test/pytest/ws/test_authorize.py | 170 | def test_build_negotiate_roundtrip() -> None: | CODE |
| LOW⚡ | test/pytest/ws/test_authorize.py | 183 | def test_parse_x_conversation( | CODE |
| LOW⚡ | test/pytest/ws/test_authorize.py | 191 | def test_parse_x_conversation_invalid() -> None: | CODE |
| LOW⚡ | test/pytest/ws/test_authorize.py | 196 | def test_build_x_conversation_with_prompt() -> None: | CODE |
| LOW⚡ | test/pytest/ws/test_authorize.py | 202 | def test_build_x_conversation_no_prompt() -> None: | CODE |
| LOW⚡ | test/pytest/ws/test_authorize.py | 208 | def test_build_x_conversation_generate() -> None: | CODE |
| LOW⚡ | test/pytest/ws/test_authorize.py | 215 | def test_build_x_conversation_empty_invalid() -> None: | CODE |
| LOW⚡ | test/pytest/ws/test_authorize.py | 220 | def test_build_x_conversation_roundtrip() -> None: | CODE |
| LOW | test/verify/conftest.py | 31 | def pytest_collection_modifyitems(session: pytest.Session, items: List[pytest.Item]) -> None: | CODE |
| LOW | test/common/test-functions.js | 348 | function currentFrameAbsolutePosition() { | CODE |
| LOW | test/common/storagelib.py | 265 | def dialog_wait_apply_enabled(self) -> None: | CODE |
| LOW | test/common/storagelib.py | 268 | def dialog_wait_apply_disabled(self) -> None: | CODE |
| LOW | test/common/storagelib.py | 436 | def assert_not_in_configuration(self, dev: str, tab: str, field: str, text: str) -> None: | CODE |
| LOW | test/common/storagelib.py | 439 | def child_configuration_field(self, dev: str, tab: str, field: str) -> str: | CODE |
| LOW | test/common/storagelib.py | 453 | def assert_in_child_configuration(self, dev: str, tab: str, field: str, text: str) -> None: | CODE |
| LOW | test/common/storagelib.py | 456 | def lvol_child_configuration_field(self, lvol: str, tab: str, field: str) -> str: | CODE |
| LOW | test/common/storagelib.py | 469 | def assert_in_lvol_child_configuration(self, lvol: str, tab: str, field: str, text: str) -> None: | CODE |
| LOW | test/common/storagelib.py | 472 | def setup_systemd_password_agent(self, password: str) -> None: | CODE |
| LOW⚡ | test/common/storagelib.py | 125 | def add_targetd_loopback_disk(self, index: str, size: int = 50) -> str: | STRING |
| LOW | test/common/storagelib.py | 671 | def check_dropdown_action_disabled(self, parent: str, title: str, expected_text: str) -> None: | STRING |
| LOW | test/common/storagelib.py | 687 | def wait_card_button_disabled(self, card_title: str, button_title: str) -> None: | STRING |
| LOW | test/common/lcov.py | 448 | def prepare_for_code_coverage() -> None: | CODE |
| 37 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | files.js | 181 | from: path.resolve(nodedir, fontsdir, subdir, 'RedHat' + name + '.woff2'), | COMMENT |
| LOW | packit.yaml | 81 | trigger: commit | COMMENT |
| LOW | test/common/test-functions.js | 401 | const elts = window.ph_select(sel); | COMMENT |
| LOW | test/common/storagelib.py | 541 | # | COMMENT |
| LOW | test/common/lcov.py | 301 | for r in f['ranges']: | COMMENT |
| LOW | test/common/lcov.py | 321 | # with count 0 for "bar" (lines 2 and 3), since it is never | COMMENT |
| LOW | test/common/lcov.py | 341 | # 5 0 bar(); | COMMENT |
| LOW | test/common/testlib.py | 121 | # "test/browser-layouts.json". | COMMENT |
| LOW | test/common/testlib.py | 1381 | return | COMMENT |
| LOW | test/common/testlib.py | 1441 | clip=rect) | COMMENT |
| LOW | test/common/testlib.py | 1481 | # - A pixel in the reference image might be | COMMENT |
| LOW | test/common/dialoglib.py | 1 | # Copyright (C) 2025 Red Hat, Inc. | COMMENT |
| LOW | test/common/dialoglib.py | 21 | # You need to pass the CSS selector prefix of the <Modal> component to | COMMENT |
| LOW | test/common/dialoglib.py | 41 | # | COMMENT |
| LOW | test/common/dialoglib.py | 61 | # | COMMENT |
| LOW | .github/workflows/gh-project.yml | 1 | # GitHub Projects lets you import from multiple repositories on creation, but the | COMMENT |
| LOW | pkg/networkmanager/interfaces.js | 1081 | COMMENT | |
| LOW | pkg/storaged/pages.jsx | 421 | // another table column already. | COMMENT |
| LOW | pkg/storaged/utils.js | 381 | let size; | COMMENT |
| LOW | pkg/storaged/btrfs/btrfs-tool.py | 1 | #! /usr/bin/python3 | COMMENT |
| LOW | pkg/storaged/crypto/clevis-luks-passphrase.sh | 1 | #! /bin/sh | COMMENT |
| LOW | pkg/storaged/mdraid/mdraid.jsx | 81 | const members = client.mdraids_members[mdraid.path]; | COMMENT |
| LOW | pkg/lib/cockpit-components-plot.jsx | 121 | // Find the highest power of the base unit that is still below | COMMENT |
| LOW | pkg/lib/cockpit-components-plot.jsx | 141 | // If the highest number of would be only, say, 81, then we would get | COMMENT |
| LOW | pkg/lib/cockpit-components-plot.jsx | 161 | // | COMMENT |
| LOW | pkg/lib/journal.js | 301 | a.prio == b.prio && | COMMENT |
| LOW | pkg/lib/get-timesync-backend.py | 1 | # SPDX-License-Identifier: LGPL-2.1-or-later | COMMENT |
| LOW | pkg/lib/patternfly/patternfly-6-overrides.scss | 281 | .pf-v6-c-card.ct-small-table-card { | COMMENT |
| LOW | pkg/lib/patternfly/patternfly-6-overrides.scss | 321 | font-weight: var(--pf-t--global--font--weight--body--bold); | COMMENT |
| LOW | src/cockpit/peer.py | 81 | try: | COMMENT |
| LOW | src/cockpit/beiboot.py | 141 | return reply | COMMENT |
| LOW | src/cockpit/channels/pcp.py | 1 | # | COMMENT |
| LOW | src/cockpit/channels/pcp.py | 21 | # * interval - the interval on which to deliver metrics | COMMENT |
| LOW | src/cockpit/channels/pcp.py | 41 | # The instance domain denotes if the metric is has multiple instances, for | COMMENT |
| LOW | src/cockpit/channels/dbus.py | 1 | # | COMMENT |
| LOW | src/cockpit/channels/dbus.py | 41 | # This channel payload type translates JSON encoded messages on a | COMMENT |
| LOW | src/cockpit/channels/dbus.py | 61 | # - The client adds a "watch" for a path namespace. There is a | COMMENT |
| LOW | src/cockpit/channels/dbus.py | 81 | # channel, and will keep that mutex locked until it is done with | COMMENT |
| LOW | src/common/cockpitwebcertificate.c | 1 | /* | COMMENT |
| LOW | src/common/cockpitauthorize.c | 1 | /* | COMMENT |
| LOW | src/common/test-authorize.c | 1 | /* | COMMENT |
| LOW | src/common/cockpitconf.c | 1 | /* | COMMENT |
| LOW | src/tls/client-certificate.c | 21 | * required information for authentication, but it's not sufficient: | COMMENT |
| LOW | src/tls/credentials.c | 1 | /* | COMMENT |
| LOW | src/tls/socket-activation-helper.c | 1 | /* | COMMENT |
| LOW | src/tls/test-server.c | 1 | /* | COMMENT |
| LOW | src/tls/test-server.c | 21 | #include <gnutls/x509.h> | COMMENT |
| LOW | src/tls/cockpit-certificate-ensure.c | 1 | /* | COMMENT |
| LOW | src/tls/cockpit-certificate-ensure.c | 21 | COMMENT | |
| LOW | src/tls/server.c | 1 | /* | COMMENT |
| LOW | src/tls/main.c | 1 | /* | COMMENT |
| LOW | src/tls/connection.c | 1 | /* | COMMENT |
| LOW | src/tls/connection.c | 21 | #include <string.h> | COMMENT |
| LOW | src/tls/socket-io.c | 1 | /* | COMMENT |
| LOW | src/pam-ssh-add/pam-ssh-add.c | 21 | #include <stdio.h> | COMMENT |
| LOW | src/pam-ssh-add/test-ssh-add.c | 1 | /* | COMMENT |
| LOW | src/ws/cockpitpipe.c | 21 | #include <sys/socket.h> | COMMENT |
| LOW | src/ws/cockpitauth.c | 1 | /* | COMMENT |
| LOW | src/ws/cockpitauth.c | 21 | #include "cockpitpipetransport.h" | COMMENT |
| LOW | src/ws/cockpithandlers.c | 1 | /* | COMMENT |
| 11 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/pytest/mockpeer.py | 11 | CODE | |
| LOW | test/pytest/test_browser.py | 47 | CODE | |
| LOW | test/pytest/test_bridge.py | 916 | CODE | |
| LOW | test/pytest/test_bridge.py | 1358 | CODE | |
| LOW | test/pytest/test_bridge.py | 1611 | CODE | |
| LOW | test/common/js_coverage.py | 49 | CODE | |
| LOW | test/common/js_coverage.py | 275 | CODE | |
| LOW | test/common/storagelib.py | 196 | CODE | |
| LOW | test/common/storagelib.py | 420 | CODE | |
| LOW | test/common/storagelib.py | 439 | CODE | |
| LOW | test/common/storagelib.py | 456 | CODE | |
| LOW | test/common/lcov.py | 143 | CODE | |
| LOW | test/common/lcov.py | 203 | CODE | |
| LOW | test/common/lcov.py | 269 | CODE | |
| LOW | test/common/lcov.py | 390 | CODE | |
| LOW | test/common/lcov.py | 481 | CODE | |
| LOW | test/common/lcov.py | 236 | CODE | |
| LOW | test/common/testlib.py | 509 | CODE | |
| LOW | test/common/testlib.py | 834 | CODE | |
| LOW | test/common/testlib.py | 969 | CODE | |
| LOW | test/common/testlib.py | 1523 | CODE | |
| LOW | test/common/testlib.py | 2360 | CODE | |
| LOW | test/common/webdriver_bidi.py | 226 | CODE | |
| LOW | test/common/packagelib.py | 15 | CODE | |
| LOW | test/common/pixelmatch/core.py | 12 | CODE | |
| LOW | test/common/pixelmatch/utils.py | 10 | CODE | |
| LOW | pkg/storaged/btrfs/btrfs-tool.py | 148 | CODE | |
| LOW | pkg/storaged/btrfs/btrfs-tool.py | 217 | CODE | |
| LOW | pkg/storaged/crypto/luksmeta-monitor-hack.py | 24 | CODE | |
| LOW | pkg/storaged/crypto/luksmeta-monitor-hack.py | 53 | CODE | |
| LOW | pkg/storaged/nfs/nfs-mounts.py | 69 | CODE | |
| LOW | pkg/storaged/nfs/nfs-mounts.py | 167 | CODE | |
| LOW | pkg/storaged/nfs/nfs-mounts.py | 225 | CODE | |
| LOW | pkg/storaged/legacy-vdo/vdo-monitor.py | 49 | CODE | |
| LOW | pkg/lib/get-timesync-backend.py | 11 | CODE | |
| LOW | pkg/lib/get-timesync-backend.py | 49 | CODE | |
| LOW | pkg/apps/watch-appstream.py | 199 | CODE | |
| LOW | pkg/apps/watch-appstream.py | 365 | CODE | |
| LOW | pkg/apps/watch-appstream.py | 43 | CODE | |
| LOW | pkg/apps/watch-appstream.py | 314 | CODE | |
| LOW | pkg/apps/watch-appstream.py | 370 | CODE | |
| LOW | pkg/apps/watch-appstream.py | 53 | CODE | |
| LOW | src/cockpit/jsonutil.py | 169 | CODE | |
| LOW | src/cockpit/channel.py | 118 | CODE | |
| LOW | src/cockpit/bridge.py | 244 | CODE | |
| LOW | src/cockpit/packages.py | 489 | CODE | |
| LOW | src/cockpit/packages.py | 539 | CODE | |
| LOW | src/cockpit/packages.py | 573 | CODE | |
| LOW | src/cockpit/packages.py | 620 | CODE | |
| LOW | src/cockpit/internal_endpoints.py | 64 | CODE | |
| LOW | src/cockpit/polkit.py | 107 | CODE | |
| LOW | src/cockpit/samples.py | 130 | CODE | |
| LOW | src/cockpit/samples.py | 173 | CODE | |
| LOW | src/cockpit/samples.py | 336 | CODE | |
| LOW | src/cockpit/beiboot.py | 424 | CODE | |
| LOW | src/cockpit/misc/bootloader.py | 14 | CODE | |
| LOW | src/cockpit/misc/print.py | 177 | CODE | |
| LOW | src/cockpit/misc/print.py | 193 | CODE | |
| LOW | src/cockpit/channels/metrics.py | 115 | CODE | |
| LOW | src/cockpit/channels/pcp.py | 185 | CODE | |
| 13 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/pytest/ws/authorize.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | test/pytest/ws/mocksessionsocket.py | 21 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | test/common/testlib.py | 1316 | def _set_window_size(self, width: int, height: int) -> None: | CODE |
| LOW⚡ | test/common/testlib.py | 1320 | def _set_emulated_media_theme(self, name: str) -> None: | CODE |
| LOW⚡ | test/common/testlib.py | 1325 | def _set_direction(self, direction: str) -> None: | CODE |
| LOW⚡ | test/common/testlib.py | 1332 | def set_layout(self, name: str) -> None: | CODE |
| LOW | test/common/testlib.py | 381 | def set_user_agent(self, ua: str) -> None: | CODE |
| LOW | test/common/testlib.py | 465 | def set_mock(self, mock: Mapping[str, str], base: str = "") -> None: | CODE |
| LOW | test/common/testlib.py | 632 | def set_val(self, selector: str, val: object) -> None: | CODE |
| LOW | test/common/testlib.py | 660 | def set_attr(self, selector: str, attr: str, val: object) -> None: | CODE |
| LOW | test/common/testlib.py | 679 | def set_checked(self, selector: str, val: bool) -> None: | CODE |
| LOW | test/common/testlib.py | 794 | def set_file_autocomplete_val(self, group_identifier: str, location: str) -> None: | CODE |
| LOW | test/common/dialoglib.py | 114 | def set_TextInput(self, path: str, val: str) -> None: | CODE |
| LOW | test/common/dialoglib.py | 127 | def set_Checkbox(self, path: str, val: bool) -> None: | CODE |
| LOW | test/common/dialoglib.py | 138 | def set_RadioSelect(self, path: str, val: str) -> None: | CODE |
| LOW | test/common/dialoglib.py | 149 | def set_DropdownSelect(self, path: str, val: str) -> None: | CODE |
| LOW | test/common/dialoglib.py | 160 | def set_FileChooserInput(self, path: str, val: str) -> None: | CODE |
| LOW | test/common/dialoglib.py | 177 | def set_path(self, path: str) -> None: | CODE |
| LOW | test/common/pixelmatch/__init__.py | 15 | __all__ = [ | CODE |
| LOW | src/cockpit/config.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/cockpit/superuser.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/cockpit/superuser.py | 267 | def set_configs(self, configs: Sequence[BridgeConfig]) -> None: | CODE |
| LOW | src/cockpit/remote.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/cockpit/protocol.py | 13 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/cockpit/channel.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/cockpit/bridge.py | 38 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/cockpit/packages.py | 54 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/cockpit/peer.py | 17 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/cockpit/peer.py | 295 | def set_configs(self, bridge_configs: Sequence[BridgeConfig]) -> None: | CODE |
| LOW | src/cockpit/internal_endpoints.py | 20 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/cockpit/beipack.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/cockpit/transports.py | 36 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/cockpit/transports.py | 159 | def set_write_buffer_limits(self, high: 'int | None' = None, low: 'int | None' = None) -> None: | CODE |
| LOW | src/cockpit/transports.py | 263 | def set_protocol(self, protocol: asyncio.BaseProtocol) -> None: | CODE |
| LOW | src/cockpit/transports.py | 388 | def set_window_size(self, size: WindowSize) -> None: | CODE |
| LOW | src/cockpit/polkit.py | 25 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/cockpit/router.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/cockpit/samples.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/cockpit/channels/trivial.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/cockpit/channels/metrics.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/cockpit/channels/pcp.py | 76 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/cockpit/channels/dbus.py | 37 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/cockpit/channels/filesystem.py | 41 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/cockpit/channels/session.py | 12 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/cockpit/channels/packages.py | 14 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/cockpit/channels/stream.py | 16 | logger = logging.getLogger(__name__) | CODE |
| LOW | src/cockpit/channels/http_channel.py | 14 | logger = logging.getLogger(__name__) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/common/storagelib.py | 354 | def step() -> bool: | CODE |
| LOW | test/common/storagelib.py | 400 | except Exception: | CODE |
| MEDIUM | test/common/testlib.py | 2807 | print(f"Error: '{name}' does not match a test", file=sys.stderr) | CODE |
| LOW | test/common/testlib.py | 2733 | except Exception: | CODE |
| LOW | test/common/testlib.py | 2950 | except Exception: | CODE |
| LOW | pkg/sosreport/get_report_dir.py | 15 | except Exception as e: | CODE |
| LOW | pkg/storaged/mount-users.py | 115 | except Exception: | CODE |
| LOW | pkg/storaged/mount-users.py | 164 | except Exception as e: | CODE |
| MEDIUM | pkg/storaged/mount-users.py | 111 | def sendsig(pid, sig): | CODE |
| LOW | pkg/storaged/btrfs/btrfs-tool.py | 80 | except Exception as err: | CODE |
| LOW | pkg/storaged/btrfs/btrfs-tool.py | 91 | except Exception as err: | CODE |
| LOW | pkg/storaged/btrfs/btrfs-tool.py | 163 | except Exception as err: | CODE |
| LOW | pkg/storaged/btrfs/btrfs-tool.py | 232 | except Exception as err: | CODE |
| LOW | pkg/storaged/nfs/nfs-mounts.py | 244 | except Exception as e: | CODE |
| LOW | pkg/storaged/legacy-vdo/vdo-monitor.py | 81 | except Exception as e: | CODE |
| LOW | pkg/storaged/legacy-vdo/vdo-monitor.py | 113 | except Exception as e: | CODE |
| MEDIUM | pkg/storaged/legacy-vdo/vdo-monitor.py | 68 | def query(): | CODE |
| MEDIUM | pkg/storaged/legacy-vdo/vdo-monitor.py | 109 | def sample(): | CODE |
| LOW | pkg/apps/watch-appstream.py | 378 | except Exception: | CODE |
| MEDIUM | pkg/apps/watch-appstream.py | 370 | def process_file(path, callback): | CODE |
| LOW | src/cockpit/peer.py | 75 | except Exception as exc: | CODE |
| LOW⚡ | src/cockpit/channels/pcp.py | 527 | except Exception as exc: | CODE |
| LOW⚡ | src/cockpit/channels/pcp.py | 536 | except Exception as exc: | CODE |
| LOW⚡ | src/cockpit/channels/pcp.py | 545 | except Exception as exc: | CODE |
| LOW | src/cockpit/channels/dbus.py | 327 | except Exception as exc: | CODE |
| LOW | src/cockpit/channels/dbus.py | 345 | except Exception: | CODE |
| MEDIUM | src/cockpit/channels/dbus.py | 125 | def get_interface(self, interface_name, bus=None, destination=None, object_path= | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | pkg/kdump/config-client.js | 135 | const parts = this.settings._internal.nfs.value.match(/^([^[][^:]+|\[[^\]]+\]):(.*)$/); | CODE |
| CRITICAL | pkg/kdump/config-client.js | 185 | (this.settings._internal.core_collector.value.trim().indexOf("makedumpfile") === 0) | CODE |
| CRITICAL | pkg/kdump/config-client.js | 191 | (this.settings._internal.core_collector.value.split(" ").indexOf("-c") != -1) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/pytest/test_bridge.py | 17 | CODE | |
| LOW | test/common/pixelmatch/__init__.py | 1 | CODE | |
| LOW | test/common/pixelmatch/__init__.py | 2 | CODE | |
| LOW | test/common/pixelmatch/__init__.py | 2 | CODE | |
| LOW | test/common/pixelmatch/__init__.py | 2 | CODE | |
| LOW | test/common/pixelmatch/__init__.py | 2 | CODE | |
| LOW | test/common/pixelmatch/__init__.py | 2 | CODE | |
| LOW | test/common/pixelmatch/__init__.py | 2 | CODE | |
| LOW | test/common/pixelmatch/__init__.py | 2 | CODE | |
| LOW | test/common/pixelmatch/__init__.py | 2 | CODE | |
| LOW | test/common/pixelmatch/__init__.py | 2 | CODE | |
| LOW | test/common/pixelmatch/__init__.py | 2 | CODE | |
| LOW | src/cockpit/superuser.py | 26 | CODE | |
| LOW | src/cockpit/channel.py | 12 | CODE | |
| LOW | src/cockpit/channel.py | 12 | CODE | |
| LOW | src/cockpit/channel.py | 12 | CODE | |
| LOW | src/cockpit/channel.py | 12 | CODE | |
| LOW | src/cockpit/channel.py | 12 | CODE | |
| LOW | src/cockpit/channel.py | 12 | CODE | |
| LOW | src/cockpit/bridge.py | 30 | CODE | |
| LOW | src/cockpit/__init__.py | 2 | CODE | |
| LOW | src/cockpit/samples.py | 10 | CODE | |
| LOW | src/cockpit/beiboot.py | 17 | CODE | |
| LOW | src/cockpit/channels/filesystem.py | 20 | CODE | |
| LOW | src/cockpit/channels/filesystem.py | 27 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | build.js | 117 | // Use createRequire to leverage Node's module resolution which searches system paths | COMMENT |
| LOW | test/common/lcov.py | 348 | # can't just add them all up. This doesn't work, however, when | COMMENT |
| MEDIUM | test/common/pixelmatch/contrib/PIL.py | 4 | """Functions to facilitate direct comparison of PIL.Image instances""" | STRING |
| MEDIUM | pkg/packagekit/updates.jsx | 904 | // be robust, try to continue with loading updates anyway | COMMENT |
| MEDIUM | pkg/lib/patternfly/_fonts.scss | 5 | // This allows plugins to still utilize the Red Hat fonts when testing plugins on or before Cockpit v336 | COMMENT |
| MEDIUM | pkg/lib/patternfly/patternfly-6-cockpit.scss | 10 | // This allows plugins to still utilize the Red Hat fonts when testing plugins on or before Cockpit v336 | COMMENT |
| MEDIUM | pkg/lib/patternfly/patternfly-6-overrides.scss | 55 | // We utilize custom footers in dialogs | COMMENT |
| MEDIUM | src/cockpit/bridge.py | 281 | # Launch the agent so that it goes down with us on EOF; PDEATHSIG would be more robust, | COMMENT |
| LOW | src/cockpit/channels/pcp.py | 219 | # just return an empty error. If we report anything with a | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | pkg/lib/serverTime.js | 290 | const text = `# This file is automatically generated by Cockpit\n\n[Time]\n${config.enabled ? "" : "#"}NTP=${con | CODE |
| MEDIUM | pkg/lib/serverTime.js | 343 | const text = "# This file is automatically generated by Cockpit\n\n" + config.servers.map(s => `server ${s}\n`). | CODE |
| MEDIUM | src/cockpit/_version.py | 2 | # This file is only in git. It gets replaced by `make dist`. | COMMENT |
| MEDIUM | src/cockpit/beiboot.py | 46 | # Create the file in $XDG_CACHE_HOME, one of the few locations that a flatpak can write to | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pkg/shell/session.ts | 38 | // NOTE: This function will be called many many times for a | COMMENT |
| LOW | pkg/storaged/block/resize.jsx | 377 | // Step 1: Find the spaces that are already used for a | COMMENT |
| LOW | pkg/storaged/block/resize.jsx | 391 | // Step 2: Select missing one randomly. | COMMENT |
| LOW | pkg/storaged/block/resize.jsx | 474 | // Step 1: Find PVs that are already used by a subvolume | COMMENT |
| LOW | pkg/storaged/block/resize.jsx | 485 | // Step 2: Use the rest for the leftover subvolumes | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/common/testlib.py | 509 | CODE | |
| LOW | test/common/testlib.py | 1050 | CODE | |
| LOW | test/common/testlib.py | 1364 | CODE | |
| LOW | test/common/testlib.py | 1523 | CODE | |
| LOW | test/common/testlib.py | 2046 | CODE | |
| LOW | test/common/netlib.py | 200 | CODE | |
| LOW | test/common/packagelib.py | 146 | CODE | |
| LOW | test/common/pixelmatch/core.py | 12 | CODE | |
| LOW | test/common/pixelmatch/contrib/PIL.py | 16 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | pkg/storaged/block/resize.jsx | 377 | // Step 1: Find the spaces that are already used for a | COMMENT |
| LOW | pkg/storaged/block/resize.jsx | 391 | // Step 2: Select missing one randomly. | COMMENT |
| LOW | pkg/storaged/block/resize.jsx | 474 | // Step 1: Find PVs that are already used by a subvolume | COMMENT |
| LOW | pkg/storaged/block/resize.jsx | 485 | // Step 2: Use the rest for the leftover subvolumes | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/cockpit/channels/pcp.py | 214 | # Verify if the given metrics exist in the archive | COMMENT |
| LOW | src/cockpit/channels/pcp.py | 618 | # Set metric_descriptions to the current archive | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/common/testlib.py | 1548 | # If the page overflows make sure to not show a scrollbar | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | doc/extensions/man-inline-macro.rb | 10 | # Usage: | COMMENT |