Repository Analysis

abraunegg/onedrive

OneDrive Client for Linux

8.8 Low AI signal View on GitHub
8.8
Adjusted Score
8.8
Raw Score
100%
Time Factor
2026-05-30
Last Push
12,477
Stars
D
Language
38,802
Lines of Code
137
Files
275
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 0MEDIUM 26LOW 249

Pattern Findings

275 matches across 7 categories. Click a row to expand file-level details.

Unused Imports147 hits · 147 pts
SeverityFileLineSnippet
LOWci/e2e/evaluate_rerun_gate.py2
LOWci/e2e/run.py2
LOWci/e2e/run.py9
LOWci/e2e/run.py14
LOWci/e2e/run_personal_shared_folders.py2
LOWci/e2e/run_personal_shared_folders.py9
LOWci/e2e/rerun_failures.py2
LOWci/e2e/run_business_shared_folders.py2
LOWci/e2e/framework/database_capture.py1
LOWci/e2e/framework/database_capture.py4
LOWci/e2e/framework/manifest.py1
LOWci/e2e/framework/__init__.py1
LOWci/e2e/framework/__init__.py1
LOWci/e2e/framework/result.py1
LOWci/e2e/framework/context.py1
LOWci/e2e/framework/utils.py1
LOWci/e2e/framework/base.py1
LOW…al_shared_folders/sfptc0002_clean_monitor_pull_down.py1
LOW…al_shared_folders/sfptc0002_clean_monitor_pull_down.py8
LOW…tcases_personal_shared_folders/shared_folder_common.py1
LOW…tcases_personal_shared_folders/shared_folder_common.py12
LOW…sonal_shared_folders/sfptc0001_clean_sync_pull_down.py1
LOW…sonal_shared_folders/sfptc0003_sync_list_validation.py1
LOW…sonal_shared_folders/sfptc0003_sync_list_validation.py3
LOW…iness_shared_folders/bsftc0003_sync_list_validation.py1
LOW…iness_shared_folders/bsftc0001_clean_sync_pull_down.py1
LOW…ss_shared_folders/bsftc0002_clean_monitor_pull_down.py1
LOW…ss_shared_folders/bsftc0002_clean_monitor_pull_down.py8
LOW…tcases_business_shared_folders/shared_folder_common.py1
LOW…/bsftc0005_get_sharepoint_drive_id_while_monitoring.py1
LOW…ess_shared_folders/bsftc0004_shared_files_pull_down.py1
LOW…0028_control_character_non_utf8_filename_validation.py1
LOW…2e/testcases/tc0026_reserved_device_name_validation.py1
LOWci/e2e/testcases/tc0009_upload_only_no_remote_delete.py1
LOWci/e2e/testcases/tc0009_upload_only_no_remote_delete.py10
LOWci/e2e/testcases/tc0009_upload_only_no_remote_delete.py10
LOW…ases/tc0056_monitor_mode_create_then_delete_quickly.py1
LOW…ases/tc0056_monitor_mode_create_then_delete_quickly.py9
LOW…2e/testcases/tc0010_upload_only_remove_source_files.py1
LOW…2e/testcases/tc0010_upload_only_remove_source_files.py10
LOW…2e/testcases/tc0010_upload_only_remove_source_files.py10
LOWci/e2e/testcases/monitor_case_base.py1
LOWci/e2e/testcases/tc0011_skip_file_validation.py1
LOWci/e2e/testcases/tc0011_skip_file_validation.py10
LOWci/e2e/testcases/tc0011_skip_file_validation.py10
LOW…ses/tc0061_remote_move_into_skip_dir_reconciliation.py1
LOW…tcases/tc0058_monitor_download_only_cleanup_cadence.py1
LOWci/e2e/testcases/tc0006_download_only.py1
LOWci/e2e/testcases/tc0006_download_only.py10
LOWci/e2e/testcases/tc0005_force_sync_override.py1
LOWci/e2e/testcases/tc0005_force_sync_override.py10
LOWci/e2e/testcases/tc0019_logging_and_running_config.py1
LOWci/e2e/testcases/tc0019_logging_and_running_config.py9
LOWci/e2e/testcases/tc0004_single_directory_sync.py1
LOWci/e2e/testcases/tc0004_single_directory_sync.py10
LOW…047_monitor_mode_local_directory_delete_propagation.py1
LOW…047_monitor_mode_local_directory_delete_propagation.py9
LOW…54_monitor_mode_atomic_save_editor_replace_workflow.py1
LOW…54_monitor_mode_atomic_save_editor_replace_workflow.py8
LOWci/e2e/testcases/tc0032_remote_rename_reconciliation.py1
87 more matches not shown…
Decorative Section Separators25 hits · 88 pts
SeverityFileLineSnippet
MEDIUMdocs/usage.md908# ======================================================================
MEDIUMdocs/usage.md910# ----------------------------------------------------------------------
MEDIUMdocs/usage.md912# ----------------------------------------------------------------------
MEDIUMdocs/usage.md920# ----------------------------------------------------------------------
MEDIUMdocs/usage.md923# ----------------------------------------------------------------------
MEDIUMdocs/usage.md1011# ----------------------------------------------------------------------
MEDIUMdocs/usage.md1013# ----------------------------------------------------------------------
MEDIUMdocs/usage.md1020# ----------------------------------------------------------------------
MEDIUMdocs/usage.md1022# ----------------------------------------------------------------------
MEDIUMdocs/usage.md888# ======================================================================
MEDIUMdocs/usage.md890# ======================================================================
MEDIUMdocs/usage.md949# ----------------------------------------------------------------------
MEDIUMdocs/usage.md951# ----------------------------------------------------------------------
MEDIUMdocs/usage.md976# ----------------------------------------------------------------------
MEDIUMdocs/usage.md978# ----------------------------------------------------------------------
MEDIUMdocs/usage.md1037# ----------------------------------------------------------------------
MEDIUMdocs/usage.md1041# ----------------------------------------------------------------------
MEDIUMcontrib/docker/entrypoint.sh5# ----------------------------------------------------------------------
MEDIUMcontrib/docker/entrypoint.sh10# ----------------------------------------------------------------------
MEDIUMcontrib/docker/entrypoint.sh26# ----------------------------------------------------------------------
MEDIUMcontrib/docker/entrypoint.sh28# ----------------------------------------------------------------------
MEDIUMcontrib/docker/entrypoint.sh71# ----------------------------------------------------------------------
MEDIUMcontrib/docker/entrypoint.sh73# ----------------------------------------------------------------------
MEDIUMcontrib/docker/entrypoint.sh233# ----------------------------------------------------------------------
MEDIUMcontrib/docker/entrypoint.sh235# ----------------------------------------------------------------------
Hyper-Verbose Identifiers80 hits · 83 pts
SeverityFileLineSnippet
LOWci/e2e/framework/database_capture.py17def capture_onedrive_databases(
LOWci/e2e/framework/context.py39def _parse_scenario_filter_env(raw: str) -> dict[str, set[str]]:
LOWci/e2e/framework/context.py141 def default_onedrive_config_dir(self) -> Path:
LOWci/e2e/framework/context.py153 def default_refresh_token_path(self) -> Path:
LOWci/e2e/framework/context.py176 def ensure_refresh_token_available(self) -> None:
LOWci/e2e/framework/context.py187 def selected_scenarios_for_case(self, case_id: str) -> set[str]:
LOWci/e2e/framework/context.py215 def validate_generated_config_dir(self, config_dir: Path) -> None:
LOWci/e2e/framework/context.py259 def prepare_minimal_config_dir(self, config_dir: Path, config_text: str) -> Path:
LOWci/e2e/framework/context.py320 def bootstrap_suite_cleanup_config_dir(self) -> Path:
LOWci/e2e/framework/utils.py59def is_transient_startup_discovery_failure(stdout: str, stderr: str) -> bool:
LOWci/e2e/framework/utils.py80def should_retry_startup_failure(stdout: str, stderr: str, attempt: int, max_attempts: int) -> bool:
LOWci/e2e/framework/utils.py84def run_command_with_startup_retry(
LOWci/e2e/framework/utils.py172def is_protected_suite_cleanup_path(path: Path) -> bool:
LOWci/e2e/framework/utils.py229def perform_full_account_cleanup(
LOWci/e2e/framework/utils.py382def default_onedrive_config_dir_from_env() -> Path:
LOWci/e2e/framework/utils.py394def get_optional_base_config_text() -> str:
LOWci/e2e/framework/utils.py419def compute_quickxor_hash_bytes(data: bytes) -> str:
LOWci/e2e/framework/utils.py450def compute_quickxor_hash_file(path: Path) -> str:
LOWci/e2e/framework/base.py168 def assert_manifest_not_contains(self, entries: list[str], relative_path: str, message: str | None = None) -> None:
LOW…tcases_personal_shared_folders/shared_folder_common.py269def validate_expected_manifest(
LOW…sonal_shared_folders/sfptc0003_sync_list_validation.py513 def _run_local_stale_cleanup_check(
LOW…iness_shared_folders/bsftc0003_sync_list_validation.py245 def _run_local_stale_cleanup_check(
LOW…tcases_business_shared_folders/shared_folder_common.py244def validate_required_manifest(
LOW…ess_shared_folders/bsftc0004_shared_files_pull_down.py172 def _validate_manifest_and_stdout(
LOW…0028_control_character_non_utf8_filename_validation.py51 def _extract_bad_filename_archive(
LOW…0028_control_character_non_utf8_filename_validation.py69 def _collect_extracted_file_entries(self, root_name: str, extract_root: Path) -> list[str]:
LOWci/e2e/testcases/monitor_case_base.py53 def _wait_for_initial_sync_complete(
LOWci/e2e/testcases/monitor_case_base.py69 def _wait_for_monitor_patterns(
LOWci/e2e/testcases/monitor_case_base.py86 def _wait_for_any_monitor_pattern_group(
LOWci/e2e/testcases/monitor_case_base.py104 def _launch_monitor_process_raw(
LOWci/e2e/testcases/monitor_case_base.py124 def _wait_for_initial_sync_complete_or_transient_failure(
LOWci/e2e/testcases/monitor_case_base.py193 def _shutdown_monitor_process(self, process: subprocess.Popen[str], details: dict[str, object]) -> None:
LOWci/e2e/testcases/monitor_case_base.py223 def _write_file_with_exact_size(self, path: Path, size_bytes: int, header_text: str) -> None:
LOW…ses/tc0061_remote_move_into_skip_dir_reconciliation.py35 def _build_mutator_monitor_config_text(self, sync_dir: Path, app_log_dir: Path) -> str:
LOW…ses/tc0061_remote_move_into_skip_dir_reconciliation.py47 def _build_unfiltered_config_text(self, sync_dir: Path) -> str:
LOW…ses/tc0061_remote_move_into_skip_dir_reconciliation.py76 def _contains_bad_monitor_move_side_effects(self, log_segment: str) -> list[str]:
LOW…ses/tc0061_remote_move_into_skip_dir_reconciliation.py86 def _wait_for_stdout_growth_patterns(
LOW…tcases/tc0058_monitor_download_only_cleanup_cadence.py66 def _count_sync_complete_markers(self, log_file: Path) -> int:
LOW…tcases/tc0058_monitor_download_only_cleanup_cadence.py140 def _delete_remote_fixture_file(
LOW…s/tc0060_monitor_mode_local_move_no_delete_reupload.py24 def _build_monitor_config_text(self, sync_dir: Path, app_log_dir: Path) -> str:
LOW…s/tc0060_monitor_mode_local_move_no_delete_reupload.py36 def _build_verify_config_text(self, sync_dir: Path) -> str:
LOW…s/tc0060_monitor_mode_local_move_no_delete_reupload.py51 def _wait_for_stdout_growth_patterns(
LOW…s/tc0060_monitor_mode_local_move_no_delete_reupload.py72 def _contains_bad_move_side_effects(self, log_segment: str) -> list[str]:
LOW…cases/tc0033_remote_directory_rename_reconciliation.py61 def _extract_deleted_remote_paths(self, stdout: str) -> list[str]:
LOW…e2e/testcases/tc0021_resumable_transfers_validation.py102 def _extract_max_progress_percent(self, text: str) -> float:
LOW…e2e/testcases/tc0021_resumable_transfers_validation.py113 def _build_transfer_observation(
LOW…e2e/testcases/tc0021_resumable_transfers_validation.py142 def _interrupt_process_at_transfer_threshold(
LOW…e2e/testcases/tc0021_resumable_transfers_validation.py339 def _find_resumable_state_files(self, conf_dir: Path, patterns: list[str]) -> list[str]:
LOW…e2e/testcases/tc0021_resumable_transfers_validation.py347 def _write_resumable_state_listing(self, output: Path, resumable_files: list[str]) -> None:
LOW…e2e/testcases/tc0021_resumable_transfers_validation.py353 def _run_upload_resume_scenario(
LOW…e2e/testcases/tc0021_resumable_transfers_validation.py640 def _run_download_resume_scenario(
LOW…tcases/tc0043_monitor_mode_local_delete_propagation.py46 def _wait_for_initial_sync_complete(
LOW…tcases/tc0043_monitor_mode_local_delete_propagation.py62 def _wait_for_monitor_patterns(
LOW…e/testcases/tc0037_mtime_only_local_change_handling.py59 def _write_file_with_exact_size(self, path: Path, size_bytes: int, header_text: str) -> None:
LOW…e/testcases/tc0037_mtime_only_local_change_handling.py89 def _scenario_uses_session_upload(self, file_size_bytes: int, force_session_upload: bool) -> bool:
LOWci/e2e/testcases/tc0018_recycle_bin_validation.py18 def _write_runtime_base_config(self, config_path: Path, sync_dir: Path) -> None:
LOWci/e2e/testcases/tc0018_recycle_bin_validation.py25 def _write_runtime_cleanup_config(self, config_path: Path, sync_dir: Path, recycle_bin_path: Path) -> None:
LOW…first_upload_only_timestamp_preservation_validation.py91 def _assert_no_download_activity(
LOW…first_upload_only_timestamp_preservation_validation.py114 def _assert_no_upload_activity(
LOW…ases/tc0057_recycle_bin_delete_behaviour_validation.py63 def _recycle_bin_has_trashinfo(self, manifest: list[str]) -> bool:
20 more matches not shown…
Deep Nesting12 hits · 12 pts
SeverityFileLineSnippet
LOWci/e2e/run.py156
LOWci/e2e/run.py228
LOWci/e2e/run_personal_shared_folders.py53
LOWci/e2e/run_personal_shared_folders.py107
LOWci/e2e/run_business_shared_folders.py60
LOWci/e2e/run_business_shared_folders.py112
LOW…tcases_personal_shared_folders/shared_folder_common.py256
LOW…sonal_shared_folders/sfptc0003_sync_list_validation.py661
LOW…iness_shared_folders/bsftc0003_sync_list_validation.py393
LOW…tcases_business_shared_folders/shared_folder_common.py231
LOW…/bsftc0005_get_sharepoint_drive_id_while_monitoring.py41
LOW…e2e/testcases/tc0021_resumable_transfers_validation.py318
Over-Commented Block7 hits · 6 pts
SeverityFileLineSnippet
LOWdocs/usage.md881> * High disk or network activity
LOWdocs/usage.md901# - Rules with a leading "/" apply ONLY to the OneDrive ROOT.
LOWdocs/usage.md981# ⚠️ High-cost rule — causes full tree scanning.
LOWdocs/usage.md1021# DIRECTORIES WITH SPACES
LOW.github/workflows/spellcheck.yaml1name: Check Spelling
LOW.github/workflows/spellcheck.yaml21#
LOW.github/workflows/spellcheck.yaml41# and configuring the action with `use_sarif: 1`
Excessive Try-Catch Wrapping3 hits · 3 pts
SeverityFileLineSnippet
LOWci/e2e/run.py318 except Exception as exc:
LOWci/e2e/run_personal_shared_folders.py156 except Exception as exc:
LOWci/e2e/run_business_shared_folders.py161 except Exception as exc:
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippet
MEDIUM…tcases/tc0058_monitor_download_only_cleanup_cadence.py407 # differ across harness/debug paths.