AI Slop Code Risk Monitor

bruin-data/ingestr

SlopCodeMonitor badge for bruin-data/ingestr Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

ingestr is a CLI tool to copy data between any databases with a single command seamlessly.

1.6 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for bruin-data/ingestr, a Go project with 4,039 GitHub stars. SynthScan examined 490,872 lines of code across 1632 source files, recording 414 pattern matches distributed across 17 syntactic categories. The legacy adjusted pattern signal is 1.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.

1.6
Adjusted Signal
1.6
Raw Pattern Score
100%
Time Factor
2026-10-30
Last Push
4.0K
Stars
Go
Language
490.9K
Lines of Code
1.6K
Files
414
Pattern Hits
2026-10-31
Scan Date
0.03
HC Hit Rate

Risk Review · Payload v1

Use each vector to guide manual verification of the underlying findings.

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 4.1/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 294 finding(s).

Hallucinated Dependency & Supply Chain Risk 2.9/100 · LOW

Are imports declared and package/API names verified? 79 finding(s).

Agent Over-Engineering Ratio 1.5/100 · LOW

Are wrappers, guards, and repeated structures necessary? 87 finding(s).

PR Review Velocity Impact 7.1/100 · LOW

Which changes need focused human review? 414 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

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.

Severity Breakdown

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.

CRITICAL 0HIGH 52MEDIUM 24LOW 338

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 414 distinct pattern matches across 17 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.

