No description
Find a file
2025-11-24 08:20:06 -08:00
.openapi-generator Update preprocessing step to add 'nullable' to nullable fields 2025-11-24 08:20:06 -08:00
api_specs Update preprocessing step to add 'nullable' to nullable fields 2025-11-24 08:20:06 -08:00
docs Update preprocessing step to add 'nullable' to nullable fields 2025-11-24 08:20:06 -08:00
lib Update preprocessing step to add 'nullable' to nullable fields 2025-11-24 08:20:06 -08:00
spec Update preprocessing step to add 'nullable' to nullable fields 2025-11-24 08:20:06 -08:00
.envrc initial commit 2025-11-19 13:39:55 -08:00
.gitignore Correct version number generation in flake.nix 2025-11-20 16:28:02 -08:00
.gitlab-ci.yml initial commit 2025-11-19 13:39:55 -08:00
.openapi-generator-ignore initial commit 2025-11-19 13:39:55 -08:00
.rspec initial commit 2025-11-19 13:39:55 -08:00
.rubocop.yml initial commit 2025-11-19 13:39:55 -08:00
.ruby-version initial commit 2025-11-19 13:39:55 -08:00
flake.lock initial commit 2025-11-19 13:39:55 -08:00
flake.nix Update preprocessing step to add 'nullable' to nullable fields 2025-11-24 08:20:06 -08:00
Gemfile initial commit 2025-11-19 13:39:55 -08:00
Gemfile.lock fix: add processing step to remove non-required fields 2025-11-21 09:18:27 -08:00
kombo_client.gemspec initial commit 2025-11-19 13:39:55 -08:00
Rakefile initial commit 2025-11-19 13:39:55 -08:00
README.md minor README and flake changes 2025-11-24 08:14:33 -08:00
VERSION Update preprocessing step to add 'nullable' to nullable fields 2025-11-24 08:20:06 -08:00

Kombo.dev Ruby SDK Generator

This experimental repository generates a Ruby SDK from Kombo's OpenAPI spec.

This is not production-ready.

Generate code

This repo uses a nix devenv to generate code. With direnv installed, run direnv allow inside of this repository directory to enable the devenv.

When kombo changes their OpenAPI spec, this SDK can be updated by running generate-sdk inside the devenv.

Usage

First, create a kombo API key and place it in an environment variable named KOMBO_API_KEY.

Create a client

config = Kombo.configure do |c|
  # As far as we can tell, this value is not currently used
  c.api_key = ENV['KOMBO_API_KEYY']
  # The access token is used in as the Bearer token when making requests to kombo's API; it's not clear why the
  # OpenAPI SDK generator doesn't use `api_key`, so for now, we are setting both until the difference between api_key
  # and access_token is sorted out in the SDK generator. This might be an oddity in Komobo's upstream OpenAPI spec.
  c.access_token = ENV['KOMBO_API_KEY']
  c.host = 'api.us.kombo.dev' # Use api.eu.kombo.dev for instances in the EU; the default value of api.kombo.dev does not work
  c
end
client = Kombo::ApiClient.new(config)

Example: Get a HRIS API instance

hris = Kombo::UnifiedHRISAPIApi.new(client)

Example: Get all employees using the unified HRIS API

hris.get_hris_employees('<INTEGRATION ID>')