Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
151 changes: 101 additions & 50 deletions .speakeasy/workflow.yaml
Original file line number Diff line number Diff line change
@@ -1,54 +1,105 @@
---
workflowVersion: 1.0.0
speakeasyVersion: latest
sources:
Gusto-App-Int-OAS:
inputs:
- location: https://raw.githubusercontent.com/Gusto/Gusto-Partner-API/main/generated/app-integrations/api.v2025-06-15.app-integrations.yaml
authHeader: Authorization
authSecret: $openapi_doc_auth_token
overlays:
- location: https://raw.githubusercontent.com/Gusto/Gusto-Partner-API/refs/heads/main/.speakeasy/speakeasy-app-int-modifications-overlay.yaml
authHeader: Authorization
authSecret: $openapi_doc_auth_token
- location: gusto_app_int/.speakeasy/speakeasy-modifications-overlay.yaml
registry:
location: registry.speakeasyapi.dev/gusto/ruby-sdk/gusto-app-int-oas
Gusto-OAS:
inputs:
- location: https://raw.githubusercontent.com/Gusto/Gusto-Partner-API/refs/heads/main/generated/embedded/api.v2025-06-15.embedded.yaml
authHeader: Authorization
authSecret: $openapi_doc_auth_token
overlays:
- location: https://raw.githubusercontent.com/Gusto/Gusto-Partner-API/refs/heads/main/.speakeasy/speakeasy-modifications-overlay.yaml
authHeader: Authorization
authSecret: $openapi_doc_auth_token
- location: gusto_embedded/.speakeasy/speakeasy-modifications-overlay.yaml
registry:
location: registry.speakeasyapi.dev/gusto/ruby-sdk/gusto-oas
Gusto-App-Int-OAS:
inputs:
- location: https://raw.githubusercontent.com/Gusto/Gusto-Partner-API/main/generated/app-integrations/api.v2025-06-15.app-integrations.yaml
authHeader: Authorization
authSecret: "$openapi_doc_auth_token"
overlays:
- location: https://raw.githubusercontent.com/Gusto/Gusto-Partner-API/refs/heads/main/.speakeasy/speakeasy-app-int-modifications-overlay.yaml
authHeader: Authorization
authSecret: "$openapi_doc_auth_token"
- location: gusto_app_int/.speakeasy/speakeasy-modifications-overlay.yaml
registry:
location: registry.speakeasyapi.dev/gusto/ruby-sdk/gusto-app-int-oas
Gusto-OAS:
inputs:
- location: https://raw.githubusercontent.com/Gusto/Gusto-Partner-API/refs/heads/main/generated/embedded/api.v2025-06-15.embedded.yaml
authHeader: Authorization
authSecret: "$openapi_doc_auth_token"
overlays:
- location: https://raw.githubusercontent.com/Gusto/Gusto-Partner-API/refs/heads/main/.speakeasy/speakeasy-modifications-overlay.yaml
authHeader: Authorization
authSecret: "$openapi_doc_auth_token"
- location: gusto_embedded/.speakeasy/speakeasy-modifications-overlay.yaml
registry:
location: registry.speakeasyapi.dev/gusto/ruby-sdk/gusto-oas
Gusto-App-Int-OAS-v2025-11-15:
inputs:
- location: https://raw.githubusercontent.com/Gusto/Gusto-Partner-API/main/generated/app-integrations/api.v2025-11-15.app-integrations.yaml
authHeader: Authorization
authSecret: "$openapi_doc_auth_token"
overlays:
- location: https://raw.githubusercontent.com/Gusto/Gusto-Partner-API/refs/heads/main/.speakeasy/speakeasy-app-int-modifications-overlay.yaml
authHeader: Authorization
authSecret: "$openapi_doc_auth_token"
- location: gusto_app_int_v_2025_11_15/.speakeasy/speakeasy-modifications-overlay.yaml
registry:
location: registry.speakeasyapi.dev/gusto/ruby-sdk/gusto-app-int-oas-v2025-11-15
Gusto-OAS-v2025-11-15:
inputs:
- location: https://raw.githubusercontent.com/Gusto/Gusto-Partner-API/refs/heads/main/generated/embedded/api.v2025-11-15.embedded.yaml
authHeader: Authorization
authSecret: "$openapi_doc_auth_token"
overlays:
- location: https://raw.githubusercontent.com/Gusto/Gusto-Partner-API/refs/heads/main/.speakeasy/speakeasy-modifications-overlay.yaml
authHeader: Authorization
authSecret: "$openapi_doc_auth_token"
- location: gusto_embedded_v_2025_11_15/.speakeasy/speakeasy-modifications-overlay.yaml
registry:
location: registry.speakeasyapi.dev/gusto/ruby-sdk/gusto-oas-v2025-11-15
targets:
gusto:
target: python
source: Gusto-OAS
output: ./gusto_embedded
publish:
pypi:
token: $pypi_token
codeSamples:
registry:
location: registry.speakeasyapi.dev/gusto/ruby-sdk/gusto-oas-python-code-samples
labelOverride:
fixedValue: Python (SDK)
blocking: false
gusto-app-int:
target: python
source: Gusto-App-Int-OAS
output: gusto_app_int
publish:
pypi:
token: $pypi_token
codeSamples:
registry:
location: registry.speakeasyapi.dev/gusto/ruby-sdk/gusto-app-int-oas-python-code-samples
labelOverride:
fixedValue: Python (SDK)
blocking: false
gusto:
target: python
source: Gusto-OAS
output: "./gusto_embedded"
publish:
pypi:
token: "$pypi_token"
codeSamples:
registry:
location: registry.speakeasyapi.dev/gusto/ruby-sdk/gusto-oas-python-code-samples
labelOverride:
fixedValue: Python (SDK)
blocking: false
gusto-app-int:
target: python
source: Gusto-App-Int-OAS
output: gusto_app_int
publish:
pypi:
token: "$pypi_token"
codeSamples:
registry:
location: registry.speakeasyapi.dev/gusto/ruby-sdk/gusto-app-int-oas-python-code-samples
labelOverride:
fixedValue: Python (SDK)
blocking: false
gusto-v2025-11-15:
target: python
source: Gusto-OAS-v2025-11-15
output: "./gusto_embedded_v_2025_11_15"
publish:
pypi:
token: "$pypi_token"
codeSamples:
registry:
location: registry.speakeasyapi.dev/gusto/ruby-sdk/gusto-oas-python-code-samples-v2025-11-15
labelOverride:
fixedValue: Python (SDK)
blocking: false
gusto-app-int-v2025-11-15:
target: python
source: Gusto-App-Int-OAS-v2025-11-15
output: gusto_app_int_v_2025_11_15
publish:
pypi:
token: "$pypi_token"
codeSamples:
registry:
location: registry.speakeasyapi.dev/gusto/ruby-sdk/gusto-app-int-oas-python-code-samples-v2025-11-15
labelOverride:
fixedValue: Python (SDK)
blocking: false
52 changes: 52 additions & 0 deletions gusto_app_int_v_2025_11_15/.speakeasy/gen.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
configVersion: 2.0.0
generation:
sdkClassName: GustoAppIntegration
maintainOpenAPIOrder: true
usageSnippets:
optionalPropertyRendering: withExample
useClassNamesForArrayFields: true
fixes:
nameResolutionDec2023: true
nameResolutionFeb2025: false
parameterOrderingFeb2024: true
requestResponseComponentNamesFeb2024: true
securityFeb2025: true
sharedErrorComponentsApr2025: false
auth:
oAuth2ClientCredentialsEnabled: true
oAuth2PasswordEnabled: true
python:
version: 0.0.1
additionalDependencies:
dev: {}
main: {}
authors:
- Speakeasy
clientServerStatusCodesAsErrors: true
defaultErrorName: APIError
description: Python Client SDK Generated by Speakeasy.
enableCustomCodeRegions: false
enumFormat: enum
fixFlags:
responseRequiredSep2024: true
flattenGlobalSecurity: true
flattenRequests: true
flatteningOrder: parameters-first
imports:
option: openapi
paths:
callbacks: ''
errors: ''
operations: ''
shared: ''
webhooks: ''
inputModelSuffix: input
license: MIT
maxMethodParams: 999
methodArguments: infer-optional-args
outputModelSuffix: output
packageName: gusto_app_integration_v_2025_11_15
pytestTimeout: 0
responseFormat: flat
templateVersion: v2
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
overlay: 1.0.0
x-speakeasy-jsonpath: rfc9535
info:
title: Speakeasy Modifications
version: 0.0.2
x-speakeasy-metadata:
after: ""
before: ""
type: speakeasy-modifications
actions:
- target: $.paths..schema..zip
update:
x-speakeasy-name-override: zip_code
Comment on lines +10 to +13
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔴 Blocker | [fresh_eyes]: code-moves

