Skip to content

chore: 🐝 Update SDK - SDK Generation KOMBO-RUBY 1.2.9 - #38

Open
kombo-sdk-generator[bot] wants to merge 1 commit into
mainfrom
speakeasy-sdk-regen-1786753342
Open

chore: 🐝 Update SDK - SDK Generation KOMBO-RUBY 1.2.9#38
kombo-sdk-generator[bot] wants to merge 1 commit into
mainfrom
speakeasy-sdk-regen-1786753342

Conversation

@kombo-sdk-generator

@kombo-sdk-generator kombo-sdk-generator Bot commented Aug 15, 2026

Copy link
Copy Markdown
Contributor

SDK update

Versioning

Version Bump Type: [patch] - 🤖 (automated)

Tip

If updates to your OpenAPI document introduce breaking changes, be sure to update the info.version field to trigger the correct version bump.
Speakeasy supports manual control of SDK versioning through multiple methods.

Ruby SDK Changes:

  • kombo.hris.get_hris_pay_runs(): Added
  • kombo.hris.get_hris_payslips(): Added
  • kombo.ats.get_ats_scorecards(): Added
  • kombo.connect.create_connection_link():
    • request.integration_tool Changed

View full SDK changelog

OpenAPI Change Summary
├──[+] webhooks (37437:5)
├─┬Paths
│ ├──[+] path (7754:3)
│ ├─┬/ai-apply/unified-api/jobs/{job_id}/applications
│ │ └─┬POST
│ │   └──Responses
│ ├─┬/ai-apply/unified-api/jobs
│ │ └─┬GET
│ │   └──Responses
│ ├─┬/hris/pay-runs
│ │ └─┬GET
│ │   ├──[🔀] description (4185:20)
│ │   ├─┬Responses
│ │   │ └─┬200
│ │   │   └─┬application/json
│ │   │     └─┬example1
│ │   │       └──[🔀] value (4279:21)
│ │   └─┬Extensions
│ │     └──[-] x-speakeasy-ignore (4140:27)❌ 
│ ├─┬/ai-apply/job-feeds
│ │ ├─┬GET
│ │ │ └──Responses
│ │ └─┬POST
│ │   └──Responses
│ ├─┬/ai-apply/postings/{posting_id}/inquire
│ │ └─┬POST
│ │   └──Responses
│ ├─┬/ai-apply/postings
│ │ ├─┬GET
│ │ │ └──Responses
│ │ └─┬POST
│ │   └──Responses
│ ├─┬/passthrough/{tool}/{api}
│ │ └─┬POST
│ │   └──[🔀] description (95:20)
│ ├─┬/hris/payslips
│ │ └─┬GET
│ │   ├──[-] parameters (4242:17)❌ 
│ │   ├──[🔀] description (4322:20)
│ │   ├─┬Parameters
│ │   │ └──[🔀] description (4354:24)
│ │   ├─┬Responses
│ │   │ └─┬200
│ │   │   └─┬application/json
│ │   │     └─┬example1
│ │   │       └──[🔀] value (4445:21)
│ │   └─┬Extensions
│ │     └──[-] x-speakeasy-ignore (4329:27)❌ 
│ ├─┬/ai-apply/job-feeds/{job_feed_id}/bulk-import
│ │ └─┬POST
│ │   └──Responses
│ ├─┬/ai-apply/applications
│ │ └─┬GET
│ │   └──Responses
│ ├─┬/ai-apply/apply
│ │ └─┬POST
│ │   └──Responses
│ └─┬/ai-apply/career-sites
│   ├─┬GET
│   │ └──Responses
│   └─┬POST
│     └──Responses
└─┬Components
  ├──[+] schemas (29403:7)
  ├──[+] schemas (29413:7)
  ├──[+] schemas (29444:7)
  ├──[+] schemas (36511:7)
  ├──[+] schemas (29406:7)
  ├──[+] schemas (29436:7)
  ├──[+] schemas (29440:7)
  ├─┬PostConnectCreateLinkRequestBody
  │ └─┬integration_tool
  │   ├──[+] enum (35409:15)
  │   ├──[+] enum (35517:15)
  │   ├──[+] enum (35596:15)
  │   └──[+] enum (35575:15)
  ├─┬GetHrisPayRunsPositiveResponse
  │ └─┬data
  │   └─┬results
  │     └─┬Schema
  │       ├──[-] examples (19596:21)
  │       ├──[-] required (19587:21)❌ 
  │       ├──[-] required (19589:21)❌ 
  │       ├──[-] required (19588:21)❌ 
  │       ├──[-] properties (19515:19)❌ 
  │       ├──[-] properties (19486:19)❌ 
  │       ├──[-] properties (19492:19)❌ 
  │       ├─┬start_date
  │       │ ├──[-] externalDocs (19479:23)
  │       │ ├──[🔀] type (20134:23)❌ 
  │       │ ├──[+] pattern (20137:30)❌ 
  │       │ ├──[🔀] format (20136:29)❌ 
  │       │ └──[🔀] description (20138:34)
  │       ├─┬end_date
  │       │ ├──[-] externalDocs (19485:23)
  │       │ ├──[🔀] type (20141:23)❌ 
  │       │ ├──[+] pattern (20144:30)❌ 
  │       │ ├──[🔀] format (20143:29)❌ 
  │       │ └──[🔀] description (20145:34)
  │       ├─┬totals
  │       │ ├──[+] examples (20232:25)
  │       │ ├──[-] required (19550:25)❌ 
  │       │ ├──[-] required (19551:25)❌ 
  │       │ ├──[-] required (19552:25)❌ 
  │       │ ├─┬gross_pay
  │       │ │ ├──[+] required (20196:29)❌ 
  │       │ │ ├──[+] required (20197:29)❌ 
  │       │ │ ├──[🔀] type (20185:27)❌ 
  │       │ │ ├──[-] format (19535:33)❌ 
  │       │ │ ├──[🔀] description (20198:38)
  │       │ │ ├──[+] properties (20188:27)
  │       │ │ └──[+] properties (20191:27)
  │       │ ├─┬paid_amount
  │       │ │ ├──[+] required (20228:29)❌ 
  │       │ │ ├──[+] required (20229:29)❌ 
  │       │ │ ├──[🔀] type (20217:27)❌ 
  │       │ │ ├──[-] format (19547:33)❌ 
  │       │ │ ├──[🔀] description (20230:38)
  │       │ │ ├──[+] properties (20220:27)
  │       │ │ └──[+] properties (20223:27)
  │       │ └─┬net_pay
  │       │   ├──[+] required (20212:29)❌ 
  │       │   ├──[+] required (20213:29)❌ 
  │       │   ├──[🔀] type (20201:27)❌ 
  │       │   ├──[-] format (19541:33)❌ 
  │       │   ├──[🔀] description (20214:38)
  │       │   ├──[+] properties (20204:27)
  │       │   └──[+] properties (20207:27)
  │       └─┬legal_entity_id
  │         ├──[-] maxLength (19525:32)❌ 
  │         ├──[-] minLength (19524:32)❌ 
  │         ├──[-] pattern (19526:30)❌ 
  │         └──[🔀] description (20150:34)
  ├─┬DataChangedWebhookPayload
  │ └─┬data
  │   └─┬changed_models
  │     └─┬Schema
  │       └─┬name
  │         ├──[+] enum (35815:25)
  │         ├──[+] enum (35817:25)
  │         ├──[+] enum (35816:25)
  │         ├──[+] enum (35832:25)
  │         └──[+] enum (35818:25)
  ├─┬GetHrisPayslipsPositiveResponse
  │ └─┬data
  │   └─┬results
  │     └─┬Schema
  │       ├──[-] required (19894:21)❌ 
  │       ├──[-] properties (19750:19)❌ 
  │       ├─┬pay_run
  │       │ ├──[+] examples (20525:25)
  │       │ ├──[-] required (19818:25)❌ 
  │       │ ├──[-] required (19819:25)❌ 
  │       │ ├──[🔀] type (20490:23)❌ 
  │       │ ├──[+] description (20530:34)
  │       │ ├──[-] properties (19776:23)❌ 
  │       │ ├──[-] properties (19782:23)❌ 
  │       │ ├─┬legal_entity_id
  │       │ │ ├──[-] maxLength (19810:36)❌ 
  │       │ │ ├──[-] minLength (19809:36)❌ 
  │       │ │ ├──[-] pattern (19811:34)❌ 
  │       │ │ └──[🔀] description (20517:38)
  │       │ ├─┬end_date
  │       │ │ ├──[-] externalDocs (19775:27)
  │       │ │ ├──[🔀] type (20508:27)❌ 
  │       │ │ ├──[+] pattern (20511:34)❌ 
  │       │ │ ├──[🔀] format (20510:33)❌ 
  │       │ │ └──[🔀] description (20512:38)
  │       │ └─┬start_date
  │       │   ├──[-] externalDocs (19769:27)
  │       │   ├──[🔀] type (20501:27)❌ 
  │       │   ├──[+] pattern (20504:34)❌ 
  │       │   ├──[🔀] format (20503:33)❌ 
  │       │   └──[🔀] description (20505:38)
  │       ├─┬totals
  │       │ ├──[+] examples (20425:25)
  │       │ ├──[-] required (19843:25)❌ 
  │       │ ├──[-] required (19844:25)❌ 
  │       │ ├──[-] required (19845:25)❌ 
  │       │ ├─┬paid_amount
  │       │ │ ├──[+] required (20421:29)❌ 
  │       │ │ ├──[+] required (20422:29)❌ 
  │       │ │ ├──[🔀] type (20410:27)❌ 
  │       │ │ ├──[-] format (19840:33)❌ 
  │       │ │ ├──[🔀] description (20423:38)
  │       │ │ ├──[+] properties (20413:27)
  │       │ │ └──[+] properties (20416:27)
  │       │ ├─┬gross_pay
  │       │ │ ├──[+] required (20389:29)❌ 
  │       │ │ ├──[+] required (20390:29)❌ 
  │       │ │ ├──[🔀] type (20378:27)❌ 
  │       │ │ ├──[-] format (19828:33)❌ 
  │       │ │ ├──[🔀] description (20391:38)
  │       │ │ ├──[+] properties (20381:27)
  │       │ │ └──[+] properties (20384:27)
  │       │ └─┬net_pay
  │       │   ├──[+] required (20405:29)❌ 
  │       │   ├──[+] required (20406:29)❌ 
  │       │   ├──[🔀] type (20394:27)❌ 
  │       │   ├──[-] format (19834:33)❌ 
  │       │   ├──[🔀] description (20407:38)
  │       │   ├──[+] properties (20397:27)
  │       │   └──[+] properties (20400:27)
  │       └─┬line_items
  │         ├──[+] examples (20569:25)
  │         ├──[+] description (20567:34)
  │         └─┬Schema
  │           ├──[+] required (20564:27)❌ 
  │           ├──[+] required (20565:27)❌ 
  │           ├──[-] required (19860:27)❌ 
  │           ├──[+] properties (20536:25)
  │           ├──[+] properties (20539:25)
  │           ├─┬name
  │           │ ├──[🔀] type (20544:29)❌ 
  │           │ └──[🔀] description (20546:40)
  │           └─┬amount
  │             ├──[+] required (20560:31)❌ 
  │             ├──[+] required (20561:31)❌ 
  │             ├──[🔀] type (20549:29)❌ 
  │             ├──[-] format (19856:35)❌ 
  │             ├──[+] properties (20552:29)
  │             └──[+] properties (20555:29)
  └─┬GetHrisPayslipsParameterUpdatedAfter
    └──[🔀] description (20289:20)
Document Element Total Changes Breaking Changes
paths 22 1
components 126 69

View full report

Linting Report 0 errors, 325 warnings, 199 hints

View full report

RUBY CHANGELOG

core: 3.11.35 - 2026-08-17

🐛 Bug Fixes

  • handle a nullable request body in paginated operations (commit by @AshGodfrey)

core: 3.11.34 - 2026-08-12

🐝 New Features

unions: 0.1.5 - 2026-08-13

🐛 Bug Fixes

  • collapse primitive-only unions in path parameters instead of dropping the operation (commit by @AshGodfrey)

Based on Speakeasy CLI 1.796.3

Last updated by Speakeasy workflow


Note

Medium Risk
Adds payroll-related HRIS APIs and broad generated model/type changes (including connect integration_tool), which are mostly additive but touch sensitive compensation data and may affect strict typing at compile time.

Overview
Speakeasy-regenerated Ruby SDK bumps the gem from 1.2.8 → 1.2.9 against an updated OpenAPI spec (Speakeasy 1.796.3).

New client methods: kombo.hris.get_hris_pay_runs() and get_hris_payslips() for paginated pay-run and payslip data (totals, employees, line items, and related models such as Amount, PayRun, LineItem). kombo.ats.get_ats_scorecards() lists interview scorecards with typed question/answer unions (ResultText, ResultBoolean, etc.). README and generated docs reflect these operations.

