From 5a91cf189c88da3ae6c9319e5cf309a123ff616e Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 7 Mar 2026 15:06:12 +0000 Subject: [PATCH 1/3] chore(internal): codegen related update --- .github/workflows/ci.yml | 8 ++++++-- .../increase/api/models/files/FileCreateParamsTest.kt | 10 +++++----- .../api/services/async/FileServiceAsyncTest.kt | 2 +- .../increase/api/services/blocking/FileServiceTest.kt | 2 +- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b481327ca..6802fb251 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -65,14 +65,18 @@ jobs: run: ./scripts/build - name: Get GitHub OIDC Token - if: github.repository == 'stainless-sdks/increase-java' + if: |- + github.repository == 'stainless-sdks/increase-java' && + !startsWith(github.ref, 'refs/heads/stl/') id: github-oidc uses: actions/github-script@v8 with: script: core.setOutput('github_token', await core.getIDToken()); - name: Build and upload Maven artifacts - if: github.repository == 'stainless-sdks/increase-java' + if: |- + github.repository == 'stainless-sdks/increase-java' && + !startsWith(github.ref, 'refs/heads/stl/') env: URL: https://pkg.stainless.com/s AUTH: ${{ steps.github-oidc.outputs.github_token }} diff --git a/increase-java-core/src/test/kotlin/com/increase/api/models/files/FileCreateParamsTest.kt b/increase-java-core/src/test/kotlin/com/increase/api/models/files/FileCreateParamsTest.kt index e070ebdd9..5b56231f8 100644 --- a/increase-java-core/src/test/kotlin/com/increase/api/models/files/FileCreateParamsTest.kt +++ b/increase-java-core/src/test/kotlin/com/increase/api/models/files/FileCreateParamsTest.kt @@ -12,7 +12,7 @@ internal class FileCreateParamsTest { @Test fun create() { FileCreateParams.builder() - .file("some content".byteInputStream()) + .file("Example data".byteInputStream()) .purpose(FileCreateParams.Purpose.CHECK_IMAGE_FRONT) .description("x") .build() @@ -22,7 +22,7 @@ internal class FileCreateParamsTest { fun body() { val params = FileCreateParams.builder() - .file("some content".byteInputStream()) + .file("Example data".byteInputStream()) .purpose(FileCreateParams.Purpose.CHECK_IMAGE_FRONT) .description("x") .build() @@ -39,7 +39,7 @@ internal class FileCreateParamsTest { ) .isEqualTo( mapOf( - "file" to MultipartField.of("some content".byteInputStream()), + "file" to MultipartField.of("Example data".byteInputStream()), "purpose" to MultipartField.of(FileCreateParams.Purpose.CHECK_IMAGE_FRONT), "description" to MultipartField.of("x"), ) @@ -53,7 +53,7 @@ internal class FileCreateParamsTest { fun bodyWithoutOptionalFields() { val params = FileCreateParams.builder() - .file("some content".byteInputStream()) + .file("Example data".byteInputStream()) .purpose(FileCreateParams.Purpose.CHECK_IMAGE_FRONT) .build() @@ -69,7 +69,7 @@ internal class FileCreateParamsTest { ) .isEqualTo( mapOf( - "file" to MultipartField.of("some content".byteInputStream()), + "file" to MultipartField.of("Example data".byteInputStream()), "purpose" to MultipartField.of(FileCreateParams.Purpose.CHECK_IMAGE_FRONT), ) .mapValues { (_, field) -> diff --git a/increase-java-core/src/test/kotlin/com/increase/api/services/async/FileServiceAsyncTest.kt b/increase-java-core/src/test/kotlin/com/increase/api/services/async/FileServiceAsyncTest.kt index e5a99c8d9..21ef4aaab 100644 --- a/increase-java-core/src/test/kotlin/com/increase/api/services/async/FileServiceAsyncTest.kt +++ b/increase-java-core/src/test/kotlin/com/increase/api/services/async/FileServiceAsyncTest.kt @@ -23,7 +23,7 @@ internal class FileServiceAsyncTest { val fileFuture = fileServiceAsync.create( FileCreateParams.builder() - .file("some content".byteInputStream()) + .file("Example data".byteInputStream()) .purpose(FileCreateParams.Purpose.CHECK_IMAGE_FRONT) .description("x") .build() diff --git a/increase-java-core/src/test/kotlin/com/increase/api/services/blocking/FileServiceTest.kt b/increase-java-core/src/test/kotlin/com/increase/api/services/blocking/FileServiceTest.kt index cb3570b2a..edc59931f 100644 --- a/increase-java-core/src/test/kotlin/com/increase/api/services/blocking/FileServiceTest.kt +++ b/increase-java-core/src/test/kotlin/com/increase/api/services/blocking/FileServiceTest.kt @@ -23,7 +23,7 @@ internal class FileServiceTest { val file = fileService.create( FileCreateParams.builder() - .file("some content".byteInputStream()) + .file("Example data".byteInputStream()) .purpose(FileCreateParams.Purpose.CHECK_IMAGE_FRONT) .description("x") .build() From a55e64e1ff9e685464535564dc2407d843a8dbca Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 8 Mar 2026 00:08:08 +0000 Subject: [PATCH 2/3] feat(api): api update --- .stats.yml | 2 +- .../api/services/blocking/EventServiceImpl.kt | 6 +++++- .../services/async/EventServiceAsyncTest.kt | 19 ++++++++++--------- .../api/services/blocking/EventServiceTest.kt | 19 ++++++++++--------- 4 files changed, 26 insertions(+), 20 deletions(-) diff --git a/.stats.yml b/.stats.yml index d3efbb574..e4ce02b9a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 234 openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/increase%2Fincrease-dd0c83cac837fbe98857fa997663b0d0469344a7564bd4fe506e6c71d1d6af73.yml openapi_spec_hash: 2352f37602105b164533038199b21804 -config_hash: 890ca5fa6b8209d4eaac90550c7dc62c +config_hash: b7ec7f54fa76c1f8bde7a548710a1d38 diff --git a/increase-java-core/src/main/kotlin/com/increase/api/services/blocking/EventServiceImpl.kt b/increase-java-core/src/main/kotlin/com/increase/api/services/blocking/EventServiceImpl.kt index 60f8eb37f..77bad3c93 100644 --- a/increase-java-core/src/main/kotlin/com/increase/api/services/blocking/EventServiceImpl.kt +++ b/increase-java-core/src/main/kotlin/com/increase/api/services/blocking/EventServiceImpl.kt @@ -27,6 +27,7 @@ import com.increase.api.models.events.EventRetrieveParams import com.increase.api.models.events.UnwrapWebhookEvent import com.standardwebhooks.Webhook import com.standardwebhooks.exceptions.WebhookVerificationException +import java.util.Base64 import java.util.function.Consumer import kotlin.jvm.optionals.getOrNull @@ -71,7 +72,10 @@ class EventServiceImpl internal constructor(private val clientOptions: ClientOpt val headersMap = headers.names().associateWith { name -> headers.values(name) }.toMap() - val webhook = Webhook(webhookSecret) + val webhook = + Webhook( + "whsec_" + Base64.getEncoder().encodeToString(webhookSecret.toByteArray()) + ) webhook.verify(unwrapParams.body(), headersMap) } catch (e: WebhookVerificationException) { throw IncreaseWebhookException("Could not verify webhook event signature", e) diff --git a/increase-java-core/src/test/kotlin/com/increase/api/services/async/EventServiceAsyncTest.kt b/increase-java-core/src/test/kotlin/com/increase/api/services/async/EventServiceAsyncTest.kt index 406512e6f..c5a440c06 100644 --- a/increase-java-core/src/test/kotlin/com/increase/api/services/async/EventServiceAsyncTest.kt +++ b/increase-java-core/src/test/kotlin/com/increase/api/services/async/EventServiceAsyncTest.kt @@ -54,6 +54,7 @@ internal class EventServiceAsyncTest { val payload = "{\"id\":\"event_001dzz0r20rzr4zrhrr1364hy80\",\"associated_object_id\":\"account_in71c4amph0vgo2qllky\",\"associated_object_type\":\"account\",\"category\":\"account.created\",\"created_at\":\"2020-01-31T23:59:59Z\",\"type\":\"event\"}" val webhookSecret = "whsec_c2VjcmV0Cg==" + val rawWebhookSecret = "secret\n" val messageId = "1" val timestampSeconds = Instant.now().epochSecond val webhook = Webhook(webhookSecret) @@ -74,11 +75,11 @@ internal class EventServiceAsyncTest { UnwrapWebhookParams.builder() .body(payload) .headers(headers) - .secret(webhookSecret) + .secret(rawWebhookSecret) .build() ) eventServiceAsync - .withOptions { it.webhookSecret(webhookSecret) } + .withOptions { it.webhookSecret(rawWebhookSecret) } .unwrap(UnwrapWebhookParams.builder().body(payload).headers(headers).build()) // Secret in method takes precedence to secret on client @@ -89,7 +90,7 @@ internal class EventServiceAsyncTest { UnwrapWebhookParams.builder() .body(payload) .headers(headers) - .secret(webhookSecret) + .secret(rawWebhookSecret) .build() ) @@ -137,7 +138,7 @@ internal class EventServiceAsyncTest { UnwrapWebhookParams.builder() .body(payload) .headers(badHeaders) - .secret(webhookSecret) + .secret(rawWebhookSecret) .build() ) } @@ -146,7 +147,7 @@ internal class EventServiceAsyncTest { val badHeaders = headers.toBuilder().replace("webhook-signature", listOf(badSig)).build() eventServiceAsync - .withOptions { it.webhookSecret(webhookSecret) } + .withOptions { it.webhookSecret(rawWebhookSecret) } .unwrap(UnwrapWebhookParams.builder().body(payload).headers(badHeaders).build()) } @@ -157,14 +158,14 @@ internal class EventServiceAsyncTest { UnwrapWebhookParams.builder() .body(payload) .headers(oldHeaders) - .secret(webhookSecret) + .secret(rawWebhookSecret) .build() ) } assertThrows { val oldHeaders = headers.toBuilder().replace("webhook-timestamp", listOf("5")).build() eventServiceAsync - .withOptions { it.webhookSecret(webhookSecret) } + .withOptions { it.webhookSecret(rawWebhookSecret) } .unwrap(UnwrapWebhookParams.builder().body(payload).headers(oldHeaders).build()) } @@ -175,14 +176,14 @@ internal class EventServiceAsyncTest { UnwrapWebhookParams.builder() .body(payload) .headers(wrongIdHeaders) - .secret(webhookSecret) + .secret(rawWebhookSecret) .build() ) } assertThrows { val wrongIdHeaders = headers.toBuilder().replace("webhook-id", listOf("wrong")).build() eventServiceAsync - .withOptions { it.webhookSecret(webhookSecret) } + .withOptions { it.webhookSecret(rawWebhookSecret) } .unwrap(UnwrapWebhookParams.builder().body(payload).headers(wrongIdHeaders).build()) } } diff --git a/increase-java-core/src/test/kotlin/com/increase/api/services/blocking/EventServiceTest.kt b/increase-java-core/src/test/kotlin/com/increase/api/services/blocking/EventServiceTest.kt index 4e32b3b93..d3e9413c9 100644 --- a/increase-java-core/src/test/kotlin/com/increase/api/services/blocking/EventServiceTest.kt +++ b/increase-java-core/src/test/kotlin/com/increase/api/services/blocking/EventServiceTest.kt @@ -52,6 +52,7 @@ internal class EventServiceTest { val payload = "{\"id\":\"event_001dzz0r20rzr4zrhrr1364hy80\",\"associated_object_id\":\"account_in71c4amph0vgo2qllky\",\"associated_object_type\":\"account\",\"category\":\"account.created\",\"created_at\":\"2020-01-31T23:59:59Z\",\"type\":\"event\"}" val webhookSecret = "whsec_c2VjcmV0Cg==" + val rawWebhookSecret = "secret\n" val messageId = "1" val timestampSeconds = Instant.now().epochSecond val webhook = Webhook(webhookSecret) @@ -72,11 +73,11 @@ internal class EventServiceTest { UnwrapWebhookParams.builder() .body(payload) .headers(headers) - .secret(webhookSecret) + .secret(rawWebhookSecret) .build() ) eventService - .withOptions { it.webhookSecret(webhookSecret) } + .withOptions { it.webhookSecret(rawWebhookSecret) } .unwrap(UnwrapWebhookParams.builder().body(payload).headers(headers).build()) // Secret in method takes precedence to secret on client @@ -87,7 +88,7 @@ internal class EventServiceTest { UnwrapWebhookParams.builder() .body(payload) .headers(headers) - .secret(webhookSecret) + .secret(rawWebhookSecret) .build() ) @@ -135,7 +136,7 @@ internal class EventServiceTest { UnwrapWebhookParams.builder() .body(payload) .headers(badHeaders) - .secret(webhookSecret) + .secret(rawWebhookSecret) .build() ) } @@ -144,7 +145,7 @@ internal class EventServiceTest { val badHeaders = headers.toBuilder().replace("webhook-signature", listOf(badSig)).build() eventService - .withOptions { it.webhookSecret(webhookSecret) } + .withOptions { it.webhookSecret(rawWebhookSecret) } .unwrap(UnwrapWebhookParams.builder().body(payload).headers(badHeaders).build()) } @@ -155,14 +156,14 @@ internal class EventServiceTest { UnwrapWebhookParams.builder() .body(payload) .headers(oldHeaders) - .secret(webhookSecret) + .secret(rawWebhookSecret) .build() ) } assertThrows { val oldHeaders = headers.toBuilder().replace("webhook-timestamp", listOf("5")).build() eventService - .withOptions { it.webhookSecret(webhookSecret) } + .withOptions { it.webhookSecret(rawWebhookSecret) } .unwrap(UnwrapWebhookParams.builder().body(payload).headers(oldHeaders).build()) } @@ -173,14 +174,14 @@ internal class EventServiceTest { UnwrapWebhookParams.builder() .body(payload) .headers(wrongIdHeaders) - .secret(webhookSecret) + .secret(rawWebhookSecret) .build() ) } assertThrows { val wrongIdHeaders = headers.toBuilder().replace("webhook-id", listOf("wrong")).build() eventService - .withOptions { it.webhookSecret(webhookSecret) } + .withOptions { it.webhookSecret(rawWebhookSecret) } .unwrap(UnwrapWebhookParams.builder().body(payload).headers(wrongIdHeaders).build()) } } From 7300c2a33becf6d578dc6e11bb3decf347576b92 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sun, 8 Mar 2026 00:18:26 +0000 Subject: [PATCH 3/3] release: 0.456.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 13 +++++++++++++ README.md | 10 +++++----- build.gradle.kts | 2 +- 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index efc1a4432..a45036ef6 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.455.0" + ".": "0.456.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 32cc8340f..c98a1d75a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## 0.456.0 (2026-03-08) + +Full Changelog: [v0.455.0...v0.456.0](https://github.com/Increase/increase-java/compare/v0.455.0...v0.456.0) + +### Features + +* **api:** api update ([a55e64e](https://github.com/Increase/increase-java/commit/a55e64e1ff9e685464535564dc2407d843a8dbca)) + + +### Chores + +* **internal:** codegen related update ([5a91cf1](https://github.com/Increase/increase-java/commit/5a91cf189c88da3ae6c9319e5cf309a123ff616e)) + ## 0.455.0 (2026-03-06) Full Changelog: [v0.454.0...v0.455.0](https://github.com/Increase/increase-java/compare/v0.454.0...v0.455.0) diff --git a/README.md b/README.md index 077c57f5a..05cca19a2 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ -[![Maven Central](https://img.shields.io/maven-central/v/com.increase.api/increase-java)](https://central.sonatype.com/artifact/com.increase.api/increase-java/0.455.0) -[![javadoc](https://javadoc.io/badge2/com.increase.api/increase-java/0.455.0/javadoc.svg)](https://javadoc.io/doc/com.increase.api/increase-java/0.455.0) +[![Maven Central](https://img.shields.io/maven-central/v/com.increase.api/increase-java)](https://central.sonatype.com/artifact/com.increase.api/increase-java/0.456.0) +[![javadoc](https://javadoc.io/badge2/com.increase.api/increase-java/0.456.0/javadoc.svg)](https://javadoc.io/doc/com.increase.api/increase-java/0.456.0) @@ -13,7 +13,7 @@ The Increase Java SDK is similar to the Increase Kotlin SDK but with minor diffe -The REST API documentation can be found on [increase.com](https://increase.com/documentation). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.increase.api/increase-java/0.455.0). +The REST API documentation can be found on [increase.com](https://increase.com/documentation). Javadocs are available on [javadoc.io](https://javadoc.io/doc/com.increase.api/increase-java/0.456.0). @@ -24,7 +24,7 @@ The REST API documentation can be found on [increase.com](https://increase.com/d ### Gradle ```kotlin -implementation("com.increase.api:increase-java:0.455.0") +implementation("com.increase.api:increase-java:0.456.0") ``` ### Maven @@ -33,7 +33,7 @@ implementation("com.increase.api:increase-java:0.455.0") com.increase.api increase-java - 0.455.0 + 0.456.0 ``` diff --git a/build.gradle.kts b/build.gradle.kts index 187ce0fe0..30fcbf773 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,7 +8,7 @@ repositories { allprojects { group = "com.increase.api" - version = "0.455.0" // x-release-please-version + version = "0.456.0" // x-release-please-version } subprojects {