From fc857fd556e3d712ef69a5277c079f9c286812d8 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 9 Jul 2026 22:09:58 +0000 Subject: [PATCH 1/4] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 04c1236..e97931a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 138 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/courier/courier-cba470b0c221bcfbe2e8bf51276292285a60a05a4c0b47f5f741706adf1205fc.yml -openapi_spec_hash: c9f1b73fb32f39243d9d95a667ea3341 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/courier/courier-78ac30f598e54ef0a924c6c76941278f058c272d77a72279a84baf1cab88527b.yml +openapi_spec_hash: dfbf2098b93e4dd7d6dd225af1396751 config_hash: 6025fdbfe31c3b2d57a71f9885d37294 From ff7fa8f3408348970c5b4d7b65a05de69bdd699a Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 9 Jul 2026 22:17:03 +0000 Subject: [PATCH 2/4] ci(docs): generate docs on the PR, publish Postman from the raw spec (#157) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ci(docs): generate docs on the PR, publish Postman from the raw spec Move the mintlify-docs sync off the post-merge Stainless build and onto the PR, right after the preview generation — restoring the pre-#136 "docs PR from the PR" flow. The post-merge build was flaky: a downstream SDK target (usually cli) failing, or Stainless's content cache skipping a re-run of the same commit, silently blocked the docs sync. - sync_docs now runs on pull_request (needs: preview) and creates/updates the docs PR (branch api-spec-) from the PR's own code-sample-decorated spec. No auto-merge — a human merges the docs PR once this PR lands, matching the original flow. - publish_postman builds the collection straight from specs/openapi.yml (the converter ignores x-codeSamples), so it no longer depends on the Stainless build, and publishes the live public collection only on merge to main (push is path-filtered to specs/**). - sdk_release keeps the Stainless build@main that cuts the per-language SDK release PRs; it no longer gates docs or Postman, so a cli flake is just a re-run. Also reword the bulk-replace tenant_id param ("Update" -> "Replace") to exercise the new PR-based docs generation. Co-Authored-By: Claude Opus 4.8 * docs(readme): document PR-time docs sync and raw-spec Postman flow Rewrite the 'What happens in CI' section to match the restructured workflow: docs sync now runs on the PR right after generation (no auto-merge), and Postman/SDK-release run on merge — Postman built from specs/openapi.yml, sdk_release no longer gating docs. Co-Authored-By: Claude Opus 4.8 * ci(e2e): pass COURIER_RESENDABLE_MESSAGE_ID through to the e2e run The resend test reads COURIER_RESENDABLE_MESSAGE_ID (repo secret exists, listed in node/.env.example) but it was never mapped into the e2e env block, so env() fell back to "" and courier.messages.resend("") hit POST /messages//resend -> 404. Wire the secret through. Co-Authored-By: Claude Opus 4.8 --------- Co-authored-by: Claude Opus 4.8 --- .stats.yml | 4 ++-- src/courier/resources/users/preferences.py | 4 ++-- src/courier/types/users/preference_bulk_replace_params.py | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.stats.yml b/.stats.yml index e97931a..dd12bca 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 138 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/courier/courier-78ac30f598e54ef0a924c6c76941278f058c272d77a72279a84baf1cab88527b.yml -openapi_spec_hash: dfbf2098b93e4dd7d6dd225af1396751 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/courier/courier-ad962c95382ae37062904269b54eae31c0db664b1f2e3d654573a81c2202a65d.yml +openapi_spec_hash: bf321581a238ae891debcc5bb59dd501 config_hash: 6025fdbfe31c3b2d57a71f9885d37294 diff --git a/src/courier/resources/users/preferences.py b/src/courier/resources/users/preferences.py index 809b250..27e74a1 100644 --- a/src/courier/resources/users/preferences.py +++ b/src/courier/resources/users/preferences.py @@ -132,7 +132,7 @@ def bulk_replace( provided. Any existing override not listed here is reset to its topic default; an empty array resets every existing override. - tenant_id: Update the preferences of a user for this specific tenant context. + tenant_id: Replace the preferences of a user for this specific tenant context. extra_headers: Send extra headers @@ -466,7 +466,7 @@ async def bulk_replace( provided. Any existing override not listed here is reset to its topic default; an empty array resets every existing override. - tenant_id: Update the preferences of a user for this specific tenant context. + tenant_id: Replace the preferences of a user for this specific tenant context. extra_headers: Send extra headers diff --git a/src/courier/types/users/preference_bulk_replace_params.py b/src/courier/types/users/preference_bulk_replace_params.py index b0ab115..ff7c859 100644 --- a/src/courier/types/users/preference_bulk_replace_params.py +++ b/src/courier/types/users/preference_bulk_replace_params.py @@ -19,7 +19,7 @@ class PreferenceBulkReplaceParams(TypedDict, total=False): """ tenant_id: Optional[str] - """Update the preferences of a user for this specific tenant context.""" + """Replace the preferences of a user for this specific tenant context.""" class Topic(TypedDict, total=False): From 40a3db73289a0d2d20570c65ed57f7872cabb5d0 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 9 Jul 2026 22:53:59 +0000 Subject: [PATCH 3/4] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index dd12bca..c6ea0b3 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 138 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/courier/courier-ad962c95382ae37062904269b54eae31c0db664b1f2e3d654573a81c2202a65d.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/courier/courier-e8d4bd51bf260b8a6cb9875718e36eab95d4e8d9490cd6c5c669eb69b82c2bf8.yml openapi_spec_hash: bf321581a238ae891debcc5bb59dd501 -config_hash: 6025fdbfe31c3b2d57a71f9885d37294 +config_hash: 6c3a754258f0f77e9032a90a478ab76d From e2064dce3f0749ed866aee477bdd208f66dd2855 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 9 Jul 2026 22:54:17 +0000 Subject: [PATCH 4/4] release: 7.19.1 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 4 ++++ pyproject.toml | 2 +- src/courier/_version.py | 2 +- 4 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 752303a..400ec52 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "7.19.0" + ".": "7.19.1" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f4e4b2..6cb4b0e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 7.19.1 (2026-07-09) + +Full Changelog: [v7.19.0...v7.19.1](https://github.com/trycourier/courier-python/compare/v7.19.0...v7.19.1) + ## 7.19.0 (2026-07-09) Full Changelog: [v7.18.2...v7.19.0](https://github.com/trycourier/courier-python/compare/v7.18.2...v7.19.0) diff --git a/pyproject.toml b/pyproject.toml index 378feb4..543cade 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "trycourier" -version = "7.19.0" +version = "7.19.1" description = "The official Python library for the Courier API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/courier/_version.py b/src/courier/_version.py index 72ab75e..3bb05a7 100644 --- a/src/courier/_version.py +++ b/src/courier/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "courier" -__version__ = "7.19.0" # x-release-please-version +__version__ = "7.19.1" # x-release-please-version