Deduplicating archiver with compression and authenticated encryption.
This report summarizes scanner evidence for borgbackup/borg, a Python project with 13,830 GitHub stars. SynthScan examined 97,997 lines of code across 309 source files, recording 2185 pattern matches distributed across 16 syntactic categories. The legacy adjusted pattern signal is 24.4 (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? 1580 finding(s).
Are imports declared and package/API names verified? 438 finding(s).
Are wrappers, guards, and repeated structures necessary? 1493 finding(s).
Which changes need focused human review? 2185 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 2185 distinct pattern matches across 16 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/borg/repoobj.py | 299 | def whole_object_authenticator(repo_objs): | CODE |
| LOW | src/borg/fslocking.py | 441 | def _wait_for_readers_finishing(self, remove, sleep): | CODE |
| LOW | src/borg/conftest.py | 202 | def maybe_clear_flags_and_retry(func, path, _exc_info): | CODE |
| LOW | src/borg/patterns.py | 127 | def get_unmatched_include_patterns(self): | CODE |
| LOW | src/borg/manifest.py | 100 | def get_first_and_last_archive_ts(archives_list): | CODE |
| LOW | src/borg/cache.py | 86 | def discover_files_cache_names(path, files_cache_name="files"): | CODE |
| LOW | src/borg/cache.py | 355 | def discover_files_cache_names(self, path): | CODE |
| LOW | src/borg/cache.py | 556 | def chunkindex_fragment_entry_size(): | CODE |
| LOW | src/borg/cache.py | 572 | def list_chunkindex_fragments(repository): | CODE |
| LOW | src/borg/cache.py | 617 | def delete_chunkindex_invalid(repository): | CODE |
| LOW | src/borg/cache.py | 628 | def delete_chunkindex_from_repo(repository): | CODE |
| LOW | src/borg/cache.py | 650 | def _store_chunkindex_fragment(repository, batch, stored_hashes, *, force_write): | CODE |
| LOW | src/borg/cache.py | 811 | def read_chunkindex_from_repo(repository, hash): | CODE |
| LOW | src/borg/cache.py | 894 | def build_chunkindex_from_repo( | CODE |
| LOW | src/borg/cache.py | 1104 | def archive_reference_cache_name(archive_id: bytes) -> str: | CODE |
| LOW | src/borg/cache.py | 1109 | def list_archive_reference_caches(repository) -> set: | CODE |
| LOW | src/borg/cache.py | 1154 | def cleanup_archive_reference_caches(repository, stale_hex_ids: set) -> None: | CODE |
| LOW | src/borg/cache.py | 1277 | def _maybe_write_chunks_index(self, now, force=False, clear=False): | CODE |
| LOW | src/borg/archive.py | 2732 | def rebuild_archives_directory(self): | CODE |
| LOW | src/borg/repository.py | 699 | def remove_missing_pack_entries(chunks, missing_pack_ids): | CODE |
| LOW | src/borg/crypto/key.py | 226 | def encryption_argument_names(): | CODE |
| LOW | src/borg/crypto/key.py | 794 | def get_existing_or_new_target(self, args): | CODE |
| LOW | src/borg/crypto/key.py | 822 | def _find_all_keys_in_keys_dir(self): | CODE |
| LOW | src/borg/crypto/key.py | 849 | def _find_key_file_from_environment(self): | CODE |
| LOW | src/borg/testsuite/compress_test.py | 188 | def test_additive_obfuscation(specs, c_type, obfuscation_padding: int): | CODE |
| LOW | src/borg/testsuite/compress_test.py | 226 | def test_default_compression_level(c_type, c_name): | CODE |
| LOW | src/borg/testsuite/compress_test.py | 239 | def test_specified_compression_level(c_type, c_name, c_levels): | CODE |
| LOW | src/borg/testsuite/compress_test.py | 247 | def test_invalid_compression_level(invalid_spec): | CODE |
| LOW | src/borg/testsuite/compress_test.py | 262 | def test_zstd_level_roundtrip(level): | CODE |
| LOW | src/borg/testsuite/compress_test.py | 273 | def test_zstd_level_roundtrip_legacy_mode(level): | CODE |
| LOW | src/borg/testsuite/compress_test.py | 283 | def test_other_compressors_keep_their_level_byte(): | CODE |
| LOW | src/borg/testsuite/compress_test.py | 330 | def test_robj_specific_obfuscation(data_length, expected_padding, robj_type): | CODE |
| LOW | src/borg/testsuite/compress_test.py | 342 | def test_zstd_mt_workers_from_env(monkeypatch): | CODE |
| LOW | src/borg/testsuite/compress_test.py | 384 | def test_zstd_compressor_is_cached_per_thread_and_level(zstd_mt): | CODE |
| LOW | src/borg/testsuite/compress_test.py | 399 | def test_zstd_mt_reused_compressor_output(zstd_mt): | CODE |
| LOW | src/borg/testsuite/compress_test.py | 415 | def test_zstd_mt_roundtrip_concurrent(zstd_mt): | CODE |
| LOW | src/borg/testsuite/compress_test.py | 429 | def test_zstd_below_threshold_is_single_threaded(zstd_mt): | CODE |
| LOW | src/borg/testsuite/compress_test.py | 442 | def test_zstd_single_threaded_reused_compressor_output(zstd_mt): | CODE |
| LOW⚡ | src/borg/testsuite/archives_test.py | 86 | def test_ids_returns_binary_ids(): | CODE |
| LOW⚡ | src/borg/testsuite/archives_test.py | 92 | def test_ids_store_object_not_found_gives_empty(): | CODE |
| LOW⚡ | src/borg/testsuite/archives_test.py | 98 | def test_ids_passes_deleted_flag(): | CODE |
| LOW⚡ | src/borg/testsuite/archives_test.py | 155 | def test_exists_name_and_id_true(): | CODE |
| LOW⚡ | src/borg/testsuite/archives_test.py | 161 | def test_exists_name_and_id_false_wrong_name(): | CODE |
| LOW⚡ | src/borg/testsuite/archives_test.py | 167 | def test_exists_name_and_id_false_wrong_id(): | CODE |
| LOW⚡ | src/borg/testsuite/archives_test.py | 173 | def test_exists_name_and_ts_true(): | CODE |
| LOW⚡ | src/borg/testsuite/archives_test.py | 179 | def test_exists_name_and_ts_false_wrong_ts(): | CODE |
| LOW⚡ | src/borg/testsuite/archives_test.py | 185 | def test_exists_name_and_ts_false_wrong_name(): | CODE |
| LOW⚡ | src/borg/testsuite/archives_test.py | 191 | def test_get_archive_meta_object_not_found(): | CODE |
| LOW⚡ | src/borg/testsuite/archives_test.py | 396 | def test_create_calls_store_store(): | CODE |
| LOW⚡ | src/borg/testsuite/archives_test.py | 402 | def test_create_with_datetime_ts(): | CODE |
| LOW⚡ | src/borg/testsuite/archives_test.py | 409 | def test_create_overwrite_kwarg_ignored(): | CODE |
| LOW⚡ | src/borg/testsuite/archives_test.py | 586 | def test_get_one_no_match_raises(): | CODE |
| LOW⚡ | src/borg/testsuite/archives_test.py | 592 | def test_get_one_multiple_matches_raises(): | CODE |
| LOW⚡ | src/borg/testsuite/archives_test.py | 600 | def test_get_one_deleted_passes_flag(): | CODE |
| LOW⚡ | src/borg/testsuite/archives_test.py | 608 | def test_list_considering_raises_if_name_set(): | CODE |
| LOW⚡ | src/borg/testsuite/archives_test.py | 616 | def test_list_considering_delegates(): | CODE |
| LOW | src/borg/testsuite/archives_test.py | 55 | def _stub_matching_info_tuples(infos): | CODE |
| LOW | src/borg/testsuite/archives_test.py | 67 | def test_archives_satisfies_archives_interface(): | CODE |
| LOW | src/borg/testsuite/archives_test.py | 207 | def test_get_archive_meta_success(): | CODE |
| LOW | src/borg/testsuite/archives_test.py | 236 | def test_get_archive_meta_success_with_tags(): | CODE |
| 1250 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | scripts/blake3-optimize-mt-threshold.py | 125 | except Exception: | CODE |
| HIGH | scripts/bench_chunker_kernels.py | 79 | except (OSError, subprocess.SubprocessError, IndexError): | CODE |
| HIGH | src/borg/fslocking.py | 338 | except FileNotFoundError: | CODE |
| HIGH | src/borg/fslocking.py | 173 | except: # nosec B110 # noqa | CODE |
| HIGH | src/borg/fslocking.py | 177 | except: # nosec B110 # noqa | CODE |
| HIGH | src/borg/conftest.py | 65 | except Exception: # nosec B110 | CODE |
| HIGH | src/borg/conftest.py | 210 | except OSError: | CODE |
| HIGH | src/borg/cache.py | 624 | except StoreObjectNotFound: | CODE |
| HIGH | src/borg/cache.py | 638 | except StoreObjectNotFound: | CODE |
| HIGH | src/borg/cache.py | 1159 | except StoreObjectNotFound: | CODE |
| HIGH | src/borg/cache.py | 791 | except StoreObjectNotFound: | CODE |
| HIGH | src/borg/vfs.py | 181 | except KeyError: | CODE |
| HIGH | src/borg/vfs.py | 613 | except KeyError: | CODE |
| HIGH | src/borg/archive.py | 1057 | except OSError: | CODE |
| HIGH | src/borg/archive.py | 1194 | except OSError: | CODE |
| HIGH | src/borg/repository.py | 829 | except StoreObjectNotFound: | CODE |
| HIGH | src/borg/repository.py | 1209 | except StoreBackendError: | CODE |
| HIGH | src/borg/repository.py | 1350 | except StoreObjectNotFound: | CODE |
| HIGH | src/borg/crypto/key.py | 819 | except (KeyfileInvalidError, KeyfileMismatchError): | CODE |
| HIGH | src/borg/testsuite/__init__.py | 171 | except OSError: | CODE |
| HIGH | src/borg/testsuite/__init__.py | 190 | except OSError: | CODE |
| HIGH | src/borg/testsuite/__init__.py | 201 | except OSError: | CODE |
| HIGH | src/borg/testsuite/__init__.py | 203 | except NotImplementedError: | CODE |
| HIGH | src/borg/testsuite/__init__.py | 205 | except AttributeError: | CODE |
| HIGH | src/borg/testsuite/__init__.py | 226 | except OSError: | CODE |
| HIGH | src/borg/testsuite/__init__.py | 228 | except NotImplementedError: | CODE |
| HIGH | src/borg/testsuite/__init__.py | 253 | except OSError: | CODE |
| HIGH | src/borg/testsuite/__init__.py | 255 | except NotImplementedError: | CODE |
| HIGH | src/borg/testsuite/digests_test.py | 102 | except ValueError: | CODE |
| HIGH | src/borg/testsuite/legacyrepository_test.py | 305 | except TypeError: | CODE |
| HIGH | src/borg/testsuite/legacyrepository_test.py | 318 | except TypeError: | CODE |
| HIGH | src/borg/testsuite/legacyrepository_test.py | 363 | except TypeError: | CODE |
| HIGH | src/borg/testsuite/platform/platform_test.py | 27 | except (KeyError, ValueError): | CODE |
| HIGH | src/borg/testsuite/platform/platform_test.py | 64 | except PermissionError: | CODE |
| HIGH | src/borg/testsuite/archiver/extract_cmd_test.py | 340 | except OSError: | CODE |
| HIGH | src/borg/testsuite/archiver/create_cmd_test.py | 1049 | except OSError: | CODE |
| HIGH | src/borg/testsuite/archiver/create_cmd_test.py | 1081 | except BrokenPipeError: | CODE |
| HIGH | src/borg/testsuite/archiver/create_cmd_test.py | 1167 | except BrokenPipeError: | CODE |
| HIGH | src/borg/testsuite/archiver/create_cmd_test.py | 1217 | except OSError: | CODE |
| HIGH | src/borg/testsuite/archiver/__init__.py | 262 | except RepositoryKeyInfoMissing: | CODE |
| HIGH | src/borg/testsuite/archiver/mount_cmds_test.py | 491 | except: # noqa | CODE |
| HIGH | src/borg/testsuite/archiver/mount_cmds_test.py | 505 | except: # noqa | CODE |
| HIGH | src/borg/testsuite/helpers/fs_test.py | 493 | except OSError: | CODE |
| HIGH | src/borg/platform/base.py | 381 | except OSError: | CODE |
| HIGH | src/borg/platform/base.py | 170 | except OSError: | CODE |
| HIGH | src/borg/platform/base.py | 203 | except OSError: | CODE |
| HIGH | src/borg/archiver/__init__.py | 9 | except AssertionError: | CODE |
| HIGH | src/borg/archiver/create_cmd.py | 141 | except OSError: | CODE |
| HIGH | src/borg/archiver/create_cmd.py | 148 | except OSError: | CODE |
| HIGH | src/borg/archiver/check_cmd.py | 118 | except ObjectsNotAuthenticatable: | CODE |
| HIGH | src/borg/legacy/fs.py | 54 | except Exception: # nosec B110 | CODE |
| HIGH | src/borg/legacy/fs.py | 71 | except Exception: # nosec B110 | CODE |
| HIGH | src/borg/legacy/repository.py | 280 | except FileNotFoundError: | CODE |
| HIGH | src/borg/legacy/repository.py | 1169 | except KeyError: | CODE |
| HIGH | src/borg/legacy/repository.py | 1441 | except FileNotFoundError: | CODE |
| HIGH | src/borg/legacy/repository.py | 1453 | except OSError: | CODE |
| HIGH | src/borg/legacy/repository.py | 926 | except KeyError: | CODE |
| HIGH | src/borg/legacy/repository.py | 685 | except FileNotFoundError: | CODE |
| HIGH | src/borg/legacy/repository.py | 934 | except KeyError: | CODE |
| HIGH | src/borg/legacy/repository.py | 801 | except (KeyError, ValueError): | CODE |
| 8 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/errorlist.py | 7 | CODE | |
| LOW | scripts/errorlist.py | 8 | CODE | |
| LOW | src/borg/repoobj.py | 5 | CODE | |
| LOW | src/borg/repoobj.py | 327 | CODE | |
| LOW | src/borg/webdav.py | 30 | CODE | |
| LOW | src/borg/manifest.py | 14 | CODE | |
| LOW | src/borg/cache.py | 165 | CODE | |
| LOW | src/borg/cache.py | 165 | CODE | |
| LOW | src/borg/cache.py | 165 | CODE | |
| LOW | src/borg/cache.py | 165 | CODE | |
| LOW | src/borg/cache.py | 165 | CODE | |
| LOW | src/borg/fuse_impl.py | 8 | CODE | |
| LOW | src/borg/archive.py | 28 | CODE | |
| LOW | src/borg/repository.py | 21 | CODE | |
| LOW | src/borg/crypto/key.py | 17 | CODE | |
| LOW | src/borg/crypto/key.py | 1278 | CODE | |
| LOW | src/borg/crypto/key.py | 1279 | CODE | |
| LOW | src/borg/crypto/key.py | 1281 | CODE | |
| LOW | src/borg/crypto/key.py | 1283 | CODE | |
| LOW | src/borg/crypto/keymanager.py | 195 | CODE | |
| LOW | src/borg/chunkers/__init__.py | 9 | CODE | |
| LOW | src/borg/testsuite/__init__.py | 26 | CODE | |
| LOW | src/borg/testsuite/chunkers/buzhash64_self_test.py | 8 | CODE | |
| LOW | src/borg/testsuite/chunkers/buzhash64_test.py | 12 | CODE | |
| LOW | src/borg/testsuite/chunkers/toeplitz_aes_test.py | 10 | CODE | |
| LOW | src/borg/testsuite/chunkers/fixed_self_test.py | 7 | CODE | |
| LOW | src/borg/testsuite/chunkers/buzhash_self_test.py | 8 | CODE | |
| LOW | src/borg/testsuite/chunkers/__init__.py | 8 | CODE | |
| LOW | src/borg/testsuite/chunkers/rabin_aes_test.py | 8 | CODE | |
| LOW | src/borg/testsuite/chunkers/interaction_test.py | 6 | CODE | |
| LOW | src/borg/testsuite/chunkers/reader_test.py | 9 | CODE | |
| LOW | src/borg/testsuite/chunkers/fixed_test.py | 10 | CODE | |
| LOW | src/borg/testsuite/chunkers/buzhash_test.py | 10 | CODE | |
| LOW | src/borg/testsuite/chunkers/failing_test.py | 6 | CODE | |
| LOW | src/borg/testsuite/chunkers/goldilocks_aes_test.py | 16 | CODE | |
| LOW | src/borg/testsuite/chunkers/phte_chunkers_test.py | 21 | CODE | |
| LOW | src/borg/testsuite/chunkers/fastcdc_test.py | 14 | CODE | |
| LOW | src/borg/testsuite/archiver/repo_list_cmd_test.py | 8 | CODE | |
| LOW | src/borg/testsuite/archiver/store_objects_test.py | 7 | CODE | |
| LOW | src/borg/testsuite/archiver/tar_cmds_test.py | 16 | CODE | |
| LOW | src/borg/testsuite/archiver/prune_cmd_test.py | 7 | CODE | |
| LOW | src/borg/testsuite/archiver/extract_cmd_test.py | 17 | CODE | |
| LOW | src/borg/testsuite/archiver/webdav_cmd_test.py | 23 | CODE | |
| LOW | src/borg/testsuite/archiver/match_archives_date_test.py | 8 | CODE | |
| LOW | src/borg/testsuite/archiver/help_cmd_test.py | 4 | CODE | |
| LOW | src/borg/testsuite/archiver/return_codes_test.py | 7 | CODE | |
| LOW | src/borg/testsuite/archiver/list_cmd_test.py | 5 | CODE | |
| LOW | src/borg/testsuite/archiver/recreate_cmd_test.py | 9 | CODE | |
| LOW | src/borg/testsuite/archiver/delete_cmd_test.py | 3 | CODE | |
| LOW | src/borg/testsuite/archiver/repo_compress_cmd_test.py | 6 | CODE | |
| LOW | src/borg/testsuite/archiver/debug_cmds_test.py | 8 | CODE | |
| LOW | src/borg/testsuite/archiver/compact_cmd_test.py | 8 | CODE | |
| LOW | src/borg/testsuite/archiver/repo_space_cmd_test.py | 3 | CODE | |
| LOW | src/borg/testsuite/archiver/create_cmd_test.py | 16 | CODE | |
| LOW | src/borg/testsuite/archiver/corruption_test.py | 4 | CODE | |
| LOW | src/borg/testsuite/archiver/__init__.py | 22 | CODE | |
| LOW | src/borg/testsuite/archiver/__init__.py | 32 | CODE | |
| LOW | src/borg/testsuite/archiver/repo_delete_cmd_test.py | 5 | CODE | |
| LOW | src/borg/testsuite/archiver/repo_create_cmd_test.py | 11 | CODE | |
| LOW | src/borg/testsuite/archiver/undelete_cmd_test.py | 3 | CODE | |
| 359 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | scripts/rest_perf_test.sh | 24 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/rest_perf_test.sh | 26 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/rest_perf_test.sh | 64 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/rest_perf_test.sh | 66 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/rest_perf_test.sh | 106 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/rest_perf_test.sh | 108 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/rest_perf_test.sh | 130 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/rest_perf_test.sh | 135 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/rest_perf_test.sh | 163 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM | scripts/rest_perf_test.sh | 165 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/rest_perf_test.sh | 197 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/rest_perf_test.sh | 199 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/rest_perf_test.sh | 207 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | scripts/rest_perf_test.sh | 209 | # ---------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | src/borg/testsuite/legacy_upgrade_test.py | 43 | # ── upgrade_item ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | src/borg/testsuite/legacy_upgrade_test.py | 117 | # ── upgrade_archive_metadata ────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | src/borg/testsuite/legacy_upgrade_test.py | 180 | # ── upgrade_compressed_chunk ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/borg/testsuite/legacy_upgrade_test.py | 18 | # ── helpers ─────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | src/borg/testsuite/legacy_helpers_test.py | 15 | # ── borg1_hardlinkable ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | src/borg/testsuite/legacy_helpers_test.py | 46 | # ── borg1_hardlink_with_content ─────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | src/borg/testsuite/legacy_helpers_test.py | 71 | # ── borg1_hardlink_reference ────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | src/borg/testsuite/legacy_archives_test.py | 115 | # ── create ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | src/borg/testsuite/legacy_archives_test.py | 143 | # ── get / get_by_id ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | src/borg/testsuite/legacy_archives_test.py | 183 | # ── NotImplementedError stubs ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | src/borg/testsuite/legacy_archives_test.py | 222 | # ── _get_archive_meta ──────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | src/borg/testsuite/legacy_archives_test.py | 409 | # ── get_one ─────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | src/borg/testsuite/legacy_archives_test.py | 432 | # ── list_considering ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | src/borg/testsuite/legacy_archives_test.py | 462 | # ── ArchivesInterface Protocol / Manifest dispatch ──────────────────────────────── | COMMENT |
| MEDIUM | src/borg/testsuite/legacy_archives_test.py | 16 | # ── helpers ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/borg/testsuite/legacy_archives_test.py | 65 | # ── init / raw-dict operations ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/borg/testsuite/legacy_archives_test.py | 272 | # ── _infos / _info_tuples ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/borg/testsuite/legacy_archives_test.py | 287 | # ── list ────────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/borg/testsuite/crypto/legacy_key_test.py | 12 | # ── Pbkdf2FileMixin ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/borg/testsuite/crypto/legacy_key_test.py | 39 | # ── borg 1.x authenticated modes ────────────────────────────────────────────── | COMMENT |
| MEDIUM | src/borg/archiver/tar_cmds.py | 118 | # ---------- | COMMENT |
| MEDIUM | src/borg/archiver/tar_cmds.py | 126 | # ----------- | COMMENT |
| MEDIUM | src/borg/cockpit/widgets.py | 317 | # -------------------------- | COMMENT |
| MEDIUM | src/borg/cockpit/widgets.py | 328 | # -------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/glibc_check.py | 27 | CODE | |
| LOW | scripts/lvm-thin-map.py | 78 | CODE | |
| LOW | scripts/endian_interop_test.py | 125 | CODE | |
| LOW | scripts/endian_interop_test.py | 182 | CODE | |
| LOW | scripts/endian_interop_test.py | 211 | CODE | |
| LOW | scripts/make.py | 71 | CODE | |
| LOW | scripts/make.py | 152 | CODE | |
| LOW | scripts/make.py | 203 | CODE | |
| LOW | scripts/blake3-optimize-mt-threshold.py | 199 | CODE | |
| LOW | scripts/bench_chunker_kernels.py | 63 | CODE | |
| LOW | scripts/bench_chunker_kernels.py | 203 | CODE | |
| LOW | scripts/chunker_bench.py | 106 | CODE | |
| LOW | src/borg/fslocking.py | 138 | CODE | |
| LOW | src/borg/fslocking.py | 216 | CODE | |
| LOW | src/borg/fslocking.py | 305 | CODE | |
| LOW | src/borg/webdav.py | 208 | CODE | |
| LOW | src/borg/webdav.py | 242 | CODE | |
| LOW | src/borg/webdav.py | 560 | CODE | |
| LOW | src/borg/webdav.py | 623 | CODE | |
| LOW | src/borg/webdav.py | 721 | CODE | |
| LOW | src/borg/version.py | 35 | CODE | |
| LOW | src/borg/manifest.py | 275 | CODE | |
| LOW | src/borg/cache.py | 65 | CODE | |
| LOW | src/borg/cache.py | 894 | CODE | |
| LOW | src/borg/cache.py | 283 | CODE | |
| LOW | src/borg/cache.py | 367 | CODE | |
| LOW | src/borg/cache.py | 411 | CODE | |
| LOW | src/borg/vfs.py | 666 | CODE | |
| LOW | src/borg/xattr.py | 60 | CODE | |
| LOW | src/borg/xattr.py | 99 | CODE | |
| LOW | src/borg/archive.py | 206 | CODE | |
| LOW | src/borg/archive.py | 376 | CODE | |
| LOW | src/borg/archive.py | 397 | CODE | |
| LOW | src/borg/archive.py | 913 | CODE | |
| LOW | src/borg/archive.py | 944 | CODE | |
| LOW | src/borg/archive.py | 1176 | CODE | |
| LOW | src/borg/archive.py | 1389 | CODE | |
| LOW | src/borg/archive.py | 1686 | CODE | |
| LOW | src/borg/archive.py | 1795 | CODE | |
| LOW | src/borg/archive.py | 2056 | CODE | |
| LOW | src/borg/archive.py | 2273 | CODE | |
| LOW | src/borg/archive.py | 2304 | CODE | |
| LOW | src/borg/archive.py | 2535 | CODE | |
| LOW | src/borg/archive.py | 2732 | CODE | |
| LOW | src/borg/archive.py | 2824 | CODE | |
| LOW | src/borg/archive.py | 3118 | CODE | |
| LOW | src/borg/archive.py | 3389 | CODE | |
| LOW | src/borg/archive.py | 2749 | CODE | |
| LOW | src/borg/archive.py | 2916 | CODE | |
| LOW | src/borg/storelocking.py | 538 | CODE | |
| LOW | src/borg/storelocking.py | 713 | CODE | |
| LOW | src/borg/repository.py | 611 | CODE | |
| LOW | src/borg/repository.py | 482 | CODE | |
| LOW | src/borg/repository.py | 1461 | CODE | |
| LOW | src/borg/repository.py | 1535 | CODE | |
| LOW | src/borg/repository.py | 2674 | CODE | |
| LOW | src/borg/crypto/key.py | 581 | CODE | |
| LOW | src/borg/crypto/key.py | 949 | CODE | |
| LOW | src/borg/crypto/keymanager.py | 192 | CODE | |
| LOW | src/borg/chunkers/failing.py | 30 | CODE | |
| 94 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/conf.py | 4 | # This file is execfile()d with the current directory set to its containing directory. | COMMENT |
| MEDIUM | .github/workflows/ci.yml | 298 | # Create the bucket (boto3 is a moto dependency) | COMMENT |
| MEDIUM | src/borg/testsuite/cache_test.py | 238 | # Create an index entry so list_chunkindex_hashes finds it. | COMMENT |
| MEDIUM | src/borg/testsuite/repoobj_test.py | 212 | # Create a repository object containing user data (file content data). | COMMENT |
| MEDIUM | src/borg/testsuite/crypto/csprng_test.py | 170 | # Create a large list | COMMENT |
| MEDIUM | src/borg/testsuite/crypto/crypto_test.py | 320 | # Create a simple KeyBase subclass with a non-empty crypt_key | COMMENT |
| MEDIUM | src/borg/testsuite/chunkers/reader_test.py | 133 | # Create a mock FileFMAPReader that yields specific chunks | COMMENT |
| MEDIUM | src/borg/testsuite/chunkers/reader_test.py | 145 | # Create a FileReader with a dummy BytesIO to satisfy the assertion | COMMENT |
| MEDIUM | src/borg/testsuite/chunkers/reader_test.py | 271 | # Create a file with all zeros | COMMENT |
| MEDIUM | src/borg/testsuite/chunkers/reader_test.py | 288 | # Create a sparse file | COMMENT |
| MEDIUM | src/borg/testsuite/chunkers/reader_test.py | 336 | # Create a reader with sparse=False | COMMENT |
| MEDIUM⚡ | src/borg/testsuite/archiver/tar_cmds_test.py | 546 | # Create a simple directory structure | COMMENT |
| MEDIUM⚡ | src/borg/testsuite/archiver/tar_cmds_test.py | 549 | # Create a tar file with paths starting with './' | COMMENT |
| MEDIUM | src/borg/testsuite/archiver/transfer_cmd_test.py | 483 | # Create an archive with a comment | COMMENT |
| MEDIUM | src/borg/testsuite/archiver/diff_cmd_test.py | 54 | # Create the first snapshot | COMMENT |
| MEDIUM | src/borg/testsuite/archiver/diff_cmd_test.py | 84 | # Create the second snapshot | COMMENT |
| MEDIUM | …borg/testsuite/archiver/restricted_permissions_test.py | 18 | # Create a repository with unrestricted permissions. | COMMENT |
| MEDIUM | …borg/testsuite/archiver/restricted_permissions_test.py | 43 | # Create a repository first (need unrestricted permissions for that). | COMMENT |
| MEDIUM⚡ | …borg/testsuite/archiver/restricted_permissions_test.py | 103 | # Create a repository first (need unrestricted permissions for that). | COMMENT |
| MEDIUM⚡ | …borg/testsuite/archiver/restricted_permissions_test.py | 107 | # Create an archive to test with. | COMMENT |
| MEDIUM⚡ | …borg/testsuite/archiver/restricted_permissions_test.py | 152 | # Create a repository first (need unrestricted permissions for that). | COMMENT |
| MEDIUM⚡ | …borg/testsuite/archiver/restricted_permissions_test.py | 156 | # Create an initial archive to test with. | COMMENT |
| MEDIUM | src/borg/testsuite/helpers/fs_test.py | 361 | # Create a directory with both a CACHEDIR.TAG and a custom tag file | COMMENT |
| MEDIUM | src/borg/testsuite/helpers/fs_test.py | 368 | # Create a directory without any tag files | COMMENT |
| MEDIUM | src/borg/archiver/transfer_cmd.py | 51 | # Create a chunker with the specified parameters | COMMENT |
| MEDIUM | src/borg/archiver/repo_space_cmd.py | 70 | # Create a new repository: | STRING |
| MEDIUM | src/borg/archiver/help_cmd.py | 227 | # Define the recursion root | STRING |
| MEDIUM | src/borg/legacy/fs.py | 111 | # This file is a cache directory tag created by Borg. | STRING |
| MEDIUM | src/borg/helpers/fs.py | 144 | # This file is a cache directory tag created by Borg. | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH⚡ | src/borg/archiver/completion_cmd.py | 145 | out=$( {PROG} repo-list "${repo_arg[@]}" --format '{id}{NL}' 2>/dev/null </dev/null ) | CODE |
| HIGH⚡ | src/borg/archiver/completion_cmd.py | 147 | out=$( {PROG} repo-list --format '{id}{NL}' 2>/dev/null </dev/null ) | CODE |
| HIGH | src/borg/archiver/completion_cmd.py | 164 | out=$( {PROG} repo-list "${repo_arg[@]}" --format '{archive}{NL}' 2>/dev/null </dev/null ) | CODE |
| HIGH | src/borg/archiver/completion_cmd.py | 166 | out=$( {PROG} repo-list --format '{archive}{NL}' 2>/dev/null </dev/null ) | CODE |
| HIGH | src/borg/archiver/completion_cmd.py | 229 | out=$( {PROG} repo-list "${repo_arg[@]}" --format '{tags}{NL}' 2>/dev/null </dev/null ) | CODE |
| HIGH | src/borg/archiver/completion_cmd.py | 231 | out=$( {PROG} repo-list --format '{tags}{NL}' 2>/dev/null </dev/null ) | CODE |
| HIGH | src/borg/archiver/completion_cmd.py | 386 | 2>/dev/null </dev/null ) | CODE |
| HIGH | src/borg/archiver/completion_cmd.py | 389 | 2>/dev/null </dev/null ) | CODE |
| HIGH | src/borg/archiver/completion_cmd.py | 413 | out=$( {PROG} repo-list "${repo_arg[@]}" --format '{archive}{NL}' 2>/dev/null </dev/null ) | CODE |
| HIGH | src/borg/archiver/completion_cmd.py | 415 | out=$( {PROG} repo-list --format '{archive}{NL}' 2>/dev/null </dev/null ) | CODE |
| HIGH | src/borg/archiver/completion_cmd.py | 483 | out=$( {PROG} repo-list "${repo_arg[@]}" --format '{tags}{NL}' 2>/dev/null </dev/null ) | CODE |
| HIGH | src/borg/archiver/completion_cmd.py | 485 | out=$( {PROG} repo-list --format '{tags}{NL}' 2>/dev/null </dev/null ) | CODE |
| HIGH | src/borg/archiver/completion_cmd.py | 820 | '{PROG} repo-list "$@" --format "{archive}{NL}" 2>/dev/null </dev/null; ' | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/blake3-optimize-mt-threshold.py | 125 | except Exception: | CODE |
| LOW | src/borg/webdav.py | 450 | except Exception: | CODE |
| MEDIUM | src/borg/webdav.py | 445 | def _guarded(self, method, *args): | CODE |
| LOW | src/borg/conftest.py | 33 | except Exception: | CODE |
| LOW | src/borg/conftest.py | 65 | except Exception: # nosec B110 | CODE |
| LOW | src/borg/cache.py | 942 | except Exception as err: | CODE |
| LOW | src/borg/cache.py | 1395 | except Exception as exc: | CODE |
| LOW | src/borg/fuse_impl.py | 23 | except Exception as err: | CODE |
| LOW | src/borg/fuse_impl.py | 36 | except Exception as err: | CODE |
| LOW | src/borg/fuse_impl.py | 49 | except Exception as err: # mfusepy raises OSError (not ImportError) if libfuse is missing | CODE |
| LOW | src/borg/logger.py | 222 | except Exception as err: # XXX be more precise | CODE |
| LOW | src/borg/digests.py | 121 | except Exception: # hashing is not expected to fail, but we must not die with a full queue | CODE |
| LOW | src/borg/archive.py | 3009 | except Exception: | CODE |
| LOW | src/borg/storelocking.py | 724 | except Exception as e: | CODE |
| LOW | src/borg/repository.py | 387 | except Exception as exc: | CODE |
| LOW | src/borg/repository.py | 1122 | except Exception: | CODE |
| LOW | src/borg/repository.py | 1192 | except Exception as exc: | CODE |
| LOW | src/borg/repository.py | 1476 | except Exception as exc: | CODE |
| LOW | src/borg/repository.py | 1490 | except Exception as exc: | CODE |
| LOW | src/borg/repository.py | 1510 | except Exception as exc: | CODE |
| LOW | src/borg/repository.py | 1519 | except Exception as exc: | CODE |
| MEDIUM | src/borg/crypto/key.py | 606 | def _load(self, key_data, passphrase): | CODE |
| LOW | src/borg/crypto/key.py | 911 | except Exception as exc: # noqa: BLE001 - a corrupted borg key must not break unlocking via the others | CODE |
| LOW | src/borg/crypto/key.py | 1021 | except Exception as exc: # noqa: BLE001 - a corrupted borg key must stay visible and removable | CODE |
| LOW | src/borg/crypto/keymanager.py | 73 | except Exception: # noqa: BLE001 - best-effort: a borg key without a parseable envelope has no label | CODE |
| LOW | src/borg/testsuite/logger_test.py | 86 | except Exception: | CODE |
| LOW | src/borg/testsuite/archiver/extract_cmd_test.py | 840 | except Exception: | CODE |
| LOW | src/borg/testsuite/archiver/remote_repo_test.py | 26 | except Exception: | CODE |
| LOW | src/borg/testsuite/archiver/remote_repo_test.py | 31 | except Exception: | CODE |
| LOW | src/borg/testsuite/helpers/lrucache_test.py | 124 | except Exception as e: | CODE |
| LOW | src/borg/archiver/benchmark_cmd.py | 316 | except Exception as exc: | CODE |
| LOW | src/borg/archiver/__init__.py | 558 | except Exception: | CODE |
| LOW | src/borg/archiver/__init__.py | 566 | except Exception: | CODE |
| LOW | src/borg/archiver/__init__.py | 640 | except Exception: | STRING |
| LOW | src/borg/archiver/__init__.py | 680 | except Exception as e: | STRING |
| LOW | src/borg/legacy/remote.py | 312 | except Exception: | CODE |
| MEDIUM | src/borg/legacy/remote.py | 89 | def __init__(self, data): | CODE |
| LOW⚡ | src/borg/legacy/fs.py | 48 | except Exception: | CODE |
| LOW⚡ | src/borg/legacy/fs.py | 54 | except Exception: # nosec B110 | CODE |
| LOW | src/borg/legacy/fs.py | 71 | except Exception: # nosec B110 | CODE |
| LOW | src/borg/legacy/repository.py | 998 | except Exception as exc: | CODE |
| LOW | src/borg/cockpit/runner.py | 58 | except Exception as e: | CODE |
| LOW | src/borg/helpers/time.py | 282 | except Exception: | CODE |
| LOW⚡ | src/borg/helpers/msgpack.py | 106 | except Exception as e: | CODE |
| LOW⚡ | src/borg/helpers/msgpack.py | 114 | except Exception as e: | CODE |
| LOW⚡ | src/borg/helpers/msgpack.py | 122 | except Exception as e: | CODE |
| LOW | src/borg/helpers/msgpack.py | 164 | except Exception as e: | CODE |
| LOW | src/borg/helpers/msgpack.py | 172 | except Exception as e: | CODE |
| LOW | src/borg/helpers/msgpack.py | 185 | except Exception as e: | CODE |
| LOW | src/borg/helpers/msgpack.py | 196 | except Exception as e: | CODE |
| MEDIUM | src/borg/helpers/msgpack.py | 103 | def pack(self, obj): | CODE |
| MEDIUM | src/borg/helpers/msgpack.py | 159 | def unpack(self): | CODE |
| MEDIUM | src/borg/helpers/msgpack.py | 167 | def __next__(self): | CODE |
| LOW | src/borg/helpers/__init__.py | 228 | except Exception: # nosec B110 | CODE |
| LOW | src/borg/helpers/process.py | 426 | except Exception: | CODE |
| LOW | src/borg/helpers/parseformat.py | 508 | except Exception as e: | CODE |
| MEDIUM | src/borg/helpers/parseformat.py | 52 | def hex_to_bin(hex, length=None): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/conf.py | 1 | # Documentation build configuration file, created by | COMMENT |
| LOW | docs/conf.py | 61 | # language = None | COMMENT |
| LOW | docs/conf.py | 81 | # add_function_parentheses = True | COMMENT |
| LOW | docs/conf.py | 121 | COMMENT | |
| LOW | docs/conf.py | 181 | COMMENT | |
| LOW | scripts/rest_perf_test.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .github/zizmor.yml | 1 | # Configuration for zizmor (https://docs.zizmor.sh/), the GitHub Actions | COMMENT |
| LOW | .github/workflows/release.yml | 1 | # Release automation: build the source distribution, publish it to PyPI and | COMMENT |
| LOW | .github/workflows/32bit.yml | 1 | # 32-bit test: build and test borg on armv7 (32-bit) under qemu user-mode | COMMENT |
| LOW | .github/workflows/fame.yml | 1 | # Refresh FAME.md and FAME.svg, the contributor summary generated by | COMMENT |
| LOW | .github/workflows/ci.yml | 101 | - name: Build Borg with ASan/UBSan | COMMENT |
| LOW | .github/workflows/ci.yml | 461 | report_type: coverage | COMMENT |
| LOW | .github/workflows/ci.yml | 1101 | - name: Name the sigstore bundle after the binaries | COMMENT |
| LOW | .github/workflows/ci.yml | 1261 | COMMENT | |
| LOW | .github/workflows/ci.yml | 1341 | COMMENT | |
| LOW | .github/workflows/bigendian.yml | 1 | # Big-endian test: build and test borg on s390x (big-endian) under qemu | COMMENT |
| LOW | src/borg/paperkey.html | 21 | // https://github.com/kazuhikoarase/qrcode-generator/blob/master/js/qrcode.js | COMMENT |
| LOW | src/borg/constants.py | 81 | # borg compact merges packs smaller than MIN_PACK_SIZE bytes ("tiny") once their combined size | COMMENT |
| LOW | src/borg/constants.py | 121 | # have one all-zero bytes object | COMMENT |
| LOW | src/borg/constants.py | 141 | # How often to restart merging the fragments into a chunk index when a listed fragment vanishes | COMMENT |
| LOW | src/borg/cache.py | 681 | # True, else the whole index. borghash cannot serialize just the F_NEW entries, so either way we | COMMENT |
| LOW | src/borg/cache.py | 761 | if fragments_written: | COMMENT |
| LOW | src/borg/cache.py | 901 | on_duplicate=None, | COMMENT |
| LOW | src/borg/cache.py | 1001 | return None | COMMENT |
| LOW | src/borg/vfs.py | 701 | """ | COMMENT |
| LOW | src/borg/archive.py | 1101 | # Writing a single zero at the end forces NTFS to zero-fill the hole | COMMENT |
| LOW | src/borg/storelocking.py | 421 | logger.debug(f"LOCK-STALE: we KNOW that the lock-owning process is dead. lock: {lock}.") | COMMENT |
| LOW | src/borg/storelocking.py | 661 | # domain cross-check wrongly confirm a skewed peer's healthy lock as stale, see #9870. | COMMENT |
| LOW | src/borg/repository.py | 41 | # (hash) with the store hash, which it knows by STORE_HASH_NAME. | COMMENT |
| LOW | src/borg/crypto/key.py | 41 | KEYFILE_ID = "BORG_KEY" | COMMENT |
| LOW | src/borg/crypto/key.py | 341 | class KeyBase: | COMMENT |
| LOW | src/borg/crypto/key.py | 381 | crypt_key: bytes = None | COMMENT |
| LOW | src/borg/crypto/key.py | 1341 | COMMENT | |
| LOW | src/borg/crypto/key.py | 1361 | # when decrypting, we provide the id we **want** as AAD for the auth tag verification, so | COMMENT |
| LOW | src/borg/crypto/key.py | 1481 | COMMENT | |
| LOW | src/borg/chunkers/phte_core.h | 101 | #define PHTE_KIND_HW "aes-arm64" | COMMENT |
| LOW | src/borg/testsuite/legacyrepository_test.py | 441 | def test_shadowed_entries_are_preserved2(repository): | COMMENT |
| LOW | src/borg/testsuite/archiver/__init__.py | 141 | COMMENT | |
| LOW | src/borg/testsuite/archiver/__init__.py | 301 | if not xattr.XATTR_FAKEROOT and xattr.is_enabled(input_path): | COMMENT |
| LOW | src/borg/testsuite/archiver/__init__.py | 601 | COMMENT | |
| LOW | src/borg/archiver/completion_cmd.py | 101 | # URL schemes of the repository locations that are not local directories, see Location. | COMMENT |
| LOW | src/borg/archiver/tar_cmds.py | 121 | # - atime, ctime (DONE) | COMMENT |
| LOW | src/borg/archiver/tar_cmds.py | 361 | # Doing so would have three major drawbacks: | COMMENT |
| LOW | src/borg/archiver/__init__.py | 341 | # which might be different in the case of a forced command or same otherwise. | COMMENT |
| LOW | src/borg/archiver/compact_cmd.py | 61 | # The index loads entries with F_NONE flags and each object's obj_size (used by --stats). | COMMENT |
| LOW | src/borg/legacy/remote.py | 101 | COMMENT | |
| LOW | src/borg/legacy/remote.py | 361 | pass # warning is default | COMMENT |
| LOW | src/borg/legacy/repository.py | 661 | # (which may grow the index up to twice its current size). | COMMENT |
| LOW | src/borg/legacy/repository.py | 821 | # However, this only happens if the crash also affects the FS to the effect that file deletions | COMMENT |
| LOW | src/borg/legacy/repository.py | 841 | # Now we crash. But only segment 2 gets deleted, while segment 1 is still around. Now key 1 | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/rest_perf_test.sh | 3 | # rest_perf_test.sh - borg2 performance harness for ssh:// repositories. | COMMENT |
| LOW | src/borg/archive.py | 1049 | # we just use the existing one and do not remove it. | COMMENT |
| MEDIUM | src/borg/archive.py | 2225 | """A restartable/robust version of the streaming msgpack unpacker | STRING |
| LOW | src/borg/crypto/key.py | 1495 | # setting: the advantages of the individual session keys just add up, so the quantity that matters | COMMENT |
| LOW | src/borg/testsuite/repoobj_test.py | 115 | # Here, we just use len_data. For Borg transfer, we also know the size from another metadata source. | COMMENT |
| MEDIUM | src/borg/testsuite/platform/linux_test.py | 88 | # Testing non-ASCII ACL processing to see whether our code is robust. | STRING |
| LOW | src/borg/testsuite/archiver/extract_cmd_test.py | 1161 | # we should just use the existing directory and not remove/recreate it. | COMMENT |
| MEDIUM | src/borg/testsuite/archiver/completion_cmd_test.py | 707 | # the harness' compadd stub prints the candidates - replace it by one printing the descriptions | COMMENT |
| MEDIUM | src/borg/testsuite/archiver/benchmark_cmd_test.py | 25 | # Filter for JSON lines only; the test harness merges stdout and stderr, | COMMENT |
| MEDIUM⚡ | src/borg/legacy/fs.py | 38 | # 2. Prefer HOME, but be robust against mount helpers that set HOME to root's home for non-root users. | COMMENT |
| LOW | src/borg/helpers/fs.py | 543 | fname, parent_fd = path, None # just use the path | CODE |
| LOW | src/borg/helpers/fs.py | 588 | fname, parent_fd = path, None # just use the path | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/borg/manifest.py | 155 | CODE | |
| LOW | src/borg/manifest.py | 422 | CODE | |
| LOW | src/borg/cache.py | 894 | CODE | |
| LOW | src/borg/cache.py | 186 | CODE | |
| LOW | src/borg/vfs.py | 74 | CODE | |
| LOW | src/borg/archive.py | 605 | CODE | |
| LOW | src/borg/archive.py | 2379 | CODE | |
| LOW | src/borg/archive.py | 2824 | CODE | |
| LOW | src/borg/archive.py | 3259 | CODE | |
| LOW | src/borg/repository.py | 956 | CODE | |
| LOW | src/borg/testsuite/archiver/__init__.py | 205 | CODE | |
| LOW | src/borg/archiver/_common.py | 115 | CODE | |
| LOW | src/borg/archiver/__init__.py | 597 | CODE | |
| LOW | src/borg/legacy/archives.py | 206 | CODE | |
| LOW | src/borg/helpers/msgpack.py | 127 | CODE | |
| LOW | src/borg/helpers/yes_no.py | 17 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | src/borg/archiver/completion_cmd.py | 137 | # Check if completing aid: prefix | COMMENT |
| LOW | src/borg/archiver/completion_cmd.py | 375 | # Check if completing aid: prefix | COMMENT |
| LOW | src/borg/archiver/transfer_cmd.py | 58 | # Check if the chunk is already in the repository | COMMENT |
| LOW | src/borg/archiver/list_cmd.py | 67 | # Check if the item matches the patterns/paths. | COMMENT |
| LOW | src/borg/archiver/__init__.py | 519 | # Open the file early, before running the main program, to avoid | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | src/borg/paperkey.html | 2346 | typein.classList.add("placeholder"); | CODE |
| LOW⚡ | src/borg/paperkey.html | 2347 | svg.classList.add("placeholder"); | CODE |
| LOW⚡ | src/borg/paperkey.html | 2357 | typein.classList.remove("placeholder"); | CODE |
| LOW⚡ | src/borg/paperkey.html | 2358 | svg.classList.remove("placeholder"); | CODE |
| LOW | src/borg/testsuite/legacyrepository_test.py | 957 | assert remote_repository.ssh_cmd(Location("ssh://user@example.com/foo")) == ["ssh", "user@example.com"] | CODE |
| LOW | src/borg/testsuite/legacyrepository_test.py | 962 | "user@example.com", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | src/borg/constants.py | 272 | # if you still need to, you can use "borg key migrate-to-repokey" with borg 1.0, 1.1 and 1.2. | COMMENT |
| LOW | src/borg/archiver/create_cmd.py | 570 | # we better do a fresh stat on the file, just to make sure to get the current file | COMMENT |
| LOW | src/borg/legacy/upgrade.py | 62 | # make sure we only have desired stuff in the new item. specifically, make sure to get rid of: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/borg/repoobj.py | 112 | def set_assert_id_place(self, place: str) -> None: | CODE |
| LOW | src/borg/legacy/repoobj.py | 15 | def set_assert_id_place(self, place: str) -> None: | CODE |
| LOW | src/borg/cockpit/widgets.py | 197 | def _update_art(self) -> None: | CODE |
| LOW | src/borg/cockpit/widgets.py | 256 | def update_art(self) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | scripts/rest_perf_test.sh | 15 | # Usage: | COMMENT |