Skip to content

feat(ruby): register the text, form and multipart serializers - #8443

Open
Andrea Peruffo (andreaTP) wants to merge 3 commits into
microsoft:mainfrom
andreaTP:feat/ruby-serialization-modules
Open

Andrea Peruffo (andreaTP) wants to merge 3 commits into
microsoft:mainfrom
andreaTP:feat/ruby-serialization-modules

Conversation

@andreaTP

@andreaTP Andrea Peruffo (andreaTP) commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Generated Ruby clients registered only JSON, so text/plain, form and multipart bodies failed with "could not serialize payload". The client now registers the text, form and multipart writers and the text and form parse nodes, as Python does, and appsettings.json lists the new gems.

New RequestBodies.yaml in the IT, with a Ruby spec checking the exact bytes of a form, a multipart and a text body: it fails on main and passes here. MockServer skips multipart operations and only matches JSON text bodies, so the spec checks the request in memory, like the query-params spec. The description builds in all languages.

Builds on #8441. The Ruby IT passes on all its descriptions against the published 0.25.0 gems.

Copilot AI balanced review requested due to automatic review settings October 19, 2026 16:33
@github-actions

Copy link
Copy Markdown
Contributor

Thanks for opening this pull request! Please link it to an issue by adding the fixes syntax to the pull request description, for example: Fixes #1234.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Approval requires confirmation of the Ruby 0.25.0 release, corresponding lockfile update, and successful runtime integration validation.

No open issues 🎉

What changed in this PR

Enables non-JSON serialization in generated Ruby clients, building on #8441’s runtime dependency update.

Changes:

  • Registers text, form and multipart writers, plus text and form parse nodes.
  • Updates Ruby dependencies to 0.25.0 and documents serialization support.
  • Adds registration tests and request-body integration coverage.
File Description
tests/​Kiota.Builder.Tests/​Refiners/​RubyLanguageRefinerTests.cs Verifies factory registrations and imports.
tests/​Kiota.Builder.IntegrationTests/​RequestBodies.yaml Defines form, multipart and text endpoints.
src/​kiota/​appsettings.json Lists required Ruby 0.25.0 gems.
src/​Kiota.Builder/​Refiners/​RubyRefiner.cs Registers additional serialization factories.
serialization/​README.md Updates Ruby serialization links.
README.md Lists Ruby serialization support.
it/​ruby/​spec/​request-bodies/​integration_test_request_bodies.rb Checks body bytes and parse-node registration.
it/​ruby/​Gemfile Adds serializers and updates runtime versions.
it/​config.json Maps the request-body integration fixture.
CHANGELOG.md Records Ruby support and dependency changes.
.github/​workflows/​integration-tests.yml Adds the fixture to integration testing.

Review effort: Balanced

Copilot AI balanced review requested due to automatic review settings October 20, 2026 09:32
@andreaTP
Andrea Peruffo (andreaTP) force-pushed the feat/ruby-serialization-modules branch from 0499ae5 to 4f7dd81 Compare October 20, 2026 09:32
@andreaTP
Andrea Peruffo (andreaTP) marked this pull request as ready for review October 20, 2026 09:32
@andreaTP
Andrea Peruffo (andreaTP) requested a review from a team as a code owner October 20, 2026 09:32

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

Static review found consistent registrations, dependencies, and regression coverage with no blocking issues; tests were not executed.

No open issues 🎉

Review effort: Balanced

Copilot AI balanced review requested due to automatic review settings October 20, 2026 16:53
@andreaTP
Andrea Peruffo (andreaTP) force-pushed the feat/ruby-serialization-modules branch from 4f7dd81 to 15fb10f Compare October 20, 2026 16:53

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

Registration changes, dependency alignment, and focused regression coverage are consistent, with no blocking issues identified.

No open issues 🎉

Review effort: Balanced

@baywet Vincent Biret (baywet) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the contribution!

@baywet
Vincent Biret (baywet) added this pull request to the merge queue Oct 20, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to a conflict with the base branch Oct 21, 2026
- the client registers the text, form and multipart writers and the text and form parse nodes
- appsettings.json and the IT Gemfile list the three gems
- RequestBodies.yaml with a Ruby spec checking the bytes of each body

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

Registration, dependencies, and regression coverage are consistent, with no blocking issues identified; tests were not executed during review.

No open issues 🎉

Review effort: Balanced

@github-actions

Copy link
Copy Markdown
Contributor

Conflicts have been resolved. A maintainer will take a look shortly.

This branch has not been deployed

No deployments
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.

3 participants