Skip to content

Commit 3457eff

Browse files
release: 7.9.0 (#125)
* chore(internal): bump dependencies * chore(internal): fix lint error on Python 3.14 * feat(api): remove brand field from ElementalContent * chore: format all `api.md` files * chore(internal): remove mock server code * chore: update mock server docs * codegen metadata * chore(internal): add request options to SSE classes * chore(internal): make `test_proxy_environment_variables` more resilient * chore(internal): make `test_proxy_environment_variables` more resilient to env * codegen metadata * codegen metadata * codegen metadata * fix(api): remove body_token, rename path_token in users.tokens.add_single * refactor(types): use `extra_items` from PEP 728 * chore(ci): skip uploading artifacts on stainless-internal branches * feat(api): add journeys resource with list and invoke methods * fix: mark MessageDetails timestamp fields as optional * codegen metadata * release: 7.9.0 --------- Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com>
1 parent e3757cc commit 3457eff

58 files changed

Lines changed: 1567 additions & 899 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,14 +61,18 @@ jobs:
6161
run: rye build
6262

6363
- name: Get GitHub OIDC Token
64-
if: github.repository == 'stainless-sdks/courier-python'
64+
if: |-
65+
github.repository == 'stainless-sdks/courier-python' &&
66+
!startsWith(github.ref, 'refs/heads/stl/')
6567
id: github-oidc
6668
uses: actions/github-script@v8
6769
with:
6870
script: core.setOutput('github_token', await core.getIDToken());
6971

7072
- name: Upload tarball
71-
if: github.repository == 'stainless-sdks/courier-python'
73+
if: |-
74+
github.repository == 'stainless-sdks/courier-python' &&
75+
!startsWith(github.ref, 'refs/heads/stl/')
7276
env:
7377
URL: https://pkg.stainless.com/s
7478
AUTH: ${{ steps.github-oidc.outputs.github_token }}

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "7.8.0"
2+
".": "7.9.0"
33
}

.stats.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 81
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/courier%2Fcourier-3fc1c86b4a83a16393aaf17d1fb3ac6098d30dd057ba872973b57285a7a3f0d0.yml
3-
openapi_spec_hash: 02a545d217b13399f311e99561f9de1d
4-
config_hash: 0789c3cddc625bb9712b3bded274ab6c
1+
configured_endpoints: 83
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/courier%2Fcourier-19330fca8fa9bbae835ec9d9f83b37b3df364d9b462090b9623bfc9b6eae99c2.yml
3+
openapi_spec_hash: 0bc6889464c9ac2542b4837f569c1837
4+
config_hash: 1ae49ed522c8423378d9463cdd0fb880

CHANGELOG.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,44 @@
11
# Changelog
22