Connect: create_connection_link integration_tool typing/enums are regenerated (expanded tool list per OpenAPI).

Models & webhooks: Adds issue status changed webhook payloads and Issue / Integration shared types. Several formerly global shapes are namespaced (e.g. shared Author / Option1 / Option2 removed in favor of response-specific types like GetAtsNotesPositiveResponseAuthor and scorecard/job option types). Existing note, format select, and Name models pick up matching schema tweaks.

Lockfiles (gen.lock, workflow.lock, Gemfile.lock) and release notes document the generation; no hand-written runtime logic beyond generated SDK surface.

Reviewed by Cursor Bugbot for commit e3b9f8b. Bugbot is set up for automated code reviews on this repo. Configure here.

@kombo-sdk-generator kombo-sdk-generator Bot added the patch Patch version bump label Aug 15, 2026
@kombo-sdk-generator
kombo-sdk-generator Bot force-pushed the speakeasy-sdk-regen-1786753342 branch 5 times, most recently from 3168859 to aa620ba Compare August 20, 2026 00:24
Comment thread lib/kombo/models/shared/getatsscorecardspositiveresponse_result.rb
@kombo-sdk-generator
kombo-sdk-generator Bot force-pushed the speakeasy-sdk-regen-1786753342 branch from aa620ba to 2829634 Compare August 21, 2026 00:25
module Shared