Dropped overlay action: the original gusto_app_int/.speakeasy/speakeasy-modifications-overlay.yaml has TWO actions — $.paths..schema..zip AND $.components.schemas..properties.zip — but the new versioned copy only includes the first one. The original comments explain both are needed because address schemas referenced via $ref live under components.schemas and won't be caught by the $.paths.. rule alone. Without the second rule, the generated v2025-11-15 SDK will shadow Python's built-in zip() for those schemas (causing pylint W0622 failures).


Please 👍🏽 👎🏽 if you found this useful. Generated by Fresh Eyes Reviewer. Get help in #ai-code-reviews

56 changes: 56 additions & 0 deletions gusto_embedded_v_2025_11_15/.speakeasy/gen.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
configVersion: 2.0.0
generation:
devContainers:
enabled: true
schemaPath: registry.speakeasyapi.dev/gusto/ruby-sdk/gusto-embedded-oas:main
sdkClassName: Gusto
maintainOpenAPIOrder: true
usageSnippets:
optionalPropertyRendering: withExample
useClassNamesForArrayFields: true
fixes:
nameResolutionDec2023: true
nameResolutionFeb2025: false
parameterOrderingFeb2024: true
requestResponseComponentNamesFeb2024: true
securityFeb2025: false
sharedErrorComponentsApr2025: false
auth:
oAuth2ClientCredentialsEnabled: true
oAuth2PasswordEnabled: true
python:
version: 0.0.1
additionalDependencies:
dev: {}
main: {}
authors:
- Speakeasy
clientServerStatusCodesAsErrors: true
defaultErrorName: APIError
description: Python Client SDK Generated by Speakeasy.
enableCustomCodeRegions: false
enumFormat: enum
envVarPrefix: GUSTO
fixFlags:
responseRequiredSep2024: true
flattenGlobalSecurity: true
flattenRequests: true
flatteningOrder: parameters-first
imports:
option: openapi
paths:
callbacks: ''
errors: ''
operations: ''
shared: ''
webhooks: ''
inputModelSuffix: input
license: MIT
maxMethodParams: 999
methodArguments: infer-optional-args
outputModelSuffix: output
packageName: gusto_embedded_v_2025_11_15
pytestTimeout: 0
responseFormat: flat
templateVersion: v2
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
overlay: 1.0.0
x-speakeasy-jsonpath: rfc9535
info:
title: Speakeasy Modifications
version: 0.0.2
x-speakeasy-metadata:
after: ""
before: ""
type: speakeasy-modifications
actions:
- target: $.paths..schema..zip
update:
x-speakeasy-name-override: zip_code
Comment on lines +10 to +13
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔴 Blocker | [fresh_eyes]: code-moves

Dropped overlay action: the original gusto_embedded/.speakeasy/speakeasy-modifications-overlay.yaml has TWO actions — $.paths..schema..zip AND $.components.schemas..properties.zip — but the new versioned copy only includes the first one. Same issue as the app-int overlay: without the $.components.schemas..properties.zip target, zip properties on ref'd schemas won't be renamed to zip_code, shadowing Python's zip() builtin.


Please 👍🏽 👎🏽 if you found this useful. Generated by Fresh Eyes Reviewer. Get help in #ai-code-reviews

Loading