Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
fff5ec2
feat(api): api update
stainless-app[bot] Jun 8, 2026
1e5faa0
feat(api): api update
stainless-app[bot] Mar 9, 2026
0d4ee8e
feat(api): api update
stainless-app[bot] Jun 8, 2026
ee33acf
fix(client): incorrect `Retry-After` parsing
stainless-app[bot] Mar 11, 2026
fbaadd8
feat(api): api update
stainless-app[bot] Mar 14, 2026
165398b
chore(internal): tweak CI branches
stainless-app[bot] Mar 17, 2026
56092cf
chore(internal): update retry delay tests
stainless-app[bot] Mar 18, 2026
3964864
fix(client): allow updating header/query affecting fields in `toBuild…
stainless-app[bot] Mar 18, 2026
77efbfa
refactor(tests): switch from prism to steady
stainless-app[bot] Mar 20, 2026
ffd9a1b
chore(internal): bump ktfmt
stainless-app[bot] Mar 20, 2026
633a61a
chore(tests): bump steady to v0.19.4
stainless-app[bot] Mar 21, 2026
22f82da
chore(tests): bump steady to v0.19.5
stainless-app[bot] Mar 21, 2026
2976e04
chore(internal): update gitignore
stainless-app[bot] Mar 24, 2026
e334755
chore(tests): bump steady to v0.19.6
stainless-app[bot] Mar 24, 2026
e23b045
chore(ci): skip lint on metadata-only changes
stainless-app[bot] Mar 25, 2026
ef0587c
chore(tests): bump steady to v0.19.7
stainless-app[bot] Mar 25, 2026
7208a3c
chore(internal): update multipart form array serialization
stainless-app[bot] Mar 27, 2026
6b55911
feat(api): api update
stainless-app[bot] Mar 29, 2026
f74e874
chore(tests): bump steady to v0.20.1
stainless-app[bot] Apr 1, 2026
7e86c45
chore(tests): bump steady to v0.20.2
stainless-app[bot] Apr 1, 2026
344888d
chore(tests): bump steady to v0.22.1
stainless-app[bot] Apr 18, 2026
58e75c3
feat: support setting headers via env
stainless-app[bot] Apr 28, 2026
dec3538
codegen metadata
stainless-app[bot] Apr 30, 2026
417cab1
codegen metadata
stainless-app[bot] May 1, 2026
ce30a3c
docs: clarify forwards compat behavior
stainless-app[bot] May 5, 2026
8c92200
feat(client): more robust error parsing
stainless-app[bot] May 5, 2026
88e7490
chore: remove duplicated dokka setup
stainless-app[bot] May 5, 2026
8157d7e
perf(client): create one json mapper
stainless-app[bot] May 5, 2026
baeb731
feat(client): support proxy authentication
stainless-app[bot] Jun 8, 2026
80d4a74
feat(client): improve logging
stainless-app[bot] Jun 8, 2026
051e173
chore: redact api-key headers in debug logs
stainless-app[bot] May 8, 2026
1cad394
chore(internal): codegen related update
stainless-app[bot] May 13, 2026
437baa4
feat(api): api update
stainless-app[bot] May 20, 2026
97d101f
feat(api): api update
stainless-app[bot] Jun 1, 2026
4d09d77
codegen metadata
stainless-app[bot] Jun 4, 2026
5cea3bb
codegen metadata
stainless-app[bot] Jun 4, 2026
3da2b52
release: 0.1.0-alpha.57
stainless-app[bot] Jun 8, 2026
3ee0ce7
fix(api): improve formatting and annotations in StopsForAgencyListRes…
Ahmedhossamdev Jun 8, 2026
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
38 changes: 20 additions & 18 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
name: CI
on:
push:
branches-ignore:
- 'generated'
- 'codegen/**'
- 'integrated/**'
- 'stl-preview-head/**'
- 'stl-preview-base/**'
branches:
- '**'
- '!integrated/**'
- '!stl-preview-head/**'
- '!stl-preview-base/**'
- '!generated'
- '!codegen/**'
- 'codegen/stl/**'
pull_request:
branches-ignore:
- 'stl-preview-head/**'
Expand All @@ -17,13 +19,13 @@ jobs:
timeout-minutes: 15
name: lint
runs-on: ${{ github.repository == 'stainless-sdks/open-transit-java' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
if: (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata')

steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Set up Java
uses: actions/setup-java@v5
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
distribution: temurin
java-version: |
Expand All @@ -32,7 +34,7 @@ jobs:
cache: gradle

- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
uses: gradle/actions/setup-gradle@ed408507eac070d1f99cc633dbcf757c94c7933a # v4.4.3

- name: Run lints
run: ./scripts/lint
Expand All @@ -44,13 +46,13 @@ jobs:
contents: read
id-token: write
runs-on: ${{ github.repository == 'stainless-sdks/open-transit-java' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
if: (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata')

steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Set up Java
uses: actions/setup-java@v5
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
distribution: temurin
java-version: |
Expand All @@ -59,7 +61,7 @@ jobs:
cache: gradle

- name: Set up Gradle
uses: gradle/actions/setup-gradle@v4
uses: gradle/actions/setup-gradle@ed408507eac070d1f99cc633dbcf757c94c7933a # v4.4.3

- name: Build SDK
run: ./scripts/build
Expand All @@ -69,7 +71,7 @@ jobs:
github.repository == 'stainless-sdks/open-transit-java' &&
!startsWith(github.ref, 'refs/heads/stl/')
id: github-oidc
uses: actions/github-script@v8
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
with:
script: core.setOutput('github_token', await core.getIDToken());

Expand All @@ -89,10 +91,10 @@ jobs:
runs-on: ${{ github.repository == 'stainless-sdks/open-transit-java' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }}
if: github.event_name == 'push' || github.event.pull_request.head.repo.fork
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Set up Java
uses: actions/setup-java@v5
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
distribution: temurin
java-version: |
Expand All @@ -101,7 +103,7 @@ jobs:
cache: gradle

- name: Set up Gradle
uses: gradle/gradle-build-action@v2
uses: gradle/gradle-build-action@a8f75513eafdebd8141bd1cd4e30fcd194af8dfa # v2.12.0

- name: Run tests
run: ./scripts/test
6 changes: 3 additions & 3 deletions .github/workflows/publish-sonatype.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Set up Java
uses: actions/setup-java@v5
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
distribution: temurin
java-version: |
Expand All @@ -26,7 +26,7 @@ jobs:
cache: gradle

- name: Set up Gradle
uses: gradle/gradle-build-action@v2
uses: gradle/gradle-build-action@a8f75513eafdebd8141bd1cd4e30fcd194af8dfa # v2.12.0

- name: Publish to Sonatype
run: |-
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-doctor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
if: github.repository == 'OneBusAway/java-sdk' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || startsWith(github.head_ref, 'release-please') || github.head_ref == 'next')

steps:
- uses: actions/checkout@v6
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Check release environment
run: |
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
.prism.log
.stdy.log
.gradle
.idea
.kotlin
Expand Down
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.1.0-alpha.56"
".": "0.1.0-alpha.57"
}
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 29
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/open-transit%2Fopen-transit-4fcbe9547537b22a2d68329e1d94e0c1a6f81b5af734ca213f7b95eef5da7adb.yml
openapi_spec_hash: 417ea17b08e186b15b2986372592185e
config_hash: 3871f5d21bb38ddd334ec04721dea64d
configured_endpoints: 30
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/open-transit/open-transit-49611a380a238e29ad714c2f6d66a35ada42e3931d2aad2839afd1f13b585de1.yml
openapi_spec_hash: b03acca245aef78353d3b7a6a4a62eb2
config_hash: ff7ff57d4c7f9c3f7a4f9bae39aa00e3
59 changes: 59 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,64 @@
# Changelog

## 0.1.0-alpha.57 (2026-06-08)

Full Changelog: [v0.1.0-alpha.56...v0.1.0-alpha.57](https://github.com/OneBusAway/java-sdk/compare/v0.1.0-alpha.56...v0.1.0-alpha.57)

### Features

* **api:** api update ([97d101f](https://github.com/OneBusAway/java-sdk/commit/97d101f05496b1456a689edc3405c8ec1daf4087))
* **api:** api update ([437baa4](https://github.com/OneBusAway/java-sdk/commit/437baa4d600d5504c7e269a4b6f41381810f6027))
* **api:** api update ([6b55911](https://github.com/OneBusAway/java-sdk/commit/6b55911920235024bc07b4bdfd44768a70df1d48))
* **api:** api update ([fbaadd8](https://github.com/OneBusAway/java-sdk/commit/fbaadd8e2395cc74e3748f486fb17513a211bc1b))
* **api:** api update ([0d4ee8e](https://github.com/OneBusAway/java-sdk/commit/0d4ee8e11408ed9a067d3a45038d1bfe45ad58a3))
* **api:** api update ([1e5faa0](https://github.com/OneBusAway/java-sdk/commit/1e5faa0e778189bb3ffc214ac370b0f8c5085824))
* **api:** api update ([fff5ec2](https://github.com/OneBusAway/java-sdk/commit/fff5ec2ab5207e5e378a1cf59e79922f1f8ade21))
* **client:** improve logging ([80d4a74](https://github.com/OneBusAway/java-sdk/commit/80d4a74241fa268e03504f2fc565df666da77400))
* **client:** more robust error parsing ([8c92200](https://github.com/OneBusAway/java-sdk/commit/8c92200d5138d6ff8acad77742994445992d0c0a))
* **client:** support proxy authentication ([baeb731](https://github.com/OneBusAway/java-sdk/commit/baeb731d323acdc19d58ec4a0134107203f45e18))
* support setting headers via env ([58e75c3](https://github.com/OneBusAway/java-sdk/commit/58e75c3de82e535d8c8a1a69922edc71f231d149))


### Bug Fixes

* **client:** allow updating header/query affecting fields in `toBuilder()` ([3964864](https://github.com/OneBusAway/java-sdk/commit/3964864f1cb0ebea7318a6e0fd68ea12e6705b24))
* **client:** incorrect `Retry-After` parsing ([ee33acf](https://github.com/OneBusAway/java-sdk/commit/ee33acffec6143677ceae8a1e155c31736c0e4e0))


### Performance Improvements

* **client:** create one json mapper ([8157d7e](https://github.com/OneBusAway/java-sdk/commit/8157d7ecfa89ee3ccb179a57c2b8cd0665a1f5d1))


### Chores

* **ci:** skip lint on metadata-only changes ([e23b045](https://github.com/OneBusAway/java-sdk/commit/e23b04511c261dd1b68e84e7302361cae57f8a0c))
* **internal:** bump ktfmt ([ffd9a1b](https://github.com/OneBusAway/java-sdk/commit/ffd9a1b7d321a1a0d89f5d00184ba94341db23aa))
* **internal:** codegen related update ([1cad394](https://github.com/OneBusAway/java-sdk/commit/1cad394444409bd3e6264f2de9d345bf9ff4ac4d))
* **internal:** tweak CI branches ([165398b](https://github.com/OneBusAway/java-sdk/commit/165398b0c6f820ec29093b1122837a990b2ae587))
* **internal:** update gitignore ([2976e04](https://github.com/OneBusAway/java-sdk/commit/2976e04d3381ba91ed619eac4cdb9a001fbf46e8))
* **internal:** update multipart form array serialization ([7208a3c](https://github.com/OneBusAway/java-sdk/commit/7208a3c4f47fc1070808d19e78f3d86c6daa9307))
* **internal:** update retry delay tests ([56092cf](https://github.com/OneBusAway/java-sdk/commit/56092cf073f68b0631750dda62089acb0496affc))
* redact api-key headers in debug logs ([051e173](https://github.com/OneBusAway/java-sdk/commit/051e173193c87cabce6486b1d419e1a5c230c444))
* remove duplicated dokka setup ([88e7490](https://github.com/OneBusAway/java-sdk/commit/88e7490658f71bbe6ae94b8727746b5f34722244))
* **tests:** bump steady to v0.19.4 ([633a61a](https://github.com/OneBusAway/java-sdk/commit/633a61ab965ff86afd6466106c9c1325ace48187))
* **tests:** bump steady to v0.19.5 ([22f82da](https://github.com/OneBusAway/java-sdk/commit/22f82dae778becca20f549b8410a7c1d2c954655))
* **tests:** bump steady to v0.19.6 ([e334755](https://github.com/OneBusAway/java-sdk/commit/e334755a99bdf8f096d8247ffd40e416471db36b))
* **tests:** bump steady to v0.19.7 ([ef0587c](https://github.com/OneBusAway/java-sdk/commit/ef0587c47711d53a97a7982fbf352de7c3f17333))
* **tests:** bump steady to v0.20.1 ([f74e874](https://github.com/OneBusAway/java-sdk/commit/f74e874bd26003286fbf031c340bf1ae25e1de63))
* **tests:** bump steady to v0.20.2 ([7e86c45](https://github.com/OneBusAway/java-sdk/commit/7e86c4531e42593b1f50806efd88afaa2f46bdd1))
* **tests:** bump steady to v0.22.1 ([344888d](https://github.com/OneBusAway/java-sdk/commit/344888d82e5616e2f6e6400c270b8e9e89072bbf))


### Documentation

* clarify forwards compat behavior ([ce30a3c](https://github.com/OneBusAway/java-sdk/commit/ce30a3c1bdf6f81bcb3af3cb10470a68b9065b9b))


### Refactors

* **tests:** switch from prism to steady ([77efbfa](https://github.com/OneBusAway/java-sdk/commit/77efbfa7675a8d7d8335e445ea0caac680017e57))

## 0.1.0-alpha.56 (2026-03-07)

Full Changelog: [v0.1.0-alpha.55...v0.1.0-alpha.56](https://github.com/OneBusAway/java-sdk/compare/v0.1.0-alpha.55...v0.1.0-alpha.56)
Expand Down
44 changes: 36 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

<!-- x-release-please-start-version -->

[![Maven Central](https://img.shields.io/maven-central/v/org.onebusaway/onebusaway-sdk-java)](https://central.sonatype.com/artifact/org.onebusaway/onebusaway-sdk-java/0.1.0-alpha.56)
[![javadoc](https://javadoc.io/badge2/org.onebusaway/onebusaway-sdk-java/0.1.0-alpha.56/javadoc.svg)](https://javadoc.io/doc/org.onebusaway/onebusaway-sdk-java/0.1.0-alpha.56)
[![Maven Central](https://img.shields.io/maven-central/v/org.onebusaway/onebusaway-sdk-java)](https://central.sonatype.com/artifact/org.onebusaway/onebusaway-sdk-java/0.1.0-alpha.57)
[![javadoc](https://javadoc.io/badge2/org.onebusaway/onebusaway-sdk-java/0.1.0-alpha.57/javadoc.svg)](https://javadoc.io/doc/org.onebusaway/onebusaway-sdk-java/0.1.0-alpha.57)

<!-- x-release-please-end -->

Expand All @@ -15,7 +15,7 @@ It is generated with [Stainless](https://www.stainless.com/).

<!-- x-release-please-start-version -->

The REST API documentation can be found on [developer.onebusaway.org](https://developer.onebusaway.org). Javadocs are available on [javadoc.io](https://javadoc.io/doc/org.onebusaway/onebusaway-sdk-java/0.1.0-alpha.56).
The REST API documentation can be found on [developer.onebusaway.org](https://developer.onebusaway.org). Javadocs are available on [javadoc.io](https://javadoc.io/doc/org.onebusaway/onebusaway-sdk-java/0.1.0-alpha.57).

<!-- x-release-please-end -->

Expand All @@ -26,7 +26,7 @@ The REST API documentation can be found on [developer.onebusaway.org](https://de
### Gradle

```kotlin
implementation("org.onebusaway:onebusaway-sdk-java:0.1.0-alpha.56")
implementation("org.onebusaway:onebusaway-sdk-java:0.1.0-alpha.57")
```

### Maven
Expand All @@ -35,7 +35,7 @@ implementation("org.onebusaway:onebusaway-sdk-java:0.1.0-alpha.56")
<dependency>
<groupId>org.onebusaway</groupId>
<artifactId>onebusaway-sdk-java</artifactId>
<version>0.1.0-alpha.56</version>
<version>0.1.0-alpha.57</version>
</dependency>
```

