Skip to content

feat: Resumable Media Upload functionality implementation - #72

Open
viacheslav-rostovtsev wants to merge 11 commits into
googleapis:mainfrom
viacheslav-rostovtsev:dev/virost/resumable-uploads
Open

viacheslav-rostovtsev wants to merge 11 commits into
googleapis:mainfrom
viacheslav-rostovtsev:dev/virost/resumable-uploads

Conversation

@viacheslav-rostovtsev

@viacheslav-rostovtsev viacheslav-rostovtsev commented Sep 15, 2026

Copy link
Copy Markdown
Member

Resumable Media Upload functionality

Public API

  • Gapic::Rest::ResumableUpload::Session is the entry point.
  • Session#start for initial upload, and
  • Session#resume for resuming after error.

Also public: Progress, ResumeHandle, HasResumeHandle module, and a typed error hierarchy.

Changes to existing files:

  • StubLogger#warn
  • request-payload abridging in ClientStub so that binary upload bodies don't land in logs
  • REST_ERROR_PREFIX constant extracted in Rest::Error

Integration testing

  • against Showcase, for manual confirmation (disabled in CI). CI integration tests are planned to land in the generator.

Public API
`Gapic::Rest::ResumableUpload::Session` is the entry point.
`Session#run` for initial upload, and `Session#resume` for resuming
after error.

Also public: `Progress`, `ResumeHandle`, `HasResumeHandle` module, and a typed error hierarchy.

Changes to existing files:
* `StubLogger#warn`
* request-payload abridging in `ClientStub` so that binary upload bodies don't land in logs
* `REST_ERROR_PREFIX` constant extracted in Rest::Error

Integration testing against Showcase, for manual confirmation (disabled in CI).
CI integration tests are planned to land in the generator.
…replacement

Show the coordinator alongside the driver in the architecture and test-plan diagrams.
…ble in driver_test

Replaces the core.instance_variable_set poke with a Core double passed through the designed test seam.
…ries from it

Comparing readers against a pristine policy dropped a caller's setting whenever it happened to equal the library default. #overrides reports only what was explicitly supplied, so start_retry_policy_for collapses to a merge and BACKOFF_DEFAULTS goes away.
…retry predicate

Only the call timeout is now imposed unconditionally; every other setting the caller carries, including a retry predicate, reaches the initiation policy.
…ator

A Showcase test that builds a Driver by hand exercises a path no generated client takes. All five suites now drive ::Gapic::ResumableUpload, build_config is gone, and the golden path gains a decode-into-a-message case.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants