Tools for managing DNS across multiple providers
This report summarizes scanner evidence for octodns/octodns, a Python project with 3,772 GitHub stars. SynthScan examined 54,706 lines of code across 340 source files, recording 666 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 17.5 (Elevated 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? 563 finding(s).
Are imports declared and package/API names verified? 15 finding(s).
Are wrappers, guards, and repeated structures necessary? 574 finding(s).
Which changes need focused human review? 666 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 666 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 | octodns/record/svcb.py | 95 | def validate_svcparam_mandatory(svcparamvalue, validator_id=None): | CODE |
| LOW | octodns/record/svcb.py | 150 | def _svcparamvalue_list_from_rdata_text(svcparamvalue): | CODE |
| LOW | octodns/record/tlsa.py | 337 | def certificate_association_data(self): | CODE |
| LOW | octodns/record/tlsa.py | 341 | def certificate_association_data(self, value): | CODE |
| LOW | octodns/record/target.py | 52 | def _check_target_trailing_dot(target, _type, key='value', validator_id=None): | CODE |
| LOW | octodns/record/base.py | 26 | def _deprecated_parse_rdata_text(value_type, replacement=None): | CODE |
| LOW | octodns/record/base.py | 53 | def _value_from_rdata_text_uses_legacy(value_type): | CODE |
| LOW | octodns/record/base.py | 84 | def _value_to_rdata_text_uses_legacy(value_type): | CODE |
| LOW | octodns/record/base.py | 717 | def _process_value_validators(value_type, values, _type, disabled=None): | CODE |
| LOW | octodns/processor/templating.py | 74 | def process_source_and_target_zones( | CODE |
| LOW | octodns/processor/base.py | 150 | def process_source_and_target_zones( | CODE |
| LOW | octodns/processor/meta.py | 127 | def process_source_and_target_zones( | CODE |
| LOW | octodns/zone/base.py | 341 | def registered_zone_validators(cls): | CODE |
| LOW | octodns/zone/base.py | 345 | def available_zone_validators(cls): | CODE |
| LOW | tests/test_octodns_zone.py | 117 | def test_duplicate_context_handling(self): | CODE |
| LOW | tests/test_octodns_zone.py | 233 | def test_deprecated__remove_record(self): | CODE |
| LOW | tests/test_octodns_zone.py | 747 | def test_validator_registration_methods(self): | CODE |
| LOW | tests/test_octodns_zone.py | 848 | def test_not_included_records(self): | CODE |
| LOW⚡ | tests/test_octodns_zone.py | 1082 | def test_merger_ignores_other_type(self): | CODE |
| LOW⚡ | tests/test_octodns_zone.py | 1089 | def test_copy_preserves_mergers(self): | CODE |
| LOW⚡ | tests/test_octodns_zone.py | 1094 | def test_caa_merge_with_best_practice_validators(self): | CODE |
| LOW | tests/test_octodns_zone.py | 1138 | def test_caa_merge_still_fails_without_issuewild(self): | CODE |
| LOW | tests/test_octodns_zone.py | 1169 | def test_disabled_record_validators(self): | CODE |
| LOW | tests/test_octodns_zone.py | 1188 | def test_disabled_zone_validators(self): | CODE |
| LOW | tests/test_octodns_zone.py | 1199 | def test_bridge_record_validator_rejected(self): | CODE |
| LOW | tests/test_octodns_zone.py | 1213 | def test_bridge_zone_validator_rejected(self): | CODE |
| LOW | tests/test_octodns_zone.py | 1226 | def test_copy_propagates_validators_config(self): | CODE |
| LOW | tests/test_octodns_zone.py | 1252 | def test_get_filtered_by_type(self): | CODE |
| LOW | tests/test_octodns_zone.py | 1259 | def test_get_multiple_types_at_same_name(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 186 | def test_plan_existing_zone_inherits_validators_config(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 234 | def test_plan_with_process_desired_zone_kwarg_fallback(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 254 | def test_plan_with_unsupported_type(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 279 | def test_plan_with_processors(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 314 | def test_plan_passes_lenient_to_processors(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 334 | def test_plan_processor_lenient_fallback(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 354 | def process_source_and_target_zones( | CODE |
| LOW | tests/test_octodns_provider_base.py | 376 | def process_source_and_target_zones( | CODE |
| LOW | tests/test_octodns_provider_base.py | 428 | def test_plan_order_of_operations(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 460 | def test_process_desired_zone(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 581 | def test_process_existing_zone(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 617 | def test_safe_min_existing_creates(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 646 | def test_safe_updates_min_existing(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 673 | def test_safe_updates_min_existing_pcent(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 696 | def test_safe_deletes_min_existing(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 723 | def test_safe_deletes_min_existing_pcent(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 746 | def test_safe_updates_min_existing_override(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 774 | def test_safe_deletes_min_existing_override(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 897 | def test_supports_warn_or_except(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 976 | def test_supports_root_ns_false_matches(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 999 | def test_supports_root_ns_false_different(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 1023 | def test_supports_root_ns_false_missing(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 1042 | def test_supports_root_ns_false_create_zone(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 1065 | def test_supports_root_ns_false_create_zone_missing(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 1086 | def test_supports_root_ns_true_matches(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 1103 | def test_supports_root_ns_true_different(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 1126 | def test_supports_root_ns_true_missing(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 1147 | def test_supports_root_ns_true_create_zone(self): | CODE |
| LOW | tests/test_octodns_provider_base.py | 1177 | def test_supports_root_ns_true_create_zone_missing(self): | CODE |
| LOW | tests/test_octodns_record_ptr.py | 112 | def test_best_practice_validator(self): | CODE |
| LOW | tests/test_octodns_zone_validators_ns.py | 138 | def test_in_zone_target_no_cname(self): | CODE |
| 424 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | octodns/manager.py | 577 | except PackageNotFoundError: | CODE |
| HIGH | octodns/record/geo.py | 182 | except KeyError: | CODE |
| HIGH | octodns/record/srv.py | 312 | except ValueError: | CODE |
| HIGH | octodns/record/srv.py | 316 | except ValueError: | CODE |
| HIGH | octodns/record/srv.py | 320 | except ValueError: | CODE |
| HIGH | octodns/record/mx.py | 223 | except ValueError: | CODE |
| HIGH | octodns/record/naptr.py | 234 | except ValueError: | CODE |
| HIGH | octodns/record/svcb.py | 338 | except ValueError: | CODE |
| HIGH | octodns/record/loc.py | 246 | except ValueError: | CODE |
| HIGH | octodns/record/loc.py | 250 | except ValueError: | CODE |
| HIGH | octodns/record/loc.py | 254 | except ValueError: | CODE |
| HIGH | octodns/record/loc.py | 258 | except ValueError: | CODE |
| HIGH | octodns/record/loc.py | 262 | except ValueError: | CODE |
| HIGH | octodns/record/loc.py | 266 | except ValueError: | CODE |
| HIGH | octodns/record/loc.py | 270 | except ValueError: | CODE |
| HIGH | octodns/record/loc.py | 274 | except ValueError: | CODE |
| HIGH | octodns/record/loc.py | 278 | except ValueError: | CODE |
| HIGH | octodns/record/loc.py | 282 | except ValueError: | CODE |
| HIGH | octodns/record/tlsa.py | 276 | except ValueError: | CODE |
| HIGH | octodns/record/tlsa.py | 280 | except ValueError: | CODE |
| HIGH | octodns/record/tlsa.py | 284 | except ValueError: | CODE |
| HIGH | octodns/record/dynamic.py | 125 | except KeyError: | CODE |
| HIGH | octodns/record/dynamic.py | 129 | except KeyError: | CODE |
| HIGH | octodns/record/dynamic.py | 133 | except KeyError: | CODE |
| HIGH | octodns/record/dynamic.py | 303 | except KeyError: | CODE |
| HIGH | octodns/record/dynamic.py | 322 | except KeyError: | CODE |
| HIGH | octodns/record/dynamic.py | 496 | except: | CODE |
| HIGH | octodns/record/uri.py | 174 | except ValueError: | CODE |
| HIGH | octodns/record/uri.py | 178 | except ValueError: | CODE |
| HIGH | octodns/record/sshfp.py | 256 | except ValueError: | CODE |
| HIGH | octodns/record/sshfp.py | 260 | except ValueError: | CODE |
| HIGH | octodns/record/ds.py | 339 | except ValueError: | CODE |
| HIGH | octodns/record/ds.py | 343 | except ValueError: | CODE |
| HIGH | octodns/record/ds.py | 347 | except ValueError: | CODE |
| HIGH | octodns/record/ds.py | 272 | except (KeyError, ValueError, TypeError): | CODE |
| HIGH | octodns/record/ds.py | 283 | except (KeyError, ValueError, TypeError): | CODE |
| HIGH | octodns/record/target.py | 47 | except ValueError: | CODE |
| HIGH | octodns/record/urlfwd.py | 133 | except ValueError: | CODE |
| HIGH | octodns/record/urlfwd.py | 137 | except ValueError: | CODE |
| HIGH | octodns/record/urlfwd.py | 141 | except ValueError: | CODE |
| HIGH | octodns/record/base.py | 201 | except KeyError: | CODE |
| HIGH | octodns/record/base.py | 363 | except KeyError: | CODE |
| HIGH | octodns/record/caa.py | 196 | except ValueError: | CODE |
| HIGH | octodns/source/tinydns.py | 20 | except TypeError: | CODE |
| HIGH | octodns/source/tinydns.py | 45 | except IndexError: | CODE |
| HIGH | octodns/secret/environ.py | 41 | except ValueError: | CODE |
| HIGH | docs/conf.py | 127 | except CalledProcessError: | CODE |
| HIGH | docs/conf.py | 135 | except CalledProcessError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | octodns/record/srv.py | 0 | parse one caa rdata presentation string into internal field data. :param str value: caa rdata in dns master-file present | STRING |
| HIGH | octodns/record/mx.py | 0 | parse one caa rdata presentation string into internal field data. :param str value: caa rdata in dns master-file present | STRING |
| HIGH | octodns/record/naptr.py | 0 | parse one caa rdata presentation string into internal field data. :param str value: caa rdata in dns master-file present | STRING |
| HIGH | octodns/record/loc.py | 0 | parse one caa rdata presentation string into internal field data. :param str value: caa rdata in dns master-file present | STRING |
| HIGH | octodns/record/tlsa.py | 0 | parse one caa rdata presentation string into internal field data. :param str value: caa rdata in dns master-file present | STRING |
| HIGH | octodns/record/uri.py | 0 | parse one caa rdata presentation string into internal field data. :param str value: caa rdata in dns master-file present | STRING |
| HIGH | octodns/record/sshfp.py | 0 | parse one caa rdata presentation string into internal field data. :param str value: caa rdata in dns master-file present | STRING |
| HIGH | octodns/record/ds.py | 0 | parse one caa rdata presentation string into internal field data. :param str value: caa rdata in dns master-file present | STRING |
| HIGH | octodns/record/caa.py | 0 | parse one caa rdata presentation string into internal field data. :param str value: caa rdata in dns master-file present | STRING |
| HIGH | octodns/record/srv.py | 0 | render this internal caa value as one rdata presentation string. :returns: caa rdata in dns master-file presentation for | STRING |
| HIGH | octodns/record/mx.py | 0 | render this internal caa value as one rdata presentation string. :returns: caa rdata in dns master-file presentation for | STRING |
| HIGH | octodns/record/naptr.py | 0 | render this internal caa value as one rdata presentation string. :returns: caa rdata in dns master-file presentation for | STRING |
| HIGH | octodns/record/loc.py | 0 | render this internal caa value as one rdata presentation string. :returns: caa rdata in dns master-file presentation for | STRING |
| HIGH | octodns/record/tlsa.py | 0 | render this internal caa value as one rdata presentation string. :returns: caa rdata in dns master-file presentation for | STRING |
| HIGH | octodns/record/uri.py | 0 | render this internal caa value as one rdata presentation string. :returns: caa rdata in dns master-file presentation for | STRING |
| HIGH | octodns/record/sshfp.py | 0 | render this internal caa value as one rdata presentation string. :returns: caa rdata in dns master-file presentation for | STRING |
| HIGH | octodns/record/ds.py | 0 | render this internal caa value as one rdata presentation string. :returns: caa rdata in dns master-file presentation for | STRING |
| HIGH | octodns/record/caa.py | 0 | render this internal caa value as one rdata presentation string. :returns: caa rdata in dns master-file presentation for | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | octodns/schema/config.py | 57 | # ── Providers / Sources ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | octodns/schema/config.py | 98 | # ── Processors ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | octodns/schema/config.py | 219 | # ── Mergers ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | octodns/schema/config.py | 226 | # ── Secret handlers ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | octodns/schema/config.py | 232 | # ── Plan outputs ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | octodns/schema/config.py | 260 | # ── Schema defs ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_octodns_manager.py | 361 | # ── Zone validator manager wiring tests ────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_octodns_config_schema.py | 41 | # ── Top-level structure ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_octodns_config_schema.py | 63 | # ── manager: ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_octodns_config_schema.py | 200 | # ── providers: ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_octodns_config_schema.py | 325 | # ── processors: ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_octodns_config_schema.py | 562 | # ── validators: ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_octodns_config_schema.py | 599 | # ── secret_handlers: ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_octodns_config_schema.py | 625 | # ── mergers: ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | tests/test_octodns_config_schema.py | 850 | # ── CLI ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_octodns_config_schema.py | 656 | # ── zones: ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | tests/test_octodns_config_schema.py | 833 | # ── Round-trip ──────────────────────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | octodns/yaml.py | 70 | CODE | |
| LOW | octodns/manager.py | 628 | CODE | |
| LOW | octodns/manager.py | 656 | CODE | |
| LOW | octodns/manager.py | 702 | CODE | |
| LOW | octodns/manager.py | 881 | CODE | |
| LOW | octodns/manager.py | 964 | CODE | |
| LOW | octodns/manager.py | 1224 | CODE | |
| LOW | octodns/record/validator.py | 46 | CODE | |
| LOW | octodns/record/validator.py | 79 | CODE | |
| LOW | octodns/record/validator.py | 124 | CODE | |
| LOW | octodns/record/geo.py | 20 | CODE | |
| LOW | octodns/record/srv.py | 198 | CODE | |
| LOW | octodns/record/mx.py | 78 | CODE | |
| LOW | octodns/record/naptr.py | 97 | CODE | |
| LOW | octodns/record/svcb.py | 226 | CODE | |
| LOW | octodns/record/svcb.py | 324 | CODE | |
| LOW | octodns/record/loc.py | 26 | CODE | |
| LOW | octodns/record/chunked.py | 75 | CODE | |
| LOW | octodns/record/tlsa.py | 128 | CODE | |
| LOW | octodns/record/dynamic.py | 254 | CODE | |
| LOW | octodns/record/dynamic.py | 384 | CODE | |
| LOW | octodns/record/uri.py | 107 | CODE | |
| LOW | octodns/record/ip.py | 17 | CODE | |
| LOW | octodns/record/sshfp.py | 32 | CODE | |
| LOW | octodns/record/sshfp.py | 123 | CODE | |
| LOW | octodns/record/ds.py | 169 | CODE | |
| LOW | octodns/processor/filter.py | 491 | CODE | |
| LOW | octodns/processor/restrict.py | 62 | CODE | |
| LOW | octodns/processor/trailing_dots.py | 24 | CODE | |
| LOW | octodns/processor/arpa.py | 41 | CODE | |
| LOW | octodns/source/tinydns.py | 389 | CODE | |
| LOW | octodns/zone/mail.py | 360 | CODE | |
| LOW | octodns/zone/mail.py | 502 | CODE | |
| LOW | octodns/zone/mail.py | 537 | CODE | |
| LOW | octodns/zone/srv.py | 16 | CODE | |
| LOW | octodns/zone/srv.py | 44 | CODE | |
| LOW | octodns/zone/cname.py | 15 | CODE | |
| LOW | octodns/zone/cname.py | 101 | CODE | |
| LOW | octodns/zone/cname.py | 144 | CODE | |
| LOW | octodns/zone/ns.py | 25 | CODE | |
| LOW | octodns/zone/ns.py | 56 | CODE | |
| LOW | octodns/zone/base.py | 482 | CODE | |
| LOW | octodns/zone/base.py | 613 | CODE | |
| LOW | octodns/provider/plan.py | 259 | CODE | |
| LOW | octodns/provider/plan.py | 325 | CODE | |
| LOW | octodns/provider/yaml.py | 346 | CODE | |
| LOW | octodns/provider/base.py | 120 | CODE | |
| LOW | octodns/cmds/report.py | 50 | CODE | |
| LOW | tests/test_octodns_record.py | 220 | CODE | |
| LOW | tests/test_octodns_manager.py | 567 | CODE | |
| LOW | tests/test_octodns_manager.py | 592 | CODE | |
| LOW | tests/test_octodns_manager.py | 617 | CODE | |
| LOW | tests/test_octodns_manager.py | 640 | CODE | |
| LOW | tests/test_octodns_record_chunked.py | 155 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | octodns/source/tinydns.py | 409 | # just use the default below | COMMENT |
| MEDIUM⚡ | tests/test_octodns_zone_validators_caa.py | 25 | """Tests for the comprehensive CAA best-practice validator.""" | STRING |
| MEDIUM | …cs/examples/migrating-to-octodns/populate/octodns.yaml | 21 | # meet octoDNS's best practices so that we can show | COMMENT |
| MEDIUM | …les/migrating-to-octodns/populate/my-dumpable.com.yaml | 32 | # recommended best practices. | COMMENT |
| MEDIUM | docs/examples/basic/config/my-domain.com.yaml | 48 | # case where you need to omit the `.`, or other enforced best practices, see | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | octodns/processor/__init__.py | 1 | # | COMMENT |
| LOW | octodns/processor/meta.py | 41 | COMMENT | |
| LOW | octodns/source/__init__.py | 1 | # | COMMENT |
| LOW | octodns/provider/yaml.py | 21 | # Whether or not to enforce sorting order when loading yaml | COMMENT |
| LOW | octodns/provider/yaml.py | 41 | split_extension: null | COMMENT |
| LOW | octodns/cmds/__init__.py | 1 | # | COMMENT |
| LOW | octodns/schema/zone.py | 21 | from ..record.dynamic import _DynamicMixin | COMMENT |
| LOW | octodns/secret/__init__.py | 1 | # | COMMENT |
| LOW | docs/examples/basic/config/my-domain.com.yaml | 1 | --- | COMMENT |
| LOW | docs/examples/basic/config/my-domain.com.yaml | 41 | # We want www and the APEX to return the same values for A/AAAA queries. We | COMMENT |
| LOW | docs/examples/basic/config/octodns.yaml | 41 | # other here and include them in the targets list down below. See the | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | octodns/record/geo_data.py | 4 | # This file is generated using | COMMENT |
| MEDIUM | octodns/zone/base.py | 117 | # Create a shallow copy | STRING |
| MEDIUM | tests/test_octodns_manager.py | 917 | # Create an empty unit.test zone config | COMMENT |
| MEDIUM | tests/test_octodns_provider_yaml.py | 246 | # Create a provider with ignore_missing_zones disabled (default) | STRING |
| MEDIUM | tests/test_octodns_provider_yaml.py | 259 | # Create a provider with ignore_missing_zones enabled | STRING |
| MEDIUM | tests/test_octodns_provider_yaml.py | 280 | # Create a second directory without the zone file | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | octodns/merge/__init__.py | 6 | CODE | |
| LOW | octodns/merge/__init__.py | 6 | CODE | |
| LOW | octodns/merge/__init__.py | 6 | CODE | |
| LOW | octodns/merge/__init__.py | 7 | CODE | |
| LOW | octodns/merge/__init__.py | 7 | CODE | |
| LOW | octodns/schema/__init__.py | 5 | CODE | |
| LOW | octodns/schema/__init__.py | 6 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | tests/test_octodns_record_txt.py | 76 | '"Lorem ipsum dolor sit amet, consectetur adipiscing ' | CODE |
| LOW | tests/test_octodns_record_txt.py | 76 | '"Lorem ipsum dolor sit amet, consectetur adipiscing ' | CODE |
| LOW | tests/test_octodns_record_txt.py | 87 | 'Lorem ipsum dolor sit amet, consectetur adipiscing ' | CODE |
| LOW | tests/test_octodns_record_txt.py | 87 | 'Lorem ipsum dolor sit amet, consectetur adipiscing ' | CODE |
| LOW | tests/test_octodns_record_txt.py | 118 | '"Lorem ipsum dolor sit amet, consectetur ' | CODE |
| LOW | tests/test_octodns_record_txt.py | 118 | '"Lorem ipsum dolor sit amet, consectetur ' | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | octodns/provider/yaml.py | 39 | # (optional, default null, "." is the recommended best practice when | STRING |
| HIGH | octodns/provider/yaml.py | 56 | # (optional, default null) | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | octodns/record/ip.py | 35 | except Exception: | CODE |
| LOW | octodns/cmds/report.py | 136 | except Exception: | CODE |
| MEDIUM | octodns/cmds/report.py | 148 | print(f'Error: No valid resolver specified ({", ".join(servers)})') | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | octodns/record/dynamic.py | 169 | CODE | |
| LOW | octodns/provider/yaml.py | 196 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | octodns/merge/__init__.py | 9 | __all__ = ['BaseMerger', 'CaaMerger', 'MergerRegistry', 'REGISTRY', 'TxtMerger'] | CODE |
| LOW | octodns/schema/__init__.py | 8 | __all__ = ['build_config_schema', 'build_zone_schema'] | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | octodns/zone/ns.py | 32 | # Check if address records exist at this target | COMMENT |