Apache OpenDAL: One Layer, All Storage.
This report summarizes scanner evidence for apache/opendal, a Rust project with 5,410 GitHub stars. SynthScan examined 406,375 lines of code across 2205 source files, recording 2682 pattern matches distributed across 16 syntactic categories. The legacy adjusted pattern signal is 6.5 (Moderate 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? 2635 finding(s).
Are imports declared and package/API names verified? 20 finding(s).
Are wrappers, guards, and repeated structures necessary? 239 finding(s).
Which changes need focused human review? 2682 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 2682 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 | .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 | .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/types/copy.rs | 1 | // Licensed to the Apache Software Foundation (ASF) under one | COMMENT |
| LOW | core/core/src/types/compact.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 | /// combination, for example `if_not_changed` metadata that contains no | COMMENT |
| LOW | core/core/src/types/error.rs | 81 | /// Options such as `if_match`, `if_not_exists`, and `if_not_changed` | COMMENT |
| LOW | core/core/src/types/error.rs | 141 | ErrorKind::Conflict => "Conflict", | COMMENT |
| LOW | core/core/src/types/error.rs | 181 | } | COMMENT |
| LOW | core/core/src/types/error.rs | 201 | /// ```shell | COMMENT |
| LOW | core/core/src/types/error.rs | 221 | /// | COMMENT |
| LOW | core/core/src/types/error.rs | 461 | COMMENT | |
| LOW | core/core/src/types/error.rs | 481 | /// | COMMENT |
| LOW | core/core/src/types/error.rs | 501 | /// fn source(&self) -> Option<&(dyn std::error::Error + 'static)> { | 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 | 121 | /// | COMMENT |
| LOW | core/core/src/types/metadata.rs | 241 | /// See [RFC 9111](https://www.rfc-editor.org/rfc/rfc9111.html). | 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::raw::Timestamp; | COMMENT |
| LOW | core/core/src/types/options.rs | 41 | /// | COMMENT |
| LOW | core/core/src/types/options.rs | 61 | /// | COMMENT |
| LOW | core/core/src/types/options.rs | 81 | /// service does not advertise | COMMENT |
| LOW | core/core/src/types/options.rs | 101 | /// | COMMENT |
| LOW | core/core/src/types/options.rs | 121 | } | COMMENT |
| LOW | core/core/src/types/options.rs | 141 | /// Include delete markers when supported by version-aware backends; default `false`. | COMMENT |
| LOW | core/core/src/types/options.rs | 161 | /// | COMMENT |
| LOW | core/core/src/types/options.rs | 181 | /// Read only when the file has this exact ETag. | COMMENT |
| LOW | core/core/src/types/options.rs | 201 | /// service does not advertise | COMMENT |
| LOW | core/core/src/types/options.rs | 221 | /// | COMMENT |
| LOW | core/core/src/types/options.rs | 241 | /// [`crate::ErrorKind::ConditionNotMatch`]; a missing file returns | COMMENT |
| LOW | core/core/src/types/options.rs | 261 | /// | COMMENT |
| LOW | core/core/src/types/options.rs | 281 | /// | COMMENT |
| LOW | core/core/src/types/options.rs | 301 | /// Specify the `content-disposition` header that should be sent back by the operation. | COMMENT |
| LOW | core/core/src/types/options.rs | 321 | #[derive(Debug, Clone, Default, Eq, PartialEq)] | COMMENT |
| LOW | core/core/src/types/options.rs | 341 | /// The operation returns [`crate::ErrorKind::Unsupported`] when the | COMMENT |
| LOW | core/core/src/types/options.rs | 361 | /// [`crate::ErrorKind::NotFound`]. | COMMENT |
| LOW | core/core/src/types/options.rs | 381 | /// this time. A file not modified since this time returns | COMMENT |
| LOW | core/core/src/types/options.rs | 401 | /// Known content length of the object. | COMMENT |
| LOW | core/core/src/types/options.rs | 421 | /// | COMMENT |
| LOW | core/core/src/types/options.rs | 441 | /// Refer to the [performance guide](https://github.com/apache/opendal/tree/main/core/core/src/docs/performance) | COMMENT |
| LOW | core/core/src/types/options.rs | 461 | /// | COMMENT |
| LOW | core/core/src/types/options.rs | 481 | /// Check [`crate::Capability::stat_with_version`] before using this | COMMENT |
| LOW | core/core/src/types/options.rs | 501 | /// returns [`crate::ErrorKind::NotFound`]. Only concrete ETag values | COMMENT |
| LOW | core/core/src/types/options.rs | 521 | /// The condition succeeds when the file exists with a different version. | COMMENT |
| LOW | core/core/src/types/options.rs | 541 | /// Stat only when the file was not modified after this timestamp. | COMMENT |
| LOW | core/core/src/types/options.rs | 561 | /// Specify the `content-disposition` header that should be sent back by the operation. | COMMENT |
| LOW | core/core/src/types/options.rs | 581 | /// [`crate::ErrorKind::Conflict`]. | COMMENT |
| LOW | core/core/src/types/options.rs | 601 | /// This operation allows adding data to existing files instead of overwriting them. | COMMENT |
| 2319 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | website/plugins/theme-common-singleton-plugin.js | 29 | module.exports = function themeCommonSingletonPlugin() { | CODE |
| LOW | website/plugins/specifications-docs-plugin.js | 90 | function remarkIncludeSpecification() { | CODE |
| LOW | website/plugins/specifications-docs-plugin.js | 131 | async function parseSpecificationFrontMatter({ | CODE |
| LOW | website/src/theme/Navbar/MobileSidebar/Header/index.jsx | 44 | export default function NavbarMobileSidebarHeader() { | CODE |
| LOW | scripts/test_label.py | 40 | def test_catalog_covers_services_bindings_and_integrations(self): | CODE |
| LOW | scripts/test_label.py | 55 | def test_schema_separates_issue_and_pr_categories(self): | CODE |
| LOW | scripts/test_label.py | 64 | def test_invalid_model_labels_never_reach_github(self): | CODE |
| LOW | scripts/test_label.py | 87 | def test_issue_cannot_receive_pr_category_or_breaking_flag(self): | CODE |
| LOW | scripts/test_label.py | 99 | def test_preserves_category_and_deduplicates_components(self): | CODE |
| LOW | scripts/test_label.py | 113 | def test_size_boundaries_exclude_lockfiles(self): | CODE |
| LOW | scripts/test_label.py | 133 | def test_event_applies_only_current_item_and_replaces_size(self): | CODE |
| LOW | scripts/test_label.py | 164 | def test_dry_run_makes_no_writes(self): | CODE |
| LOW | scripts/test_label.py | 175 | def test_stale_head_or_body_cannot_apply_results(self): | CODE |
| LOW | scripts/test_label.py | 191 | def test_closed_item_is_skipped(self): | CODE |
| LOW | scripts/test_label.py | 203 | def test_sync_only_creates_missing_labels(self): | CODE |
| LOW | scripts/test_label.py | 213 | def test_cloudflare_response_is_parsed_and_truncation_rejected(self): | CODE |
| LOW | scripts/test_sign_source_release.py | 63 | def test_signing_entrypoint_events_and_reachability(self): | CODE |
| LOW | scripts/test_sign_source_release.py | 152 | def test_incomplete_inventory(self): | CODE |
| LOW | scripts/test_sign_source_release.py | 160 | def test_identity_and_reproduction(self): | CODE |
| LOW | scripts/test_sign_source_release.py | 187 | def test_sign_and_verify_complete_bundle(self): | CODE |
| LOW | scripts/test_release_impact.py | 40 | def test_compatible_pr_needs_no_declaration(self): | CODE |
| LOW | scripts/test_release_impact.py | 54 | def test_scoped_breaking_declaration_preserves_migration(self): | CODE |
| LOW | scripts/test_release_impact.py | 68 | def test_migration_can_contain_fenced_headings(self): | CODE |
| LOW | scripts/test_release_impact.py | 78 | def test_inconsistent_or_incomplete_declarations_fail(self): | CODE |
| LOW | scripts/test_release_impact.py | 97 | def test_check_command_handles_real_event_file(self): | CODE |
| LOW | scripts/test_release_impact.py | 117 | def test_collection_uses_exact_merged_main_commit(self): | CODE |
| LOW | scripts/test_release_impact.py | 143 | def test_release_range_starts_at_published_source_despite_squashed_sync(self): | CODE |
| LOW | scripts/test_release_impact.py | 187 | def test_prepare_passes_scoped_breaking_and_reuses_frozen_declarations(self): | CODE |
| LOW | scripts/test_release_impact.py | 230 | def test_notice_reads_migration_from_candidate_not_live_pr(self): | CODE |
| LOW | scripts/test_release_lifecycle.py | 42 | def test_rc_branch_and_tag_must_agree(self): | CODE |
| LOW | scripts/test_release_lifecycle.py | 52 | def test_discovery_excludes_legacy_candidates_and_final_branches(self): | CODE |
| LOW | scripts/test_release_lifecycle.py | 64 | def test_only_resolved_passed_votes_can_publish(self): | CODE |
| LOW | scripts/test_release_lifecycle.py | 87 | def test_conflicting_final_ref_cannot_be_replaced(self): | CODE |
| LOW | scripts/test_release_lifecycle.py | 102 | def test_partial_dispatch_resumes_only_missing_workflows(self): | CODE |
| LOW | scripts/test_release_lifecycle.py | 127 | def test_failed_publication_requires_existing_run_recovery(self): | CODE |
| LOW | scripts/test_release_lifecycle.py | 144 | def test_optional_distribution_does_not_block_source_publication(self): | CODE |
| LOW | scripts/test_release_lifecycle.py | 206 | def test_announcement_resume_uses_external_completion_records(self): | CODE |
| LOW | scripts/test_release_lifecycle.py | 235 | def test_unpublished_notice_requires_revision(self): | CODE |
| LOW | scripts/test_release_lifecycle.py | 250 | def test_sync_pr_can_recover_after_branch_push(self): | CODE |
| LOW | scripts/test_release_lifecycle.py | 264 | def test_sync_outputs_approved_candidates_even_if_another_candidate_fails(self): | CODE |
| LOW | scripts/test_release_lifecycle.py | 288 | def test_nexus_promotes_the_closed_rc_repository_and_waits_for_central(self): | CODE |
| LOW | scripts/test_release_lifecycle.py | 329 | def test_new_announcement_uses_approved_atr_revision_and_waits_for_confirmation( | CODE |
| LOW | scripts/test_release_lifecycle.py | 377 | def test_vote_reminder_deduplication_survives_restart(self): | CODE |
| LOW | scripts/test_release_lifecycle.py | 387 | def test_sync_announces_vote_without_editing_existing_discussion(self): | CODE |
| LOW | scripts/test_release_lifecycle.py | 428 | def test_publication_status_comments_only_change_with_progress(self): | CODE |
| LOW | scripts/test_release_lifecycle.py | 464 | def test_baseline_does_not_require_git_ancestry(self): | CODE |
| LOW | scripts/test_release_lifecycle.py | 493 | def test_cleanup_is_scoped_and_preserves_tags(self): | CODE |
| LOW | scripts/test_release_lifecycle.py | 515 | def test_cleanup_keeps_approved_branch_until_other_deletions_succeed(self): | CODE |
| LOW | scripts/test_release_lifecycle.py | 537 | def test_real_git_signed_final_refs(self): | CODE |
| LOW | .github/scripts/release_rust/bootstrap.py | 449 | def write_placeholder_package( | STRING |
| 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/trusted_publishing.py | 78 | def request_trusted_publishing_token( | CODE |
| LOW | .github/scripts/release_rust/trusted_publishing.py | 127 | def revoke_trusted_publishing_token( | CODE |
| LOW | .github/scripts/release_rust/trusted_publishing.py | 152 | def temporary_trusted_publishing_token( | CODE |
| LOW | .github/scripts/release_rust/test_bootstrap.py | 110 | def test_bootstrap_workflow_is_input_free_and_always_protected(self): | CODE |
| LOW | .github/scripts/release_rust/test_bootstrap.py | 120 | def test_publisher_matches_the_release_workflow(self): | CODE |
| LOW | .github/scripts/release_rust/test_bootstrap.py | 131 | def test_placeholder_manifest_is_dependency_free(self): | CODE |
| 151 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| 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 | 362 | // ── Data I/O Operations ────────────────────────────────── | COMMENT |
| MEDIUM | core/services/goosefs/src/core.rs | 546 | // ── Metadata Conversion ────────────────────────────────── | COMMENT |
| MEDIUM | core/services/goosefs/src/backend.rs | 291 | // ── Step 1: establish the base SDK config ───────────────────────────── | COMMENT |
| MEDIUM | core/services/goosefs/src/backend.rs | 329 | // ── Step 2: resolve the master address ──────────────────────────────── | COMMENT |
| MEDIUM | core/services/goosefs/src/backend.rs | 336 | // ── Step 3: overlay the remaining builder-explicit fields ───────────── | COMMENT |
| MEDIUM | core/services/goosefs/src/backend.rs | 377 | // ── Step 4: validate the final merged config ────────────────────────── | COMMENT |
| MEDIUM | .github/services/goosefs/goosefs/action.yml | 56 | # ----------------------------------------------------------------------- | COMMENT |
| MEDIUM | .github/services/goosefs/goosefs/action.yml | 64 | # ----------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/services/s3/src/backend.rs | 358 | /// NOTE: This function should not be used along with other `server_side_encryption_with_` functions. | COMMENT |
| LOW | core/services/s3/src/backend.rs | 368 | /// NOTE: This function should not be used along with other `server_side_encryption_with_` functions. | COMMENT |
| LOW | core/services/s3/src/backend.rs | 382 | /// NOTE: This function should not be used along with other `server_side_encryption_with_` functions. | COMMENT |
| LOW | core/services/s3/src/backend.rs | 392 | /// 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 | 45 | # Step 1: build the native library (default Lua version is 5.2). | COMMENT |
| LOW | website/docs/20-bindings/lua/01-overview.md | 49 | # Step 2: copy it to your Lua shared-library directory. | COMMENT |
| LOW⚡ | bindings/ocaml/release.sh | 32 | # Step 1: Update version in dune-project | COMMENT |
| LOW⚡ | bindings/ocaml/release.sh | 36 | # Step 2: Regenerate opam file | COMMENT |
| LOW⚡ | bindings/ocaml/release.sh | 40 | # Step 3: Run tests | COMMENT |
| LOW⚡ | bindings/ocaml/release.sh | 44 | # Step 4: Build documentation | COMMENT |
| LOW⚡ | bindings/ocaml/release.sh | 48 | # Step 5: Create a source distribution | COMMENT |
| LOW⚡ | bindings/ocaml/release.sh | 53 | # Step 6: Publish to opam-repository (requires manual PR) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | core/core/src/types/options.rs | 800 | /// - Better utilize available bandwidth | COMMENT |
| MEDIUM | core/core/src/types/options.rs | 827 | /// - 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 | bindings/go/opendal.go | 22 | // leverage OpenDAL's capabilities without the need for CGO. | COMMENT |
| MEDIUM | bindings/go/opendal.go | 53 | // 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 | scripts/verify.py | 75 | except Exception as e: | CODE |
| LOW | scripts/verify.py | 85 | except Exception as e: | CODE |
| MEDIUM | scripts/verify.py | 69 | def check_rust(): | CODE |
| MEDIUM | scripts/verify.py | 79 | def check_java(): | CODE |
| LOW | .github/scripts/release_rust/bootstrap.py | 690 | except Exception as error: | STRING |
| MEDIUM | .github/scripts/weekly_update/main.py | 102 | print(f"Error fetching issues: {response.status_code}") | CODE |
| MEDIUM | .github/scripts/weekly_update/main.py | 200 | print(f"Error fetching discussions: {response.status_code}") | STRING |
| LOW | .github/scripts/weekly_update/main.py | 444 | except Exception as e: | STRING |
| MEDIUM | .github/scripts/weekly_update/main.py | 445 | print(f"Error with OpenAI API: {e}") | STRING |
| LOW | bindings/python/tests/test_sync_gil.py | 108 | except Exception as error: # noqa: BLE001 | CODE |
| LOW | bindings/python/tests/test_sync_gil.py | 240 | except Exception as error: # noqa: BLE001 | CODE |
| MEDIUM | bindings/python/tests/test_sync_gil.py | 105 | def read(path) -> None: | CODE |
| MEDIUM | bindings/python/tests/test_sync_gil.py | 228 | def perform_io() -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/scripts/test_behavior/test_plan.py | 20 | CODE | |
| LOW | bindings/python/python/opendal/options.py | 43 | CODE | |
| LOW | bindings/python/python/opendal/config.py | 44 | 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/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 | 32 | # Step 1: Update version in dune-project | COMMENT |
| LOW⚡ | bindings/ocaml/release.sh | 36 | # Step 2: Regenerate opam file | COMMENT |
| LOW⚡ | bindings/ocaml/release.sh | 40 | # Step 3: Run tests | COMMENT |
| LOW⚡ | bindings/ocaml/release.sh | 44 | # Step 4: Build documentation | COMMENT |
| LOW⚡ | bindings/ocaml/release.sh | 48 | # Step 5: Create a source distribution | COMMENT |
| LOW⚡ | bindings/ocaml/release.sh | 53 | # Step 6: Publish to opam-repository (requires manual PR) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/verify_source_reproducibility.py | 35 | CODE | |
| LOW | scripts/test_sign_source_release.py | 63 | CODE | |
| LOW | scripts/release_lifecycle.py | 525 | CODE | |
| LOW | scripts/release_lifecycle.py | 621 | CODE | |
| LOW | scripts/merge_local_staging.py | 26 | CODE | |
| LOW | .github/scripts/release_rust/publish.py | 174 | CODE | |
| LOW | .github/scripts/release_rust/publish.py | 207 | CODE | |
| LOW | .github/scripts/weekly_update/main.py | 80 | CODE | |
| LOW | bindings/python/tests/test_sync_gil.py | 196 | CODE | |
| LOW | bindings/python/tests/test_sync_gil.py | 228 | CODE | |
| LOW | bindings/python/tests/test_write.py | 276 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/core/src/types/operator/operator.rs | 402 | /// ## Check if file exists | COMMENT |
| LOW | core/core/src/blocking/operator.rs | 296 | /// ## Check if file exists | COMMENT |
| LOW | .github/scripts/weekly_update/main.py | 119 | # Check if it's a good first issue | COMMENT |
| LOW | .github/scripts/weekly_update/main.py | 521 | # 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 |
|---|---|---|---|---|
| HIGH | .github/scripts/release_rust/trusted_publishing.py | 41 | except (json.JSONDecodeError, AttributeError, KeyError, TypeError): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/core/src/types/read/futures_async_reader.rs | 265 | /// TODO: implement vectored read. | COMMENT |
| LOW | bindings/ruby/src/io.rs | 48 | // TODO: implement encoding. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | core/services/webdav/src/core.rs | 1577 | assert_eq!(user_metadata.get("author"), Some(&"John Doe".to_string())); | CODE |
| LOW | scripts/test_sign_source_release.py | 75 | "user.email=test@example.org", | CODE |
| LOW | scripts/test_sign_source_release.py | 89 | "user.email=test@example.org", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bindings/python/python/opendal/options.py | 163 | __all__ = [ | CODE |
| LOW | bindings/python/python/opendal/config.py | 1073 | __all__ = [ | CODE |
| LOW | bindings/python/python/opendal/__init__.py | 38 | __all__ = [ | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | bindings/go/opendal.go | 91 | // Example usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/scripts/weekly_update/main.py | 365 | CODE |