3+
## 7.9.0 (2026-03-12)
4+
5+
Full Changelog: [v7.8.0...v7.9.0](https://github.com/trycourier/courier-python/compare/v7.8.0...v7.9.0)
6+
7+
### Features
8+
9+
* **api:** add journeys resource with list and invoke methods ([be92a16](https://github.com/trycourier/courier-python/commit/be92a168addb8487d27fa6d34e04208ed2476d45))
10+
* **api:** remove brand field from ElementalContent ([1354ff8](https://github.com/trycourier/courier-python/commit/1354ff8604b5732982ab3a36e3ed856070473ba5))
11+
12+
13+
### Bug Fixes
14+
15+
* **api:** remove body_token, rename path_token in users.tokens.add_single ([3ee45a8](https://github.com/trycourier/courier-python/commit/3ee45a8171b58edeb0eaec4be7f7cb689abf0bfe))
16+
* mark MessageDetails timestamp fields as optional ([a86abbf](https://github.com/trycourier/courier-python/commit/a86abbf019dcfa29817a60db6b166dcbe5d48faa))
17+
18+
19+
### Chores
20+
21+
* **ci:** skip uploading artifacts on stainless-internal branches ([8d5a384](https://github.com/trycourier/courier-python/commit/8d5a38409419c90d4197f5fcc089135f15c5e16b))
22+
* format all `api.md` files ([0b4aca7](https://github.com/trycourier/courier-python/commit/0b4aca79b5d4c568aa262978040f57a2ba540f6f))
23+
* **internal:** add request options to SSE classes ([7f342f9](https://github.com/trycourier/courier-python/commit/7f342f99eb625e3091aa1c0fb794fac4d6aec20c))
24+
* **internal:** bump dependencies ([2c1457d](https://github.com/trycourier/courier-python/commit/2c1457d5017fc4093501861ca2cf99e5112ddeed))
25+
* **internal:** fix lint error on Python 3.14 ([58f8a6e](https://github.com/trycourier/courier-python/commit/58f8a6e0f5ed3370ef13741188be2691be0aa73f))
26+
* **internal:** make `test_proxy_environment_variables` more resilient ([d82fd8d](https://github.com/trycourier/courier-python/commit/d82fd8d691c3944903526f5e2d78043f9b8c76dd))
27+
* **internal:** make `test_proxy_environment_variables` more resilient to env ([8aaf597](https://github.com/trycourier/courier-python/commit/8aaf597d7635aa5137092f1c5579ccffd3868a2e))
28+
* **internal:** remove mock server code ([31b4e07](https://github.com/trycourier/courier-python/commit/31b4e07803c62389646e9037ca1056508525c075))
29+
* update mock server docs ([f18d539](https://github.com/trycourier/courier-python/commit/f18d539df79d21c9e4484bfdc865dd68523e1920))
30+
31+
32+
### Documentation
33+
34+
* add AUTO-GENERATED-OVERVIEW markers for README sync ([#126](https://github.com/trycourier/courier-python/issues/126)) ([69391e1](https://github.com/trycourier/courier-python/commit/69391e1455bfd27cc6eb8bdce8f28551c6efce85))
35+
* sync README from mintlify-docs (2026-02-20 18:11 UTC) ([#127](https://github.com/trycourier/courier-python/issues/127)) ([e3757cc](https://github.com/trycourier/courier-python/commit/e3757cc4a457623795cc8e7aa99a6079ad5c001d))
36+
37+
38+
### Refactors
39+
40+
* **types:** use `extra_items` from PEP 728 ([e69f274](https://github.com/trycourier/courier-python/commit/e69f274a31bb179e242b89851468c234f5bbfa2f))
41+
342
## 7.8.0 (2026-02-06)
443

544
Full Changelog: [v7.7.1...v7.8.0](https://github.com/trycourier/courier-python/compare/v7.7.1...v7.8.0)

CONTRIBUTING.md

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -85,13 +85,6 @@ $ pip install ./path-to-wheel-file.whl
8585

8686
## Running tests
8787

88-
Most tests require you to [set up a mock server](https://github.com/stoplightio/prism) against the OpenAPI spec to run the tests.
89-
90-
```sh
91-
# you will need npm installed
92-
$ npx prism mock path/to/your/openapi.yml
93-
```
94-
9588
```sh
9689
$ ./scripts/test
9790
```

api.md

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,24 @@ Methods:
155155
- <code title="post /automations/invoke">client.automations.invoke.<a href="./src/courier/resources/automations/invoke.py">invoke_ad_hoc</a>(\*\*<a href="src/courier/types/automations/invoke_invoke_ad_hoc_params.py">params</a>) -> <a href="./src/courier/types/automation_invoke_response.py">AutomationInvokeResponse</a></code>
156156
- <code title="post /automations/{templateId}/invoke">client.automations.invoke.<a href="./src/courier/resources/automations/invoke.py">invoke_by_template</a>(template_id, \*\*<a href="src/courier/types/automations/invoke_invoke_by_template_params.py">params</a>) -> <a href="./src/courier/types/automation_invoke_response.py">AutomationInvokeResponse</a></code>
157157

158+
# Journeys
159+
160+
Types:
161+
162+
```python
163+
from courier.types import (
164+
Journey,
165+
JourneysInvokeRequest,
166+
JourneysInvokeResponse,
167+
JourneysListResponse,
168+
)
169+
```
170+
171+
Methods:
172+
173+
- <code title="get /journeys">client.journeys.<a href="./src/courier/resources/journeys.py">list</a>(\*\*<a href="src/courier/types/journey_list_params.py">params</a>) -> <a href="./src/courier/types/journeys_list_response.py">JourneysListResponse</a></code>
174+
- <code title="post /journeys/{templateId}/invoke">client.journeys.<a href="./src/courier/resources/journeys.py">invoke</a>(template_id, \*\*<a href="src/courier/types/journey_invoke_params.py">params</a>) -> <a href="./src/courier/types/journeys_invoke_response.py">JourneysInvokeResponse</a></code>
175+
158176
# Brands
159177

160178
Types:
@@ -473,4 +491,4 @@ Methods:
473491
- <code title="get /users/{user_id}/tokens">client.users.tokens.<a href="./src/courier/resources/users/tokens.py">list</a>(user_id) -> <a href="./src/courier/types/users/token_list_response.py">TokenListResponse</a></code>
474492
- <code title="delete /users/{user_id}/tokens/{token}">client.users.tokens.<a href="./src/courier/resources/users/tokens.py">delete</a>(token, \*, user_id) -> None</code>
475493
- <code title="put /users/{user_id}/tokens">client.users.tokens.<a href="./src/courier/resources/users/tokens.py">add_multiple</a>(user_id) -> None</code>
476-
- <code title="put /users/{user_id}/tokens/{token}">client.users.tokens.<a href="./src/courier/resources/users/tokens.py">add_single</a>(path_token, \*, user_id, \*\*<a href="src/courier/types/users/token_add_single_params.py">params</a>) -> None</code>
494+
- <code title="put /users/{user_id}/tokens/{token}">client.users.tokens.<a href="./src/courier/resources/users/tokens.py">add_single</a>(token, \*, user_id, \*\*<a href="src/courier/types/users/token_add_single_params.py">params</a>) -> None</code>

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "trycourier"
3-
version = "7.8.0"
3+
version = "7.9.0"
44
description = "The official Python library for the Courier API"
55
dynamic = ["readme"]
66
license = "Apache-2.0"
@@ -69,7 +69,7 @@ format = { chain = [
6969
# run formatting again to fix any inconsistencies when imports are stripped
7070
"format:ruff",
7171
]}
72-
"format:docs" = "python scripts/utils/ruffen-docs.py README.md api.md"
72+
"format:docs" = "bash -c 'python scripts/utils/ruffen-docs.py README.md $(find . -type f -name api.md)'"
7373
"format:ruff" = "ruff format"
7474

7575
"lint" = { chain = [

requirements-dev.lock

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@
1212
-e file:.
1313
aiohappyeyeballs==2.6.1
1414
# via aiohttp
15-
aiohttp==3.13.2
15+
aiohttp==3.13.3
1616
# via httpx-aiohttp
1717
# via trycourier
1818
aiosignal==1.4.0
1919
# via aiohttp
2020
annotated-types==0.7.0
2121
# via pydantic
22-
anyio==4.12.0
22+
anyio==4.12.1
2323
# via httpx
2424
# via trycourier
2525
argcomplete==3.6.3
@@ -31,7 +31,7 @@ attrs==25.4.0
3131
# via nox
3232
backports-asyncio-runner==1.2.0
3333
# via pytest-asyncio
34-
certifi==2025.11.12
34+
certifi==2026.1.4
3535
# via httpcore
3636
# via httpx
3737
colorlog==6.10.1
@@ -61,15 +61,15 @@ httpx==0.28.1
6161
# via httpx-aiohttp
6262
# via respx
6363
# via trycourier
64-
httpx-aiohttp==0.1.9
64+
httpx-aiohttp==0.1.12
6565
# via trycourier
6666
humanize==4.13.0
6767
# via nox
6868
idna==3.11
6969
# via anyio
7070
# via httpx
7171
# via yarl
72-
importlib-metadata==8.7.0
72+
importlib-metadata==8.7.1
7373
iniconfig==2.1.0
7474
# via pytest
7575
markdown-it-py==3.0.0
@@ -82,14 +82,14 @@ multidict==6.7.0
8282
mypy==1.17.0
8383
mypy-extensions==1.1.0
8484
# via mypy
85-
nodeenv==1.9.1
85+
nodeenv==1.10.0
8686
# via pyright
8787
nox==2025.11.12
8888
packaging==25.0
8989
# via dependency-groups
9090
# via nox
9191
# via pytest
92-
pathspec==0.12.1
92+
pathspec==1.0.3
9393
# via mypy
9494
platformdirs==4.4.0
9595
# via virtualenv
@@ -115,13 +115,13 @@ python-dateutil==2.9.0.post0
115115
# via time-machine
116116
respx==0.22.0
117117
rich==14.2.0
118-
ruff==0.14.7
118+
ruff==0.14.13
119119
six==1.17.0
120120
# via python-dateutil
121121
sniffio==1.3.1
122122
# via trycourier
123123
time-machine==2.19.0
124-
tomli==2.3.0
124+
tomli==2.4.0
125125
# via dependency-groups
126126
# via mypy
127127
# via nox
@@ -141,7 +141,7 @@ typing-extensions==4.15.0
141141
# via virtualenv
142142
typing-inspection==0.4.2
143143
# via pydantic
144-
virtualenv==20.35.4
144+
virtualenv==20.36.1
145145
# via nox
146146
yarl==1.22.0
147147
# via aiohttp

requirements.lock

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,21 @@
1212
-e file:.
1313
aiohappyeyeballs==2.6.1
1414
# via aiohttp
15-
aiohttp==3.13.2
15+
aiohttp==3.13.3
1616
# via httpx-aiohttp
1717
# via trycourier
1818
aiosignal==1.4.0
1919
# via aiohttp
2020
annotated-types==0.7.0
2121
# via pydantic
22-
anyio==4.12.0
22+
anyio==4.12.1
2323
# via httpx
2424
# via trycourier
2525
async-timeout==5.0.1
2626
# via aiohttp
2727
attrs==25.4.0
2828
# via aiohttp
29-
certifi==2025.11.12
29+
certifi==2026.1.4
3030
# via httpcore
3131
# via httpx
3232
distro==1.9.0
@@ -43,7 +43,7 @@ httpcore==1.0.9
4343
httpx==0.28.1
4444
# via httpx-aiohttp
4545
# via trycourier
46-
httpx-aiohttp==0.1.9
46+
httpx-aiohttp==0.1.12
4747
# via trycourier
4848
idna==3.11
4949
# via anyio

scripts/mock

Lines changed: 0 additions & 41 deletions
This file was deleted.

0 commit comments

Comments
 (0)