Provides a simple way to run Selenium Grid with Chrome, Firefox, and Edge using Container Platform, making it easier to perform browser automation at scale
This report summarizes scanner evidence for SeleniumHQ/docker-selenium, a Go project with 8,657 GitHub stars. SynthScan examined 123,223 lines of code across 3205 source files, recording 398 pattern matches distributed across 16 syntactic categories. The legacy adjusted pattern signal is 4.6 (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? 282 finding(s).
Are imports declared and package/API names verified? 16 finding(s).
Are wrappers, guards, and repeated structures necessary? 275 finding(s).
Which changes need focused human review? 398 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 398 distinct pattern matches across 16 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 |
|---|---|---|---|---|
| LOW | tests/test.py | 279 | def set_from_image_base_for_standalone(container): | CODE |
| LOW | tests/test.py | 293 | def standalone_browser_container_matches(container): | CODE |
| LOW | …ackward-compatible/fetch_chrome_for_testing_version.py | 10 | def fetch_chrome_for_testing_versions(): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 37 | def test_deletes_a_closed_pull_requests_images(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 41 | def test_keeps_an_open_pull_requests_images(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 45 | def test_keeps_a_manifest_two_pull_requests_share_when_one_is_open(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 50 | def test_deletes_a_shared_manifest_once_every_sharer_is_closed(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 54 | def test_never_deletes_what_main_points_at(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 58 | def test_never_deletes_a_release_tag_even_beside_a_pr_tag(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 62 | def test_never_deletes_latest_or_nightly(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 67 | def test_ignores_versions_with_no_pr_tag(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 71 | def test_targeting_one_pull_request_leaves_the_others(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 75 | def test_main_protection_applies_per_image_not_globally(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 103 | def test_removes_a_trunk_manifest_older_than_main(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 107 | def test_never_removes_what_main_points_at(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 111 | def test_leaves_a_manifest_newer_than_main_alone(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 116 | def test_leaves_pull_request_manifests_to_the_other_sweep(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 120 | def test_never_removes_a_release_or_floating_tag(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 125 | def test_does_nothing_when_there_is_no_main(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 129 | def test_removes_several_superseded_manifests(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 137 | def test_skips_an_untagged_manifest(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 143 | def test_matches_a_real_source_hash(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 146 | def test_rejects_anything_that_is_not_a_hex_hash(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 151 | def test_rejects_release_and_floating_tags(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 156 | def test_accepts_the_completeness_marker(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 163 | def test_still_rejects_the_per_architecture_tags(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 195 | def test_removes_earlier_builds_of_the_same_pull_request(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 203 | def test_never_removes_the_currently_aliased_build(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 207 | def test_never_removes_main_or_a_release_tag(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 212 | def test_respects_the_age_guard(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 217 | def test_skips_a_manifest_with_no_creation_date(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 221 | def test_an_untagged_manifest_is_left_alone(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 229 | def test_both_marker_forms_yield_the_pull_request_number(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 233 | def test_a_marker_suffix_must_be_a_hex_hash(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 237 | def test_closing_a_pull_request_now_reaches_every_build_it_made(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 247 | def test_an_open_pull_request_keeps_all_of_its_builds(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 254 | def test_a_manifest_two_pull_requests_used_survives_while_either_is_open(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 260 | def test_targeting_one_pull_request_still_reaches_its_older_builds(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 312 | def test_the_index_itself_is_not_a_child(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 315 | def test_a_pr_alias_reveals_the_hash_it_belongs_to(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 323 | def test_an_index_takes_its_architecture_children_with_it(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 333 | def test_children_of_another_hash_are_left_alone(self): | CODE |
| LOW⚡ | tests/ci/test_cleanup_pr_images.py | 340 | def test_a_refused_delete_is_reported_rather_than_raised(self): | CODE |
| LOW | tests/ci/test_cleanup_pr_images.py | 300 | def test_groups_children_under_the_hash_of_their_index(self): | CODE |
| LOW | tests/ci/test_cleanup_pr_images.py | 351 | def test_the_children_no_sweep_could_previously_see_are_collected(self): | CODE |
| LOW | tests/ci/test_cleanup_pr_images.py | 365 | def test_a_child_is_never_deleted_while_its_index_is_too_new(self): | CODE |
| LOW | tests/ci/test_cleanup_pr_images.py | 378 | def test_a_release_tag_still_protects_the_whole_family(self): | CODE |
| LOW | tests/ci/test_cleanup_pr_images.py | 390 | def test_a_child_shared_with_another_index_is_left_alone(self): | CODE |
| LOW | tests/charts/templates/test.py | 48 | def test_ingress_traefik_annotations(self): | CODE |
| LOW | tests/charts/templates/test.py | 80 | def test_ingress_traefik_servers_transport(self): | CODE |
| LOW | tests/charts/templates/test.py | 123 | def test_sub_path_append_to_node_grid_url_and_basic_auth_should_not_include(self): | CODE |
| LOW | tests/charts/templates/test.py | 134 | def test_sub_path_set_to_grid_env_var(self): | CODE |
| LOW | tests/charts/templates/test.py | 146 | def test_graphql_url_for_autoscaling_constructed_without_basic_auth_in_url(self): | CODE |
| LOW | tests/charts/templates/test.py | 159 | def test_distributor_new_session_thread_pool_size(self): | CODE |
| LOW | tests/charts/templates/test.py | 173 | def test_disable_ui_set_to_grid_env_var(self): | CODE |
| LOW | tests/charts/templates/test.py | 185 | def test_log_level_set_to_logging_config_map(self): | CODE |
| LOW | tests/charts/templates/test.py | 217 | def test_node_port_set_when_service_type_is_node_port(self): | CODE |
| LOW | tests/charts/templates/test.py | 235 | def test_all_metadata_name_is_prefixed_with_release_name(self): | CODE |
| LOW | tests/charts/templates/test.py | 245 | def test_extra_script_import_to_node_configmap(self): | CODE |
| LOW | tests/charts/templates/test.py | 258 | def test_extra_script_import_to_uploader_configmap(self): | CODE |
| 115 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .monitoring/exporter/graphql.go | 70 | // ── GraphQL wire types ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .monitoring/exporter/graphql.go | 137 | // ── Capability / stereotype parsing ────────────────────────────────────────── | COMMENT |
| MEDIUM | .monitoring/exporter/graphql.go | 165 | // ── HTTP client ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .monitoring/exporter/collector_test.go | 17 | // ── test helpers ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | .monitoring/exporter/collector_test.go | 185 | // ── tests ───────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | Video/entry_point.sh | 2 | #============================================== | COMMENT |
| MEDIUM | Video/entry_point.sh | 5 | #============================================== | COMMENT |
| MEDIUM | NodeChrome/install-chromedriver.sh | 3 | #============================================ | COMMENT |
| MEDIUM | NodeChrome/install-chromedriver.sh | 5 | #============================================ | COMMENT |
| MEDIUM | NodeChrome/install-chromedriver.sh | 19 | #============================================ | COMMENT |
| MEDIUM | NodeChrome/resolve-chromedriver-source.sh | 3 | #============================================ | COMMENT |
| MEDIUM | NodeChrome/resolve-chromedriver-source.sh | 5 | #============================================ | COMMENT |
| MEDIUM | NodeChrome/resolve-chromedriver-source.sh | 25 | #============================================ | COMMENT |
| MEDIUM⚡ | NodeChrome/update-chrome-components.sh | 3 | #============================================ | COMMENT |
| MEDIUM⚡ | NodeChrome/update-chrome-components.sh | 5 | #============================================ | COMMENT |
| MEDIUM⚡ | NodeChrome/update-chrome-components.sh | 8 | #============================================ | COMMENT |
| MEDIUM⚡ | NodeChrome/install-chrome-for-testing.sh | 3 | #============================================ | COMMENT |
| MEDIUM⚡ | NodeChrome/install-chrome-for-testing.sh | 5 | #============================================ | COMMENT |
| MEDIUM⚡ | NodeChrome/install-chrome-for-testing.sh | 11 | #============================================ | COMMENT |
| MEDIUM⚡ | NodeChrome/install-chrome.sh | 3 | #============================================ | COMMENT |
| MEDIUM⚡ | NodeChrome/install-chrome.sh | 5 | #============================================ | COMMENT |
| MEDIUM⚡ | NodeChrome/install-chrome.sh | 10 | #============================================ | COMMENT |
| MEDIUM | Base/entry_point.sh | 4 | #============================================== | COMMENT |
| MEDIUM | Base/entry_point.sh | 7 | #============================================== | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | Video/video_graphQLQuery.py | 125 | except Exception: | CODE |
| HIGH | Video/video_graphQLQuery.py | 108 | except Exception: | CODE |
| HIGH | Video/video_graphQLQuery.py | 104 | except Exception: | CODE |
| HIGH | Video/video_service.py | 385 | except (URLError, OSError, json.JSONDecodeError, ValueError): | CODE |
| HIGH | Video/video_service.py | 424 | except asyncio.TimeoutError: | CODE |
| HIGH | Video/video_service.py | 1029 | except Exception: | CODE |
| HIGH | Video/video_service.py | 1033 | except asyncio.TimeoutError: | CODE |
| HIGH | Video/video_service.py | 694 | except ValueError: | CODE |
| HIGH | Video/video_service.py | 1127 | except Exception: | CODE |
| HIGH | Video/video_service.py | 583 | except (BrokenPipeError, ConnectionResetError): | CODE |
| HIGH | Video/video_nodeQuery.py | 46 | except (json.JSONDecodeError, AttributeError): | CODE |
| HIGH | Video/video_recorder.py | 38 | except (OSError, ValueError, FileNotFoundError): | CODE |
| HIGH | Video/video_recorder.py | 95 | except KeyboardInterrupt: | CODE |
| HIGH | Video/video_recorder.py | 108 | except ProcessLookupError: | CODE |
| HIGH | tests/test.py | 151 | except NotFound: | CODE |
| HIGH | tests/test.py | 192 | except NotFound: | CODE |
| HIGH | scripts/dockerhub_description/update_description.py | 221 | except urllib.error.HTTPError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | README.md | 918 | except Exception as exc: | CODE |
| LOW | Video/video_graphQLQuery.py | 86 | except Exception: | CODE |
| LOW | Video/video_graphQLQuery.py | 88 | except Exception: | CODE |
| LOW | Video/video_graphQLQuery.py | 104 | except Exception: | CODE |
| LOW | Video/video_graphQLQuery.py | 108 | except Exception: | CODE |
| LOW | Video/video_graphQLQuery.py | 125 | except Exception: | CODE |
| LOW | Video/video_graphQLQuery.py | 150 | except Exception: | CODE |
| LOW | Video/video_service.py | 419 | except Exception as e: | CODE |
| LOW | Video/video_service.py | 510 | except Exception as e: | CODE |
| LOW | Video/video_service.py | 628 | except Exception as e: | CODE |
| LOW | Video/video_service.py | 702 | except Exception as e: | CODE |
| LOW | Video/video_service.py | 741 | except Exception as e: | CODE |
| LOW | Video/video_service.py | 847 | except Exception as exc: | CODE |
| LOW | Video/video_service.py | 1029 | except Exception: | CODE |
| LOW | Video/video_service.py | 1127 | except Exception: | CODE |
| LOW | Video/video_service.py | 1143 | except Exception as e: | CODE |
| LOW | tests/test.py | 27 | except Exception as e: | CODE |
| LOW | tests/test.py | 164 | except Exception as e: | CODE |
| LOW | tests/test.py | 169 | except Exception as e: | CODE |
| LOW | tests/test.py | 321 | except Exception as e: | CODE |
| LOW | tests/test.py | 358 | except Exception as e: | CODE |
| LOW | tests/test.py | 369 | except Exception as e: | CODE |
| MEDIUM | tests/build-backward-compatible/add_selenium_version.py | 18 | print(f"Error: Version '{version}' is not in the correct format (e.g., 4.36.0)") | CODE |
| MEDIUM⚡ | tests/build-backward-compatible/add_selenium_version.py | 39 | print(f"Error reading YAML file: {e}") | CODE |
| MEDIUM | tests/charts/templates/test.py | 19 | print("Error in configuration file: ", error) | CODE |
| MEDIUM | tests/charts/templates/test.py | 12 | def load_template(yaml_file): | CODE |
| LOW | tests/charts/templates/test.py | 586 | except Exception as e: | CODE |
| MEDIUM⚡ | tests/charts/templates/test_scaled_job.py | 18 | print("Error in configuration file: ", error) | CODE |
| LOW | tests/charts/templates/test_scaled_job.py | 43 | except Exception as e: | CODE |
| MEDIUM | tests/charts/templates/test_scaled_job.py | 11 | def load_template(yaml_file): | CODE |
| LOW | tests/SmokeTests/__init__.py | 53 | except Exception as e: | CODE |
| LOW | tests/AutoscalingTests/common.py | 111 | except Exception as e: | CODE |
| LOW | tests/SeleniumTests/__init__.py | 186 | except Exception as e: | CODE |
| LOW | tests/SeleniumTests/__init__.py | 247 | except Exception as e: | CODE |
| LOW | tests/SeleniumTests/__init__.py | 297 | except Exception as e: | CODE |
| LOW | tests/SeleniumTests/__init__.py | 352 | except Exception as e: | CODE |
| LOW | tests/SeleniumTests/__init__.py | 400 | except Exception as e: | CODE |
| LOW⚡ | tests/SeleniumTests/__init__.py | 413 | except Exception as e: | CODE |
| MEDIUM | tests/SeleniumTests/__init__.py | 193 | def setUp(self): | CODE |
| MEDIUM | tests/SeleniumTests/__init__.py | 254 | def setUp(self): | CODE |
| MEDIUM | tests/SeleniumTests/__init__.py | 304 | def setUp(self): | CODE |
| LOW | scripts/ci/cleanup_pr_images.py | 350 | except Exception as error: # noqa: BLE001 - one bad package must not stop the sweep | CODE |
| LOW | scripts/ci/cleanup_pr_images.py | 361 | except Exception as error: # noqa: BLE001 - one bad package must not stop the sweep | CODE |
| LOW | scripts/ci/cleanup_pr_images.py | 373 | except Exception as error: # noqa: BLE001 - one bad package must not stop the sweep | CODE |
| LOW | scripts/scan_images/resolve_images.py | 65 | except Exception as error: # noqa: BLE001 - a registry blip must not empty the matrix | CODE |
| MEDIUM⚡ | scripts/release_preparation/update_versions.py | 103 | print("Error: Could not locate Makefile", file=sys.stderr) | CODE |
| MEDIUM⚡ | scripts/release_preparation/update_versions.py | 108 | print(f"Error: {makefile_path} does not exist", file=sys.stderr) | CODE |
| MEDIUM⚡ | scripts/release_preparation/update_versions.py | 114 | print(f"Error: {exc}", file=sys.stderr) | CODE |
| LOW | scripts/dockerhub_description/update_description.py | 265 | except Exception as error: # noqa: BLE001 - one bad repo must not hide the other 29 | CODE |
| LOW | scripts/dockerhub_description/resolve_versions.py | 145 | except Exception as error: # noqa: BLE001 - network failure must be reported, not fatal-by-traceback | CODE |
| LOW⚡ | scripts/generate_list_env_vars/extract_env.py | 22 | except Exception as e: | CODE |
| MEDIUM⚡ | scripts/generate_list_env_vars/extract_env.py | 23 | print(f"Error reading file {file_path}: {e}") | CODE |
| LOW | scripts/generate_list_env_vars/extract_env.py | 40 | except Exception as e: | CODE |
| MEDIUM | scripts/generate_list_env_vars/extract_env.py | 41 | print(f"Error reading file {file_path}: {e}") | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docker-compose-v3-node-all-browsers.yml | 21 | # - SE_NODE_STEREOTYPE_CHROME= | COMMENT |
| LOW | .monitoring/exporter/collector_test.go | 61 | // whole tree on every release with unescaped `sed` substitutions whose patterns | COMMENT |
| LOW | NodeKubernetes/config.toml | 1 | [kubernetes] | COMMENT |
| LOW | NodeKubernetes/config.toml | 21 | # image tag which has video recorder/uploader inline). | COMMENT |
| LOW | NodeKubernetes/config.toml | 41 | # resource-limits = "cpu=1,memory=1Gi" | COMMENT |
| LOW | .keda-external-scaler/internal/gridscaler/server.go | 81 | return status.Error(codes.Unimplemented, "StreamIsActive is not supported; use KEDA trigger type 'external', not 'exter | COMMENT |
| LOW | NodeChrome/install-chromedriver.sh | 1 | #!/bin/bash | COMMENT |
| LOW | NodeChrome/resolve-chromedriver-source.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | NodeChrome/install-chrome-for-testing.sh | 1 | #!/bin/bash | COMMENT |
| LOW | NodeChrome/install-chrome.sh | 1 | #!/bin/bash | COMMENT |
| LOW | tests/docker-compose-v3-test-parallel.yml | 121 | timeout: 30s | COMMENT |
| LOW | tests/docker-compose-v3-test-parallel.yml | 141 | # - SELENIUM_GRID_PROTOCOL=${SELENIUM_GRID_PROTOCOL} | COMMENT |
| LOW | tests/charts/ci/base-recorder-values.yaml | 1 | # Use different container sidecar for uploader | COMMENT |
| LOW | …/charts/ci/multiple-nodes-platform-version-values.yaml | 1 | # Test-only overlay for TEST_MULTIPLE_VERSIONS scale testing (see chart_test.sh). | COMMENT |
| LOW | charts/selenium-grid/multiple-nodes-platform-relay.yaml | 1 | # Utilize Relay Node to set up hybrid Autoscaling Grid with using on-premise and test cloud provider (e.g. SauceLabs, Br | COMMENT |
| LOW | charts/selenium-grid/multiple-nodes-platform-relay.yaml | 61 | enabled: false | COMMENT |
| LOW | charts/selenium-grid/multiple-nodes-platform.yaml | 1 | # In this case, each browser node has 2 scaler triggers, one for any platform and one for specific Linux. | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 41 | type: Recreate | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 61 | # -- Specify number of max sessions per node. Can be overridden by individual component (this is also set to scaler | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 861 | # -- Custom annotations for Session Queue service | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 881 | # name: secret-name | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 981 | # valueFrom: | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 1121 | setReplicasInSpec: true | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 1181 | # When enabled, the chart deploys the external scaler (Deployment + Service) and switches node triggers to | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 1321 | ports: [] | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 1361 | # hostnames: | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 1381 | # name: mysecret | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 1441 | lifecycle: {} | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 1521 | # -- Image pull secret (see https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/) | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 1561 | securityContext: {} | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 1581 | extraEnvFrom: [] | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 1641 | terminationGracePeriodSeconds: 30 | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 1721 | # -- Image of edge nodes (this overwrites global.seleniumGrid.nodesImageTag) | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 1761 | limits: | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 1781 | # secretKeyRef: | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 1841 | periodSeconds: 10 | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 1901 | # It should be set using the --set-json option | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 1961 | # -- Limit resources for relay-node pods | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 1981 | extraEnvironmentVariables: [] | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 2001 | # -- Set specific loadBalancerIP when serviceType is LoadBalancer (see https://kubernetes.io/docs/concepts/services- | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 2061 | extraVolumes: [] | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 2101 | # It should be set using the --set-json option | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 2141 | # -- For environment variables used in uploader which contains sensitive information, store in secret and refer envF | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 2181 | # -- Custom environment variables by sourcing entire configMap, Secret, etc. for video recorder. | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 2201 | lifecycle: {} | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 2321 | # -- Set specific externalName when serviceType is ExternalName (see https://kubernetes.io/docs/concepts/services-netw | COMMENT |
| LOW | charts/selenium-grid/values.yaml | 2341 | # -- Extra volumes for video recorder pod | COMMENT |
| LOW | .github/workflows/scan-images.yml | 1 | name: Scan image vulnerabilities | COMMENT |
| LOW | .github/workflows/build-images.yml | 1 | name: Build images once | COMMENT |
| LOW | .github/workflows/build-images.yml | 121 | fi | COMMENT |
| LOW | .github/workflows/build-images.yml | 141 | # images; keying only on the files would let a pull request's | COMMENT |
| LOW | .github/workflows/build-images.yml | 181 | # trunk. On trunk this is exactly the promotion case: the merge reuses | COMMENT |
| LOW | .github/workflows/build-images.yml | 361 | uses: actions/checkout@main | COMMENT |
| LOW | .github/workflows/cleanup-pr-images.yml | 1 | name: Clean up PR images | COMMENT |
| LOW | .github/workflows/build-test.yml | 201 | # rather than by the build job. It retags the exact src-<hash> manifest the | COMMENT |
| LOW | NodeDocker/config.toml | 1 | [docker] | COMMENT |
| LOW | NodeDocker/config.toml | 21 | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | generate_sbom.sh | 10 | # Check if there are any images | COMMENT |
| LOW | generate_chart_changelog.sh | 28 | # Check if there are tags | COMMENT |
| LOW⚡ | Video/video_nodeQuery.py | 50 | # Check if enabling to record video; fall back to SE_RECORD_VIDEO when capability is absent | COMMENT |
| LOW⚡ | Video/video_nodeQuery.py | 58 | # Check if video file name is set via capabilities | COMMENT |
| LOW⚡ | Video/video_nodeQuery.py | 66 | # Check if append session ID to the video file name suffix | COMMENT |
| LOW⚡ | Video/video_nodeQuery.py | 75 | # Output the values for other scripts consuming | COMMENT |
| LOW | NodeBase/start-selenium-node.sh | 3 | # Check if Chrome components update is enabled | COMMENT |
| LOW⚡ | NodeChrome/update-chrome-components.sh | 12 | # Check if update is enabled via environment variable | COMMENT |
| LOW⚡ | NodeChrome/update-chrome-components.sh | 20 | # Check if we have sudo access | COMMENT |
| LOW | Standalone/start-selenium-standalone.sh | 5 | # Check if Chrome components update is enabled | COMMENT |
| LOW | …/build-backward-compatible/update_workflow_versions.py | 100 | # Check if we're in the browser-versions section | COMMENT |
| LOW⚡ | tests/build-backward-compatible/add_selenium_version.py | 42 | # Check if version already exists | COMMENT |
| LOW | charts/selenium-grid/certs/add-jks-helper.sh | 80 | # Check if the certificate is present in the cacerts file | COMMENT |
| LOW | charts/selenium-grid/certs/add-cert-helper.sh | 91 | # Check if the certificate is present in the bundle | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Video/video_graphQLQuery.py | 45 | CODE | |
| LOW | Video/video_service.py | 342 | CODE | |
| LOW | Video/video_service.py | 554 | CODE | |
| LOW | Video/video_service.py | 657 | CODE | |
| LOW | Video/video_service.py | 705 | CODE | |
| LOW | Video/video_service.py | 806 | CODE | |
| LOW | Video/video_service.py | 906 | CODE | |
| LOW | CHANGELOG/generate-matrix-readme.py | 45 | CODE | |
| LOW | CHANGELOG/generate-matrix-readme.py | 70 | CODE | |
| LOW | tests/test.py | 140 | CODE | |
| LOW | tests/test_grid_ui.py | 21 | CODE | |
| LOW | …/build-backward-compatible/update_workflow_versions.py | 91 | CODE | |
| LOW | tests/build-backward-compatible/fetch_version.py | 31 | CODE | |
| LOW | tests/charts/templates/test.py | 134 | CODE | |
| LOW | tests/charts/templates/test.py | 159 | CODE | |
| LOW | tests/charts/templates/test.py | 173 | CODE | |
| LOW | tests/charts/templates/test.py | 185 | CODE | |
| LOW | tests/charts/templates/test.py | 280 | CODE | |
| LOW | tests/charts/templates/test.py | 431 | CODE | |
| LOW | tests/charts/templates/test.py | 478 | CODE | |
| LOW | tests/SeleniumTests/__init__.py | 378 | CODE | |
| LOW | scripts/ci/cleanup_pr_images.py | 271 | CODE | |
| LOW | scripts/scan_images/summarise_scout.py | 40 | CODE | |
| LOW | scripts/generate_list_env_vars/extract_env.py | 8 | CODE | |
| LOW | scripts/generate_list_env_vars/extract_env.py | 26 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | tests/dockerhub_description/test_update_description.py | 90 | \tcd ./Hub && docker buildx build -t $(NAME)/hub:$(TAG_VERSION) . | CODE |
| HIGH⚡ | tests/dockerhub_description/test_update_description.py | 93 | \tcd ./Video && docker buildx build -t $(NAME)/video:$(FFMPEG_TAG_VERSION) . | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Video/video_graphQLQuery.py | 3 | CODE | |
| LOW | Video/video_graphQLQuery.py | 9 | CODE | |
| LOW | …ackward-compatible/fetch_chrome_for_testing_version.py | 1 | CODE | |
| LOW | tests/ci/test_cleanup_pr_images.py | 2 | CODE | |
| LOW | tests/SmokeTests/__init__.py | 3 | CODE | |
| LOW | tests/AutoscalingTests/common.py | 6 | CODE | |
| LOW | tests/AutoscalingTests/common.py | 9 | CODE | |
| LOW | tests/AutoscalingTests/test_scale_chaos.py | 1 | CODE | |
| LOW | tests/AutoscalingTests/test_scale_chaos.py | 7 | CODE | |
| LOW | tests/AutoscalingTests/test_scale_chaos.py | 9 | CODE | |
| LOW | tests/AutoscalingTests/test_scale_up.py | 1 | CODE | |
| LOW | tests/AutoscalingTests/test_scale_up.py | 7 | CODE | |
| LOW | tests/AutoscalingTests/test_scale_up.py | 9 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | generate_chart_changelog.sh | 56 | # Create a temporary file | COMMENT |
| MEDIUM⚡ | tests/build-backward-compatible/add_selenium_version.py | 47 | # Create the new version entry | COMMENT |
| MEDIUM | charts/selenium-grid/certs/gen-cert-helper.sh | 109 | # Create the specified directory if it does not exist | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | README.md | 2074 | at okhttp3.internal.connection.okhttps.internal.connection.RealConnection.connect(RealConnection.kt:207) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | Video/video_service.py | 59 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/test.py | 50 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/build-backward-compatible/builder.py | 7 | logger = logging.getLogger(__name__) | CODE |
| LOW | tests/charts/templates/test.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | tests/charts/templates/test_scaled_job.py | 8 | logger = logging.getLogger(__name__) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | Video/video.sh | 224 | # which handles it uniformly for both shell and event-driven modes. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | CHANGELOG/generate-matrix-readme.py | 192 | # Step 1: Archive old versions | STRING |
| LOW⚡ | CHANGELOG/generate-matrix-readme.py | 197 | # Step 2: Scan changelog directories | STRING |
| LOW⚡ | CHANGELOG/generate-matrix-readme.py | 203 | # Step 3: Generate README | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | CHANGELOG/generate-matrix-readme.py | 192 | # Step 1: Archive old versions | STRING |
| LOW⚡ | CHANGELOG/generate-matrix-readme.py | 197 | # Step 2: Scan changelog directories | STRING |
| LOW⚡ | CHANGELOG/generate-matrix-readme.py | 203 | # Step 3: Generate README | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/generate_list_env_vars/extract_env.py | 73 | # Example usage | COMMENT |