Magic Placeholder Names42 hits · 230 pts
SeverityFileLineSnippetContext
HIGHdocs/supported-sources/applovin_max.md9applovinmax://?api_key=<your_api_key>CODE
HIGHdocs/supported-sources/allium.md36 --source-uri 'allium://?api_key=your_api_key' \CODE
HIGHdocs/supported-sources/allium.md90 --source-uri 'allium://?api_key=your_api_key' \CODE
HIGHdocs/supported-sources/allium.md100 --source-uri 'allium://?api_key=your_api_key' \CODE
HIGHdocs/supported-sources/allium.md112 --source-uri 'allium://?api_key=your_api_key' \CODE
HIGHdocs/supported-sources/allium.md126 --source-uri 'allium://?api_key=your_api_key' \CODE
HIGHdocs/supported-sources/allium.md140 --source-uri 'allium://?api_key=your_api_key' \CODE
HIGHdocs/supported-sources/fundraiseup.md20Assuming your API key is `your_api_key`, you can ingest donations into DuckDB using:CODE
HIGHdocs/supported-sources/fundraiseup.md24 --source-uri 'fundraiseup://?api_key=your_api_key' \CODE
HIGH⚡docs/supported-sources/fundraiseup.md58 --source-uri 'fundraiseup://?api_key=your_api_key' \CODE
HIGH⚡docs/supported-sources/fundraiseup.md65 --source-uri 'fundraiseup://?api_key=your_api_key' \CODE
HIGH⚡docs/supported-sources/fundraiseup.md72 --source-uri 'fundraiseup://?api_key=your_api_key' \CODE
HIGH⚡docs/supported-sources/fundraiseup.md79 --source-uri 'fundraiseup://?api_key=your_api_key' \CODE
HIGHdocs/supported-sources/applovin.md10applovin://?api_key=<your_api_key>CODE
HIGHdocs/supported-sources/cursor.md33 --source-uri 'cursor://?api_key=your_api_key' \CODE
HIGHdocs/supported-sources/cursor.md60 --source-uri 'cursor://?api_key=your_api_key' \CODE
HIGHdocs/supported-sources/cursor.md70 --source-uri 'cursor://?api_key=your_api_key' \CODE
HIGHdocs/supported-sources/cursor.md84 --source-uri 'cursor://?api_key=your_api_key' \CODE
HIGHdocs/supported-sources/cursor.md96 --source-uri 'cursor://?api_key=your_api_key' \CODE
HIGHdocs/supported-sources/cursor.md108 --source-uri 'cursor://?api_key=your_api_key' \CODE
HIGHdocs/supported-sources/sumble.md19 --source-uri 'sumble://?api_key=your-api-key' \CODE
HIGHdocs/supported-sources/sumble.md57 --source-uri 'sumble://?api_key=your-api-key' \CODE
HIGHdocs/supported-sources/dune.md34 --source-uri 'dune://?api_key=your_api_key' \CODE
HIGH⚡docs/supported-sources/dune.md78 --source-uri 'dune://?api_key=your_api_key' \CODE
HIGH⚡docs/supported-sources/dune.md88 --source-uri 'dune://?api_key=your_api_key' \CODE
HIGH⚡docs/supported-sources/dune.md98 --source-uri 'dune://?api_key=your_api_key' \CODE
HIGH⚡docs/supported-sources/dune.md108 --source-uri 'dune://?api_key=your_api_key' \CODE
HIGHdocs/supported-sources/fireflies.md33 --source-uri 'fireflies://?api_key=your-api-key-here' \CODE
HIGHdocs/supported-sources/fireflies.md47 --source-uri 'fireflies://?api_key=your-api-key-here' \CODE
HIGHdocs/supported-sources/fireflies.md76 --source-uri 'fireflies://?api_key=your-api-key-here' \CODE
HIGHdocs/supported-sources/primer.md12primer://?api_key=<your-api-key>CODE
HIGHdocs/supported-sources/mailchimp.md34ingestr ingest --source-uri 'mailchimp://?api_key=your_api_key&server=us10' --source-table 'campaigns' --dest-uri duckdbCODE
HIGHdocs/supported-sources/mailchimp.md82 --source-uri 'mailchimp://?api_key=your_api_key&server=us10' \CODE
HIGHdocs/supported-sources/customerio.md34 --source-uri 'customerio://?api_key=your_api_key&region=us' \CODE
HIGHdocs/supported-sources/customerio.md91 --source-uri 'customerio://?api_key=your_api_key&region=us' \CODE
HIGHdocs/supported-sources/customerio.md98 --source-uri 'customerio://?api_key=your_api_key&region=us' \CODE
HIGHdocs/supported-sources/customerio.md109 --source-uri 'customerio://?api_key=your_api_key&region=us' \CODE
HIGHdocs/supported-sources/customerio.md116 --source-uri 'customerio://?api_key=your_api_key&region=us' \CODE
HIGHdocs/supported-sources/customerio.md128 --source-uri 'customerio://?api_key=your_api_key&region=us' \CODE
HIGHdocs/supported-sources/granola.md19 --source-uri 'granola://?api_key=your-api-key' \CODE
HIGHdocs/supported-sources/granola.md38 --source-uri 'granola://?api_key=your-api-key' \CODE
HIGHdocs/supported-sources/plusvibeai.md34ingestr ingest --source-uri 'plusvibeai://?api_key=your_api_key&workspace_id=your_workspace_id' --source-table 'campaignCODE
Structural Annotation Overuse128 hits · 229 pts
SeverityFileLineSnippetContext
LOWdocs/tutorials/load-stripe-postgres.md30## Step 1: Install `ingestr`COMMENT
LOWdocs/tutorials/load-stripe-postgres.md37## Step 2: Retrieve Stripe API CredentialsCOMMENT
LOWdocs/tutorials/load-stripe-postgres.md48## Step 3: Retrieve PostgreSQL CredentialsCOMMENT
LOWdocs/tutorials/load-stripe-postgres.md58## Step 4: Run the `ingestr` CommandCOMMENT
LOWdocs/tutorials/load-stripe-postgres.md73## Step 5: Verify Data in PostgreSQL via DBeaverCOMMENT
LOWdocs/tutorials/load-personio-duckdb.md30### Step 1: Install `ingestr`COMMENT
LOWdocs/tutorials/load-personio-duckdb.md33### Step 2: Get Personio CredentialsCOMMENT
LOWdocs/tutorials/load-personio-duckdb.md44### Step 3: Install DuckDBCOMMENT
LOWdocs/tutorials/load-personio-duckdb.md51### Step 4: Run the `ingestr` CommandCOMMENT
LOW⚡docs/tutorials/load-personio-duckdb.md69### Step 1: Open DuckDBCOMMENT
LOW⚡docs/tutorials/load-personio-duckdb.md75### Step 2: List Available TablesCOMMENT
LOW⚡docs/tutorials/load-personio-duckdb.md81### Step 3: View Data in the `employees` TableCOMMENT
LOW⚡docs/tutorials/load-personio-duckdb.md87### Step 4: Validate DataCOMMENT
LOWdocs/tutorials/load-kinesis-bigquery.md34### Step 1: Install ingestrCOMMENT
LOWdocs/tutorials/load-kinesis-bigquery.md38### Step 2: Get AWS CredentialsCOMMENT
LOWdocs/tutorials/load-kinesis-bigquery.md49### Step 3: Configure Kinesis as SourceCOMMENT
LOWdocs/tutorials/load-kinesis-bigquery.md70### Step 4: Configure BigQuery as DestinationCOMMENT
LOWdocs/tutorials/load-kinesis-bigquery.md91### Step 5: Run the ingestr CommandCOMMENT
LOWdocs/tutorials/load-kinesis-bigquery.md103### Step 6: Verify Data in BigQueryCOMMENT
LOW⚡docs/supported-sources/snowflake.md41#### Step 1: Generate a key pairCOMMENT
LOW⚡docs/supported-sources/snowflake.md50#### Step 2: Set public key for Snowflake userCOMMENT
LOW⚡docs/supported-sources/snowflake.md59#### Step 3: VerifyCOMMENT
LOW⚡docs/supported-sources/snowflake.md67#### Step 4: Use the private key in the URICOMMENT
LOW⚡docs/supported-sources/google_search_console.md37### Step 1: Create a Google Cloud ProjectCOMMENT
LOW⚡docs/supported-sources/google_search_console.md42### Step 2: Enable the Search Console APICOMMENT
LOW⚡docs/supported-sources/google_search_console.md48### Step 3: Create a Service AccountCOMMENT
LOW⚡docs/supported-sources/google_search_console.md55### Step 4: Generate a JSON KeyCOMMENT
LOW⚡docs/supported-sources/google_search_console.md62### Step 5: Grant Access in Search ConsoleCOMMENT
LOW⚡docs/supported-sources/slack.md25### Step 1: Create a Slack AppCOMMENT
LOW⚡docs/supported-sources/slack.md33### Step 2: Choose a Token TypeCOMMENT
LOW⚡docs/supported-sources/slack.md40### Step 3: Configure OAuth ScopesCOMMENT
LOW⚡docs/supported-sources/slack.md50### Step 4: Install the App and Get the TokenCOMMENT
LOW⚡docs/supported-sources/google_analytics.md33### Step 1: Create a Google Cloud ProjectCOMMENT
LOW⚡docs/supported-sources/google_analytics.md39### Step 2: Enable the Google Analytics Data APICOMMENT
LOW⚡docs/supported-sources/google_analytics.md45### Step 3: Create a Service AccountCOMMENT
LOW⚡docs/supported-sources/google_analytics.md52### Step 4: Generate a JSON KeyCOMMENT
LOW⚡docs/supported-sources/google_analytics.md60### Step 5: Grant Access in Google AnalyticsCOMMENT
LOWdocs/supported-sources/intercom.md26### Step 1: Create a Private AppCOMMENT
LOWdocs/supported-sources/intercom.md35### Step 2: Configure PermissionsCOMMENT
LOWdocs/supported-sources/intercom.md46### Step 3: Get the Access TokenCOMMENT
LOWdocs/supported-sources/github.md26### Step 1: Create a Personal Access TokenCOMMENT
LOW⚡docs/supported-sources/notion.md22### Step 1: Create an IntegrationCOMMENT
LOW⚡docs/supported-sources/notion.md31### Step 2: Get the API KeyCOMMENT
LOW⚡docs/supported-sources/notion.md37### Step 3: Share Your Database with the IntegrationCOMMENT
LOW⚡docs/supported-sources/notion.md45### Step 4: Get Your Database IDCOMMENT
LOWdocs/supported-sources/personio.md25### Step 1: Access API SettingsCOMMENT
LOWdocs/supported-sources/personio.md30### Step 2: Create API CredentialsCOMMENT
LOWdocs/supported-sources/personio.md42### Step 3: Copy CredentialsCOMMENT
LOW⚡docs/supported-sources/gsheets.md38### Step 1: Create a Google Cloud ProjectCOMMENT
LOW⚡docs/supported-sources/gsheets.md44### Step 2: Enable the Google Sheets APICOMMENT
LOW⚡docs/supported-sources/gsheets.md50### Step 3: Create a Service AccountCOMMENT
LOW⚡docs/supported-sources/gsheets.md57### Step 4: Generate a JSON KeyCOMMENT
LOW⚡docs/supported-sources/gsheets.md65### Step 5: Share Your SpreadsheetCOMMENT
LOW⚡docs/supported-sources/stripe.md25### Step 1: Access Your API KeysCOMMENT
LOW⚡docs/supported-sources/stripe.md31### Step 2: Choose Your API KeyCOMMENT
LOW⚡docs/supported-sources/stripe.md39### Step 3: Copy or Create a Restricted KeyCOMMENT
LOWdocs/supported-sources/s3.md43### Step 1: Create an IAM User (if needed)COMMENT
LOWdocs/supported-sources/s3.md51### Step 2: Assign S3 PermissionsCOMMENT
LOWdocs/supported-sources/s3.md77### Step 3: Get Access KeysCOMMENT
LOW⚡docs/supported-sources/athena.md36### Step 1: Create an S3 Bucket for ResultsCOMMENT
68 more matches not shown…
Verbosity Indicators43 hits · 66 pts
SeverityFileLineSnippetContext
LOWpkg/source/facebook_ads/facebook_ads.go784 // Step 1: find lead gen campaigns (OUTCOME_LEADS or LEAD_GENERATION objective)COMMENT
LOWpkg/source/facebook_ads/facebook_ads.go797 // Step 2: list ads from those campaigns onlyCOMMENT
LOWpkg/source/facebook_ads/facebook_ads.go810 // Step 3: fetch leads for those adsCOMMENT
LOWpkg/source/jira/jira.go861 // Step 1: fetch issue keys per project in parallel.COMMENT
LOWpkg/source/jira/jira.go899 // Step 2: bulk-fetch changelogs in parallel batches.COMMENT
LOW⚡pkg/source/clevertap/clevertap_test.go535 // Step 1: open the cursor.COMMENT
LOW⚡pkg/source/clevertap/clevertap_test.go542 // Step 2: one page of records within the interval, then terminateCOMMENT
LOWpkg/destination/clickhouse/clickhouse.go421 // Step 1: Close changed records (update _scd_valid_to and _scd_is_current)COMMENT
LOWpkg/destination/clickhouse/clickhouse.go459 // Step 2: Soft-delete missing records (only if no incremental_key)COMMENT
LOWpkg/destination/clickhouse/clickhouse.go487 // Step 3: Insert new versions + net-new recordsCOMMENT
LOWpkg/destination/trino/trino.go445 // Step 1: Close changed records (update _scd_valid_to and _scd_is_current)COMMENT
LOWpkg/destination/trino/trino.go469 // Step 2: Soft-delete missing records (only if no incremental_key)COMMENT
LOWpkg/destination/trino/trino.go493 // Step 3: Insert new versions + net-new recordsCOMMENT
LOWpkg/destination/onelake/transform.go293 // Step 3: insert staging rows whose PK is not currently active in the target.COMMENT
LOWpkg/destination/bigquery/bigquery.go2345 // Step 1: Close changed records (update _scd_valid_to and _scd_is_current)COMMENT
LOWpkg/destination/bigquery/bigquery.go2365 // Step 2: Soft-delete missing records (only if no incremental_key)COMMENT
LOWpkg/destination/bigquery/bigquery.go2395 // Step 3: Insert new versions + net-new recordsCOMMENT
LOWpkg/destination/snowflake/snowflake.go1159 // Step 1: Close changed records (update _scd_valid_to and _scd_is_current)COMMENT
LOWpkg/destination/snowflake/snowflake.go1181 // Step 2: Soft-delete missing records (only if no incremental_key)COMMENT
LOWpkg/destination/snowflake/snowflake.go1202 // Step 3: Insert new versions + net-new recordsCOMMENT
LOWpkg/destination/sqlite/sqlite.go760 // Step 1: Close changed records (update _scd_valid_to and _scd_is_current)COMMENT
LOWpkg/destination/sqlite/sqlite.go783 // Step 2: Soft-delete missing records (only if no incremental_key)COMMENT
LOWpkg/destination/sqlite/sqlite.go805 // Step 3: Insert new versions + net-new recordsCOMMENT
LOWpkg/destination/cratedb/cratedb.go492 // Step 1: Close changed records — only where data actually differsCOMMENT
LOWpkg/destination/cratedb/cratedb.go521 // Step 2: Soft-delete missing records (only if no incremental_key)COMMENT
LOWpkg/destination/cratedb/cratedb.go547 // Step 3: Insert rows from staging that don't have a matching current row in targetCOMMENT
LOWpkg/destination/postgres/postgres.go1038 // Step 1: Upsert latest non-deleted rows (data changes).COMMENT
LOWpkg/destination/postgres/postgres.go1100 // Step 2: Mark deletes only when the latest change is a deleteCOMMENT
LOWpkg/destination/postgres/postgres.go1292 // Step 1: Close changed records (update _scd_valid_to and _scd_is_current)COMMENT
LOWpkg/destination/postgres/postgres.go1314 // Step 2: Soft-delete missing records (only if no incremental_key)COMMENT
LOWpkg/destination/postgres/postgres.go1335 // Step 3: Insert new versions + net-new recordsCOMMENT
LOWpkg/destination/mysql/mysql.go1495 // Step 1: Close changed records (update _scd_valid_to and _scd_is_current)COMMENT
LOWpkg/destination/mysql/mysql.go1516 // Step 2: Soft-delete missing records (only if no incremental_key)COMMENT
LOWpkg/destination/mysql/mysql.go1539 // Step 3: Insert new versions + net-new recordsCOMMENT
LOWpkg/destination/duckdb/duckdb.go1474 // Step 1: Close changed records (update _scd_valid_to and _scd_is_current)COMMENT
LOWpkg/destination/duckdb/duckdb.go1495 // Step 2: Soft-delete missing records (only if no incremental_key)COMMENT
LOWpkg/destination/duckdb/duckdb.go1515 // Step 3: Insert new versions + net-new recordsCOMMENT
LOWpkg/destination/fabric/fabric.go610 // Step 1: Close changed records.COMMENT
LOWpkg/destination/fabric/fabric.go632 // Step 2: Soft-delete missing records (only if no incremental_key).COMMENT
LOWpkg/destination/fabric/fabric.go654 // Step 3: Insert new versions + net-new records.COMMENT
LOWpkg/destination/mssql/mssql.go1372 // Step 1: Close changed records (update _scd_valid_to and _scd_is_current)COMMENT
LOWpkg/destination/mssql/mssql.go1394 // Step 2: Soft-delete missing records (only if no incremental_key)COMMENT
LOWpkg/destination/mssql/mssql.go1416 // Step 3: Insert new versions + net-new recordsCOMMENT
Decorative Section Separators22 hits · 63 pts
SeverityFileLineSnippetContext
MEDIUMbenchmarks/scripts/runner.py53# ---------------------------------------------------------------------------COMMENT
MEDIUMbenchmarks/scripts/runner.py55# ---------------------------------------------------------------------------COMMENT
MEDIUMbenchmarks/scripts/runner.py310# ---------------------------------------------------------------------------COMMENT
MEDIUMbenchmarks/scripts/runner.py312# ---------------------------------------------------------------------------COMMENT
MEDIUMbenchmarks/scripts/runner.py354# ---------------------------------------------------------------------------COMMENT
MEDIUMbenchmarks/scripts/runner.py356# ---------------------------------------------------------------------------COMMENT
MEDIUMbenchmarks/scripts/runner.py423# ---------------------------------------------------------------------------COMMENT
MEDIUMbenchmarks/scripts/runner.py425# ---------------------------------------------------------------------------COMMENT
MEDIUMbenchmarks/scripts/runner.py606# ---------------------------------------------------------------------------COMMENT
MEDIUMbenchmarks/scripts/runner.py608# ---------------------------------------------------------------------------COMMENT
MEDIUMbenchmarks/scripts/runner.py688# ---------------------------------------------------------------------------COMMENT
MEDIUMbenchmarks/scripts/runner.py690# ---------------------------------------------------------------------------COMMENT
MEDIUMbenchmarks/scripts/runner.py712# ---------------------------------------------------------------------------COMMENT
MEDIUMbenchmarks/scripts/runner.py714# ---------------------------------------------------------------------------COMMENT
MEDIUMbenchmarks/scripts/runner.py725# ---------------------------------------------------------------------------COMMENT
MEDIUMbenchmarks/scripts/runner.py727# ---------------------------------------------------------------------------COMMENT
MEDIUMbenchmarks/scripts/runner.py817# ---------------------------------------------------------------------------COMMENT
MEDIUMbenchmarks/scripts/runner.py819# ---------------------------------------------------------------------------COMMENT
MEDIUMbenchmarks/scripts/runner.py1283# ---------------------------------------------------------------------------COMMENT
MEDIUMbenchmarks/scripts/runner.py1285# ---------------------------------------------------------------------------COMMENT
MEDIUMbenchmarks/scripts/runner.py1406# ---------------------------------------------------------------------------COMMENT
MEDIUMbenchmarks/scripts/runner.py1408# ---------------------------------------------------------------------------COMMENT
Over-Commented Block55 hits · 55 pts
SeverityFileLineSnippetContext
LOWtests/integration/streaming_cdc_idle_test.go21// stall against a live Postgres.COMMENT
LOW…ration/postgres_cdc_starrocks_hard_delete_soak_test.go1//go:build stressCOMMENT
LOWtests/integration/postgres_cdc_starrocks_stress_test.go1//go:build stressCOMMENT
LOWtests/integration/bigquery_dedup_test.go21// These tests validate BigQuery's swap, merge, and delete-insert dedup behaviorCOMMENT
LOWtests/integration/mysql_cdc_starrocks_stress_test.go1//go:build stressCOMMENT
LOWtests/integration/postgres_cdc_stress_test.go1//go:build stressCOMMENT
LOW…ration/postgres_cdc_starrocks_scenarios_stress_test.go1//go:build stressCOMMENT
LOWtests/integration/mssql_cdc_stress_test.go1//go:build stressCOMMENT
LOWtests/integration/staging_inspect_test.go21)COMMENT
LOWtests/integration/mysql_cdc_stress_test.go1//go:build stressCOMMENT
LOWtests/integration/restricted_permissions_test.go21// target schema but lacks `CREATE DATABASE`/`CREATE SCHEMA` privileges. TheCOMMENT
LOWinternal/output/output.go1// Package output centralizes all user-facing process output for the ingestr CLI.COMMENT
LOWinternal/annotation/annotation.go1// Package annotation builds the query annotations ingestr attaches to the SQLCOMMENT
LOWbenchmarks/scripts/bench_dlt.py1# /// scriptCOMMENT
LOWpkg/source/source.go161 // CDCSnapshotResumed marks a replacement marker that continues a snapshotCOMMENT
LOWpkg/source/source.go181 // kind/table prefix that is not a valid source cursor.COMMENT
LOWpkg/source/source.go421COMMENT
LOWpkg/source/fakturoid/fakturoid.go1// Package fakturoid implements an ingestr source for the Fakturoid API v3 —COMMENT
LOWpkg/source/satismeter/satismeter.go1// Package satismeter implements an ingestr source for the SatisMeter REST APICOMMENT
LOWpkg/source/mssql_cdc/source.go1181}COMMENT
LOWpkg/source/sharepoint/sharepoint_integration_test.go21// the source's structural contract: metadata columns, raw all-VARCHAR data,COMMENT
LOWpkg/source/sharepoint/excel.go21 // unzipXMLInMemLimit is the per-part threshold above which excelize spills aCOMMENT
LOWpkg/source/postgres_cdc/values.go141// so the emitted stream stays applicable at the destination. It runs afterCOMMENT
LOWpkg/source/postgres_cdc/relation.go181// pgoutput resends a Relation message whenever a table's shape changes, soCOMMENT
LOWpkg/source/postgres_cdc/commit_state.go21// silenceProbeAfter is how long the server may stay silent before the nextCOMMENT
LOWpkg/source/postgres_cdc/commit_state.go141 if !pending {COMMENT
LOWpkg/source/postgres_cdc/multitable_reader.go241 }COMMENT
LOWpkg/source/postgres_cdc/multitable_reader.go381 historicalRelIDs map[string][]uint32COMMENT
LOWpkg/source/postgres_cdc/multitable_reader.go881 }COMMENT
LOWpkg/source/postgres_cdc/source.go61 uri stringCOMMENT
LOWpkg/source/postgres_cdc/source.go81 // standbyGapWarned is the last list of tables reported as missing from theCOMMENT
LOWpkg/source/postgres_cdc/source.go681 }COMMENT
LOWpkg/source/twocheckout/twocheckout.go1// Package twocheckout implements an ingestr source for the 2Checkout (Verifone)COMMENT
LOWpkg/source/twocheckout/twocheckout.go61 // fixGross: apply the cumulative-gross correction (orders only).COMMENT
LOWpkg/source/twocheckout/twocheckout.go81 // Declared columns are ADDITIVE — arrowconv seeds the field list from them andCOMMENT
LOWpkg/source/twocheckout/twocheckout.go101 //COMMENT
LOWpkg/source/twocheckout/twocheckout.go121 // 20k results, so an unfiltered pull of a large account is impossible ratherCOMMENT
LOWpkg/source/twocheckout/twocheckout.go341//COMMENT
LOWpkg/source/adbc/dialect.go41 // SchemaQuery returns the SQL query for fetching table column information.COMMENT
LOWpkg/source/adbc/dialect.go141 EnforcesPrimaryKeys() boolCOMMENT
LOWpkg/destination/destination.go61 CommitToken source.DurableIDCOMMENT
LOWpkg/destination/destination.go641 SupportsDirectReplaceDeduplication() boolCOMMENT
LOWpkg/destination/onelake/delta_io.go81 version int64COMMENT
LOWpkg/destination/snowflake/snowflake_test.go1381// through the same *SnowflakeDestination/*sql.DB, with combined workerCOMMENT
LOWpkg/destination/hubspot/hubspot_test.go1401 }{COMMENT
LOWpkg/destination/hubspot/hubspot_test.go1421 {10, "product catalog", "products?id_property=sku", "merge", []string{"sku"}, want{idProperty: "sku"}},COMMENT
LOWpkg/destination/hubspot/hubspot.go161 // archive soft-deletes the records (or association links) instead of writing.COMMENT
LOWpkg/destination/hubspot/hubspot.go1761COMMENT
LOWpkg/destination/salesforce/salesforce.go141COMMENT
LOWpkg/destination/salesforce/salesforce.go161 idColumn stringCOMMENT
LOWpkg/destination/salesforce/salesforce.go181 sawSource atomic.BoolCOMMENT
LOWpkg/destination/starrocks/mysql_cdc.go21COMMENT
LOWpkg/schemaevolution/evolve.go1package schemaevolutionCOMMENT
LOWpkg/naming/snake_case.go21 camelCaseRegex2 = regexp.MustCompile(`([a-z\d])([A-Z])`)COMMENT
LOWpkg/strategy/merge.go121COMMENT
Hyper-Verbose Identifiers43 hits · 39 pts
SeverityFileLineSnippetContext
LOWingestr/_data.py164 def _prepare_stream_process_options(self) -> None:CODE
LOWingestr/_data.py655def _looks_like_pandas_dataframe(value: Any) -> bool:CODE
LOWingestr/_data.py659def _looks_like_dataframe_or_arrow(value: Any) -> bool:CODE
LOWingestr/_data.py700def _reject_managed_process_input(process_options: Mapping[str, Any]) -> None:CODE
LOWingestr/_runner.py614def _format_query_annotations(value: Any) -> Any:CODE
LOWtests/test_install.py152 def test_verification_before_extraction_in_both_output_paths(self):STRING
LOW⚡tests/test_install.py173 def test_system_hash_fallbacks_and_wget(self):STRING
LOW⚡tests/test_install.py180 def test_other_supported_architectures(self):STRING
LOW⚡tests/test_install.py185 def test_cancellation_waits_for_destination_write(self):STRING
LOW⚡tests/python/test_ingestr_package.py182 def test_run_rejects_shell_command_string(self):CODE
LOW⚡tests/python/test_ingestr_package.py186 def test_binary_path_uses_explicit_override(self):CODE
LOW⚡tests/python/test_ingestr_package.py194 def test_binary_path_uses_local_build(self):CODE
LOW⚡tests/python/test_ingestr_package.py203 def test_binary_path_downloads_release_binary(self):CODE
LOW⚡tests/python/test_ingestr_package.py376 def test_release_platform_rejects_unsupported_arch(self):CODE
LOW⚡tests/python/test_ingestr_package.py382 def test_release_platform_rejects_musl_linux(self):CODE
LOW⚡tests/python/test_ingestr_package.py390 def test_ingest_streams_records_to_stdin(self):CODE
LOWtests/python/test_ingestr_package.py53 def test_build_ingest_args_maps_python_values_to_cli_flags(self):CODE
LOWtests/python/test_ingestr_package.py128 def test_run_invokes_resolved_binary(self):CODE
LOWtests/python/test_ingestr_package.py143 def test_run_cli_runs_generated_args(self):CODE
LOWtests/python/test_ingestr_package.py238 def test_binary_path_reports_first_download_to_stderr(self):CODE
LOWtests/python/test_ingestr_package.py269 def test_binary_path_uses_tag_specific_checksum_for_tag_override(self):CODE
LOWtests/python/test_ingestr_package.py307 def test_binary_path_rejects_missing_tag_checksum(self):CODE
LOWtests/python/test_ingestr_package.py337 def test_binary_path_rejects_checksum_mismatch(self):CODE
LOWtests/python/test_ingestr_package.py362 def test_release_platform_uses_goreleaser_asset_names(self):CODE
LOWtests/python/test_ingestr_package.py419 def test_ingest_stream_capture_output_collects_child_pipes(self):CODE
LOWtests/python/test_ingestr_package.py440 def test_ingest_flattens_pages_into_arrow_stream(self):CODE
LOWtests/python/test_ingestr_package.py464 def test_ingest_accepts_generator_function(self):CODE
LOWtests/python/test_ingestr_package.py488 def test_ingest_rejects_async_generator_function(self):CODE
LOWtests/python/test_ingestr_package.py500 def test_ingest_context_manager_streams_yielded_data(self):CODE
LOWtests/python/test_ingestr_package.py527 def test_ingest_streams_arrow_table(self):CODE
LOWtests/python/test_ingestr_package.py549 def test_stream_transport_skips_empty_record_batches(self):CODE
LOWtests/python/test_ingestr_package.py576 def test_ingest_can_use_mmap_transport(self):CODE
LOWtests/python/test_ingestr_package.py603 def test_mmap_transport_skips_empty_record_batches(self):CODE
LOWtests/python/test_ingestr_package.py633 def test_mmap_transport_rejects_managed_process_input(self):CODE
LOWtests/python/test_ingestr_package.py652 def test_context_manager_preserves_result_when_stream_close_fails(self):CODE
LOWtests/python/test_ingestr_package.py672 def test_ingest_normalizes_common_python_row_values(self):CODE
LOWtests/python/test_ingestr_package.py697 def test_stream_transport_rejects_text_mode(self):CODE
LOWbenchmarks/scripts/runner.py117def clickhouse_connection_from_uri(uri: str) -> dict:CODE
LOWbenchmarks/scripts/runner.py131def quote_clickhouse_identifier(name: str) -> str:CODE
LOWbenchmarks/scripts/runner.py180def snowflake_connection_from_uri(uri: str) -> dict:CODE
LOWbenchmarks/scripts/runner.py215def quote_snowflake_identifier(name: str) -> str:CODE
LOWbenchmarks/scripts/bench_dlt.py58def patch_dlt_mssql_json_type():CODE
LOWbenchmarks/scripts/bench_dlt.py71def clickhouse_credentials_from_uri(uri: str) -> dict:CODE
Empty Error Handlers6 hits · 30 pts
SeverityFileLineSnippetContext
HIGHingestr/_data.py286except Exception:CODE
HIGHingestr/_data.py307except FileNotFoundError:CODE
HIGHingestr/_data.py716except FileNotFoundError:CODE
HIGHingestr/_data.py766except Exception:CODE
HIGHingestr/_runner.py360except (OSError, ValueError):CODE
HIGHbenchmarks/scripts/bench_airbyte.py142except Exception:CODE
Cross-Language Confusion3 hits · 22 pts
SeverityFileLineSnippetContext
HIGH⚡ingestr/_data.py538 if schema is not None and not data.schema.equals(schema):CODE
HIGH⚡ingestr/_data.py544 if schema is not None and not table.schema.equals(schema):CODE
HIGH⚡ingestr/_data.py554 if schema is not None and not table.schema.equals(schema):CODE
Fake / Example Data20 hits · 20 pts
SeverityFileLineSnippetContext
LOWdocs/supported-sources/asana.md28Let's say you have a workspace with id `workspace-1337` and you want to ingest all tasks into a duckdb database called `CODE
LOWdocs/supported-sources/asana.md33 --source-uri "asana://workspace-1337?access_token=fake_token" \CODE
LOWdocs/supported-sources/monday.md25Let's say you want to ingest all boards into a DuckDB database called `monday.db`. For this example the value of `api_toCODE
LOWdocs/supported-sources/monday.md30 --source-uri "monday://?api_token=fake_token" \CODE
LOWpkg/transformer/column_renamer_test.go229 {stringPtr("placeholder"), stringPtr("placeholder"), stringPtr("placeholder"), stringPtr("placeholder")},CODE
LOWpkg/transformer/column_renamer_test.go260 [][]*string{{stringPtr("placeholder")}, {stringPtr(`["` + sourceName + `"]`)}},CODE
LOWpkg/transformer/column_renamer_test.go276 {stringPtr("placeholder"), stringPtr("placeholder")},CODE
LOWpkg/transformer/column_renamer_test.go277 {stringPtr("placeholder"), stringPtr("changed")},CODE
LOWpkg/transformer/column_renamer_test.go295 [][]*string{{stringPtr("placeholder")}, {stringPtr(`{"configData":true}`)}},CODE
LOWpkg/source/freshdesk/freshdesk_integration_test.go183 "name": "Acme Inc",CODE
LOWpkg/source/balldontlie/balldontlie_test.go76 _, _ = fmt.Fprint(w, `{"data":[{"id":11,"match_number":11,"datetime":"2026-06-14T21:00:00Z","status":"scheduled","seasCODE
LOWpkg/source/jobtread/jobtread_test.go151 {"id": "1", "name": "Acme Corp"},CODE
LOWpkg/source/jira/jira_test.go28 email: "user@example.com",CODE
LOWpkg/source/jira/jira_test.go37 email: "user@example.com",CODE
LOWpkg/source/zendesk/zendesk_test.go40 email: "user@example.com",CODE
LOWpkg/source/salesforce/salesforce_integration_test.go188 "phone": "555-0103",CODE
LOWpkg/source/salesforce/salesforce_integration_test.go212 "phone": "555-0102",CODE
LOWpkg/source/salesforce/salesforce_integration_test.go234 "name": "John Doe",CODE
LOWpkg/source/salesforce/salesforce_integration_test.go260 "phone": "555-0105",CODE
LOWpkg/destination/hubspot/hubspot_test.go90 _, _ = io.WriteString(w, `{"status":"COMPLETE","results":[{"id":"1","properties":{"email":"foo@bar.com"}}]}`)CODE
Excessive Try-Catch Wrapping12 hits · 14 pts
SeverityFileLineSnippetContext
LOWingestr/_data.py286 except Exception:CODE
LOWingestr/_data.py614 except Exception:CODE
LOWingestr/_data.py626 except Exception:CODE
LOWingestr/_data.py631 except Exception:CODE
LOWingestr/_data.py766 except Exception:CODE
MEDIUMingestr/_data.py282def _abort(self) -> None:CODE
LOWingestr/_runner.py327 except Exception as exc:CODE
LOWtests/cdc_multitable/validate.py276 except Exception as e:CODE
LOWtests/cdc_multitable/validate.py360 except Exception as e:CODE
MEDIUMtests/cdc_multitable/validate.py361 print(f"Error: {e}")CODE
LOWbenchmarks/scripts/runner.py1109 except Exception:CODE
LOWbenchmarks/scripts/bench_airbyte.py142 except Exception:CODE
Unused Imports13 hits · 13 pts
SeverityFileLineSnippetContext
LOWingestr/_data.py1CODE
LOWingestr/__init__.py1CODE
LOWingestr/__init__.py1CODE
LOWingestr/__init__.py2CODE
LOWingestr/__init__.py2CODE
LOWingestr/__init__.py2CODE
LOWingestr/__init__.py2CODE
LOWingestr/__init__.py2CODE
LOWingestr/_runner.py1CODE
LOWtests/cdc_multitable/validate.py9CODE
LOWtests/cdc_multitable/validate.py10CODE
LOWbenchmarks/scripts/bench_airbyte.py13CODE
LOWbenchmarks/scripts/bench_airbyte.py39CODE
Deep Nesting18 hits · 13 pts
SeverityFileLineSnippetContext
LOWingestr/_data.py490CODE
LOWingestr/_data.py577CODE
LOWtests/test_install.py22CODE
LOWtests/python/test_ingestr_package.py203CODE
LOWtests/python/test_ingestr_package.py238CODE
LOWtests/python/test_ingestr_package.py269CODE
LOWtests/python/test_ingestr_package.py307CODE
LOWtests/python/test_ingestr_package.py337CODE
LOWtests/python/test_ingestr_package.py382CODE
LOWtests/python/test_ingestr_package.py500CODE
LOWtests/python/test_ingestr_package.py652CODE
LOWtests/cdc_multitable/validate.py157CODE
LOWtests/cdc_multitable/validate.py233CODE
LOWbenchmarks/scripts/runner.py821CODE
LOWbenchmarks/scripts/runner.py1171CODE
LOWbenchmarks/scripts/bench_dlt.py130CODE
LOWbenchmarks/scripts/seed_kafka.py15CODE
LOWbenchmarks/scripts/bench_airbyte.py233CODE
Cross-Language Confusion (JS/TS)1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHbenchmarks/scripts/seed_mongodb_bson.js88print("seeded " + collection.countDocuments() + " BSON documents into " + databaseName + "." + collectionName);CODE
Example Usage Blocks3 hits · 4 pts
SeverityFileLineSnippetContext
LOWbenchmarks/scripts/validate.sh6# Usage:COMMENT
LOWbenchmarks/scripts/report.sh6# Usage:COMMENT
LOWbenchmarks/scripts/run.sh7# Usage:COMMENT
AI Structural Patterns3 hits · 3 pts
SeverityFileLineSnippetContext
LOWingestr/_runner.py83CODE
LOWingestr/_runner.py170CODE
LOWtests/test_install.py22CODE
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOWtests/cdc_multitable/validate.py87 # Check if _cdc_deleted column existsCOMMENT
Modern Structural Boilerplate1 hit · 1 pts
SeverityFileLineSnippetContext
LOWingestr/__init__.py16__all__ = [CODE