class Author
class GetAtsNotesPositiveResponseAuthor

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Breaking type renames in patch

Medium Severity

This patch release (1.2.8 → 1.2.9) removes the public types Models::Shared::Author, Option1, and Option2 and replaces them with GetAtsNotesPositiveResponseAuthor, GetAtsJobsPositiveResponseOption1, and GetAtsJobsPositiveResponseOption2. Call sites and Sorbet annotations that referenced the old constants will fail to load or typecheck after upgrade, even though the changelog marks this as a non-breaking patch.

Additional Locations (2)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 2829634. Configure here.

@kombo-sdk-generator
kombo-sdk-generator Bot force-pushed the speakeasy-sdk-regen-1786753342 branch from 2829634 to 2506635 Compare August 22, 2026 00:24
field :display_type, Crystalline::Nilable.new(Models::Shared::DisplayType3), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('display_type'), 'decoder': ::Kombo::Utils.enum_from_string(Models::Shared::DisplayType3, true) } }

sig { params(options: T::Array[Models::Shared::Option1], type: ::String, display_type: T.nilable(Models::Shared::DisplayType3)).void }
sig { params(options: T::Array[Models::Shared::GetAtsJobsPositiveResponseOption1], type: ::String, display_type: T.nilable(Models::Shared::DisplayType3)).void }

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Patch renames break shared types

Medium Severity

This patch removes the public Models::Shared::Author, Option1, and Option2 types and retargets notes/format fields to new names such as GetAtsNotesPositiveResponseAuthor and GetAtsJobsPositiveResponseOption1. Call sites and type annotations that still reference the old constants will fail at load or typecheck time despite a non-breaking patch bump.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 2506635. Configure here.

@kombo-sdk-generator
kombo-sdk-generator Bot force-pushed the speakeasy-sdk-regen-1786753342 branch from 2506635 to 9b3b05e Compare August 23, 2026 00:26

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

There are 3 total unresolved issues (including 2 from previous reviews).

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 9b3b05e. Configure here.

Comment thread lib/kombo/ats.rb

sig { params(integration_id: T.nilable(::String), cursor: T.nilable(::String), page_size: T.nilable(::Integer), updated_after: T.nilable(::DateTime), include_deleted: T.nilable(T::Boolean), ignore_unsupported_filters: T.nilable(T::Boolean), ids: T.nilable(T::Array[::String]), remote_ids: T.nilable(T::Array[::String]), candidate_ids: T.nilable(T::Array[::String]), application_ids: T.nilable(T::Array[::String]), timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Operations::GetAtsScorecardsResponse) }
def get_ats_scorecards(integration_id: nil, cursor: nil, page_size: nil, updated_after: nil, include_deleted: nil, ignore_unsupported_filters: nil, ids: nil, remote_ids: nil, candidate_ids: nil, application_ids: nil, timeout_ms: nil, http_headers: nil)
# get_ats_scorecards - Get scorecards

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Inconsistent scorecards method naming

Medium Severity

The new method is named get_ats_scorecards even though it already lives under the ats SDK and sibling operations use the stripped form (get_notes, get_jobs, get_interviews). The prior release already treated get_ats_notesget_notes as a breaking cleanup, so shipping the redundant ats_ prefix again locks in the same inconsistency and likely forces another rename later.

Additional Locations (2)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 9b3b05e. Configure here.

@kombo-sdk-generator
kombo-sdk-generator Bot force-pushed the speakeasy-sdk-regen-1786753342 branch 7 times, most recently from 5c0a5d0 to 4549c6c Compare August 30, 2026 00:58
@kombo-sdk-generator
kombo-sdk-generator Bot force-pushed the speakeasy-sdk-regen-1786753342 branch 3 times, most recently from f9b96a9 to 3933de2 Compare September 2, 2026 00:54
* `kombo.hris.get_hris_pay_runs()`: **Added**
* `kombo.hris.get_hris_payslips()`: **Added**
* `kombo.ats.get_ats_scorecards()`: **Added**
* `kombo.connect.create_connection_link()`: 
  *  `request.integration_tool` **Changed**
@kombo-sdk-generator
kombo-sdk-generator Bot force-pushed the speakeasy-sdk-regen-1786753342 branch from 3933de2 to e3b9f8b Compare September 3, 2026 00:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

patch Patch version bump

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant