Repository Analysis

emqx/emqx

The most scalable and reliable MQTT broker for AI, IoT, IIoT and connected vehicles

6.7 Low AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of emqx/emqx, a Erlang project with 16,512 GitHub stars. SynthScan v2.0 examined 78,909 lines of code across 1419 source files, recording 352 pattern matches distributed across 16 syntactic categories. The overall adjusted score of 6.7 places this repository in the Low AI signal 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).

6.7
Adjusted Score
6.7
Raw Score
100%
Time Factor
2026-07-14
Last Push
16.5K
Stars
Erlang
Language
78.9K
Lines of Code
1.4K
Files
352
Pattern Hits
2026-07-14
Scan Date
0.00
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

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.

Severity Breakdown

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.

CRITICAL 0HIGH 5MEDIUM 85LOW 262

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 352 distinct pattern matches across 16 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.

Decorative Section Separators72 hits · 222 pts
SeverityFileLineSnippetContext
MEDIUM.ci/docker-compose-file/dex/haproxy.cfg1##----------------------------------------------------------------COMMENT
MEDIUM.ci/docker-compose-file/dex/haproxy.cfg3##----------------------------------------------------------------COMMENT
MEDIUM.ci/docker-compose-file/dex/haproxy.cfg17##----------------------------------------------------------------COMMENT
MEDIUM.ci/docker-compose-file/dex/haproxy.cfg19##----------------------------------------------------------------COMMENT
MEDIUM.ci/docker-compose-file/dex/haproxy.cfg36##----------------------------------------------------------------COMMENT
MEDIUM.ci/docker-compose-file/dex/haproxy.cfg38##----------------------------------------------------------------COMMENT
MEDIUM.ci/docker-compose-file/haproxy/haproxy.cfg1##----------------------------------------------------------------COMMENT
MEDIUM.ci/docker-compose-file/haproxy/haproxy.cfg3##----------------------------------------------------------------COMMENT
MEDIUM.ci/docker-compose-file/haproxy/haproxy.cfg17##----------------------------------------------------------------COMMENT
MEDIUM.ci/docker-compose-file/haproxy/haproxy.cfg19##----------------------------------------------------------------COMMENT
MEDIUM.ci/docker-compose-file/haproxy/haproxy.cfg30##----------------------------------------------------------------COMMENT
MEDIUM.ci/docker-compose-file/haproxy/haproxy.cfg32##----------------------------------------------------------------COMMENT
MEDIUM.ci/docker-compose-file/haproxy/haproxy.cfg45##----------------------------------------------------------------COMMENT
MEDIUM.ci/docker-compose-file/haproxy/haproxy.cfg47##----------------------------------------------------------------COMMENT
MEDIUM.ci/docker-compose-file/haproxy/haproxy.cfg80##----------------------------------------------------------------COMMENT
MEDIUM.ci/docker-compose-file/haproxy/haproxy.cfg82##----------------------------------------------------------------COMMENT
MEDIUMplugins/emqx_agent/demo_builder_init.py69# ── HTTP helpers ──────────────────────────────────────────────────────────────COMMENT
MEDIUMplugins/emqx_agent/demo_builder_init.py117# ── Cleanup ───────────────────────────────────────────────────────────────────COMMENT
MEDIUMplugins/emqx_agent/demo_builder_init.py151# ── Connections ────────────────────────────────────────────────────────────────COMMENT
MEDIUMplugins/emqx_agent/demo_builder_init.py176# ── AI providers ───────────────────────────────────────────────────────────────COMMENT
MEDIUMplugins/emqx_agent/demo_builder_init.py195# ── Tools ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUMplugins/emqx_agent/demo_builder_init.py225# ── Builder prompt ─────────────────────────────────────────────────────────────COMMENT
MEDIUMplugins/emqx_agent/demo_builder_init.py451# ── Pipeline ───────────────────────────────────────────────────────────────────STRING
MEDIUMplugins/emqx_agent/demo_builder_init.py497# ── Database setup ────────────────────────────────────────────────────────────STRING
MEDIUMplugins/emqx_agent/demo_builder_init.py535# ── Main ───────────────────────────────────────────────────────────────────────STRING
MEDIUMplugins/emqx_agent/demo_apple_box_init.py105# ── HTTP helpers ──────────────────────────────────────────────────────────────COMMENT
MEDIUMplugins/emqx_agent/demo_apple_box_init.py162# ── Database setup ─────────────────────────────────────────────────────────────COMMENT
MEDIUMplugins/emqx_agent/demo_apple_box_init.py217# ── Tools ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUMplugins/emqx_agent/priv/builder.html361 // ── Connection ──────────────────────────────────────────────────────────────COMMENT
MEDIUMplugins/emqx_agent/priv/builder.html420 // ── Sending ──────────────────────────────────────────────────────────────────COMMENT
MEDIUMplugins/emqx_agent/priv/builder.html445 // ── Rendering ────────────────────────────────────────────────────────────────COMMENT
MEDIUMplugins/emqx_agent/priv/builder.html535 // ── Misc ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_docker.sh80## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_docker.sh82## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_docker.sh96## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_docker.sh98## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_docker.sh140## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_docker.sh142## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_docker.sh170## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_docker.sh172## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_docker.sh186## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_docker.sh188## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_docker.sh193## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_docker.sh195## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_docker.sh200## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_docker.sh202## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_docker.sh210## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_docker.sh212## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_docker.sh231## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_docker.sh233## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_bench.sh102## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_bench.sh104## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_bench.sh116## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_bench.sh118## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_bench.sh161## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_bench.sh163## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_bench.sh182## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_bench.sh184## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_bench.sh196## ================================================================COMMENT
MEDIUMplugins/emqx_bridge_mqtt_dq/smoke/smoke_bench.sh198## ================================================================COMMENT
12 more matches not shown…
Over-Commented Block155 hits · 112 pts
SeverityFileLineSnippetContext
LOW.ci/docker-compose-file/docker-compose-keycloak.yaml1# Keycloak IDP for SAML SSO integration testsCOMMENT
LOW.ci/docker-compose-file/docker-compose-doris-tls.yaml1## N.B.COMMENT
LOW.ci/docker-compose-file/docker-compose-otel.yaml61# driver: defaultCOMMENT
LOW.ci/docker-compose-file/docker-compose-influxdb-v3.yaml61# - subnet: 172.100.239.0/24COMMENT
LOW…i/docker-compose-file/docker-compose-influxdb-tls.yaml21 - "./influxdb/setup-v1.sh:/docker-entrypoint-initdb.d/setup-v1.sh"COMMENT
LOW…er-compose-file/docker-compose-elastic-search-tls.yaml81 - emqx_bridgeCOMMENT
LOW…er-compose-file/docker-compose-elastic-search-tls.yaml101 # test:COMMENT
LOW.ci/docker-compose-file/docker-compose-iceberg.yaml1## https://github.com/databricks/docker-spark-iceberg/blob/60754a31cbb2cea7eead2a16702f5c536a8e07ce/docker-compose.ymlCOMMENT
LOW.ci/docker-compose-file/docker-compose-iceberg.yaml21services:COMMENT
LOW…i/docker-compose-file/docker-compose-influxdb-tcp.yaml21 networks:COMMENT
LOW.ci/docker-compose-file/docker-compose-quasardb.yaml21 # docker run -it --rm --network emqx_bridge --name qdbsh bureau14/qdbsh --cluster qdb://172.100.239.30:2836COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml1# Cassandra storage config YAMLCOMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml21# on subsequent starts, this setting will apply even if initial token is set.COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml41# that do not have vnodes enabled.COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml61# are two nodes in the cluster, each delivery thread will use the maximumCOMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml81COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml101# Please increase system_auth keyspace replication factor if you use this authenticator.COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml121# - CassandraRoleManager stores role data in the system_auth keyspace. PleaseCOMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml141# Validity period for permissions cache (fetching permissions can be anCOMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml161# underlying table, it may not bring a significant reduction in theCOMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml181# compatibility include RandomPartitioner, ByteOrderedPartitioner, andCOMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml201cdc_enabled: falseCOMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml221# can still be inspected via JMX, kill the JVM for errors during startup.COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml241# stop_commitCOMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml261# Do only change the default value, if you really have more prepared statements thanCOMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml281# time it saves, so it's worthwhile to use it at large numbers.COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml301COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml321# headroom for OS block level cache. Do never allow your system to swap.COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml341#COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml361COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml381#COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml401# NOTE: If max_mutation_size_in_kb is set explicitly then commitlog_segment_size_in_mb mustCOMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml421 - class_name: org.apache.cassandra.locator.SimpleSeedProviderCOMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml441COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml461COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml481# mean larger flushes and hence less compaction, but also less concurrentCOMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml501# Total space to use for commit logs on disk.COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml521#COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml541# Total space to use for change-data-capture logs on disk.COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml561# more than this amount of memory.COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml581COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml601# Set listen_address OR listen_interface, not both. Interfaces must correspondCOMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml621# listen_on_broadcast_address: falseCOMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml641native_transport_port_ssl: 9142COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml661# Whether to start the thrift rpc server.COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml681COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml701#COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml721COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml741# and when not setting it it is defined by net.ipv4.tcp_wmemCOMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml761# responsibility.COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml781# and looking up rows withing the partition by collation columnCOMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml801# during a single long running compactions. The default is usuallyCOMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml821# When compacting, the replacement sstable(s) can be opened before theyCOMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml841# How long the coordinator should wait for read operations to completeCOMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml861# can be identified. Set this value to zero to disable slow query logging.COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml881COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml901# if you need to add another datacenter are GossipingPropertyFileSnitchCOMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml921# PropertyFileSnitch:COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml941# Proximity is determined by rack and data center, which areCOMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml961# expressed as a double which represents a percentage. Thus, a value ofCOMMENT
95 more matches not shown…
Hyper-Verbose Identifiers36 hits · 36 pts
SeverityFileLineSnippetContext
LOWplugins/emqx_unsgov/priv/ui.html1560 function flattenTreeFiltersFromChildren(children, prefix, out) {CODE
LOWplugins/emqx_agent/demo_apple_box_init.py152def deactivate_pipeline_maybe(pid: str) -> None:CODE
LOWplugins/emqx_agent/priv/ui/tools.js157export function defaultPublishInputSchema() {CODE
LOWscripts/test/test_emqx_boot.py99def test_profile_defaults_to_enterprise():CODE
LOWscripts/test/test_emqx_boot.py106def test_emqx_boot_with_invalid_node_name(emqx_bin_path):CODE
LOWscripts/test/test_emqx_boot.py124def test_hardened_rejects_insecure_cookie(emqx_bin_path):CODE
LOWscripts/test/test_emqx_boot.py140def test_node_cookie_from_file(emqx_bin_path, tmp_path):CODE
LOWscripts/test/test_emqx_boot.py162def test_node_cookie_from_missing_file_fails_fast(emqx_bin_path, tmp_path):CODE
LOWscripts/test/test_emqx_boot.py173def test_node_cookie_from_empty_file_fails_fast(emqx_bin_path, tmp_path):CODE
LOWscripts/test/test_emqx_boot.py186def test_node_cookie_from_fifo_read_once(emqx_bin_path, tmp_path):CODE
LOWscripts/test/test_emqx_boot.py249def test_invalid_security_profile_fails_fast(emqx_bin_path, security_profile):CODE
LOWscripts/test/test_emqx_boot.py262def test_corrupted_cluster_override_conf(emqx_bin_path, emqx_rel_path):CODE
LOWscripts/test/test_emqx_boot.py314def test_corrupted_cluster_hocon(emqx_bin_path, emqx_rel_path):CODE
LOWscripts/test/test_emqx_boot.py349def test_corrupted_base_hocon(emqx_bin_path, emqx_rel_path):CODE
LOWscripts/test/test_emqx_boot.py508def test_acl_file_read_permission_failure(emqx_bin_path, emqx_rel_path):CODE
LOWscripts/test/test_emqx_boot.py529def test_acl_file_corrupted_content(emqx_bin_path, emqx_rel_path):CODE
LOWscripts/test/test_emqx_boot.py575def test_feature_gate_essential(emqx_bin_path):CODE
LOWscripts/test/test_emqx_boot.py650def test_feature_gate_custom_multiple(emqx_bin_path):CODE
LOWscripts/test/test_emqx_boot.py677def test_feature_gate_bad_preset(emqx_bin_path):CODE
LOWscripts/test/test_emqx_boot.py697def test_feature_gate_bad_feature(emqx_bin_path):CODE
LOWscripts/test/test_find_apps.py261def test_change_app_used_by_others(project_root: Path, original_head: str):CODE
LOWscripts/test/test_find_apps.py285def test_change_app_used_by_all(project_root: Path, original_head: str):CODE
LOWscripts/test/test_find_apps.py311def test_change_app_used_by_none(project_root: Path, original_head: str):CODE
LOWscripts/test/test_find_apps.py331def test_change_multiple_apps(project_root: Path, original_head: str):CODE
LOWscripts/test/test_find_apps.py353def test_change_docker_plugin(project_root: Path, original_head: str):CODE
LOWscripts/test/test_find_apps.py448def test_change_github_directory(project_root: Path, original_head: str):CODE
LOWscripts/test/test_docker_entrypoint.py14def run_entrypoint_with_hostname(tmp_path, hostname_script, extra_env=None):CODE
LOWscripts/test/test_docker_entrypoint.py48def test_entrypoint_falls_back_to_interface_ip_when_hostname_resolution_fails(tmp_path):CODE
LOWscripts/test/test_docker_entrypoint.py69def test_entrypoint_fails_when_node_host_cannot_be_determined(tmp_path):CODE
LOWscripts/sbom/convert_cdx_to_spdx.py84def generate_spdx_id_from_bom_ref(bom_ref: str, component: Dict[str, Any] = None, spdx_id_prefix: str = "SPDXRef-") -> sCODE
LOWscripts/sbom/convert_cdx_to_spdx.py107def convert_component_to_spdx_package(component: Dict[str, Any], spdx_id_prefix: str = "SPDXRef-") -> Dict[str, Any]:CODE
LOWscripts/sbom/convert_cdx_to_spdx.py198def convert_cyclonedx_to_spdx(cdx_path: Path, output_path: Path = None) -> Dict[str, Any]:CODE
LOWscripts/sbom/filter_and_enrich.py65def normalize_license_to_spdx(license_text: str) -> Optional[str]:CODE
LOWscripts/sbom/filter_and_enrich.py165def parse_app_file_for_license(package_dir: Path, package_name: str) -> Optional[str]:CODE
LOWscripts/sbom/filter_and_enrich.py296def find_package_source_directory(package_name: str, deps_dir: Path) -> Optional[Path]:CODE
LOWscripts/sbom/filter_and_enrich.py422def filter_and_enrich_spdx_sbom(CODE
Excessive Try-Catch Wrapping19 hits · 30 pts
SeverityFileLineSnippetContext
LOWplugins/emqx_agent/demo_builder_init.py567 except Exception as e:STRING
LOWplugins/emqx_agent/demo_teardown.py185 except Exception as e:CODE
LOWplugins/emqx_agent/demo_teardown.py195 except Exception as e:CODE
LOWplugins/emqx_agent/demo_apple_box_init.py428 except Exception as e:CODE
LOWscripts/demo-lwm2m-blockwise-wakaama.sh435 except Exception:CODE
MEDIUMscripts/demo-lwm2m-blockwise-wakaama.sh432def on_message(client, userdata, msg):CODE
MEDIUMscripts/find_apps.py204 print("Error: --base-ref requires a value", file=sys.stderr)CODE
LOWscripts/test/test_find_apps.py34 except Exception:CODE
LOWscripts/test/test_find_apps.py137 except Exception:CODE
LOWscripts/test/test_find_apps.py159 except Exception as e:CODE
MEDIUMscripts/sbom/convert_cdx_to_spdx.py305 print(f"Error: Input file not found: {args.input}", file=sys.stderr)CODE
LOWscripts/sbom/convert_cdx_to_spdx.py315 except Exception as e:CODE
MEDIUMscripts/sbom/convert_cdx_to_spdx.py316 print(f"Error converting SBOM: {e}", file=sys.stderr)CODE
LOWscripts/sbom/filter_and_enrich.py207 except Exception as e:CODE
LOWscripts/sbom/filter_and_enrich.py291 except Exception as e:CODE
MEDIUMscripts/sbom/generate_text_report.py17 print("Error: spdx-tools is not installed. Please install it with: pip install spdx-tools", file=sys.stderr)CODE
MEDIUMscripts/sbom/generate_text_report.py66 print(f"Error: Input file not found: {args.input}", file=sys.stderr)CODE
LOWscripts/sbom/generate_text_report.py76 except Exception as e:CODE
MEDIUMscripts/sbom/generate_text_report.py77 print(f"Error: Failed to generate text report using spdx-tools: {e}", file=sys.stderr)CODE
Redundant / Tautological Comments17 hits · 30 pts
SeverityFileLineSnippetContext
LOWscripts/check-api-scopes.sh34 # Check if the file exports scopes/0COMMENT
LOWscripts/find_apps.py55 # Check if mix.exs at root is changedCOMMENT
LOWscripts/find_apps.py59 # Check if .github or .ci directories are changedCOMMENT
LOWscripts/find-suites.sh31 # Check if path prefix is presentCOMMENT
LOWscripts/find-suites.sh36 # Check if suffix is presentCOMMENT
LOWscripts/test/test_emqx_boot.py293 # Check if error message is in output before timeoutCOMMENT
LOWscripts/test/test_emqx_boot.py482 # Check if error message is in output before timeoutCOMMENT
LOWscripts/test/emqx-smoke-test.sh39## Check if EMQX is respondingCOMMENT
LOWscripts/sbom/convert_cdx_to_spdx.py52 # Check if it's already a valid SPDX identifier (contains -)COMMENT
LOWscripts/sbom/convert_cdx_to_spdx.py59 # Check if it looks like a valid SPDX ID (contains version number with dash)COMMENT
LOWscripts/sbom/generate_sbom.sh105# Check if converter script existsCOMMENT
LOWscripts/sbom/generate_sbom.sh111# Check if filter script existsCOMMENT
LOWscripts/sbom/generate_sbom.sh117# Check if report script existsCOMMENT
LOWscripts/sbom/filter_and_enrich.py345 # Check if package already has licenseCOMMENT
LOWscripts/rel/cut.sh201## Check if all upstream branches are mergedCOMMENT
LOWscripts/rel/cut.sh208## Check if the Chart versions are in syncCOMMENT
LOWscripts/rel/cut.sh211## Check if app versions are bumpedCOMMENT
AI Response Leakage4 hits · 20 pts
SeverityFileLineSnippetContext
HIGHchanges/e5.4.0.en.md46- [#11766](https://github.com/emqx/emqx/pull/11766) Implemented a preliminary Role-Based Access Control for the REST APICODE
HIGHchanges/v5.4.0.en.md46- [#11766](https://github.com/emqx/emqx/pull/11766) Implemented a preliminary Role-Based Access Control for the REST APICODE
HIGHchanges/e5.3.1.en.md12- [#11565](https://github.com/emqx/emqx/pull/11565) Upgraded jq library from v0.3.10 to v0.3.11. In this version, jq_porCODE
HIGHchanges/v5.3.1.en.md9- [#11565](https://github.com/emqx/emqx/pull/11565) Upgraded jq library from v0.3.10 to v0.3.11. In this version, jq_porCODE
Slop Phrases8 hits · 17 pts
SeverityFileLineSnippetContext
LOW.ci/docker-compose-file/clickhouse/config.xml341 Regexps are not aligned: don't forget to add ^ and $. Also don't forget to escape dot (.) metacharacterCODE
MEDIUM.ci/docker-compose-file/cassandra/cassandra_noauth.yaml38# initial_token allows you to specify tokens manually. While you can use it withCOMMENT
MEDIUM.ci/docker-compose-file/cassandra/cassandra_noauth.yaml650# you may want to adjust max_value_size_in_mb accordingly. This should be positive and less than 2048.COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra_noauth.yaml870# Warning: before enabling this property make sure to ntp is installedCOMMENT
MEDIUM.ci/docker-compose-file/cassandra/cassandra.yaml38# initial_token allows you to specify tokens manually. While you can use it withCOMMENT
MEDIUM.ci/docker-compose-file/cassandra/cassandra.yaml650# you may want to adjust max_value_size_in_mb accordingly. This should be positive and less than 2048.COMMENT
LOW.ci/docker-compose-file/cassandra/cassandra.yaml870# Warning: before enabling this property make sure to ntp is installedCOMMENT
LOWscripts/rel/cut.sh272 logwarn "Don't forget to push the tag to emqx/emqx"CODE
Deep Nesting11 hits · 11 pts
SeverityFileLineSnippetContext
LOWscripts/sca-hyg.py18CODE
LOWscripts/find_apps.py42CODE
LOWscripts/find_apps.py75CODE
LOWscripts/find_apps.py158CODE
LOWscripts/find_apps.py181CODE
LOWscripts/rerun-apps-version-check.py70CODE
LOWscripts/test/test_find_apps.py23CODE
LOWscripts/sbom/convert_cdx_to_spdx.py70CODE
LOWscripts/sbom/convert_cdx_to_spdx.py149CODE
LOWscripts/sbom/filter_and_enrich.py165CODE
LOWscripts/sbom/filter_and_enrich.py339CODE
Example Usage Blocks7 hits · 10 pts
SeverityFileLineSnippetContext
LOWplugins/emqx_acme/smoke/pebble_smoke.sh26## Usage:COMMENT
LOWplugins/emqx_acme/smoke/cluster/cluster_smoke.sh37## Usage:COMMENT
LOWplugins/emqx_bridge_mqtt_dq/smoke/smoke_docker.sh9## Usage:COMMENT
LOWplugins/emqx_bridge_mqtt_dq/smoke/smoke_bench.sh13## Usage:COMMENT
LOWscripts/sca-pkg.sh9## Usage:COMMENT
LOWscripts/publish-docker-multi-arch.sh6## Usage:COMMENT
LOWscripts/sbom/generate_sbom.sh13# Usage:COMMENT
Unused Imports9 hits · 9 pts
SeverityFileLineSnippetContext
LOW.ci/docker-compose-file/iceberg/query/server.py1CODE
LOWscripts/find_apps.py14CODE
LOWscripts/find_apps.py16CODE
LOWscripts/rerun-apps-version-check.py7CODE
LOWscripts/rerun-apps-version-check.py11CODE
LOWscripts/rerun-apps-version-check.py12CODE
LOWscripts/rerun-apps-version-check.py13CODE
LOWscripts/sbom/filter_and_enrich.py17CODE
LOWscripts/sbom/filter_and_enrich.py21CODE
Verbosity Indicators4 hits · 7 pts
SeverityFileLineSnippetContext
LOWscripts/sbom/generate_sbom.sh123# Step 1: Generate CycloneDX SBOMCOMMENT
LOWscripts/sbom/generate_sbom.sh142# Step 2: Convert CycloneDX to SPDXCOMMENT
LOWscripts/sbom/generate_sbom.sh161# Step 3: Filter SPDX SBOMCOMMENT
LOWscripts/sbom/generate_sbom.sh184# Step 4: Generate text reportCOMMENT
Structural Annotation Overuse4 hits · 7 pts
SeverityFileLineSnippetContext
LOWscripts/sbom/generate_sbom.sh123# Step 1: Generate CycloneDX SBOMCOMMENT
LOWscripts/sbom/generate_sbom.sh142# Step 2: Convert CycloneDX to SPDXCOMMENT
LOWscripts/sbom/generate_sbom.sh161# Step 3: Filter SPDX SBOMCOMMENT
LOWscripts/sbom/generate_sbom.sh184# Step 4: Generate text reportCOMMENT
Self-Referential Comments2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUM.ci/docker-compose-file/haproxy/haproxy.cfg65 # Create a stick table for session persistenceCOMMENT
MEDIUMscripts/gen-elp-build-info.sh22# This function contains the original, working logic for processing an app directory.COMMENT
Docstring Block Structure1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHscripts/sbom/generate_text_report.py22Generate human-readable text report from SPDX SBOM using spdx-tools. Args: sbom_path: Path to SPDX JSONSTRING
Fake / Example Data2 hits · 2 pts
SeverityFileLineSnippetContext
LOW.ci/docker-compose-file/dex/config.dev.yaml44 - email: "admin@example.com"CODE
LOW.ci/docker-compose-file/keycloak/realm-export.json25 "email": "admin@example.com",CODE
AI Slop Vocabulary1 hit · 2 pts
SeverityFileLineSnippetContext
LOWscripts/find_apps.py112 # App not found in deps.txt, just add the changed app itselfCOMMENT