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
14 changes: 14 additions & 0 deletions .github/workflows/sdk_publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,21 @@ permissions:
- .speakeasy/gen.lock
workflow_dispatch: {}
jobs:
# Check before publishing: a released gem version can be yanked but never
# reused. These offline tests fail if the IdP require line patched into the
# gem entry point (.speakeasy/patches) is missing.
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.2"
bundler-cache: true
- run: grep -q "require_relative 'authlete/idp'" lib/authlete_ruby_sdk.rb
- run: bundle exec ruby -Ilib test/idp_routing_test.rb
publish:
needs: test
uses: speakeasy-api/sdk-generation-action/.github/workflows/sdk-publish.yaml@v15
with:
target: authlete
Expand Down
25 changes: 25 additions & 0 deletions .github/workflows/tests.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Tests
permissions:
contents: read
"on":
pull_request: {}
push:
branches:
- main
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.2"
bundler-cache: true
# The gem entry point loads lib/authlete/idp.rb through a line that
# .speakeasy/patches/lib/authlete_ruby_sdk.rb.patch adds after every
# generation. Fail if a regeneration dropped it.
- name: IdP patch applied
run: grep -q "require_relative 'authlete/idp'" lib/authlete_ruby_sdk.rb
# Offline tests for the IdP routing (no network, no secrets).
- run: bundle exec ruby -Ilib test/idp_routing_test.rb
- run: bundle exec rubocop lib/authlete/idp.rb test/idp_routing_test.rb
11 changes: 5 additions & 6 deletions .speakeasy/gen.lock
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ management:
installationURL: https://github.com/authlete/authlete-ruby-sdk
published: true
persistentEdits:
generation_id: 02a0c6d5-c426-4c32-b56e-e418559fddcf
pristine_commit_hash: a2ffa18b1339e6cb96f6540a65b744ca7a380521
pristine_tree_hash: 49892d5a3a6a1ca17a96341309ca41701028dec0
generation_id: b96e0421-4e54-4b16-ac05-210bbd174596
pristine_commit_hash: 64394e55d3b17bf1523cdd7d6d4b3d4e40573d68
pristine_tree_hash: 650b1b0f584167603ca010638c387bcd7e4f1dd9
features:
ruby:
additionalProperties: 0.1.1
Expand Down Expand Up @@ -5181,8 +5181,8 @@ trackedFiles:
pristine_git_object: 9e9d9ce59469bee2b8a36bad83ad0954ec37362b
lib/authlete_ruby_sdk.rb:
id: 83be33dd6132
last_write_checksum: sha1:57f965691abda39640aadc55a730e930925adfcb
pristine_git_object: 5b5e1d715f62866cafe2c65ac9b5f2359ba21e65
last_write_checksum: sha1:39459ab6522db12f34d0f9c8d2eac4b4b5405349
pristine_git_object: b04a6944b18ea68c6b9b1f817229fd7ea29febea
lib/crystalline.rb:
id: eca767cf937a
last_write_checksum: sha1:b6ec0a2833f58ba9a6f07c9637fdca05e59006d3
Expand Down Expand Up @@ -6718,7 +6718,6 @@ examples:
"429":
application/json: {}
examplesVersion: 1.0.2
releaseNotes: "## Ruby SDK Changes:\n* `client.services.retrieve()`: \n * `request.service_id` **Changed**\n * `response` **Changed** (Breaking ⚠️)\n * `error.status[429]` **Added**\n* `client.authorization_management.update_ticket()`: \n * `request` **Changed** (Breaking ⚠️)\n * `error.status[429]` **Added**\n* `client.verifiable_credentials.issue_response()`: \n * `request` **Changed**\n * `response.action` **Changed** (Breaking ⚠️)\n * `error.status[429]` **Added**\n* `client.federation.registration()`: \n * `request.service_id` **Changed**\n * `response.client` **Changed** (Breaking ⚠️)\n * `error.status[429]` **Added**\n* `client.federation.configuration()`: \n * `request` **Changed** (Breaking ⚠️)\n * `error.status[429]` **Added**\n* `client.device_flow.verification()`: \n * `request.service_id` **Changed**\n * `response.scopes[].attributes` **Changed** (Breaking ⚠️)\n * `error.status[429]` **Added**\n* `client.device_flow.authorization()`: \n * `request.service_id` **Changed**\n * `response.scopes[].attributes` **Changed** (Breaking ⚠️)\n * `error.status[429]` **Added**\n* `client.ciba.process_authentication()`: \n * `request.service_id` **Changed**\n * `response.scopes[].attributes` **Changed** (Breaking ⚠️)\n * `error.status[429]` **Added**\n* `client.dynamic_client_registration.destroy()`: \n * `request.service_id` **Changed**\n * `response.client` **Changed** (Breaking ⚠️)\n * `error.status[429]` **Added**\n* `client.dynamic_client_registration.update()`: \n * `request.service_id` **Changed**\n * `response.client` **Changed** (Breaking ⚠️)\n * `error.status[429]` **Added**\n* `client.dynamic_client_registration.retrieve()`: \n * `request.service_id` **Changed**\n * `response.client` **Changed** (Breaking ⚠️)\n * `error.status[429]` **Added**\n* `client.dynamic_client_registration.register()`: \n * `request.service_id` **Changed**\n * `response.client` **Changed** (Breaking ⚠️)\n * `error.status[429]` **Added**\n* `client.introspection.process_request()`: \n * `request.service_id` **Changed**\n * `response.scope_details[].attributes` **Changed** (Breaking ⚠️)\n * `error.status[429]` **Added**\n* `client.tokens.process_request()`: \n * `request.service_id` **Changed**\n * `response.subject_token_info.scopes[].attributes` **Changed** (Breaking ⚠️)\n * `error.status[429]` **Added**\n* `client.pushed_authorization.create()`: \n * `request.service_id` **Changed**\n * `response.client_auth_method.enum(spiffe_jwt)` **Added** (Breaking ⚠️)\n * `error.status[429]` **Added**\n* `client.authorization.process_request()`: \n * `request.service_id` **Changed**\n * `response` **Changed** (Breaking ⚠️)\n * `error.status[429]` **Added**\n* `client.clients.update_form()`: \n * `request.service_id` **Changed**\n * `response` **Changed** (Breaking ⚠️)\n * `error.status[429]` **Added**\n* `client.clients.update()`: \n * `request` **Changed** (Breaking ⚠️)\n * `response` **Changed** (Breaking ⚠️)\n * `error.status[429]` **Added**\n* `client.clients.create()`: \n * `request` **Changed** (Breaking ⚠️)\n * `response` **Changed** (Breaking ⚠️)\n * `error.status[429]` **Added**\n* `client.clients.list()`: \n * `request.service_id` **Changed**\n * `response.clients[]` **Changed** (Breaking ⚠️)\n * `error.status[429]` **Added**\n* `client.clients.retrieve()`: \n * `request.service_id` **Changed**\n * `response` **Changed** (Breaking ⚠️)\n * `error` **Changed**\n* `client.services.update()`: \n * `request` **Changed** (Breaking ⚠️)\n * `response` **Changed** (Breaking ⚠️)\n * `error.status[429]` **Added**\n* `client.services.create()`: \n * `request` **Changed** (Breaking ⚠️)\n * `response` **Changed** (Breaking ⚠️)\n * `error` **Changed** (Breaking ⚠️)\n* `client.services.list()`: \n * `response.services[]` **Changed** (Breaking ⚠️)\n * `error.status[429]` **Added**\n* `client.authorization.fail_request()`: \n * `request` **Changed**\n * `error.status[429]` **Added**\n* `client.token_management.create()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.jwk_set_endpoint.service_jwks_get_api()`: **Removed** (Breaking ⚠️)\n* `client.client_management.client_extension_requestables_scopes_update_api_post()`: **Removed** (Breaking ⚠️)\n* `client.client_management.client_granted_scopes_delete_api()`: **Removed** (Breaking ⚠️)\n* `client.services.configuration()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.client_management.client_granted_scopes_get_api_post()`: **Removed** (Breaking ⚠️)\n* `client.client_management.client_granted_scopes_get_api()`: **Removed** (Breaking ⚠️)\n* `client.client_management.client_authorization_delete_api_post()`: **Removed** (Breaking ⚠️)\n* `client.client_management.client_authorization_delete_api()`: **Removed** (Breaking ⚠️)\n* `client.client_management.client_authorization_get_list_api_post()`: **Removed** (Breaking ⚠️)\n* `client.clients.destroy()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.client_management.update_lock_flag()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.client_management.refresh_secret()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.client_management.update_secret()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.client_management.authorizations()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.client_management.update_authorizations()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.client_management.destroy_authorizations()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.client_management.granted_scopes()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.client_management.destroy_granted_scopes()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.client_management.requestable_scopes()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.client_management.update_requestable_scopes()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.client_management.destroy_requestable_scopes()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.client_management.client_authorization_get_list_api()`: **Removed** (Breaking ⚠️)\n* `client.services.remove()`: **Added**\n* `client.authorization.issue_response()`: \n * `request.service_id` **Changed**\n * `response.consented_claims` **Added**\n * `error.status[429]` **Added**\n* `client.services.destroy()`: **Removed** (Breaking ⚠️)\n* `client.back_channel_logout.backchannel_logout_token_api()`: **Added**\n* `client.tokens.fail_request()`: \n * `request` **Changed**\n * `error.status[429]` **Added**\n* `client.tokens.issue_response()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.client_management.update_requestable_scopes_by_post()`: **Added**\n* `client.introspection.standard_process()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.revocation.process_request()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.userinfo.process_request()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.userinfo.issue_response()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.token_management.reissue_id_token()`: \n * `request` **Changed**\n * `error.status[429]` **Added**\n* `client.token_management.list()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.jose_object.jose_verify_api()`: **Removed** (Breaking ⚠️)\n* `client.token_management.update()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.token_management.destroy()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.token_management.revoke()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.grant_management.process_request()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.client_management.destroy_client_granted_scopes()`: **Added**\n* `client.client_management.client_granted_scopes_by_post()`: **Added**\n* `client.client_management.client_granted_scopes()`: **Added**\n* `client.client_management.destroy_client_tokens_by_post()`: **Added**\n* `client.client_management.destroy_client_tokens()`: **Added**\n* `client.ciba.issue_response()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.ciba.fail_request()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.ciba.complete_request()`: \n * `request.service_id` **Changed**\n * `response.consented_claims` **Added**\n * `error.status[429]` **Added**\n* `client.client_management.authorized_applications_by_post()`: **Added**\n* `client.client_management.authorized_applications()`: **Added**\n* `client.device_flow.complete_request()`: \n * `request.service_id` **Changed**\n * `response.consented_claims` **Added**\n * `error.status[429]` **Added**\n* `client.clients.search()`: **Added**\n* `client.clients.list_by_cursor()`: **Added**\n* `client.hardware_security_keys.create()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.hardware_security_keys.destroy()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.hardware_security_keys.retrieve()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.hardware_security_keys.list()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.verifiable_credentials.metadata()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.verifiable_credentials.jwt_issuer()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.verifiable_credentials.jwks()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.verifiable_credentials.create_offer()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.verifiable_credentials.offer_info()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.verifiable_credentials.parse()`: \n * `request.service_id` **Changed**\n * `response.info.credential_configuration_id` **Added**\n * `error.status[429]` **Added**\n* `client.audit.get_types()`: **Added**\n* `client.verifiable_credentials.batch_parse()`: \n * `request.service_id` **Changed**\n * `response.info[].credential_configuration_id` **Added**\n * `error.status[429]` **Added**\n* `client.verifiable_credentials.batch_issue()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.verifiable_credentials.deferred_parse()`: \n * `request.service_id` **Changed**\n * `response.info.credential_configuration_id` **Added**\n * `error.status[429]` **Added**\n* `client.verifiable_credentials.deferred_issue()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.authorization_management.ticket_info()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.audit.get()`: **Added**\n* `client.native_sso.process_request()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n* `client.native_sso.logout()`: \n * `request.service_id` **Changed**\n * `error.status[429]` **Added**\n"
generatedFiles:
- .gitattributes
- .rubocop.yml
Expand Down
11 changes: 11 additions & 0 deletions .speakeasy/patches/lib/authlete_ruby_sdk.rb.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
diff --git a/lib/authlete_ruby_sdk.rb b/lib/authlete_ruby_sdk.rb
index 5b5e1d7..b04a694 100644
--- a/lib/authlete_ruby_sdk.rb
+++ b/lib/authlete_ruby_sdk.rb
@@ -44,3 +44,6 @@ require_relative 'authlete/utils/url'
require_relative 'authlete/utils/security'
require_relative 'crystalline'
require_relative 'authlete/sdkconfiguration'
+
+# Hand-written IDP routing (lib/authlete/idp.rb); added by .speakeasy/patches.
+require_relative 'authlete/idp'
2 changes: 1 addition & 1 deletion .speakeasy/workflow.lock
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ targets:
sourceRevisionDigest: sha256:15212d937e26b1a1f9a79504bdeafa3aba976394d3a5f66ff76cd0b58b939400
sourceBlobDigest: sha256:8672b1dcba00334ea99c619ed42fa798183cd668e6a95194c6f6e43f566358a1
codeSamplesNamespace: authlete-oas-ruby-code-samples
codeSamplesRevisionDigest: sha256:587a88f76e1fb6f2d48333b3924149b59d7e7ae8c7c09a933e6bd9b8b15e8c0f
codeSamplesRevisionDigest: sha256:a4c074f0fea933f98ba7ac1f54aaf83790ab792c443df0c4a31b08cde17fb52b
workflow:
workflowVersion: 1.0.0
speakeasyVersion: latest
Expand Down
Loading
Loading