Expand Down Expand Up @@ -229,8 +229,6 @@ The SDK throws custom unchecked exception types:

## Logging

The SDK uses the standard [OkHttp logging interceptor](https://github.com/square/okhttp/tree/master/okhttp-logging-interceptor).

Enable logging by setting the `ONEBUSAWAY_SDK_LOG` environment variable to `info`:

```sh
Expand All @@ -243,6 +241,19 @@ Or to `debug` for more verbose logging:
export ONEBUSAWAY_SDK_LOG=debug
```

Or configure the client manually using the `logLevel` method:

```java
import org.onebusaway.client.OnebusawaySdkClient;
import org.onebusaway.client.okhttp.OnebusawaySdkOkHttpClient;
import org.onebusaway.core.LogLevel;

OnebusawaySdkClient client = OnebusawaySdkOkHttpClient.builder()
.fromEnv()
.logLevel(LogLevel.INFO)
.build();
```

## ProGuard and R8

Although the SDK uses reflection, it is still usable with [ProGuard](https://github.com/Guardsquare/proguard) and [R8](https://developer.android.com/topic/performance/app-optimization/enable-app-optimization) because `onebusaway-sdk-java-core` is published with a [configuration file](onebusaway-sdk-java-core/src/main/resources/META-INF/proguard/onebusaway-sdk-java-core.pro) containing [keep rules](https://www.guardsquare.com/manual/configuration/usage).
Expand Down Expand Up @@ -335,6 +346,21 @@ OnebusawaySdkClient client = OnebusawaySdkOkHttpClient.builder()
.build();
```

If the proxy responds with `407 Proxy Authentication Required`, supply credentials by also configuring `proxyAuthenticator`:

```java
import org.onebusaway.client.OnebusawaySdkClient;
import org.onebusaway.client.okhttp.OnebusawaySdkOkHttpClient;
import org.onebusaway.core.http.ProxyAuthenticator;

OnebusawaySdkClient client = OnebusawaySdkOkHttpClient.builder()
.fromEnv()
.proxy(...)
// Or a custom implementation of `ProxyAuthenticator`.
.proxyAuthenticator(ProxyAuthenticator.basic("username", "password"))
.build();
```

### Connection pooling

To customize the underlying OkHttp connection pool, configure the client using the `maxIdleConnections` and `keepAliveDuration` methods:
Expand Down Expand Up @@ -553,7 +579,9 @@ In rare cases, the API may return a response that doesn't match the expected typ

By default, the SDK will not throw an exception in this case. It will throw [`OnebusawaySdkInvalidDataException`](onebusaway-sdk-java-core/src/main/kotlin/org/onebusaway/errors/OnebusawaySdkInvalidDataException.kt) only if you directly access the property.

If you would prefer to check that the response is completely well-typed upfront, then either call `validate()`:
Validating the response is _not_ forwards compatible with new types from the API for existing fields.

If you would still prefer to check that the response is completely well-typed upfront, then either call `validate()`:

```java
import org.onebusaway.models.currenttime.CurrentTimeRetrieveResponse;
Expand Down
3 changes: 1 addition & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ repositories {

allprojects {
group = "org.onebusaway"
version = "0.1.0-alpha.56" // x-release-please-version
version = "0.1.0-alpha.57" // x-release-please-version
}

subprojects {
Expand All @@ -21,7 +21,6 @@ subprojects {
group = "Verification"
description = "Verifies all source files are formatted."
}
apply(plugin = "org.jetbrains.dokka")
}

subprojects {
Expand Down
2 changes: 1 addition & 1 deletion buildSrc/src/main/kotlin/onebusaway-sdk.kotlin.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ tasks.withType<Test>().configureEach {

val ktfmt by configurations.creating
dependencies {
ktfmt("com.facebook:ktfmt:0.56")
ktfmt("com.facebook:ktfmt:0.61")
}

fun registerKtfmt(
Expand Down
1 change: 0 additions & 1 deletion onebusaway-sdk-java-client-okhttp/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ dependencies {
api(project(":onebusaway-sdk-java-core"))

implementation("com.squareup.okhttp3:okhttp:4.12.0")
implementation("com.squareup.okhttp3:logging-interceptor:4.12.0")

testImplementation(kotlin("test"))
testImplementation("org.assertj:assertj-core:3.27.7")
Expand Down
Loading
Loading