Releasy Client (Rust)
Rust client for the Releasy release management API. It is a small,
blocking HTTP client built on ureq with typed request/response models.
Quick start
use ;
Authentication options
Auth::ApiKey: supply thex-releasy-api-keyheader for end-user actions.Auth::AdminKey: supply thex-releasy-admin-keyheader for admin-only endpoints (creating customers, keys, releases, etc.).Auth::OperatorJwt: supply a bearer token when acting as an operator.Auth::None: for unauthenticated endpoints (mainly tests).
Common operations
- Introspect an API key:
client.auth_introspect()? - Create a release:
client.create_release(&ReleaseCreateRequest { ... })? - Register and upload artifacts: use
register_release_artifact, thenpresign_release_artifact_upload, thenupload_presigned_artifact. - Publish/unpublish a release:
publish_release/unpublish_release. - List customers:
client.list_customers(&AdminCustomerListQuery { ... })? - Fetch or update customers:
get_customer/update_customer - Admin user flows:
list_users,create_user,get_user,patch_user - Manage user access:
replace_groups,reset_credentials - Pass idempotency keys:
admin_create_customer_with_idempotencyorcreate_user_with_idempotency. - Health checks:
health_check,live_check,ready_check.
Admin customers
use ;
Admin users
use ;
Error handling
All fallible methods return releasy_client::Result<T>. On non-success
status codes you receive Error::Api { status, error, body }, which may
carry the parsed ErrorBody. For admin user endpoints, you can also parse
EnterpriseErrorBody via error.enterprise_error(). Transport issues (I/O,
TLS, etc.) surface as Error::Transport.
Minimum supported Rust version
MSRV is Rust 1.85 (edition 2024). The crate is tested on stable.
Development
Ensure the just command runner is installed. Helpful tasks:
just fmt— format the workspace.just pre-commit— fmt + clippy (deny warnings) + tests.cargo test— run the integration tests.
License
Licensed under the Apache License, Version 2.0. See LICENSE for details.