Repository Analysis

laramies/theHarvester

E-mails, subdomains and names Harvester - OSINT

20.1 Moderate AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of laramies/theHarvester, a Python project with 17,224 GitHub stars. SynthScan v2.0 examined 84,044 lines of code across 278 source files, recording 1744 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 20.1 places this repository in the Moderate AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

20.1
Adjusted Score
20.1
Raw Score
100%
Time Factor
2026-08-28
Last Push
17.2K
Stars
Python
Language
84.0K
Lines of Code
278
Files
1.7K
Pattern Hits
2026-08-29
Scan Date
0.01
HC Hit Rate

What These Metrics Mean

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

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 2HIGH 1MEDIUM 32LOW 1709

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

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

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hyper-Verbose Identifiers1390 hits · 1250 pts
SeverityFileLineSnippetContext
LOWtests/test_hackertarget_apikey.py11 def test_routes_include_subdomains_and_ips(self):CODE
LOWtests/test_hackertarget_apikey.py15 async def test_do_search_with_apikey(self, monkeypatch):CODE
LOWtests/test_hackertarget_apikey.py55 async def test_do_search_without_apikey(self, monkeypatch):CODE
LOWtests/test_hackertarget_apikey.py85 async def test_http_failure_is_reported(self, monkeypatch, status, execution_status, stop_reason):CODE
LOWtests/test_hackertarget_apikey.py106 async def test_empty_or_malformed_success_is_reported(self, monkeypatch, body: object):CODE
LOWtests/test_hackertarget_apikey.py126 async def test_out_of_scope_rows_do_not_contribute_ips(self, monkeypatch):CODE
LOWtests/test_hackertarget_apikey.py146 async def test_no_records_sentinel_is_a_valid_empty_result(self, monkeypatch):CODE
LOWtests/test_hackertarget_apikey.py172 async def test_endpoint_failure_preserves_other_results(self, monkeypatch, failed_response, stop_reason):CODE
LOWtests/test_hackertarget_apikey.py192 async def test_valid_empty_endpoint_makes_other_failure_partial(self, monkeypatch):CODE
LOWtests/test_hackertarget_apikey.py212 async def test_malformed_rows_preserve_valid_results_as_partial(self, monkeypatch):CODE
LOWtests/test_hackertarget_apikey.py232 async def test_hyphenated_domain_still_uses_reverse_dns(self, monkeypatch):CODE
LOWtests/test_hackertarget_apikey.py267 async def test_address_query_does_not_trigger_real_time_reverse_dns(self, monkeypatch, target):CODE
LOWtests/test_hackertarget_apikey.py282 async def test_cancellation_propagates(self, monkeypatch):CODE
LOWtests/test_screenshot.py41async def test_reachable_targets_reuses_one_session_and_bounds_empty_responses(CODE
LOWtests/test_screenshot.py65async def test_reachable_targets_retains_completed_http_error_responses(CODE
LOWtests/test_screenshot.py93async def test_reachable_targets_cancellation_closes_session_and_leaves_no_tasks(CODE
LOWtests/test_screenshot.py141async def test_capture_targets_reuses_one_browser_and_bounds_isolated_contexts(CODE
LOWtests/test_screenshot.py240async def test_capture_targets_closes_resources_after_each_failure_stage(CODE
LOWtests/test_screenshot.py305async def test_capture_targets_cancellation_closes_resources_and_leaves_no_tasks(CODE
LOWtests/test_screenshot.py359async def test_capture_cleanup_preserves_cancellation_and_attempts_every_resource(CODE
LOWtests/test_screenshot.py400def test_screenshot_output_separator_matches_platform(CODE
LOWtests/test_screenshot.py417def test_screenshot_path_uses_the_target_host_and_port(tmp_path: Path, target: str, filename: str) -> None:CODE
LOWtests/test_screenshot.py431async def test_visit_prefers_https_and_normalizes_the_target(CODE
LOWtests/test_screenshot.py457async def test_visit_falls_back_to_http_when_https_is_unreachable(monkeypatch: pytest.MonkeyPatch) -> None:CODE
LOWtests/test_screenshot.py488async def test_take_screenshot_normalizes_the_target(CODE
LOWtests/test_screenshot.py517async def test_take_screenshot_can_name_the_artifact_for_the_authorized_subject(CODE
LOWtests/test_screenshot.py545async def test_screenshot_visit_uses_an_http_proxy(monkeypatch) -> None:CODE
LOWtests/test_screenshot.py567async def test_screenshot_capture_is_owner_only(tmp_path, monkeypatch) -> None:CODE
LOWtests/test_security.py15 def test_api_does_not_enable_cross_origin_requests(self):CODE
LOWtests/test_security.py24 def test_sanitize_for_xml_escapes_special_characters(self):CODE
LOWtests/test_security.py42 def test_sanitize_for_xml_prevents_xml_entity_injection(self):CODE
LOWtests/test_security.py57 def test_command_line_args_are_sanitized_in_xml_output(self):CODE
LOWtests/test_security.py84 def test_api_does_not_expose_traceback_in_error_responses(self, client):CODE
LOWtests/test_security.py95 def test_error_responses_do_not_leak_internal_paths(self, client, tmp_path, monkeypatch):CODE
LOWtests/test_security.py124 def test_debug_mode_does_not_expose_sensitive_info(self, client, monkeypatch):CODE
LOWtests/test_security.py148 def test_api_fails_closed_without_configured_api_key(self, client, monkeypatch):CODE
LOWtests/test_security.py156 def test_api_key_can_be_read_from_a_docker_secret_file(self, client, tmp_path, monkeypatch):CODE
LOWtests/test_security.py166 def test_api_rejects_missing_or_invalid_api_key(self, client, monkeypatch):CODE
LOWtests/test_security.py175 def test_api_does_not_expose_internal_errors(self, monkeypatch):CODE
LOWtests/test_security.py197 def test_sanitize_filename_removes_path_components(self):CODE
LOWtests/test_security.py222 def test_sanitize_filename_removes_dangerous_characters(self):CODE
LOWtests/test_security.py247 def test_sanitize_filename_prevents_hidden_files(self):CODE
LOWtests/test_security.py258 def test_filename_sanitization_preserves_safe_filenames(self):CODE
LOWtests/test_security.py274 def test_path_traversal_in_file_operations(self):CODE
LOWtests/test_security.py297 def test_no_hardcoded_secrets_in_code(self):CODE
LOWtests/test_security.py329 def test_sensitive_endpoints_require_validation(self, monkeypatch):CODE
LOWtests/conftest.py44def provider_contract_sources(request: pytest.FixtureRequest) -> tuple[str, ...]:CODE
LOWtests/conftest.py61def pytest_collection_modifyitems(config: pytest.Config, items: list[pytest.Item]) -> None:CODE
LOWtests/conftest.py140def _guarded_gethostbyname_ex(host: str) -> tuple[str, list[str], list[str]]:CODE
LOWtests/test_logging.py24def test_import_does_not_configure_application_logging() -> None:CODE
LOWtests/test_logging.py44def test_operator_output_uses_stdout_without_verbose_logging() -> None:CODE
LOWtests/test_logging.py58def test_diagnostics_use_stderr_only_when_verbose() -> None:CODE
LOWtests/test_logging.py77def test_verbose_logging_restores_the_package_level() -> None:CODE
LOWtests/test_logging.py98def test_verbose_logging_does_not_overwrite_a_later_host_level() -> None:CODE
LOWtests/test_logging.py116def test_verbose_enables_info_diagnostics(tmp_path: Path) -> None:CODE
LOWtests/test_logging.py149def test_operator_output_flushes_the_current_stdout(monkeypatch) -> None:STRING
LOWtests/test_logging.py169def test_cli_preserves_host_logging_unless_verbose_is_requested(tmp_path: Path) -> None:STRING
LOWtests/test_harness.py14def test_python_socket_network_is_blocked_by_default() -> None:CODE
LOWtests/test_harness.py31def test_http_client_cannot_escape_network_guard() -> None:CODE
LOWtests/test_harness.py36def test_loopback_network_remains_available(tmp_path: Path) -> None:CODE
1330 more matches not shown…
Excessive Try-Catch Wrapping115 hits · 124 pts
SeverityFileLineSnippetContext
MEDIUMtheHarvester/__main__.py2223def entry_point() -> None:CODE
LOWtheHarvester/__main__.py685 except Exception as error:CODE
LOWtheHarvester/__main__.py804 except Exception as error:CODE
LOWtheHarvester/__main__.py855 except Exception as error:CODE
LOWtheHarvester/__main__.py1052 except Exception as error:CODE
LOWtheHarvester/__main__.py1245 except Exception as error:CODE
LOWtheHarvester/__main__.py1581 except Exception as error:CODE
LOWtheHarvester/__main__.py1746 except Exception as ee:CODE
LOWtheHarvester/__main__.py1803 except Exception as init_error:CODE
LOWtheHarvester/__main__.py1838 except Exception as ip_error:CODE
LOWtheHarvester/__main__.py1856 except Exception as action_error:CODE
LOWtheHarvester/__main__.py1941 except Exception:CODE
LOWtheHarvester/__main__.py2107 except Exception as error:CODE
LOWtheHarvester/__main__.py2230 except Exception as error_entry_point:CODE
LOWtheHarvester/screenshot/screenshot.py57 except Exception as e:CODE
LOWtheHarvester/screenshot/screenshot.py90 except Exception as e:CODE
LOWtheHarvester/screenshot/screenshot.py199 except Exception as error:CODE
MEDIUMtheHarvester/screenshot/screenshot.py47def verify_path(self) -> bool:CODE
LOWtheHarvester/discovery/urlscan.py187 except Exception as error:CODE
LOWtheHarvester/discovery/fofa.py32 except Exception as error:CODE
LOWtheHarvester/discovery/fofa.py127 except Exception:CODE
MEDIUMtheHarvester/discovery/fofa.py29def _get_api_credentials(self) -> tuple[str, str]:CODE
LOWtheHarvester/discovery/searchhunterhow.py102 except Exception:CODE
LOWtheHarvester/discovery/rocketreach.py94 except Exception as e:CODE
MEDIUMtheHarvester/discovery/rocketreach.py24def do_search(self) -> None:CODE
LOWtheHarvester/discovery/certspottersearch.py121 except Exception:CODE
LOWtheHarvester/discovery/search_dnsdumpster.py35 except Exception as error:CODE
LOWtheHarvester/discovery/bevigil.py78 except Exception:CODE
LOWtheHarvester/discovery/censysearch.py94 except Exception:CODE
LOWtheHarvester/discovery/projectdiscovery.py23 except Exception as error:CODE
LOWtheHarvester/discovery/projectdiscovery.py89 except Exception as error:CODE
LOWtheHarvester/discovery/projectdiscovery.py94 except Exception as error:CODE
MEDIUMtheHarvester/discovery/projectdiscovery.py20def _get_api_key(self) -> str:CODE
MEDIUMtheHarvester/discovery/projectdiscovery.py29def do_search(self) -> SourceExecutionReport | None:CODE
LOWtheHarvester/discovery/mojeek.py25 except Exception:CODE
LOWtheHarvester/discovery/thc.py65 except Exception as e:CODE
LOWtheHarvester/discovery/shodanct.py29 except Exception as error:CODE
LOWtheHarvester/discovery/crtsh.py52 except Exception as e:CODE
LOWtheHarvester/discovery/fullhuntsearch.py121 except Exception as error:CODE
LOWtheHarvester/discovery/fullhuntsearch.py457 except Exception as error:CODE
LOWtheHarvester/discovery/virustotal.py69 except Exception:CODE
LOWtheHarvester/discovery/hudsonrocksearch.py59 except Exception as e:CODE
LOWtheHarvester/discovery/hudsonrocksearch.py135 except Exception as e:CODE
LOWtheHarvester/discovery/hudsonrocksearch.py184 except Exception as e:CODE
LOWtheHarvester/discovery/hudsonrocksearch.py211 except Exception as e:CODE
LOWtheHarvester/discovery/hudsonrocksearch.py289 except Exception as e:CODE
LOWtheHarvester/discovery/hudsonrocksearch.py337 except Exception as e:CODE
LOWtheHarvester/discovery/hudsonrocksearch.py422 except Exception as e:CODE
LOWtheHarvester/discovery/rapiddns.py69 except Exception as e:CODE
MEDIUMtheHarvester/discovery/rapiddns.py20def do_search(self):CODE
LOWtheHarvester/discovery/baidusearch.py80 except Exception:CODE
LOWtheHarvester/discovery/dnssearch.py110 except Exception:CODE
LOWtheHarvester/discovery/dnssearch.py135 except Exception as error:CODE
LOWtheHarvester/discovery/securityscorecard.py146 except Exception:CODE
LOWtheHarvester/discovery/zoomeyesearch.py214 except Exception:CODE
LOWtheHarvester/discovery/githubcode.py55 except Exception as e:CODE
LOWtheHarvester/discovery/githubcode.py88 except Exception as e:CODE
LOWtheHarvester/discovery/githubcode.py104 except Exception as e:CODE
LOWtheHarvester/discovery/githubcode.py130 except Exception as e:CODE
LOWtheHarvester/discovery/githubcode.py197 except Exception as e:CODE
55 more matches not shown…
Unused Imports68 hits · 64 pts
SeverityFileLineSnippetContext
LOWtests/test_screenshot.py1CODE
LOWtests/conftest.py1CODE
LOWtests/test_logging.py1CODE
LOWtests/test_harness.py1CODE
LOWtests/test_workflow_contract.py1CODE
LOWtests/test_no_hosts.py1CODE
LOWtests/test_readme.py1CODE
LOWtests/test_bravesearch.py1CODE
LOWtests/discovery/test_onyphe.py1CODE
LOWtests/discovery/test_urlscan.py1CODE
LOWtests/discovery/test_gitlabsearch.py1CODE
LOWtests/discovery/test_fofa.py1CODE
LOWtests/discovery/test_dnsdb.py1CODE
LOWtests/discovery/test_censys.py1CODE
LOWtests/discovery/test_thc.py12CODE
LOWtests/discovery/test_netlas.py1CODE
LOWtests/discovery/test_securitytrails.py1CODE
LOWtests/discovery/test_githubcode_contract.py1CODE
LOWtests/discovery/test_securityscorecard.py1CODE
LOWtests/discovery/test_whoisxml.py1CODE
LOWtests/discovery/test_sourcegraph.py1CODE
LOWtests/discovery/test_virustotal.py1CODE
LOWtests/lib/test_configuration_contract.py1CODE
LOWtests/lib/test_schedules.py1CODE
LOWtests/lib/test_recursive_dns.py1CODE
LOWtests/lib/test_core.py1CODE
LOWtests/lib/test_run_backend.py1CODE
LOWtests/lib/test_api_v1.py1CODE
LOWtests/lib/test_output.py1CODE
LOWtests/lib/test_harvestview_ui.py1CODE
LOWtests/lib/test_dns_consensus.py1CODE
LOWtests/lib/test_source_runner.py1CODE
LOWtests/lib/test_routeviews.py1CODE
LOWtests/e2e/conftest.py1CODE
LOWtests/e2e/test_harvestview.py1CODE
LOWtheHarvester/source_yields.py1CODE
LOWtheHarvester/discovery/virustotal.py1CODE
LOWtheHarvester/discovery/baidusearch.py1CODE
LOWtheHarvester/discovery/securityscorecard.py1CODE
LOWtheHarvester/discovery/zoomeyesearch.py1CODE
LOWtheHarvester/discovery/securitytrailssearch.py1CODE
LOWtheHarvester/discovery/yahoosearch.py1CODE
LOWtheHarvester/discovery/whoisxml.py1CODE
LOWtheHarvester/discovery/takeover.py1CODE
LOWtheHarvester/discovery/netlas.py1CODE
LOWtheHarvester/lib/enumeration.py1CODE
LOWtheHarvester/lib/network_evidence.py1CODE
LOWtheHarvester/lib/cancellation.py1CODE
LOWtheHarvester/lib/database.py45CODE
LOWtheHarvester/lib/database.py73CODE
LOWtheHarvester/lib/takeover_evidence.py1CODE
LOWtheHarvester/lib/asn_attribution.py1CODE
LOWtheHarvester/lib/recursive_dns.py1CODE
LOWtheHarvester/lib/dns_consensus.py3CODE
LOWtheHarvester/lib/result_values.py1CODE
LOWtheHarvester/lib/shodan_evidence.py1CODE
LOWtheHarvester/lib/source_runner.py1CODE
LOWtheHarvester/lib/output.py1CODE
LOWtheHarvester/lib/api/schedule_service.py1CODE
LOWtheHarvester/lib/api/run_projection.py1CODE
8 more matches not shown…
Decorative Section Separators14 hits · 63 pts
SeverityFileLineSnippetContext
MEDIUMtests/discovery/test_thc.py117# =============================================================================COMMENT
MEDIUMtests/discovery/test_thc.py119# =============================================================================COMMENT
MEDIUMtests/discovery/test_thc.py155# =============================================================================COMMENT
MEDIUMtests/discovery/test_thc.py157# =============================================================================COMMENT
MEDIUMtests/discovery/test_thc.py329# =============================================================================COMMENT
MEDIUMtests/discovery/test_thc.py331# =============================================================================COMMENT
MEDIUMtests/discovery/test_thc.py376# =============================================================================COMMENT
MEDIUMtests/discovery/test_thc.py378# =============================================================================COMMENT
MEDIUMtests/discovery/test_thc.py401# =============================================================================COMMENT
MEDIUMtests/discovery/test_thc.py403# =============================================================================COMMENT
MEDIUMtests/discovery/test_thc.py443# =============================================================================COMMENT
MEDIUMtests/discovery/test_thc.py445# =============================================================================COMMENT
MEDIUMtests/discovery/test_thc.py483# =============================================================================COMMENT
MEDIUMtests/discovery/test_thc.py485# =============================================================================COMMENT
Deep Nesting49 hits · 48 pts
SeverityFileLineSnippetContext
LOWtests/discovery/test_commoncrawl.py11CODE
LOWtests/discovery/test_commoncrawl.py55CODE
LOWtests/discovery/test_commoncrawl.py20CODE
LOWtests/discovery/test_commoncrawl.py69CODE
LOWtheHarvester/screenshot/screenshot.py218CODE
LOWtheHarvester/screenshot/screenshot.py229CODE
LOWtheHarvester/discovery/urlscan.py48CODE
LOWtheHarvester/discovery/fofa.py38CODE
LOWtheHarvester/discovery/searchhunterhow.py37CODE
LOWtheHarvester/discovery/rocketreach.py24CODE
LOWtheHarvester/discovery/certspottersearch.py26CODE
LOWtheHarvester/discovery/bevigil.py34CODE
LOWtheHarvester/discovery/projectdiscovery.py29CODE
LOWtheHarvester/discovery/leaklookup.py48CODE
LOWtheHarvester/discovery/thc.py29CODE
LOWtheHarvester/discovery/crtsh.py18CODE
LOWtheHarvester/discovery/fullhuntsearch.py424CODE
LOWtheHarvester/discovery/virustotal.py24CODE
LOWtheHarvester/discovery/virustotal.py77CODE
LOWtheHarvester/discovery/hudsonrocksearch.py107CODE
LOWtheHarvester/discovery/hudsonrocksearch.py217CODE
LOWtheHarvester/discovery/hudsonrocksearch.py313CODE
LOWtheHarvester/discovery/rapiddns.py20CODE
LOWtheHarvester/discovery/securityscorecard.py76CODE
LOWtheHarvester/discovery/zoomeyesearch.py133CODE
LOWtheHarvester/discovery/githubcode.py138CODE
LOWtheHarvester/discovery/criminalip.py194CODE
LOWtheHarvester/discovery/hackertarget.py28CODE
LOWtheHarvester/discovery/onyphe.py118CODE
LOWtheHarvester/discovery/takeover.py48CODE
LOWtheHarvester/discovery/waybackarchive.py59CODE
LOWtheHarvester/discovery/waybackarchive.py108CODE
LOWtheHarvester/discovery/gitlabsearch.py116CODE
LOWtheHarvester/discovery/gitlabsearch.py187CODE
LOWtheHarvester/lib/database.py425CODE
LOWtheHarvester/lib/database.py1234CODE
LOWtheHarvester/lib/recursive_dns.py92CODE
LOWtheHarvester/lib/completed_result.py79CODE
LOWtheHarvester/lib/completed_result.py524CODE
LOWtheHarvester/lib/dns_consensus.py83CODE
LOWtheHarvester/lib/source_runner.py201CODE
LOWtheHarvester/lib/source_runner.py301CODE
LOWtheHarvester/lib/source_runner.py449CODE
LOWtheHarvester/lib/source_runner.py471CODE
LOWtheHarvester/lib/api/schedule_service.py228CODE
LOWtheHarvester/lib/api/schedule_service.py107CODE
LOWtheHarvester/lib/api/schedule_service.py155CODE
LOWtheHarvester/lib/api/run_models.py549CODE
LOWtheHarvester/lib/api/run_evidence.py71CODE
Modern Structural Boilerplate45 hits · 45 pts
SeverityFileLineSnippetContext
LOWtheHarvester/__main__.py90logger = logging.getLogger(__name__)CODE
LOWtheHarvester/screenshot/screenshot.py23logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/urlscan.py13logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/rocketreach.py7logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/huntersearch.py8logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/certspottersearch.py7logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/otxsearch.py9logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/search_dnsdumpster.py10logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/projectdiscovery.py7logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/leaklookup.py6logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/mojeek.py8logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/thc.py11logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/shodanct.py6logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/crtsh.py7logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/fullhuntsearch.py12logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/rapiddns.py9logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/dnssearch.py22logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/githubcode.py14logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/haveibeenpwned.py6logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/criminalip.py13logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/robtex.py10logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/arquivo.py10logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/onyphe.py14logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/subdomaincenter.py5logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/waybackarchive.py8logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/leakix.py8logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/sherlockeye.py12logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/dnsdb.py12logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/api_endpoints.py21logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/shodan_internetdb.py10logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/pentesttools.py10logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/commoncrawl.py10logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/hibpverified.py6logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/tombasearch.py8logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/search_dehashed.py9logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/gitlabsearch.py11logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/windvane.py15logger = logging.getLogger(__name__)CODE
LOWtheHarvester/discovery/windvane.py233 def set_api_key(self, api_key: str) -> None:CODE
LOWtheHarvester/discovery/shodansearch.py21logger = logging.getLogger(__name__)CODE
LOWtheHarvester/lib/database.py75logger = logging.getLogger(__name__)CODE
LOWtheHarvester/lib/__init__.py1__all__ = ['hostchecker']CODE
LOWtheHarvester/lib/core.py32logger = logging.getLogger(__name__)CODE
LOWtheHarvester/lib/virtual_host.py20logger = logging.getLogger(__name__)CODE
LOWtheHarvester/lib/source_runner.py86logger = logging.getLogger(__name__)CODE
LOWtheHarvester/lib/api/schedule_store.py562 async def set_dispatch_state(self, run_id: str, state: DispatchState, error: str | None = None) -> None:CODE
Fake / Example Data46 hits · 43 pts
SeverityFileLineSnippetContext
LOWtests/test_mojeek.py173 assert await search.get_emails() == {'admin@example.com'}CODE
LOWtests/test_mojeek.py317 assert await search.get_emails() == {'admin@example.com'}CODE
LOWtests/test_myparser.py14 ('Example.COM.', {'admin@example.com', 'lead@sub.example.com', 'owner@www.example.com'}),CODE
LOWtests/discovery/test_intelxsearch.py116 assert await search.get_emails() == ['admin@example.com']CODE
LOWtests/discovery/test_duckduckgo.py67 assert await search.get_emails() == {'admin@example.com'}STRING
LOWtests/discovery/test_search_dehashed.py34 {'email': 'admin@example.com', 'ip_address': '2001:0db8::1', 'database_name': 'private-breach'} for _ in range(2CODE
LOWtests/discovery/test_search_dehashed.py55 assert await search.get_emails() == {'user@example.com', 'admin@example.com'}CODE
LOWtests/discovery/test_search_dehashed.py55 assert await search.get_emails() == {'user@example.com', 'admin@example.com'}CODE
LOWtests/discovery/test_censys.py52 'parsed': {'subject': {'email_address': ['admin@example.com']}},CODE
LOWtests/discovery/test_censys.py130 assert await search.get_emails() == {'admin@example.com', 'ops@example.com'}CODE
LOWtests/discovery/test_rapiddns.py149 return {'user@example.com'}STRING
LOWtests/discovery/test_rapiddns.py351 assert rest_results[7] == ['user@example.com']STRING
LOWtests/discovery/test_rapiddns.py358 assert ('email', 'user@example.com') in completed_results[1].resultsSTRING
LOWtests/discovery/test_rapiddns.py360 ('dehashed', 'email', 'user@example.com'),STRING
LOWtests/discovery/test_zoomeyesearch.py33 'banner': 'admin@example.com',CODE
LOWtests/discovery/test_zoomeyesearch.py67 assert await search.get_emails() == {'admin@example.com'}CODE
LOWtests/discovery/test_githubcode_contract.py114 assert await search.get_emails() == {'admin@example.com'}CODE
LOWtests/discovery/test_brave.py93 assert await search.get_emails() == {'admin@example.com'}CODE
LOWtests/discovery/test_builtwith.py27 monkeypatch.setattr(builtwith.Core, 'builtwith_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_builtwith.py81 'Authorization': 'API dummy-key',CODE
LOWtests/discovery/test_builtwith.py97 monkeypatch.setattr(builtwith.Core, 'builtwith_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_builtwith.py129 monkeypatch.setattr(builtwith.Core, 'builtwith_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_builtwith.py181 monkeypatch.setattr(builtwith.Core, 'builtwith_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_builtwith.py198 monkeypatch.setattr(builtwith.Core, 'builtwith_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_builtwith.py242 monkeypatch.setattr(builtwith.Core, 'builtwith_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_builtwith.py258 monkeypatch.setattr(builtwith.Core, 'builtwith_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_yahoosearch.py43 assert set(await search.get_emails()) == {'admin@example.com'}CODE
LOWtests/discovery/test_sherlockeye.py33 monkeypatch.setattr(sherlockeye.Core, 'sherlockeye_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_sherlockeye.py44 'Authorization': 'Bearer dummy-key',CODE
LOWtests/discovery/test_sherlockeye.py84 monkeypatch.setattr(sherlockeye.Core, 'sherlockeye_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_sherlockeye.py101 'email': 'user@example.com',CODE
LOWtests/discovery/test_sherlockeye.py130 assert await search.get_emails() == {'user@example.com'}CODE
LOWtests/discovery/test_sherlockeye.py137 monkeypatch.setattr(sherlockeye.Core, 'sherlockeye_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_sherlockeye.py159 monkeypatch.setattr(sherlockeye.Core, 'sherlockeye_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_sherlockeye.py187 monkeypatch.setattr(sherlockeye.Core, 'sherlockeye_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_sherlockeye.py202 monkeypatch.setattr(sherlockeye.Core, 'sherlockeye_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_sherlockeye.py216 monkeypatch.setattr(sherlockeye.Core, 'sherlockeye_key', lambda: 'dummy-key')CODE
LOWtests/discovery/test_sherlockeye.py238 monkeypatch.setattr(sherlockeye.Core, 'sherlockeye_key', lambda: 'dummy-key')CODE
LOWtests/lib/test_completed_persistence.py1571 ('example.com', 'admin@example.com', 'email', '2026-08-08', 'hunter'),STRING
LOWtests/lib/test_completed_persistence.py1595 ('admin@example.com', 'email'),STRING
LOWtests/lib/test_completed_persistence.py1705 await store.record_observations('example.com', ['admin@example.com'], 'email', 'hunter')STRING
LOWtests/lib/test_completed_persistence.py1719 ('example.com', 'admin@example.com', 'email', 'hunter'),STRING
LOWtests/lib/test_completed_result.py94 'email': ['admin@example.com'],CODE
LOWtests/lib/test_completed_result.py117 'value': 'admin@example.com',CODE
LOWtests/e2e/test_harvestview.py1836 expect(value_filter).to_have_attribute('placeholder', 'Filter values')CODE
LOWtests/e2e/test_harvestview.py1837 expect(dns_filter).to_have_attribute('placeholder', 'Filter DNS')CODE
Hallucination Indicators2 hits · 20 pts
SeverityFileLineSnippetContext
CRITICALtheHarvester/lib/api/static/harvestview/app.js964 const endpoint = nodes.newRunForm.elements.vhost_endpoint.value.trim();CODE
CRITICALtheHarvester/lib/api/static/harvestview/app.js978 const target = nodes.newRunForm.elements.target.value.trim();CODE
Dead Code4 hits · 8 pts
SeverityFileLineSnippetContext
MEDIUMtests/test_main.py3647CODE
MEDIUMtests/discovery/test_censys.py202CODE
MEDIUMtests/discovery/test_brave.py137CODE
MEDIUMtests/lib/test_routeviews.py149CODE
Self-Referential Comments2 hits · 6 pts
SeverityFileLineSnippetContext
MEDIUMtheHarvester/__main__.py1953 # Define a default wordlist if none is specifiedCOMMENT
MEDIUMtheHarvester/__main__.py1959 # Create a default simple API endpoint listCOMMENT
Redundant / Tautological Comments4 hits · 6 pts
SeverityFileLineSnippetContext
LOWtheHarvester/__main__.py1826 # Check if the result is a string (error message)COMMENT
LOWtheHarvester/__main__.py2017 # Print resultsCOMMENT
LOWtheHarvester/discovery/api_endpoints.py883 # Check if rate limitedCOMMENT
LOWtheHarvester/discovery/api_endpoints.py892 # Check if this is an interesting endpointCOMMENT
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMtheHarvester/discovery/api_endpoints.py158 # Add comprehensive API paths categorized by functionalityCOMMENT
Cross-Language Confusion1 hit · 2 pts
SeverityFileLineSnippetContext
HIGHtests/e2e/test_harvestview.py351 return buttonBox.top >= dialogBox.top && buttonBox.bottom <= dialogBox.bottom && buttonBox.bottom <= innerHeigSTRING
Over-Commented Block2 hits · 2 pts
SeverityFileLineSnippetContext
LOW.github/workflows/codeql-analysis.yml1# For most projects, this workflow file will not need changing; you simply needCOMMENT
LOW.github/workflows/codeql-analysis.yml61 # Prefix the list here with "+" to use these queries and those in the config file.COMMENT
AI Structural Patterns1 hit · 1 pts
SeverityFileLineSnippetContext
LOWtheHarvester/lib/completed_result.py424CODE