Skip to content

feat: sync Rust client with Apify OpenAPI spec v2-2026-10-01T153946Z - #27

Merged
Pijukatel merged 2 commits into
masterfrom
claude/youthful-franklin-ciag1b
Oct 6, 2026
Merged

Pijukatel merged 2 commits into
masterfrom
claude/youthful-franklin-ciag1b

Conversation

@Pijukatel

Copy link
Copy Markdown
Collaborator

Summary

Syncs the Rust client from OpenAPI spec v2-2026-09-24T114302Z to v2-2026-10-01T153946Z (apify/apify-docs#2975, apify/apify-docs#3024, apify/apify-docs#3037) and ports the Rust-relevant changes from the reference apify-client-js v3 batch (apify/apify-client-js#985 … #1104). JS PRs that were doc-only, JS-internal refactors, or already covered by earlier syncs needed no Rust change.

  • Build::image_digest field (spec #3037).
  • Fixed /v2 being appended twice in ApifyClientBuilder::base_url / public_base_url (matches JS toApiBaseUrl, apify-client-js#1077).
  • ActorClient::start_raw / call_raw and RunClient::metamorph_raw for raw-bytes Actor input (apify-client-js#1099). Not added to TaskClient, since task input stays object-only in JS.
  • DatasetClient::create_items_public_url_with_format (apify-client-js#1100).
  • LogClient::stream / stream_with_options now return a structured ApiError on failure instead of a generic transport error (apify-client-js#1055).
  • Request-body compression is skipped for already-compressed content types, with JS's media-type tables ported verbatim (apify-client-js#1065).
  • ApiError::is_not_found / is_rate_limited / is_server_error etc., the idiomatic counterpart of JS's new error subclasses.
  • Documented cancellation-by-drop in src/lib.rs / README.md as the Rust counterpart of JS's AbortSignal support (apify-client-js#1081).

Tests added or updated in tests/unit_http.rs, tests/client_meta.rs, tests/build.rs, tests/actor_run.rs and src/client.rs. Docs (docs/actors.md, docs/runs.md, docs/storages.md, README.md) and CHANGELOG.md updated. Crate version bumped 0.10.2 → 0.11.0 (minor, new API surface).

Review

Reviewed via /review-client: one round rejected (a CHANGELOG entry referenced out-of-scope spec prose), fixed in 8c535ff, then Approved with no open items.

Test plan

  • cargo fmt --all -- --check
  • cargo clippy --all-targets -- -D warnings
  • cargo test against the live API with APIFY_TOKEN (all pass)
  • cargo test --doc and the Test examples step (all pass)

Generated by Claude Code

claude added 2 commits October 2, 2026 13:14
Adds Build::image_digest, raw-bytes Actor/run input (start_raw/call_raw/
metamorph_raw), Dataset::create_items_public_url_with_format, ApiError status
predicates, and a base_url /v2 double-append fix, matching the reference JS
client's current master. Also skips compressing already-compressed request
bodies and fixes LogClient::stream to surface a structured ApiError on failure.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01STUGToGEaEFoBGRbWTvF4m
Per review: the Changed bullet described an out-of-scope/not-implemented spec
delta (rate-limiting doc prose, a dropped contact-support note), which the
changelog content rules forbid. Keep only the spec/crate version bumps.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01STUGToGEaEFoBGRbWTvF4m
@Pijukatel Pijukatel added adhoc Ad-hoc unplanned task added during the sprint. t-tooling Issues with this label are in the ownership of the tooling team. labels Oct 2, 2026 — with Claude
@apify-service-account apify-service-account added the tested Temporary label used only programatically for some analytics. label Oct 2, 2026
@Pijukatel
Pijukatel merged commit 6f7653d into master Oct 6, 2026
2 of 6 checks passed
@Pijukatel
Pijukatel deleted the claude/youthful-franklin-ciag1b branch October 6, 2026 08:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

adhoc Ad-hoc unplanned task added during the sprint. t-tooling Issues with this label are in the ownership of the tooling team. tested Temporary label used only programatically for some analytics.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants