Cockpit is a web-based graphical interface for servers.
This report presents the forensic synthetic code analysis of cockpit-project/cockpit, a JavaScript project with 14,557 GitHub stars. SynthScan v2.0 examined 172,288 lines of code across 868 source files, recording 401 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 3.5 places this repository in the Likely human-written band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 401 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| 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 | 114 | ls -la /sys/block/{os.path.basename(dev)}/holders/ >&2 || true | CODE |
| HIGH⚡ | test/common/storagelib.py | 115 | fuser -v {dev} >&2 || true | CODE |
| HIGH⚡ | test/common/storagelib.py | 604 | ! test -f /etc/kernel/cmdline || mv /etc/kernel/cmdline /etc/kernel/cmdline.stowed | CODE |
| HIGH⚡ | test/common/storagelib.py | 607 | ! test -f /etc/kernel/cmdline.stowed || mv /etc/kernel/cmdline.stowed /etc/kernel/cmdline | CODE |
| HIGH⚡ | test/common/storagelib.py | 610 | ! test -f /etc/kernel/cmdline || cp /etc/kernel/cmdline /new-root/etc/kernel/cmdline | CODE |
| HIGH | test/common/storagelib.py | 54 | dev = self.machine.execute('while true; do O=$(ls /sys/bus/pseudo/drivers/scsi_debug/adapter*/host*/target*/*:*/ | CODE |
| HIGH | test/common/storagelib.py | 55 | '[ -n "$O" ] && break || sleep 0.1; done; echo "/dev/$O"').strip() | CODE |
| HIGH | test/common/storagelib.py | 102 | systemctl stop udisks2 || true | CODE |
| HIGH | test/common/storagelib.py | 234 | result.push(lis[i].textContent); | CODE |
| HIGH | test/common/storagelib.py | 700 | ver = self.machine.execute("busctl --system get-property org.freedesktop.UDisks2 /org/freedesktop/UDisks2/Manage | STRING |
| HIGH | test/common/storagelib.py | 707 | crypto_types = self.machine.execute("busctl --system get-property org.freedesktop.UDisks2 /org/freedesktop/UDisk | STRING |
| HIGH⚡ | test/common/testlib.py | 1941 | " umount $d || true; dmsetup remove --force $d || true; " | CODE |
| HIGH⚡ | test/common/testlib.py | 1944 | " umount /dev/$dev || true; " | CODE |
| HIGH⚡ | test/common/testlib.py | 1954 | loginctl terminate-user $u 2>/dev/null || true | CODE |
| HIGH⚡ | test/common/testlib.py | 1955 | loginctl kill-user $u 2>/dev/null || true | CODE |
| HIGH⚡ | test/common/testlib.py | 1956 | 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 | 1930 | m.execute("systemctl try-restart sssd || true") | CODE |
| HIGH | test/common/testlib.py | 2450 | cmd = f"umount {path} || {{ fuser -uvk {path} {path}/* >&2 || true; sleep 1; umount {path}; }}" | CODE |
| HIGH | test/common/testlib.py | 2550 | 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 | 113 | self.machine.execute("systemctl kill --signal=SIGKILL packagekit || true; rm -rf /var/cache/PackageKit") | STRING |
| HIGH | test/common/packagelib.py | 114 | self.machine.execute("systemctl reset-failed packagekit || true") | STRING |
| HIGH⚡ | test/common/packagelib.py | 128 | self.machine.execute("rm -r /etc/systemd/system/dnf-automatic* && systemctl daemon-reload || true") | STRING |
| HIGH⚡ | test/common/packagelib.py | 132 | self.addCleanup(self.machine.execute, "systemctl disable --now dnf5-automatic.timer 2>/dev/null || true") | STRING |
| HIGH⚡ | test/common/packagelib.py | 134 | "rm -r /etc/systemd/system/dnf5-automatic*.d && systemctl daemon-reload || true") | STRING |
| HIGH⚡ | test/common/packagelib.py | 134 | "rm -r /etc/systemd/system/dnf5-automatic*.d && systemctl daemon-reload || true") | STRING |
| HIGH | test/common/packagelib.py | 224 | self.addCleanup(m.execute, f"dpkg -P --force-depends --force-remove-reinstreq {name} 2>/dev/null || true") | STRING |
| HIGH | test/common/packagelib.py | 311 | self.addCleanup(self.machine.execute, f"rpm -e --nodeps {name} 2>/dev/null || true") | STRING |
| HIGH | test/common/packagelib.py | 402 | self.addCleanup(self.machine.execute, f"pacman -Rdd --noconfirm {name} 2>/dev/null || true") | STRING |
| HIGH | test/common/packagelib.py | 475 | self.addCleanup(self.machine.execute, "kill %i || true" % pid) | STRING |
| HIGH | test/common/packagelib.py | 487 | if 'testrepo' not in self.machine.execute('grep testrepo /etc/pacman.conf || true'): | STRING |
| 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 | 168 | def test_condition_hides_priority(pkgdir: Path) -> None: | CODE |
| LOW | test/pytest/test_packages.py | 245 | def test_conditions_any_errors(pkgdir: Path) -> None: | CODE |
| LOW | test/pytest/test_packages.py | 349 | 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 | 108 | def test_temperature_descriptions(): | CODE |
| LOW | test/pytest/test_bridge.py | 175 | async def verify_root_bridge_not_running(bridge: Bridge, transport: MockTransport) -> None: | CODE |
| LOW | test/pytest/test_bridge.py | 184 | async def verify_root_bridge_running(bridge: Bridge, transport: MockTransport) -> None: | CODE |
| LOW | test/pytest/test_bridge.py | 265 | async def test_superuser_dbus_wrong_pw(bridge: Bridge, transport: MockTransport, monkeypatch) -> None: | CODE |
| LOW | test/pytest/test_bridge.py | 1328 | async def test_fsinfo_nofollow_watch(transport: MockTransport) -> None: | CODE |
| LOW | test/pytest/test_bridge.py | 1333 | async def test_fsinfo_nofollow_targets(transport: MockTransport) -> None: | CODE |
| LOW | test/pytest/test_bridge.py | 1382 | async def test_fsinfo_onlydir_watch(transport: MockTransport, fsinfo_test_cases: 'dict[Path, JsonObject]') -> None: | CODE |
| LOW | test/pytest/test_bridge.py | 1401 | async def test_fsinfo_watch_identity_changes( | CODE |
| 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 | 264 | def dialog_wait_apply_enabled(self) -> None: | CODE |
| LOW | test/common/storagelib.py | 267 | def dialog_wait_apply_disabled(self) -> None: | CODE |
| LOW | test/common/storagelib.py | 435 | def assert_not_in_configuration(self, dev: str, tab: str, field: str, text: str) -> None: | CODE |
| LOW | test/common/storagelib.py | 438 | def child_configuration_field(self, dev: str, tab: str, field: str) -> str: | CODE |
| LOW | test/common/storagelib.py | 452 | def assert_in_child_configuration(self, dev: str, tab: str, field: str, text: str) -> None: | CODE |
| LOW | test/common/storagelib.py | 455 | def lvol_child_configuration_field(self, lvol: str, tab: str, field: str) -> str: | CODE |
| LOW | test/common/storagelib.py | 468 | def assert_in_lvol_child_configuration(self, lvol: str, tab: str, field: str, text: str) -> None: | CODE |
| LOW | test/common/storagelib.py | 471 | def setup_systemd_password_agent(self, password: str) -> None: | CODE |
| LOW⚡ | test/common/storagelib.py | 124 | def add_targetd_loopback_disk(self, index: str, size: int = 50) -> str: | STRING |
| LOW | test/common/storagelib.py | 670 | def check_dropdown_action_disabled(self, parent: str, title: str, expected_text: str) -> None: | STRING |
| LOW | test/common/storagelib.py | 686 | 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 |
| LOW⚡ | test/common/testlib.py | 1303 | def _set_emulated_media_theme(self, name: str) -> None: | CODE |
| LOW | test/common/testlib.py | 777 | def set_file_autocomplete_val(self, group_identifier: str, location: str) -> None: | CODE |
| LOW | test/common/testlib.py | 1136 | def check_superuser_indicator(self, expected: str) -> None: | CODE |
| LOW | test/common/testlib.py | 1204 | def get_raw_pf_progress_value(self, progress_bar_sel: str) -> int: | CODE |
| LOW | test/common/testlib.py | 1216 | def start_machine_troubleshoot( | CODE |
| LOW | test/common/testlib.py | 1329 | def _adjust_window_for_fixed_content_size(self) -> None: | CODE |
| LOW | test/common/testlib.py | 1347 | def assert_pixels_in_current_layout( | CODE |
| 29 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 | 914 | CODE | |
| LOW | test/pytest/test_bridge.py | 1356 | CODE | |
| LOW | test/pytest/test_bridge.py | 1609 | CODE | |
| LOW | test/common/js_coverage.py | 49 | CODE | |
| LOW | test/common/js_coverage.py | 275 | CODE | |
| LOW | test/common/storagelib.py | 195 | CODE | |
| LOW | test/common/storagelib.py | 419 | CODE | |
| LOW | test/common/storagelib.py | 438 | CODE | |
| LOW | test/common/storagelib.py | 455 | 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 | 817 | CODE | |
| LOW | test/common/testlib.py | 952 | CODE | |
| LOW | test/common/testlib.py | 1506 | CODE | |
| LOW | test/common/testlib.py | 2344 | 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 | 488 | CODE | |
| LOW | src/cockpit/packages.py | 538 | CODE | |
| LOW | src/cockpit/packages.py | 572 | CODE | |
| LOW | src/cockpit/packages.py | 619 | 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 | 335 | CODE | |
| LOW | src/cockpit/beiboot.py | 424 | CODE | |
| LOW | src/cockpit/misc/bootloader.py | 14 | CODE | |
| LOW | src/cockpit/misc/print.py | 174 | CODE | |
| LOW | src/cockpit/misc/print.py | 190 | 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 | files.js | 181 | from: path.resolve(nodedir, fontsdir, subdir, 'RedHat' + name + '.woff2'), | COMMENT |
| LOW | packit.yaml | 81 | owner: "@cockpit" | COMMENT |
| LOW | test/common/test-functions.js | 401 | const elts = window.ph_select(sel); | COMMENT |
| LOW | test/common/storagelib.py | 541 | # The kernel command line is changed to use the new root | 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 | 1421 | rect["type"] = "box" | COMMENT |
| LOW | test/common/testlib.py | 1461 | # be perfectly identical. They might differ in the | 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 | pkg/networkmanager/interfaces.js | 1081 | COMMENT | |
| LOW | pkg/storaged/pages.jsx | 421 | // another table column already. | COMMENT |
| LOW | pkg/storaged/utils.js | 381 | let is_contained; | 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 | 321 | border-block-start: var(--pf-t--global--border--width--100) solid var(--pf-t--global--border--color--default); | 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 |
| LOW | src/ws/test-server.c | 1 | /* | COMMENT |
| LOW | src/ws/mock-auth-command.c | 1 | /* | COMMENT |
| LOW | src/ws/cockpitwebresponse.c | 1 | /* | COMMENT |
| 8 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 | 1299 | def _set_window_size(self, width: int, height: int) -> None: | CODE |
| LOW⚡ | test/common/testlib.py | 1303 | def _set_emulated_media_theme(self, name: str) -> None: | CODE |
| LOW⚡ | test/common/testlib.py | 1308 | def _set_direction(self, direction: str) -> None: | CODE |
| LOW⚡ | test/common/testlib.py | 1315 | 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 | 625 | def set_val(self, selector: str, val: object) -> None: | CODE |
| LOW | test/common/testlib.py | 653 | def set_attr(self, selector: str, attr: str, val: object) -> None: | CODE |
| LOW | test/common/testlib.py | 672 | def set_checked(self, selector: str, val: bool) -> None: | CODE |
| LOW | test/common/testlib.py | 777 | 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/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 | 261 | 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 | 353 | def step() -> bool: | CODE |
| LOW | test/common/storagelib.py | 399 | except Exception: | CODE |
| MEDIUM | test/common/testlib.py | 2791 | print(f"Error: '{name}' does not match a test", file=sys.stderr) | CODE |
| LOW | test/common/testlib.py | 2717 | except Exception: | CODE |
| LOW | test/common/testlib.py | 2934 | 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 | 1021 | // 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 | 1033 | CODE | |
| LOW | test/common/testlib.py | 1347 | CODE | |
| LOW | test/common/testlib.py | 1506 | CODE | |
| LOW | test/common/testlib.py | 2030 | CODE | |
| LOW | test/common/netlib.py | 200 | CODE | |
| LOW | test/common/packagelib.py | 145 | 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 | 1531 | # If the page overflows make sure to not show a scrollbar | COMMENT |