Apache OpenDAL: One Layer, All Storage.
This report presents the forensic synthetic code analysis of apache/opendal, a Rust project with 5,236 GitHub stars. SynthScan v2.0 examined 344,460 lines of code across 1978 source files, recording 2361 pattern matches distributed across 15 syntactic categories. The overall adjusted score of 7.0 places this repository in the Low 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).
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.
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.
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.
The scanner identified 2361 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.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .asf.yaml | 1 | # Licensed to the Apache Software Foundation (ASF) under one | COMMENT |
| LOW | deny.toml | 1 | # Licensed to the Apache Software Foundation (ASF) under one | COMMENT |
| LOW | rustfmt.toml | 1 | # Licensed to the Apache Software Foundation (ASF) under one | COMMENT |
| LOW | rustfmt.toml | 21 | # format_code_in_doc_comments = true | COMMENT |
| LOW | licenserc.toml | 1 | # Licensed to the Apache Software Foundation (ASF) under one | COMMENT |
| LOW | .typos.toml | 1 | # Licensed to the Apache Software Foundation (ASF) under one | COMMENT |
| LOW | rust-toolchain.toml | 1 | # Licensed to the Apache Software Foundation (ASF) under one | COMMENT |
| LOW | .taplo.toml | 1 | # Licensed to the Apache Software Foundation (ASF) under one | COMMENT |
| LOW | .taplo.toml | 21 | # Align consecutive entries vertically. | COMMENT |
| LOW | .config/nextest.toml | 1 | # Licensed to the Apache Software Foundation (ASF) under one | COMMENT |
| LOW | core/Cargo.toml | 1 | # Licensed to the Apache Software Foundation (ASF) under one | COMMENT |
| LOW | core/core/Cargo.toml | 1 | # Licensed to the Apache Software Foundation (ASF) under one | COMMENT |
| LOW | core/core/src/lib.rs | 1 | // Licensed to the Apache Software Foundation (ASF) under one | COMMENT |
| LOW | core/core/src/lib.rs | 21 | #![cfg_attr(docsrs, feature(doc_cfg))] | COMMENT |
| LOW | core/core/src/lib.rs | 41 | //! Let's take [`services::Memory`] as an example: | COMMENT |
| LOW | core/core/src/lib.rs | 61 | //! features for every operation. All builtin layers could be found at [`layers`]. | COMMENT |
| LOW | core/core/src/lib.rs | 81 | //! // Replace the base HTTP transport. | COMMENT |
| LOW | core/core/src/lib.rs | 101 | //! - [`Operator::reader_options`]: Creates a reader with extra options provided via a [`options::ReadOptions`] struct. | COMMENT |
| LOW | core/core/src/lib.rs | 121 | //! let op = Operator::new(builder)? | COMMENT |
| LOW | core/core/src/lib.rs | 141 | //! chunk: Some(1024 * 1024), | COMMENT |
| LOW | core/core/src/types/copy.rs | 1 | // Licensed to the Apache Software Foundation (ASF) under one | COMMENT |
| LOW | core/core/src/types/error.rs | 1 | // Licensed to the Apache Software Foundation (ASF) under one | COMMENT |
| LOW | core/core/src/types/error.rs | 21 | //! | COMMENT |
| LOW | core/core/src/types/error.rs | 61 | NotFound, | COMMENT |
| LOW | core/core/src/types/error.rs | 81 | /// | COMMENT |
| LOW | core/core/src/types/error.rs | 161 | } | COMMENT |
| LOW | core/core/src/types/error.rs | 181 | /// ```shell | COMMENT |
| LOW | core/core/src/types/error.rs | 201 | /// | COMMENT |
| LOW | core/core/src/types/error.rs | 441 | pub fn is_persistent(&self) -> bool { | COMMENT |
| LOW | core/core/src/types/error.rs | 461 | /// // assume you already have `#![feature(error_generic_member_access)]` on the top of your crate | COMMENT |
| LOW | core/core/src/types/list.rs | 1 | // Licensed to the Apache Software Foundation (ASF) under one | COMMENT |
| LOW | core/core/src/types/metadata.rs | 1 | // Licensed to the Apache Software Foundation (ASF) under one | COMMENT |
| LOW | core/core/src/types/metadata.rs | 21 | use std::fmt; | COMMENT |
| LOW | core/core/src/types/metadata.rs | 161 | } | COMMENT |
| LOW | core/core/src/types/metadata.rs | 201 | self | COMMENT |
| LOW | core/core/src/types/metadata.rs | 261 | /// Refer to [MDN Content-Length](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Length) for more | COMMENT |
| LOW | core/core/src/types/metadata.rs | 361 | self | COMMENT |
| LOW | core/core/src/types/metadata.rs | 401 | /// clarified usage in [RFC 6266](https://www.rfc-editor/6266). | COMMENT |
| LOW | core/core/src/types/metadata.rs | 421 | pub fn with_content_disposition(mut self, v: String) -> Self { | COMMENT |
| LOW | core/core/src/types/options.rs | 1 | // Licensed to the Apache Software Foundation (ASF) under one | COMMENT |
| LOW | core/core/src/types/options.rs | 21 | use crate::types::BytesRange; | COMMENT |
| LOW | core/core/src/types/options.rs | 41 | /// - Pagination: `limit`, `start_after`. | COMMENT |
| LOW | core/core/src/types/options.rs | 61 | pub struct ReadOptions { | COMMENT |
| LOW | core/core/src/types/options.rs | 81 | /// | COMMENT |
| LOW | core/core/src/types/options.rs | 101 | /// Set `if_unmodified_since` for this operation. | COMMENT |
| LOW | core/core/src/types/options.rs | 121 | /// | COMMENT |
| LOW | core/core/src/types/options.rs | 141 | /// that are close to each other, as it reduces the overhead of multiple network requests | COMMENT |
| LOW | core/core/src/types/options.rs | 161 | /// Options for reader operations. | COMMENT |
| LOW | core/core/src/types/options.rs | 181 | /// | COMMENT |
| LOW | core/core/src/types/options.rs | 201 | /// | COMMENT |
| LOW | core/core/src/types/options.rs | 221 | /// | COMMENT |
| LOW | core/core/src/types/options.rs | 241 | /// completed-but-not-yet-read chunks can be buffered. Once the number of buffered | COMMENT |
| LOW | core/core/src/types/options.rs | 261 | pub version: Option<String>, | COMMENT |
| LOW | core/core/src/types/options.rs | 281 | /// If file exists and it hasn't been modified since the specified time, an error with kind | COMMENT |
| LOW | core/core/src/types/options.rs | 301 | /// | COMMENT |
| LOW | core/core/src/types/options.rs | 321 | /// - If not supported, will return an error | COMMENT |
| LOW | core/core/src/types/options.rs | 341 | /// | COMMENT |
| LOW | core/core/src/types/options.rs | 361 | /// - The value should follow MIME type format (e.g. "text/plain", "image/jpeg") | COMMENT |
| LOW | core/core/src/types/options.rs | 381 | /// | COMMENT |
| LOW | core/core/src/types/options.rs | 401 | /// This operation allows specifying the encoding applied to the content being written. | COMMENT |
| 2120 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | core/core/src/docs/concepts.rs | 39 | //! ┌─────────┐ build() ┌─────────┐ | COMMENT |
| MEDIUM⚡ | core/core/src/docs/concepts.rs | 40 | //! │ Builder ├────────────►│ Service │ | COMMENT |
| MEDIUM⚡ | core/core/src/docs/concepts.rs | 41 | //! └─────────┘ └─────────┘ | COMMENT |
| MEDIUM⚡ | core/core/src/docs/concepts.rs | 61 | //! ┌─────────┐ Operator::new ┌────────────────────────────┐ | COMMENT |
| MEDIUM⚡ | core/core/src/docs/concepts.rs | 62 | //! │ Builder ├──────────────────►│ Operator │ | COMMENT |
| MEDIUM⚡ | core/core/src/docs/concepts.rs | 63 | //! └─────────┘ │ - base service │ | COMMENT |
| MEDIUM⚡ | core/core/src/docs/concepts.rs | 67 | //! └────────────────────────────┘ | COMMENT |
| MEDIUM⚡ | core/core/src/docs/concepts.rs | 137 | //! ┌──────────────┐ | COMMENT |
| MEDIUM⚡ | core/core/src/docs/concepts.rs | 138 | //! ┌────────►│ read("abc") │ | COMMENT |
| MEDIUM⚡ | core/core/src/docs/concepts.rs | 139 | //! │ └──────────────┘ | COMMENT |
| MEDIUM⚡ | core/core/src/docs/concepts.rs | 140 | //! ┌───────────┐ │ | COMMENT |
| MEDIUM⚡ | core/core/src/docs/concepts.rs | 141 | //! │ Operator │ │ ┌──────────────┐ | COMMENT |
| MEDIUM⚡ | core/core/src/docs/concepts.rs | 142 | //! │ ┌───────┐ ├────┼────────►│ write("def") │ | COMMENT |
| MEDIUM⚡ | core/core/src/docs/concepts.rs | 143 | //! │ │Service│ │ │ └──────────────┘ | COMMENT |
| MEDIUM⚡ | core/core/src/docs/concepts.rs | 144 | //! └─┴───────┴─┘ │ | COMMENT |
| MEDIUM⚡ | core/core/src/docs/concepts.rs | 145 | //! │ ┌──────────────┐ | COMMENT |
| MEDIUM⚡ | core/core/src/docs/concepts.rs | 146 | //! └────────►│ list("ghi/") │ | COMMENT |
| MEDIUM⚡ | core/core/src/docs/concepts.rs | 147 | //! └──────────────┘ | COMMENT |
| MEDIUM⚡ | core/core/src/docs/internals/mod.rs | 39 | //! ┌──────────────┐ ┌──────────────────────────────┐ ┌──────────────┐ | COMMENT |
| MEDIUM⚡ | core/core/src/docs/internals/mod.rs | 42 | //! └──────────────┘ │ + OperationContext resources │ └──────────────┘ | COMMENT |
| MEDIUM⚡ | core/core/src/docs/internals/mod.rs | 43 | //! └──────────────────────────────┘ | COMMENT |
| MEDIUM | core/services/goosefs/src/core.rs | 117 | // ── Shared-connection acquisition ───────────────────────────────────── | COMMENT |
| MEDIUM | core/services/goosefs/src/core.rs | 206 | // ── Metadata Operations ────────────────────────────────── | COMMENT |
| MEDIUM | core/services/goosefs/src/core.rs | 305 | // ── Data I/O Operations ────────────────────────────────── | COMMENT |
| MEDIUM | core/services/goosefs/src/core.rs | 462 | // ── Metadata Conversion ────────────────────────────────── | COMMENT |
| MEDIUM | core/services/goosefs/src/backend.rs | 136 | // ── Step 1: establish the base SDK config ───────────────────────────── | COMMENT |
| MEDIUM | core/services/goosefs/src/backend.rs | 172 | // ── Step 2: overlay builder-explicit fields (authoritative) ─────────── | COMMENT |
| MEDIUM | core/services/goosefs/src/backend.rs | 259 | // ── Step 3: validate the final merged config ────────────────────────── | COMMENT |
| MEDIUM | .github/services/goosefs/goosefs/action.yml | 47 | # ----------------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/services/goosefs/goosefs/action.yml | 55 | # ----------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | website/src/theme/Navbar/MobileSidebar/Header/index.jsx | 44 | export default function NavbarMobileSidebarHeader() { | CODE |
| LOW | .github/scripts/release_rust/plan.py | 48 | def discover_publishable_packages(project_dir: Path) -> dict[Path, Package]: | CODE |
| LOW | .github/scripts/release_rust/test_plan.py | 32 | def test_fixture_plan_orders_path_dependencies(self): | CODE |
| LOW | .github/scripts/release_rust/test_plan.py | 127 | def test_repository_plan_excludes_non_release_paths(self): | CODE |
| LOW | .github/scripts/release_rust/test_plan.py | 138 | def test_repository_plan_orders_core_before_root_and_integrations(self): | CODE |
| LOW | .github/scripts/release_rust/test_publish.py | 34 | def test_strip_local_dev_dependencies(self): | CODE |
| LOW | .github/scripts/release_rust/publish.py | 78 | def local_dev_dependency_names(manifest: dict, manifest_dir: Path) -> set[str]: | CODE |
| LOW | .github/scripts/release_rust/publish.py | 96 | def is_dev_dependency_section(header: str | None) -> bool: | CODE |
| LOW | .github/scripts/release_rust/publish.py | 116 | def strip_local_dev_dependencies(manifest_path: Path, dependency_names: set[str]) -> bool: | CODE |
| LOW | .github/scripts/weekly_update/main.py | 233 | def fetch_additional_good_first_issues(repo, token, count=5): | STRING |
| LOW | .github/scripts/test_behavior/plan.py | 259 | def generate_language_binding_cases( | CODE |
| LOW | .github/scripts/test_behavior/plan.py | 334 | def generate_integration_cases( | CODE |
| LOW | .github/scripts/test_behavior/test_plan.py | 47 | def test_core_services_hdfs_native_mapping(self): | CODE |
| LOW | .github/scripts/test_behavior/test_plan.py | 63 | def test_binding_java_excludes_hf(self): | CODE |
| LOW | .github/scripts/test_behavior/test_plan.py | 68 | def test_integration_object_store(self): | CODE |
| LOW | bindings/python/tests/test_sync_stat.py | 42 | def test_sync_stat_non_existent(service_name, operator, async_operator): | CODE |
| LOW | bindings/python/tests/test_sync_stat.py | 62 | def test_sync_stat_metadata_fields(service_name, operator, async_operator): | CODE |
| LOW⚡ | bindings/python/tests/test_async_rename.py | 43 | async def test_async_rename_non_exists_file(service_name, operator, async_operator): | CODE |
| LOW⚡ | bindings/python/tests/test_async_rename.py | 52 | async def test_async_rename_directory(service_name, operator, async_operator): | CODE |
| LOW⚡ | bindings/python/tests/test_async_rename.py | 62 | async def test_async_rename_file_to_directory(service_name, operator, async_operator): | CODE |
| LOW | bindings/python/tests/test_async_rename.py | 100 | async def test_async_rename_overwrite(service_name, operator, async_operator): | CODE |
| LOW | bindings/python/tests/test_async_stat.py | 44 | async def test_async_stat_non_existent(service_name, operator, async_operator): | CODE |
| LOW | bindings/python/tests/test_async_stat.py | 66 | async def test_async_stat_metadata_fields(service_name, operator, async_operator): | CODE |
| LOW | bindings/python/tests/test_sync_conditional.py | 27 | def test_sync_read_with_if_match(service_name, operator, async_operator): | CODE |
| LOW | bindings/python/tests/test_sync_conditional.py | 48 | def test_sync_read_with_if_none_match(service_name, operator, async_operator): | CODE |
| LOW | bindings/python/tests/test_sync_conditional.py | 69 | def test_sync_write_with_if_match(service_name, operator, async_operator): | CODE |
| LOW | bindings/python/tests/test_sync_conditional.py | 92 | def test_sync_write_with_if_none_match(service_name, operator, async_operator): | CODE |
| LOW | bindings/python/tests/test_stat_capability.py | 21 | def test_stat_capability_fields_exist(): | CODE |
| LOW | bindings/python/tests/test_capability.py | 27 | def test_capability_list_flags(service_name, operator): | CODE |
| LOW | bindings/python/tests/test_capability.py | 37 | def test_capability_exception(service_name, operator): | CODE |
| LOW | bindings/python/tests/test_stat_conditional.py | 24 | def test_stat_accepts_if_match_param(service_name, operator, async_operator): | CODE |
| LOW⚡ | bindings/python/tests/test_stat_conditional.py | 35 | def test_stat_accepts_if_none_match_param(service_name, operator, async_operator): | CODE |
| LOW⚡ | bindings/python/tests/test_stat_conditional.py | 42 | def test_stat_accepts_version_param(service_name, operator, async_operator): | CODE |
| LOW⚡ | bindings/python/tests/test_stat_conditional.py | 52 | def test_stat_default_params_unchanged(service_name, operator, async_operator): | CODE |
| LOW⚡ | bindings/python/tests/test_stat_conditional.py | 61 | async def test_async_stat_accepts_if_match_param( | CODE |
| LOW | bindings/python/tests/test_stat_conditional.py | 75 | async def test_async_stat_accepts_if_none_match_param( | CODE |
| LOW | bindings/python/tests/test_stat_conditional.py | 85 | async def test_async_stat_accepts_version_param(service_name, operator, async_operator): | CODE |
| LOW | bindings/python/tests/test_exceptions.py | 32 | def test_all_expected_exceptions_present(): | CODE |
| LOW⚡ | bindings/python/tests/test_exceptions.py | 58 | def test_rate_limited_is_catchable(): | CODE |
| LOW⚡ | bindings/python/tests/test_exceptions.py | 65 | def test_range_not_satisfied_is_catchable(): | CODE |
| LOW⚡ | bindings/python/tests/test_exceptions.py | 72 | def test_exceptions_are_distinct(): | CODE |
| LOW | bindings/python/tests/test_async_conditional.py | 28 | async def test_async_read_with_if_match(service_name, operator, async_operator): | CODE |
| LOW | bindings/python/tests/test_async_conditional.py | 50 | async def test_async_read_with_if_none_match(service_name, operator, async_operator): | CODE |
| LOW | bindings/python/tests/test_async_conditional.py | 72 | async def test_async_write_with_if_match(service_name, operator, async_operator): | CODE |
| LOW | bindings/python/tests/test_async_conditional.py | 96 | async def test_async_write_with_if_none_match(service_name, operator, async_operator): | CODE |
| LOW | bindings/python/tests/test_sync_list.py | 24 | def test_sync_list_with_start_after(service_name, operator, async_operator): | CODE |
| LOW⚡ | bindings/python/tests/test_write_conditional.py | 24 | def test_write_accepts_if_match_param(service_name, operator, async_operator): | CODE |
| LOW⚡ | bindings/python/tests/test_write_conditional.py | 34 | def test_write_accepts_if_none_match_param(service_name, operator, async_operator): | CODE |
| LOW⚡ | bindings/python/tests/test_write_conditional.py | 40 | def test_write_accepts_if_not_exists_param(service_name, operator, async_operator): | CODE |
| LOW⚡ | bindings/python/tests/test_write_conditional.py | 46 | def test_write_default_params_unchanged(service_name, operator, async_operator): | CODE |
| LOW⚡ | bindings/python/tests/test_write_conditional.py | 53 | async def test_async_write_accepts_if_match_param( | CODE |
| LOW | bindings/python/tests/test_write_conditional.py | 66 | async def test_async_write_accepts_if_none_match_param( | CODE |
| LOW | bindings/python/tests/test_write_conditional.py | 75 | async def test_async_write_accepts_if_not_exists_param( | CODE |
| LOW | bindings/python/tests/test_async_list.py | 26 | async def test_async_list_with_start_after(service_name, operator, async_operator): | CODE |
| LOW | bindings/python/tests/test_write.py | 155 | async def test_async_writer_options(service_name, operator, async_operator): | CODE |
| LOW | bindings/python/tests/test_sync_copy.py | 49 | def test_sync_copy_source_directory(service_name, operator, async_operator): | CODE |
| LOW | bindings/python/tests/test_sync_copy.py | 58 | def test_sync_copy_target_directory(service_name, operator, async_operator): | CODE |
| LOW⚡ | bindings/python/tests/test_delete_options.py | 26 | def test_delete_accepts_version_param(service_name, operator, async_operator): | CODE |
| LOW⚡ | bindings/python/tests/test_delete_options.py | 36 | def test_delete_accepts_recursive_param(service_name, operator, async_operator): | CODE |
| LOW⚡ | bindings/python/tests/test_delete_options.py | 43 | def test_delete_default_params_unchanged(service_name, operator, async_operator): | CODE |
| 25 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | core/core/src/lib.rs | 22 | //! Apache OpenDAL™ is an Open Data Access Layer that enables seamless interaction with diverse storage services. | COMMENT |
| MEDIUM | core/core/src/lib.rs | 29 | //! public APIs are accessible through the operator. To utilize OpenDAL, you | COMMENT |
| MEDIUM | core/core/src/types/options.rs | 502 | /// - Better utilize available bandwidth | COMMENT |
| MEDIUM | core/core/src/types/options.rs | 529 | /// - Better utilize network bandwidth | COMMENT |
| MEDIUM | core/core/src/types/execute/api.rs | 35 | /// we cannot introduce a generic type parameter to `Execute`. We utilize [`RemoteHandle`] to | COMMENT |
| MEDIUM | core/layers/chaos/src/lib.rs | 38 | /// Running tests under ChaosLayer will make your application more robust. | COMMENT |
| MEDIUM | bindings/go/opendal.go | 24 | // leverage OpenDAL's capabilities without the need for CGO. | COMMENT |
| MEDIUM | bindings/go/opendal.go | 55 | // This package aims to provide a seamless experience for Go developers working with | COMMENT |
| MEDIUM | bindings/cpp/tests/metadata_test.cpp | 552 | // I want the metadata API to be robust and predictable | COMMENT |
| MEDIUM | bindings/c/src/lib.rs | 30 | //! The OpenDAL C binding allows users to utilize the OpenDAL's amazing storage accessing capability | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/core/src/docs/rfcs/7182_restore_api.md | 376 | // Step 1: List soft-deleted objects to find the generation number | COMMENT |
| LOW | core/core/src/docs/rfcs/7182_restore_api.md | 394 | // Step 2: Restore using the generation number | COMMENT |
| LOW | core/services/s3/src/backend.rs | 340 | /// NOTE: This function should not be used along with other `server_side_encryption_with_` functions. | COMMENT |
| LOW | core/services/s3/src/backend.rs | 350 | /// NOTE: This function should not be used along with other `server_side_encryption_with_` functions. | COMMENT |
| LOW | core/services/s3/src/backend.rs | 364 | /// NOTE: This function should not be used along with other `server_side_encryption_with_` functions. | COMMENT |
| LOW | core/services/s3/src/backend.rs | 374 | /// NOTE: This function should not be used along with other `server_side_encryption_with_` functions. | COMMENT |
| LOW | website/docs/20-bindings/lua/01-overview.md | 44 | # Step 1: build the native library (default Lua version is 5.2). | COMMENT |
| LOW | website/docs/20-bindings/lua/01-overview.md | 48 | # Step 2: copy it to your Lua shared-library directory. | COMMENT |
| LOW⚡ | bindings/ocaml/release.sh | 33 | # Step 1: Update version in dune-project | COMMENT |
| LOW⚡ | bindings/ocaml/release.sh | 37 | # Step 2: Regenerate opam file | COMMENT |
| LOW⚡ | bindings/ocaml/release.sh | 41 | # Step 3: Run tests | COMMENT |
| LOW⚡ | bindings/ocaml/release.sh | 45 | # Step 4: Build documentation | COMMENT |
| LOW⚡ | bindings/ocaml/release.sh | 49 | # Step 5: Create a source distribution | COMMENT |
| LOW⚡ | bindings/ocaml/release.sh | 54 | # Step 6: Publish to opam-repository (requires manual PR) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/scripts/test_behavior/test_plan.py | 19 | CODE | |
| LOW | bindings/python/python/opendal/__init__.py | 19 | CODE | |
| LOW | bindings/python/python/opendal/__init__.py | 23 | CODE | |
| LOW | bindings/python/python/opendal/__init__.py | 24 | CODE | |
| LOW | bindings/python/python/opendal/__init__.py | 25 | CODE | |
| LOW | bindings/python/python/opendal/__init__.py | 25 | CODE | |
| LOW | bindings/python/python/opendal/__init__.py | 27 | CODE | |
| LOW | bindings/python/python/opendal/__init__.py | 27 | CODE | |
| LOW | bindings/python/python/opendal/__init__.py | 27 | CODE | |
| LOW | bindings/python/python/opendal/__init__.py | 27 | CODE | |
| LOW | bindings/python/python/opendal/__init__.py | 27 | CODE | |
| LOW | bindings/python/python/opendal/__init__.py | 27 | CODE | |
| LOW | bindings/python/python/opendal/__init__.py | 27 | CODE | |
| LOW | bindings/python/scripts/postprocess_stubs.py | 32 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | bindings/ocaml/release.sh | 33 | # Step 1: Update version in dune-project | COMMENT |
| LOW⚡ | bindings/ocaml/release.sh | 37 | # Step 2: Regenerate opam file | COMMENT |
| LOW⚡ | bindings/ocaml/release.sh | 41 | # Step 3: Run tests | COMMENT |
| LOW⚡ | bindings/ocaml/release.sh | 45 | # Step 4: Build documentation | COMMENT |
| LOW⚡ | bindings/ocaml/release.sh | 49 | # Step 5: Create a source distribution | COMMENT |
| LOW⚡ | bindings/ocaml/release.sh | 54 | # Step 6: Publish to opam-repository (requires manual PR) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/verify.py | 76 | except Exception as e: | CODE |
| LOW | scripts/verify.py | 86 | except Exception as e: | CODE |
| MEDIUM | scripts/verify.py | 70 | def check_rust(): | CODE |
| MEDIUM | scripts/verify.py | 80 | def check_java(): | CODE |
| MEDIUM | .github/scripts/weekly_update/main.py | 103 | print(f"Error fetching issues: {response.status_code}") | CODE |
| MEDIUM | .github/scripts/weekly_update/main.py | 201 | print(f"Error fetching discussions: {response.status_code}") | STRING |
| LOW | .github/scripts/weekly_update/main.py | 445 | except Exception as e: | STRING |
| MEDIUM | .github/scripts/weekly_update/main.py | 446 | print(f"Error with OpenAI API: {e}") | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/core/src/types/operator/operator.rs | 373 | /// ## Check if file exists | COMMENT |
| LOW | core/core/src/blocking/operator.rs | 295 | /// ## Check if file exists | COMMENT |
| LOW | .github/scripts/weekly_update/main.py | 120 | # Check if it's a good first issue | COMMENT |
| LOW | .github/scripts/weekly_update/main.py | 522 | # Output the result | STRING |
| LOW | .github/scripts/test_behavior/plan.py | 56 | # Check if this workflow needs to read secrets. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/core/src/types/read/futures_async_reader.rs | 107 | /// TODO: implement vectored read. | COMMENT |
| LOW | bindings/ruby/src/io.rs | 49 | // TODO: implement encoding. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/merge_local_staging.py | 26 | CODE | |
| LOW | .github/scripts/release_rust/publish.py | 171 | CODE | |
| LOW | .github/scripts/weekly_update/main.py | 81 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bindings/go/opendal.go | 93 | // Example usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/services/webdav/src/core.rs | 1570 | assert_eq!(user_metadata.get("author"), Some(&"John Doe".to_string())); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/scripts/weekly_update/main.py | 366 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bindings/python/python/opendal/__init__.py | 37 | __all__ = [ | CODE |