Skip to content

Commit a3a0b9d

Browse files
feat(api): update examples (#22)
1 parent f7cb124 commit a3a0b9d

File tree

2 files changed

+53
-45
lines changed

2 files changed

+53
-45
lines changed

Diff for: README.md

+25-25
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ client = Gitpod(
3131
bearer_token=os.environ.get("GITPOD_API_KEY"), # This is the default and can be omitted
3232
)
3333

34-
runner = client.runners.create()
35-
print(runner.access_token)
34+
response = client.identity.get_authenticated_identity()
35+
print(response.organization_id)
3636
```
3737

3838
While you can provide a `bearer_token` keyword argument,
@@ -55,8 +55,8 @@ client = AsyncGitpod(
5555

5656

5757
async def main() -> None:
58-
runner = await client.runners.create()
59-
print(runner.access_token)
58+
response = await client.identity.get_authenticated_identity()
59+
print(response.organization_id)
6060

6161

6262
asyncio.run(main())
@@ -84,12 +84,12 @@ from gitpod import Gitpod
8484

8585
client = Gitpod()
8686

87-
all_services = []
87+
all_environments = []
8888
# Automatically fetches more pages as needed.
89-
for service in client.environments.automations.services.list():
90-
# Do something with service here
91-
all_services.append(service)
92-
print(all_services)
89+
for environment in client.environments.list():
90+
# Do something with environment here
91+
all_environments.append(environment)
92+
print(all_environments)
9393
```
9494

9595
Or, asynchronously:
@@ -102,11 +102,11 @@ client = AsyncGitpod()
102102

103103

104104
async def main() -> None:
105-
all_services = []
105+
all_environments = []
106106
# Iterate through items across all pages, issuing requests as needed.
107-
async for service in client.environments.automations.services.list():
108-
all_services.append(service)
109-
print(all_services)
107+
async for environment in client.environments.list():
108+
all_environments.append(environment)
109+
print(all_environments)
110110

111111

112112
asyncio.run(main())
@@ -115,23 +115,23 @@ asyncio.run(main())
115115
Alternatively, you can use the `.has_next_page()`, `.next_page_info()`, or `.get_next_page()` methods for more granular control working with pages:
116116

117117
```python
118-
first_page = await client.environments.automations.services.list()
118+
first_page = await client.environments.list()
119119
if first_page.has_next_page():
120120
print(f"will fetch next page using these details: {first_page.next_page_info()}")
121121
next_page = await first_page.get_next_page()
122-
print(f"number of items we just fetched: {len(next_page.services)}")
122+
print(f"number of items we just fetched: {len(next_page.environments)}")
123123

124124
# Remove `await` for non-async usage.
125125
```
126126

127127
Or just work directly with the returned data:
128128

129129
```python
130-
first_page = await client.environments.automations.services.list()
130+
first_page = await client.environments.list()
131131

132132
print(f"next page cursor: {first_page.pagination.next_token}") # => "next page cursor: ..."
133-
for service in first_page.services:
134-
print(service.id)
133+
for environment in first_page.environments:
134+
print(environment.id)
135135

136136
# Remove `await` for non-async usage.
137137
```
@@ -152,7 +152,7 @@ from gitpod import Gitpod
152152
client = Gitpod()
153153

154154
try:
155-
client.runners.create()
155+
client.identity.get_authenticated_identity()
156156
except gitpod.APIConnectionError as e:
157157
print("The server could not be reached")
158158
print(e.__cause__) # an underlying Exception, likely raised within httpx.
@@ -195,7 +195,7 @@ client = Gitpod(
195195
)
196196

197197
# Or, configure per-request:
198-
client.with_options(max_retries=5).runners.create()
198+
client.with_options(max_retries=5).identity.get_authenticated_identity()
199199
```
200200

201201
### Timeouts
@@ -218,7 +218,7 @@ client = Gitpod(
218218
)
219219

220220
# Override per-request:
221-
client.with_options(timeout=5.0).runners.create()
221+
client.with_options(timeout=5.0).identity.get_authenticated_identity()
222222
```
223223

224224
On timeout, an `APITimeoutError` is thrown.
@@ -259,11 +259,11 @@ The "raw" Response object can be accessed by prefixing `.with_raw_response.` to
259259
from gitpod import Gitpod
260260

261261
client = Gitpod()
262-
response = client.runners.with_raw_response.create()
262+
response = client.identity.with_raw_response.get_authenticated_identity()
263263
print(response.headers.get('X-My-Header'))
264264

265-
runner = response.parse() # get the object that `runners.create()` would have returned
266-
print(runner.access_token)
265+
identity = response.parse() # get the object that `identity.get_authenticated_identity()` would have returned
266+
print(identity.organization_id)
267267
```
268268

269269
These methods return an [`APIResponse`](https://github.com/gitpod-io/gitpod-sdk-python/tree/main/src/gitpod/_response.py) object.
@@ -277,7 +277,7 @@ The above interface eagerly reads the full response body when you make the reque
277277
To stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods.
278278

279279
```python
280-
with client.runners.with_streaming_response.create() as response:
280+
with client.identity.with_streaming_response.get_authenticated_identity() as response:
281281
print(response.headers.get("X-My-Header"))
282282

283283
for line in response.iter_lines():

Diff for: tests/test_client.py

+28-20
Original file line numberDiff line numberDiff line change
@@ -735,13 +735,13 @@ def test_parse_retry_after_header(self, remaining_retries: int, retry_after: str
735735
@mock.patch("gitpod._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
736736
@pytest.mark.respx(base_url=base_url)
737737
def test_retrying_timeout_errors_doesnt_leak(self, respx_mock: MockRouter) -> None:
738-
respx_mock.post("/gitpod.v1.RunnerService/CreateRunner").mock(
738+
respx_mock.post("/gitpod.v1.IdentityService/GetAuthenticatedIdentity").mock(
739739
side_effect=httpx.TimeoutException("Test timeout error")
740740
)
741741

742742
with pytest.raises(APITimeoutError):
743743
self.client.post(
744-
"/gitpod.v1.RunnerService/CreateRunner",
744+
"/gitpod.v1.IdentityService/GetAuthenticatedIdentity",
745745
body=cast(object, dict()),
746746
cast_to=httpx.Response,
747747
options={"headers": {RAW_RESPONSE_HEADER: "stream"}},
@@ -752,11 +752,11 @@ def test_retrying_timeout_errors_doesnt_leak(self, respx_mock: MockRouter) -> No
752752
@mock.patch("gitpod._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
753753
@pytest.mark.respx(base_url=base_url)
754754
def test_retrying_status_errors_doesnt_leak(self, respx_mock: MockRouter) -> None:
755-
respx_mock.post("/gitpod.v1.RunnerService/CreateRunner").mock(return_value=httpx.Response(500))
755+
respx_mock.post("/gitpod.v1.IdentityService/GetAuthenticatedIdentity").mock(return_value=httpx.Response(500))
756756

757757
with pytest.raises(APIStatusError):
758758
self.client.post(
759-
"/gitpod.v1.RunnerService/CreateRunner",
759+
"/gitpod.v1.IdentityService/GetAuthenticatedIdentity",
760760
body=cast(object, dict()),
761761
cast_to=httpx.Response,
762762
options={"headers": {RAW_RESPONSE_HEADER: "stream"}},
@@ -788,9 +788,9 @@ def retry_handler(_request: httpx.Request) -> httpx.Response:
788788
return httpx.Response(500)
789789
return httpx.Response(200)
790790

791-
respx_mock.post("/gitpod.v1.RunnerService/CreateRunner").mock(side_effect=retry_handler)
791+
respx_mock.post("/gitpod.v1.IdentityService/GetAuthenticatedIdentity").mock(side_effect=retry_handler)
792792

793-
response = client.runners.with_raw_response.create()
793+
response = client.identity.with_raw_response.get_authenticated_identity()
794794

795795
assert response.retries_taken == failures_before_success
796796
assert int(response.http_request.headers.get("x-stainless-retry-count")) == failures_before_success
@@ -812,9 +812,11 @@ def retry_handler(_request: httpx.Request) -> httpx.Response:
812812
return httpx.Response(500)
813813
return httpx.Response(200)
814814

815-
respx_mock.post("/gitpod.v1.RunnerService/CreateRunner").mock(side_effect=retry_handler)
815+
respx_mock.post("/gitpod.v1.IdentityService/GetAuthenticatedIdentity").mock(side_effect=retry_handler)
816816

817-
response = client.runners.with_raw_response.create(extra_headers={"x-stainless-retry-count": Omit()})
817+
response = client.identity.with_raw_response.get_authenticated_identity(
818+
extra_headers={"x-stainless-retry-count": Omit()}
819+
)
818820

819821
assert len(response.http_request.headers.get_list("x-stainless-retry-count")) == 0
820822

@@ -835,9 +837,11 @@ def retry_handler(_request: httpx.Request) -> httpx.Response:
835837
return httpx.Response(500)
836838
return httpx.Response(200)
837839

838-
respx_mock.post("/gitpod.v1.RunnerService/CreateRunner").mock(side_effect=retry_handler)
840+
respx_mock.post("/gitpod.v1.IdentityService/GetAuthenticatedIdentity").mock(side_effect=retry_handler)
839841

840-
response = client.runners.with_raw_response.create(extra_headers={"x-stainless-retry-count": "42"})
842+
response = client.identity.with_raw_response.get_authenticated_identity(
843+
extra_headers={"x-stainless-retry-count": "42"}
844+
)
841845

842846
assert response.http_request.headers.get("x-stainless-retry-count") == "42"
843847

@@ -1531,13 +1535,13 @@ async def test_parse_retry_after_header(self, remaining_retries: int, retry_afte
15311535
@mock.patch("gitpod._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
15321536
@pytest.mark.respx(base_url=base_url)
15331537
async def test_retrying_timeout_errors_doesnt_leak(self, respx_mock: MockRouter) -> None:
1534-
respx_mock.post("/gitpod.v1.RunnerService/CreateRunner").mock(
1538+
respx_mock.post("/gitpod.v1.IdentityService/GetAuthenticatedIdentity").mock(
15351539
side_effect=httpx.TimeoutException("Test timeout error")
15361540
)
15371541

15381542
with pytest.raises(APITimeoutError):
15391543
await self.client.post(
1540-
"/gitpod.v1.RunnerService/CreateRunner",
1544+
"/gitpod.v1.IdentityService/GetAuthenticatedIdentity",
15411545
body=cast(object, dict()),
15421546
cast_to=httpx.Response,
15431547
options={"headers": {RAW_RESPONSE_HEADER: "stream"}},
@@ -1548,11 +1552,11 @@ async def test_retrying_timeout_errors_doesnt_leak(self, respx_mock: MockRouter)
15481552
@mock.patch("gitpod._base_client.BaseClient._calculate_retry_timeout", _low_retry_timeout)
15491553
@pytest.mark.respx(base_url=base_url)
15501554
async def test_retrying_status_errors_doesnt_leak(self, respx_mock: MockRouter) -> None:
1551-
respx_mock.post("/gitpod.v1.RunnerService/CreateRunner").mock(return_value=httpx.Response(500))
1555+
respx_mock.post("/gitpod.v1.IdentityService/GetAuthenticatedIdentity").mock(return_value=httpx.Response(500))
15521556

15531557
with pytest.raises(APIStatusError):
15541558
await self.client.post(
1555-
"/gitpod.v1.RunnerService/CreateRunner",
1559+
"/gitpod.v1.IdentityService/GetAuthenticatedIdentity",
15561560
body=cast(object, dict()),
15571561
cast_to=httpx.Response,
15581562
options={"headers": {RAW_RESPONSE_HEADER: "stream"}},
@@ -1585,9 +1589,9 @@ def retry_handler(_request: httpx.Request) -> httpx.Response:
15851589
return httpx.Response(500)
15861590
return httpx.Response(200)
15871591

1588-
respx_mock.post("/gitpod.v1.RunnerService/CreateRunner").mock(side_effect=retry_handler)
1592+
respx_mock.post("/gitpod.v1.IdentityService/GetAuthenticatedIdentity").mock(side_effect=retry_handler)
15891593

1590-
response = await client.runners.with_raw_response.create()
1594+
response = await client.identity.with_raw_response.get_authenticated_identity()
15911595

15921596
assert response.retries_taken == failures_before_success
15931597
assert int(response.http_request.headers.get("x-stainless-retry-count")) == failures_before_success
@@ -1610,9 +1614,11 @@ def retry_handler(_request: httpx.Request) -> httpx.Response:
16101614
return httpx.Response(500)
16111615
return httpx.Response(200)
16121616

1613-
respx_mock.post("/gitpod.v1.RunnerService/CreateRunner").mock(side_effect=retry_handler)
1617+
respx_mock.post("/gitpod.v1.IdentityService/GetAuthenticatedIdentity").mock(side_effect=retry_handler)
16141618

1615-
response = await client.runners.with_raw_response.create(extra_headers={"x-stainless-retry-count": Omit()})
1619+
response = await client.identity.with_raw_response.get_authenticated_identity(
1620+
extra_headers={"x-stainless-retry-count": Omit()}
1621+
)
16161622

16171623
assert len(response.http_request.headers.get_list("x-stainless-retry-count")) == 0
16181624

@@ -1634,9 +1640,11 @@ def retry_handler(_request: httpx.Request) -> httpx.Response:
16341640
return httpx.Response(500)
16351641
return httpx.Response(200)
16361642

1637-
respx_mock.post("/gitpod.v1.RunnerService/CreateRunner").mock(side_effect=retry_handler)
1643+
respx_mock.post("/gitpod.v1.IdentityService/GetAuthenticatedIdentity").mock(side_effect=retry_handler)
16381644

1639-
response = await client.runners.with_raw_response.create(extra_headers={"x-stainless-retry-count": "42"})
1645+
response = await client.identity.with_raw_response.get_authenticated_identity(
1646+
extra_headers={"x-stainless-retry-count": "42"}
1647+
)
16401648

16411649
assert response.http_request.headers.get("x-stainless-retry-count") == "42"
16421650

0 commit comments

Comments
 (0)