Open-source platform for creating safe, isolated production sandboxes for API, integration, and E2E testing.
This report summarizes scanner evidence for keploy/keploy, a Go project with 18,546 GitHub stars. SynthScan examined 411,135 lines of code across 1359 source files, recording 2578 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 6.8 (Moderate 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? 2465 finding(s).
Are imports declared and package/API names verified? 8 finding(s).
Are wrappers, guards, and repeated structures necessary? 106 finding(s).
Which changes need focused human review? 2578 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 2578 distinct pattern matches across 15 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 | goreleaser.yaml | 61 | COMMENT | |
| LOW | main.go | 341 | // enterprise binary — which has its own main.go and does not import | COMMENT |
| LOW | main.go | 361 | // Banner goes to stderr so it never contaminates a piped stdout | COMMENT |
| LOW | main.go | 441 | func isFlagError(err error) bool { | COMMENT |
| LOW | main_test.go | 21 | // Creating a directory with the log file's name makes the os.OpenFile | COMMENT |
| LOW | tools/lint/no_timestamp_in_parser/analyzer.go | 1 | // Package notimestampinparser implements a go/analysis analyzer that forbids | COMMENT |
| LOW | tools/lint/no_timestamp_in_parser/analyzer.go | 101 | }) | COMMENT |
| LOW | tools/lint/no_timestamp_in_parser/analyzer_test.go | 1 | package notimestampinparser | COMMENT |
| LOW | …n_parser/testdata/src/suppressed/recorder/record_v2.go | 21 | func UptimeSinceBoot(boot time.Time) time.Duration { | COMMENT |
| LOW | config/config.go | 41 | RetryPassing bool `json:"retryPassing" yaml:"retryPassing" mapstructure:"retryPassing"` | COMMENT |
| LOW | config/config.go | 81 | ServerPort uint32 `json:"serverPort" yaml:"serverPort" mapstructure:"serverPort"` | COMMENT |
| LOW | config/config.go | 121 | COMMENT | |
| LOW | config/config.go | 141 | // builds with a registered factory respect it. Defaults to false; flip to | COMMENT |
| LOW | config/config.go | 161 | // "" or "yaml" (default) writes mocks.yaml — human-readable, the | COMMENT |
| LOW | config/config.go | 181 | // parser dispatch or mock recording. This gives a decryptable | COMMENT |
| LOW | config/config.go | 201 | COMMENT | |
| LOW | config/config.go | 221 | // | COMMENT |
| LOW | config/config.go | 241 | // CACert is an optional path to a PEM file of extra trust anchors, appended | COMMENT |
| LOW | config/config.go | 261 | // It no longer bounds the recording queue itself, so it is not the knob to | COMMENT |
| LOW | config/config.go | 281 | // than the default budget (e.g. >10 MB query results). | COMMENT |
| LOW | config/config.go | 301 | // receives every chunk. The bound is consulted only after the | COMMENT |
| LOW | config/config.go | 321 | COMMENT | |
| LOW | config/config.go | 341 | Strict bool `json:"strict" yaml:"strict" mapstructure:"strict"` | COMMENT |
| LOW | config/config.go | 401 | // It lives here, not beside the gate, because the yaml default in | COMMENT |
| LOW | config/config.go | 421 | ReplaceWith ReplaceWith `json:"replaceWith" yaml:"replaceWith" mapstructure:"replaceWith"` | COMMENT |
| LOW | config/config.go | 481 | // premise (app and recording are the same binary) invalidates a whole class | COMMENT |
| LOW | config/config.go | 541 | TestCaseIDs []string `json:"testCaseIDs" yaml:"testCaseIDs" mapstructure:"testCaseIDs"` | COMMENT |
| LOW | config/nondefault.go | 21 | COMMENT | |
| LOW | config/nondefault.go | 141 | // is safe to omit -- a changed default is a changed behaviour, which is what | COMMENT |
| LOW | config/default_test.go | 61 | if got, want := cfg.Record.RecordBuffer.QueueSize, 1024; got != want { | COMMENT |
| LOW | config/default_test.go | 81 | } | COMMENT |
| LOW | config/mock_noise_test.go | 61 | // TestYamlOnlyNoiseKeysAreNotClobberedByFlagDefaults documents the ordering | COMMENT |
| LOW | config/default.go | 81 | compareAll: false | COMMENT |
| LOW | config/default.go | 101 | testCaseNaming: descriptive | COMMENT |
| LOW | config/default.go | 121 | # if you see "mock incomplete" warnings (reason: per_conn_cap) in | COMMENT |
| LOW | config/default.go | 141 | consumerStallGrace: 2s | COMMENT |
| LOW | config/default.go | 161 | # connects to a port the recording never saw — an app whose environment | COMMENT |
| LOW | config/mock_noise.go | 1 | package config | COMMENT |
| LOW | config/loader/loader.go | 1 | // Package loader reads keploy's config file into a viper instance the way the | COMMENT |
| LOW | tests/e2e/agent-ready-gated-on-ca/run.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tests/e2e/agent-ready-gated-on-ca/docker-compose.yml | 1 | # End-to-end harness for tests/e2e/agent-ready-gated-on-ca. | COMMENT |
| LOW | tests/e2e/agent-ready-gated-on-ca/docker-compose.yml | 21 | # cold GitHub Actions runner this totals ~2–3s; 15s leaves ~12s of | COMMENT |
| LOW | tests/e2e/agent-ready-gated-on-ca/harness/main.go | 1 | // Command e2e-agent-ready-harness is a minimal wrapper around the | COMMENT |
| LOW | tests/e2e/chaos-broken-parser/chaos_test.go | 21 | // TestChaosBrokenParser invokes the harness as a subprocess with a | COMMENT |
| LOW | tests/e2e/chaos-broken-parser/e2e_tag_enabled_test.go | 1 | //go:build e2e | COMMENT |
| LOW | tests/e2e/chaos-broken-parser/docker-compose.yml | 1 | # End-to-end chaos harness for tests/e2e/chaos-broken-parser. | COMMENT |
| LOW | tests/e2e/chaos-broken-parser/docker-compose.yml | 21 | # the panic-recovery invariants this test guards. The in-process | COMMENT |
| LOW | tests/e2e/chaos-broken-parser/harness/broken_parser.go | 1 | //go:build chaos_broken_parser | COMMENT |
| LOW | tests/e2e/chaos-broken-parser/harness/broken_parser.go | 21 | // STATUS ON THIS BRANCH (feat/proxy-v2-foundation): | COMMENT |
| LOW | tests/e2e/chaos-broken-parser/harness/broken_parser.go | 41 | // integrations.POSTGRES_V2 so p.integrationsPriority lists it | COMMENT |
| LOW | tests/e2e/chaos-broken-parser/harness/broken_parser.go | 61 | "log" | COMMENT |
| LOW | …/e2e/chaos-broken-parser/harness/broken_parser_stub.go | 1 | //go:build !chaos_broken_parser | COMMENT |
| LOW | tests/e2e/chaos-broken-parser/harness/main.go | 1 | // Command chaos-broken-parser-harness drives the e2e chaos test that | COMMENT |
| LOW | tests/e2e/chaos-broken-parser/harness/main.go | 221 | // 1. Build + start a keploy proxy in-process with the chaos | COMMENT |
| LOW | tests/e2e/ca-bundle-merge/run.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | tests/e2e/ca-bundle-merge/run.sh | 61 | # it and returns empty, which would mask a clean exit as a timeout); | COMMENT |
| LOW | tests/e2e/ca-bundle-merge/run.sh | 121 | if [ "${SKIP_EGRESS_PROBE:-0}" = "1" ]; then | COMMENT |
| LOW | tests/e2e/ca-bundle-merge/docker-compose.yml | 1 | # docker-compose.yml — end-to-end reproduction of the CA-bundle-merge fix. | COMMENT |
| LOW | tests/e2e/ca-bundle-merge/setup/main.go | 1 | // Package main is a small harness that exercises pkg/agent/proxy/tls's | COMMENT |
| LOW | tests/e2e/ca-bundle-merge/setup/main.go | 41 | // for test isolation we symlink /tmp/keploy-tls -> EXPORT_PATH before | COMMENT |
| 2281 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/release.yml | 58 | # --------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/workflows/release.yml | 69 | # --------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/workflows/release.yml | 176 | # --------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/workflows/release.yml | 183 | # --------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/workflows/release.yml | 280 | # --------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/workflows/release.yml | 287 | # --------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/workflows/release.yml | 382 | # --------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/workflows/release.yml | 392 | # --------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/workflows/prepare_and_run.yml | 39 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/workflows/prepare_and_run.yml | 41 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/workflows/prepare_and_run.yml | 619 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/workflows/prepare_and_run.yml | 625 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/workflows/prepare_and_run.yml | 713 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/workflows/prepare_and_run.yml | 715 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/workflows/prepare_and_run.yml | 838 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/workflows/prepare_and_run.yml | 841 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/workflows/prepare_and_run.yml | 1055 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/workflows/prepare_and_run.yml | 1058 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/workflows/prepare_and_run.yml | 1394 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/workflows/prepare_and_run.yml | 1397 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/workflows/mysql-replay-perf.yml | 59 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/workflows/mysql-replay-perf.yml | 64 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/workflows/mysql-replay-perf.yml | 121 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/workflows/mysql-replay-perf.yml | 124 | # ------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rkflows/test_workflow_scripts/check-deprecated-deps.sh | 4 | # ------------------------------- | COMMENT |
| MEDIUM | …rkflows/test_workflow_scripts/check-deprecated-deps.sh | 7 | # ------------------------------- | COMMENT |
| MEDIUM | …test_workflow_scripts/golang/echo_sql/golang-docker.sh | 188 | # ── --keep-app-alive regression coverage (docker-compose cmdType) ─────────── | COMMENT |
| MEDIUM | …orkflow_scripts/golang/echo_sql/golang-docker-macos.sh | 10 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …orkflow_scripts/golang/echo_sql/golang-docker-macos.sh | 15 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …orkflow_scripts/golang/echo_sql/golang-docker-macos.sh | 98 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …orkflow_scripts/golang/echo_sql/golang-docker-macos.sh | 119 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …_workflow_scripts/golang/mock_mismatch/golang-linux.sh | 213 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …_workflow_scripts/golang/mock_mismatch/golang-linux.sh | 262 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …_workflow_scripts/golang/mock_mismatch/golang-linux.sh | 522 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …_workflow_scripts/golang/mock_mismatch/golang-linux.sh | 564 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …est_workflow_scripts/golang/gin_mongo/golang-docker.sh | 190 | # ── --keep-app-alive regression coverage (docker-run cmdType) ─────────────── | COMMENT |
| MEDIUM | …test_workflow_scripts/golang/gin_mongo/golang-linux.sh | 353 | # ── --keep-app-alive regression coverage ──────────────────────────────────── | COMMENT |
| MEDIUM | …rkflow_scripts/golang/gin_mongo/golang-docker-macos.sh | 24 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …rkflow_scripts/golang/gin_mongo/golang-docker-macos.sh | 28 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …rkflow_scripts/golang/gin_mongo/golang-docker-macos.sh | 48 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …rkflow_scripts/golang/gin_mongo/golang-docker-macos.sh | 50 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …rkflow_scripts/golang/gin_mongo/golang-docker-macos.sh | 59 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …rkflow_scripts/golang/gin_mongo/golang-docker-macos.sh | 61 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/golang/mux_elasticsearch_schema_noise/golang-linux.sh | 77 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/golang/mux_elasticsearch_schema_noise/golang-linux.sh | 79 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/golang/mux_elasticsearch_schema_noise/golang-linux.sh | 90 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/golang/mux_elasticsearch_schema_noise/golang-linux.sh | 92 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/golang/mux_elasticsearch_schema_noise/golang-linux.sh | 210 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/golang/mux_elasticsearch_schema_noise/golang-linux.sh | 212 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/golang/mux_elasticsearch_schema_noise/golang-linux.sh | 223 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/golang/mux_elasticsearch_schema_noise/golang-linux.sh | 225 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/golang/mux_elasticsearch_schema_noise/golang-linux.sh | 239 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/golang/mux_elasticsearch_schema_noise/golang-linux.sh | 245 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/golang/mux_elasticsearch_schema_noise/golang-linux.sh | 263 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/golang/mux_elasticsearch_schema_noise/golang-linux.sh | 281 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/golang/mux_elasticsearch_schema_noise/golang-linux.sh | 360 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/golang/mux_elasticsearch_schema_noise/golang-linux.sh | 378 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/golang/mux_elasticsearch_schema_noise/golang-linux.sh | 486 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/golang/mux_elasticsearch_schema_noise/golang-linux.sh | 507 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/golang/mux_elasticsearch_schema_noise/golang-linux.sh | 637 | # --------------------------------------------------------------------------- | COMMENT |
| 25 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/e2e/agent-ready-gated-on-ca/run.sh | 9 | # 2. After the harness flips the CAReady signal, subsequent POST | COMMENT |
| MEDIUM | tests/e2e/agent-ready-gated-on-ca/docker-compose.yml | 1 | # End-to-end harness for tests/e2e/agent-ready-gated-on-ca. | COMMENT |
| MEDIUM | tests/e2e/agent-ready-gated-on-ca/docker-compose.yml | 3 | # "agent" runs the e2e-harness built from local source. It mirrors the | COMMENT |
| MEDIUM | tests/e2e/agent-ready-gated-on-ca/docker-compose.yml | 27 | # TCP-connect healthcheck (busybox's `nc -z`) — once the harness binds | COMMENT |
| MEDIUM⚡ | tests/e2e/chaos-broken-parser/docker-compose.yml | 1 | # End-to-end chaos harness for tests/e2e/chaos-broken-parser. | COMMENT |
| MEDIUM⚡ | tests/e2e/chaos-broken-parser/docker-compose.yml | 8 | # This compose file ships only the dependencies the harness needs to | COMMENT |
| MEDIUM⚡ | tests/e2e/chaos-broken-parser/docker-compose.yml | 11 | # available for the harness to exec queries through. The harness itself | COMMENT |
| MEDIUM⚡ | tests/e2e/chaos-broken-parser/docker-compose.yml | 19 | # process by the harness. Running keploy in a sibling container would | COMMENT |
| MEDIUM⚡ | tests/e2e/chaos-broken-parser/docker-compose.yml | 23 | # tests/e2e/agent-ready-gated-on-ca/harness where the HTTP handler is | COMMENT |
| MEDIUM | tests/e2e/chaos-broken-parser/docker-compose.yml | 38 | # alongside a local Postgres doesn't collide on 5432. The harness | COMMENT |
| MEDIUM | tests/e2e/chaos-broken-parser/docker-compose.yml | 55 | # Optional sidecar the harness can `docker compose exec` into to run | COMMENT |
| MEDIUM | tests/e2e/chaos-broken-parser/docker-compose.yml | 57 | # Kept alive via `sleep infinity`; the harness exec's per-query. | COMMENT |
| MEDIUM | tests/e2e/ca-bundle-merge/docker-compose.yml | 5 | # 1. `ca-writer`: runs the Go harness that exercises setupSharedVolume in a | COMMENT |
| MEDIUM | tests/e2e/ca-bundle-merge/docker-compose.yml | 24 | # Build context is repo root so the harness can import the tls package. | COMMENT |
| MEDIUM | utils/signal_windows.go | 44 | // to handle complex shell-like logic in 'userCmd'. 'cmd /C' is the most robust default. | COMMENT |
| MEDIUM | utils/utils.go | 1707 | // It is robust against strings that contain non-template curly braces by using a strict regex. | COMMENT |
| MEDIUM | cli/watch_parent_unix.go | 39 | // client PID — rather than relying on PDEATHSIG — is robust across the `sudo` | COMMENT |
| MEDIUM | .github/workflows/go_windows.yml | 74 | # separate "fails on Windows" from "fails in my harness" and will not | COMMENT |
| MEDIUM | .github/workflows/e2e-ca-bundle-merge.yml | 5 | # the Go harness which calls SetupCA(..., isDocker=true) so | COMMENT |
| MEDIUM | .github/workflows/mysql-replay-perf.yml | 15 | # download-image composite actions and the samples-go harness pattern from | COMMENT |
| MEDIUM | …test_workflow_scripts/golang/gin_mongo/golang-linux.sh | 368 | # nothing more. Scoping to a single test-set keeps the assertion robust | COMMENT |
| MEDIUM | …/test_workflow_scripts/golang/mysql_replay_perf/run.sh | 3 | # MySQL replay-vs-record wall-clock ratio harness (REPORT-ONLY). | COMMENT |
| MEDIUM | …/test_workflow_scripts/golang/mysql_replay_perf/run.sh | 13 | # only fails on genuine harness breakage (recording produced nothing, replay | COMMENT |
| MEDIUM | …/test_workflow_scripts/golang/mysql_replay_perf/run.sh | 62 | # the ratio would be garbage — that is harness breakage (fatal), NOT a ratio | COMMENT |
| MEDIUM | …/test_workflow_scripts/golang/mysql_replay_perf/run.sh | 157 | # would abort the whole harness at the `cust=$(... json_id)` assignment and red | COMMENT |
| MEDIUM | …/test_workflow_scripts/golang/mysql_replay_perf/run.sh | 225 | # the RATIO verdict, never genuine harness breakage. | COMMENT |
| MEDIUM | …/test_workflow_scripts/golang/mysql_replay_perf/run.sh | 379 | # Fail fast on a broken recording (harness breakage, not a ratio verdict). | COMMENT |
| MEDIUM | …kflows/test_workflow_scripts/mock/mock-hangup-linux.sh | 16 | # made, the harness: | COMMENT |
| MEDIUM | …est_workflow_scripts/mock/mock-nondestructive-linux.sh | 11 | # This mirrors mock-linux.sh's embedded HTTP dependency + pytest harness, then: | COMMENT |
| MEDIUM⚡ | …hub/workflows/test_workflow_scripts/mock/mock-linux.sh | 68 | # canSkip: this harness skips a test the replay says not to run. (Test-only: | COMMENT |
| MEDIUM⚡ | …hub/workflows/test_workflow_scripts/mock/mock-linux.sh | 69 | # KEPLOY_E2E_NO_SKIP plays a harness that predates skipping.) | COMMENT |
| MEDIUM | …flows/test_workflow_scripts/mock/mock-compose-linux.sh | 98 | # The priced calls are one test, scoped the way a harness scopes it, with its | COMMENT |
| MEDIUM | pkg/util_test.go | 2235 | // Mock logic or ensure specific error condition if possible, though ReplaceGrpcHost is robust | COMMENT |
| MEDIUM | pkg/agent/proxy/util/recover_test.go | 101 | // insensitively is robust across rewording. | COMMENT |
| MEDIUM | pkg/agent/proxy/integrations/http/correlation.go | 142 | // headers. Value substitution (not a JSON path-set) is correct and robust here | COMMENT |
| MEDIUM | pkg/agent/proxy/tls/ca.go | 1137 | // byte equality is robust to Subject-name renaming between | COMMENT |
| MEDIUM | pkg/models/passthrough_test.go | 154 | // An {id, mode:"off"} override disables a built-in by identity — robust even for | COMMENT |
| MEDIUM | pkg/models/passthrough.go | 226 | // (robust to un-mirrored fields like PathPrefix). Collect those first; the | COMMENT |
| MEDIUM | pkg/service/tools/templatize.go | 1090 | // (Allow letters, digits, '_' as a simple/robust check.) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | keploy.sh | 206 | # Create the target directory in the user's home directory | COMMENT |
| MEDIUM | .github/workflows/golang_docker_windows.yml | 65 | # Create a minimal per-job gitconfig BEFORE checkout to prevent | COMMENT |
| MEDIUM | .github/workflows/prepare_and_run.yml | 1082 | # Create a minimal per-job gitconfig BEFORE checkout to prevent | COMMENT |
| MEDIUM | …ithub/workflows/test_workflow_scripts/python-docker.sh | 131 | # Define the report file for each test set | COMMENT |
| MEDIUM | …t_workflow_scripts/python/flask-secret/python-linux.sh | 214 | # Create a test config directory | COMMENT |
| MEDIUM | …orkflow_scripts/python/django_postgres/python-linux.sh | 188 | # Define the report file for each test set | COMMENT |
| MEDIUM | …test_workflow_scripts/golang/echo_sql/golang-docker.sh | 144 | # Define the report file for each test set | COMMENT |
| MEDIUM | …orkflow_scripts/golang/echo_sql/golang-docker-macos.sh | 312 | # Define the report file for each test set | COMMENT |
| MEDIUM | …est_workflow_scripts/golang/gin_mongo/golang-docker.sh | 146 | # Define the report file for each test set | COMMENT |
| MEDIUM | …t_workflow_scripts/golang/risk_profile/golang-linux.sh | 137 | # Define the expected risk for each API endpoint path | COMMENT |
| MEDIUM | …t_workflow_scripts/golang/risk_profile/golang-linux.sh | 156 | # Define the expected categories for each API endpoint path (comma-separated) | COMMENT |
| MEDIUM | …t_workflow_scripts/java/spring_petclinic/java-linux.sh | 312 | # Create a pet type | COMMENT |
| MEDIUM | …t_workflow_scripts/java/spring_petclinic/java-linux.sh | 326 | # Create an owner | COMMENT |
| MEDIUM | …t_workflow_scripts/java/spring_petclinic/java-linux.sh | 344 | # Create a pet for an owner | COMMENT |
| MEDIUM | …t_workflow_scripts/java/spring_petclinic/java-linux.sh | 362 | # Create a visit for a pet | COMMENT |
| MEDIUM | …t_workflow_scripts/java/spring_petclinic/java-linux.sh | 378 | # Create a specialty | COMMENT |
| MEDIUM | …t_workflow_scripts/java/spring_petclinic/java-linux.sh | 392 | # Create a vet | COMMENT |
| MEDIUM | …_workflow_scripts/node/express_mongoose/node-docker.sh | 126 | # Define the report file for each test set | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | keploy.sh | 199 | # Check if NO_ROOT is set to true | COMMENT |
| LOW⚡ | keploy.sh | 214 | # Check if the OS is macOS (Darwin) to set the correct source path | COMMENT |
| LOW | …workflows/test_workflow_scripts/python-docker-macos.sh | 53 | # Set trap to run cleanup on script exit (success, failure, or interrupt) | COMMENT |
| LOW | .github/workflows/test_workflow_scripts/go-retry.sh | 38 | # Set GO_RETRY_DIRECT_FROM to a number past max attempts to never go direct. | COMMENT |
| LOW | …ithub/workflows/test_workflow_scripts/python-docker.sh | 140 | # Check if any test set did not pass | COMMENT |
| LOW | …t_workflow_scripts/python/flask-secret/python-linux.sh | 23 | # Set trap to cleanup on script exit | COMMENT |
| LOW⚡ | …t_workflow_scripts/python/flask-secret/python-linux.sh | 232 | # Check if keploy.yml was created in the original location (should NOT happen) | COMMENT |
| LOW⚡ | …t_workflow_scripts/python/flask-secret/python-linux.sh | 241 | # Check if keploy.yml still exists in the moved location | COMMENT |
| LOW⚡ | …t_workflow_scripts/python/flask-secret/python-linux.sh | 249 | # Check if the test with config path was successful | COMMENT |
| LOW | …orkflow_scripts/python/django_postgres/python-linux.sh | 197 | # Check if any test set did not pass | COMMENT |
| LOW | …t_workflow_scripts/python/schema_match/python-linux.sh | 25 | # Set trap to cleanup on script exit | COMMENT |
| LOW | …test_workflow_scripts/golang/echo_sql/golang-docker.sh | 153 | # Check if any test set did not pass | COMMENT |
| LOW | …orkflow_scripts/golang/echo_sql/golang-docker-macos.sh | 77 | # Set trap to run cleanup on script exit (success, failure, or interrupt) | COMMENT |
| LOW | …orkflow_scripts/golang/echo_sql/golang-docker-macos.sh | 321 | # Check if any test set did not pass | COMMENT |
| LOW | …est_workflow_scripts/golang/gin_mongo/golang-docker.sh | 155 | # Check if any test set did not pass | COMMENT |
| LOW | …test_workflow_scripts/golang/gin_mongo/golang-linux.sh | 36 | # Check if there is a keploy-config file, if there is, delete it. | COMMENT |
| LOW | …_workflow_scripts/golang/sse_preflight/golang-linux.sh | 14 | # Check if there is a keploy-config file, if there is, delete it. | COMMENT |
| LOW | …t_workflow_scripts/golang/http_pokeapi/golang-linux.sh | 14 | # Check if there is a keploy-config file, if there is, delete it. | COMMENT |
| LOW | …_workflow_scripts/node/express_mongoose/node-docker.sh | 135 | # Check if any test set did not pass | COMMENT |
| LOW | …flows/test_workflow_scripts/node/http_br/node-linux.sh | 10 | # Check if there is a keploy-config file, if there is, delete it. | COMMENT |
| LOW | …flows/test_workflow_scripts/node/http_br/node-linux.sh | 170 | # Check if any test set did not pass | COMMENT |
| LOW | …flows/test_workflow_scripts/node/http_br/node-linux.sh | 187 | # Check if any test set did not pass | COMMENT |
| LOW | …w_scripts/performance/run-perf-test-with-validation.sh | 78 | # Check if value contains 'ms', 'µs', 'us', 's', etc. | COMMENT |
| LOW | …w_scripts/performance/run-perf-test-with-validation.sh | 147 | # Check if it's within tolerance (1% below threshold) | COMMENT |
| LOW | …w_scripts/performance/run-perf-test-with-validation.sh | 178 | # Check if k6 is available | COMMENT |
| LOW | …w_scripts/performance/run-perf-test-with-validation.sh | 216 | # Check if Keploy is still alive before starting the test | COMMENT |
| LOW | .github/actions/tester/install.sh | 45 | # Set GOCOVERDIR to the coverage directory | COMMENT |
| LOW | .github/actions/tester/install.sh | 68 | # Check if the number of directories is zero | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …ow_scripts/python/http-stale-pool-race/burst_client.py | 80 | except Exception: | CODE |
| HIGH | …rkflow_scripts/python/startup-mock-capture/upstream.py | 26 | except socket.timeout: | CODE |
| HIGH | …rkflow_scripts/python/startup-mock-capture/upstream.py | 39 | except OSError: | CODE |
| HIGH | …w_scripts/python/outbound-fin-stall/silent_upstream.py | 106 | except OSError: | CODE |
| HIGH | …w_scripts/python/outbound-fin-stall/silent_upstream.py | 85 | except socket.timeout: | CODE |
| HIGH | …w_scripts/python/outbound-fin-stall/silent_upstream.py | 65 | except OSError: | CODE |
| HIGH | …rkflow_scripts/golang/upstream_refusal/count_server.py | 45 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/actions/setup-private-parsers/action.yaml | 185 | # Step 1: PR body override. | COMMENT |
| LOW⚡ | .github/actions/setup-private-parsers/action.yaml | 200 | # Step 2: head-branch auto-pair. | COMMENT |
| LOW⚡ | .github/actions/setup-private-parsers/action.yaml | 205 | # Step 3: authoritative fall-through. Propagates errors. | COMMENT |
| LOW | pkg/util.go | 4586 | // Step 1: Check replaceWith URL | COMMENT |
| LOW | pkg/util.go | 4622 | // Step 2: ConfigHost override (only if no URL replacement match) | COMMENT |
| LOW | pkg/util.go | 4694 | // Step 5: Port mappings (highest priority, always checked) | COMMENT |
| LOW | pkg/agent/proxy/incoming/http_test.go | 524 | // Step 1: pre-fill bufio's internal buffer in a way that emulates | COMMENT |
| LOW⚡ | pkg/agent/proxy/incoming/http_test.go | 549 | // Step 2: simulate the next iteration starting AFTER the prior | COMMENT |
| LOW⚡ | pkg/agent/proxy/incoming/http_test.go | 556 | // Step 3: ReadRequest serves entirely from the prefetched buffer | COMMENT |
| LOW⚡ | pkg/agent/proxy/incoming/http_test.go | 566 | // Step 4: lastReadNano is unchanged from priorRead because no | COMMENT |
| LOW⚡ | pkg/models/postgres_v3_response_validate_test.go | 38 | // Step 1: malformed shape must serialize cleanly today — that is | COMMENT |
| LOW⚡ | pkg/models/postgres_v3_response_validate_test.go | 47 | // Step 2: malformed shape must deserialize cleanly as well. The | COMMENT |
| LOW | pkg/models/postgres_v3_response_validate_test.go | 62 | // Step 3: Validate() must reject the combination. This is the | COMMENT |
| LOW | pkg/service/tools/templatize.go | 326 | // Step 1: collect candidates. | COMMENT |
| LOW | pkg/service/tools/templatize.go | 417 | // Step 2: group by baseKey | COMMENT |
| LOW | pkg/service/tools/templatize.go | 434 | // Step 3: sort candidates in this group by producer test index (ascending) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/actions/setup-private-parsers/action.yaml | 185 | # Step 1: PR body override. | COMMENT |
| LOW⚡ | .github/actions/setup-private-parsers/action.yaml | 200 | # Step 2: head-branch auto-pair. | COMMENT |
| LOW⚡ | .github/actions/setup-private-parsers/action.yaml | 205 | # Step 3: authoritative fall-through. Propagates errors. | COMMENT |
| LOW | pkg/util.go | 4586 | // Step 1: Check replaceWith URL | COMMENT |
| LOW | pkg/util.go | 4622 | // Step 2: ConfigHost override (only if no URL replacement match) | COMMENT |
| LOW | pkg/util.go | 4694 | // Step 5: Port mappings (highest priority, always checked) | COMMENT |
| LOW | pkg/agent/proxy/incoming/http_test.go | 524 | // Step 1: pre-fill bufio's internal buffer in a way that emulates | COMMENT |
| LOW⚡ | pkg/agent/proxy/incoming/http_test.go | 549 | // Step 2: simulate the next iteration starting AFTER the prior | COMMENT |
| LOW⚡ | pkg/agent/proxy/incoming/http_test.go | 556 | // Step 3: ReadRequest serves entirely from the prefetched buffer | COMMENT |
| LOW⚡ | pkg/agent/proxy/incoming/http_test.go | 566 | // Step 4: lastReadNano is unchanged from priorRead because no | COMMENT |
| LOW⚡ | pkg/models/postgres_v3_response_validate_test.go | 38 | // Step 1: malformed shape must serialize cleanly today — that is | COMMENT |
| LOW⚡ | pkg/models/postgres_v3_response_validate_test.go | 47 | // Step 2: malformed shape must deserialize cleanly as well. The | COMMENT |
| LOW | pkg/models/postgres_v3_response_validate_test.go | 62 | // Step 3: Validate() must reject the combination. This is the | COMMENT |
| LOW | pkg/service/tools/templatize.go | 326 | // Step 1: collect candidates. | COMMENT |
| LOW | pkg/service/tools/templatize.go | 417 | // Step 2: group by baseKey | COMMENT |
| LOW | pkg/service/tools/templatize.go | 434 | // Step 3: sort candidates in this group by producer test index (ascending) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ow_scripts/python/http-stale-pool-race/burst_client.py | 70 | except Exception as exc: | CODE |
| LOW | …ow_scripts/python/http-stale-pool-race/burst_client.py | 80 | except Exception: | CODE |
| LOW | …test_workflow_scripts/python/outbound-fin-stall/app.py | 50 | except Exception as e: | CODE |
| LOW | …rkflow_scripts/golang/upstream_refusal/count_server.py | 45 | except Exception: | CODE |
| MEDIUM | …rkflow_scripts/golang/upstream_refusal/count_server.py | 31 | def serve(c): | CODE |
| LOW | …lows/test_workflow_scripts/mock/mock-stateful-linux.sh | 95 | except Exception as e: | CODE |
| LOW | …test_workflow_scripts/mock/mock-fromcontainer-linux.sh | 70 | except Exception as e: | CODE |
| MEDIUM | …test_workflow_scripts/mock/mock-fromcontainer-linux.sh | 65 | def do_GET(self): | CODE |
| LOW | …lows/test_workflow_scripts/mock/mock-parallel-linux.sh | 99 | except Exception: | CODE |
| LOW⚡ | …hub/workflows/test_workflow_scripts/mock/mock-linux.sh | 67 | except Exception: return None | CODE |
| LOW | …flows/test_workflow_scripts/mock/mock-compose-linux.sh | 92 | except Exception as e: | CODE |
| LOW | …flows/test_workflow_scripts/mock/mock-compose-linux.sh | 110 | except Exception as e: | CODE |
| LOW | …flows/test_workflow_scripts/mock/mock-compose-linux.sh | 124 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | tests/e2e/chaos-broken-parser/docker-compose.yml | 14 | # orchestrates the query load + log assertions. | COMMENT |
| MEDIUM | …/test_workflow_scripts/fuzzer/postgres/golang-linux.sh | 3 | # This script orchestrates the testing of the Postgres fuzzer with Keploy. | COMMENT |
| MEDIUM | …ows/test_workflow_scripts/fuzzer/mysql/golang-linux.sh | 3 | # This script orchestrates the testing of the MySQL fuzzer with Keploy. | COMMENT |
| MEDIUM | …ows/test_workflow_scripts/fuzzer/mongo/golang-linux.sh | 4 | # This script orchestrates the testing of the Mongo fuzzer with Keploy. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | pkg/models/postgres_v3_response_validate_test.go | 273 | if err := m.Spec.PostgresV3.Query.Response.Validate(); err != nil { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | utils/utils.go | 1735 | logger.Debug("failed to parse a valid-looking template placeholder", zap.String("placeholder", match), zap.Error(err) | CODE |
| LOW | …workflows/test_workflow_scripts/python-docker-macos.sh | 182 | -d '{"student_id":"12345","name":"John Doe","age":20}' http://localhost:$APP_PORT/students >/dev/null | CODE |
| LOW | …ithub/workflows/test_workflow_scripts/python-docker.sh | 50 | curl -X POST -H "Content-Type: application/json" -d '{"student_id": "12345", "name": "John Doe", "age": 20}' http:// | CODE |
| LOW | …orkflow_scripts/python/django_postgres/python-linux.sh | 110 | "name": "John Doe", | CODE |
| LOW | …t_workflow_scripts/node/express_mongoose/node-linux.sh | 58 | --data '{"name":"John Doe","email":"john@xyiz.com","phone":"0123456799"}' || true | CODE |
| LOW | …_workflow_scripts/node/express_mongoose/node-docker.sh | 45 | "name":"John Doe", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …w_scripts/python/outbound-fin-stall/silent_upstream.py | 34 | CODE | |
| LOW | …rkflow_scripts/golang/upstream_refusal/count_server.py | 31 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …w_scripts/python/outbound-fin-stall/silent_upstream.py | 28 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …hub/workflows/test_workflow_scripts/mock/mock-linux.sh | 84 | def pytest_runtest_makereport(item, call): | CODE |