diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index e72f11310..a780111df 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "1.14.0"
+ ".": "1.14.1"
}
\ No newline at end of file
diff --git a/.stats.yml b/.stats.yml
index b1a5e6c48..8eb4b3559 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
-configured_endpoints: 124
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-f32de1991bef7651f9b0970b503e2986c7a88708c4a408d54abe6d089795e9f9.yml
-openapi_spec_hash: d2005d48f75fba4a5368209cf49641dc
-config_hash: 5ffcc19219880e7d9ce43c1e6860568c
+configured_endpoints: 116
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/runloop-ai%2Frunloop-c33fa67077f6f9cc8cb6d82a71657693f7288e1eff48b7b94099f2f11966b67b.yml
+openapi_spec_hash: 4329105152eb16bc5d2063038603ea61
+config_hash: 6649774d90af30c3559d6a242b6cb4b0
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 70c9db0e8..bbd58820a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,20 @@
# Changelog
+## 1.14.1 (2026-04-01)
+
+Full Changelog: [v1.14.0...v1.14.1](https://github.com/runloopai/api-client-python/compare/v1.14.0...v1.14.1)
+
+### Bug Fixes
+
+* **sdk:** remove incorrect remove_tunnel DeprecationWarning ([#775](https://github.com/runloopai/api-client-python/issues/775)) ([925c735](https://github.com/runloopai/api-client-python/commit/925c7353c5331df1f83052ab42793cc076e1a4ea))
+
+
+### Chores
+
+* Hide repository connection APIs from public OpenAPI spec ([#8462](https://github.com/runloopai/api-client-python/issues/8462)) ([2eac1fc](https://github.com/runloopai/api-client-python/commit/2eac1fcf5c2d05bcbe7ba596b5f2789f98aae660))
+* **tests:** bump steady to v0.20.1 ([c19d63d](https://github.com/runloopai/api-client-python/commit/c19d63d141ef2f60df570ebb2c21d8fcda2a98b9))
+* **tests:** bump steady to v0.20.2 ([3c0beeb](https://github.com/runloopai/api-client-python/commit/3c0beeb5b142e30c557aa6e85d407ecf65c78051))
+
## 1.14.0 (2026-03-31)
Full Changelog: [v1.13.3...v1.14.0](https://github.com/runloopai/api-client-python/compare/v1.13.3...v1.14.0)
diff --git a/api.md b/api.md
index 14d010381..135eb6e8f 100644
--- a/api.md
+++ b/api.md
@@ -379,31 +379,6 @@ Methods:
- client.objects.download(id, \*\*params) -> ObjectDownloadURLView
- client.objects.list_public(\*\*params) -> SyncObjectsCursorIDPage[ObjectView]
-# Repositories
-
-Types:
-
-```python
-from runloop_api_client.types import (
- RepositoryConnectionListView,
- RepositoryConnectionView,
- RepositoryInspectionDetails,
- RepositoryInspectionListView,
- RepositoryManifestView,
-)
-```
-
-Methods:
-
-- client.repositories.create(\*\*params) -> RepositoryConnectionView
-- client.repositories.retrieve(id) -> RepositoryConnectionView
-- client.repositories.list(\*\*params) -> SyncRepositoriesCursorIDPage[RepositoryConnectionView]
-- client.repositories.delete(id) -> object
-- client.repositories.inspect(id, \*\*params) -> RepositoryInspectionDetails
-- client.repositories.list_inspections(id) -> RepositoryInspectionListView
-- client.repositories.refresh(id, \*\*params) -> object
-- client.repositories.retrieve_inspection(id) -> RepositoryInspectionDetails
-
# Secrets
Types:
diff --git a/pyproject.toml b/pyproject.toml
index 93bd1ad77..6ca424c4e 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "runloop_api_client"
-version = "1.14.0"
+version = "1.14.1"
description = "The official Python library for the runloop API"
dynamic = ["readme"]
license = "MIT"
diff --git a/scripts/mock b/scripts/mock
index 290e21b9a..5cd7c157b 100755
--- a/scripts/mock
+++ b/scripts/mock
@@ -22,9 +22,9 @@ echo "==> Starting mock server with URL ${URL}"
# Run steady mock on the given spec
if [ "$1" == "--daemon" ]; then
# Pre-install the package so the download doesn't eat into the startup timeout
- npm exec --package=@stdy/cli@0.19.7 -- steady --version
+ npm exec --package=@stdy/cli@0.20.2 -- steady --version
- npm exec --package=@stdy/cli@0.19.7 -- steady --host 127.0.0.1 -p 4010 --validator-query-array-format=comma --validator-form-array-format=comma --validator-query-object-format=brackets --validator-form-object-format=brackets "$URL" &> .stdy.log &
+ npm exec --package=@stdy/cli@0.20.2 -- steady --host 127.0.0.1 -p 4010 --validator-query-array-format=comma --validator-form-array-format=comma --validator-query-object-format=brackets --validator-form-object-format=brackets "$URL" &> .stdy.log &
# Wait for server to come online via health endpoint (max 30s)
echo -n "Waiting for server"
@@ -48,5 +48,5 @@ if [ "$1" == "--daemon" ]; then
echo
else
- npm exec --package=@stdy/cli@0.19.7 -- steady --host 127.0.0.1 -p 4010 --validator-query-array-format=comma --validator-form-array-format=comma --validator-query-object-format=brackets --validator-form-object-format=brackets "$URL"
+ npm exec --package=@stdy/cli@0.20.2 -- steady --host 127.0.0.1 -p 4010 --validator-query-array-format=comma --validator-form-array-format=comma --validator-query-object-format=brackets --validator-form-object-format=brackets "$URL"
fi
diff --git a/scripts/test b/scripts/test
index a631738f5..5f30115cb 100755
--- a/scripts/test
+++ b/scripts/test
@@ -43,7 +43,7 @@ elif ! steady_is_running ; then
echo -e "To run the server, pass in the path or url of your OpenAPI"
echo -e "spec to the steady command:"
echo
- echo -e " \$ ${YELLOW}npm exec --package=@stdy/cli@0.19.7 -- steady path/to/your.openapi.yml --host 127.0.0.1 -p 4010 --validator-query-array-format=comma --validator-form-array-format=comma --validator-query-object-format=brackets --validator-form-object-format=brackets${NC}"
+ echo -e " \$ ${YELLOW}npm exec --package=@stdy/cli@0.20.2 -- steady path/to/your.openapi.yml --host 127.0.0.1 -p 4010 --validator-query-array-format=comma --validator-form-array-format=comma --validator-query-object-format=brackets --validator-form-object-format=brackets${NC}"
echo
exit 1
diff --git a/src/runloop_api_client/_client.py b/src/runloop_api_client/_client.py
index 31ef26d72..28e1e6f94 100644
--- a/src/runloop_api_client/_client.py
+++ b/src/runloop_api_client/_client.py
@@ -41,7 +41,6 @@
benchmarks,
blueprints,
mcp_configs,
- repositories,
benchmark_jobs,
benchmark_runs,
gateway_configs,
@@ -54,7 +53,6 @@
from .resources.blueprints import BlueprintsResource, AsyncBlueprintsResource
from .resources.axons.axons import AxonsResource, AsyncAxonsResource
from .resources.mcp_configs import McpConfigsResource, AsyncMcpConfigsResource
- from .resources.repositories import RepositoriesResource, AsyncRepositoriesResource
from .resources.benchmark_jobs import BenchmarkJobsResource, AsyncBenchmarkJobsResource
from .resources.benchmark_runs import BenchmarkRunsResource, AsyncBenchmarkRunsResource
from .resources.gateway_configs import GatewayConfigsResource, AsyncGatewayConfigsResource
@@ -176,12 +174,6 @@ def objects(self) -> ObjectsResource:
return ObjectsResource(self)
- @cached_property
- def repositories(self) -> RepositoriesResource:
- from .resources.repositories import RepositoriesResource
-
- return RepositoriesResource(self)
-
@cached_property
def secrets(self) -> SecretsResource:
from .resources.secrets import SecretsResource
@@ -430,12 +422,6 @@ def objects(self) -> AsyncObjectsResource:
return AsyncObjectsResource(self)
- @cached_property
- def repositories(self) -> AsyncRepositoriesResource:
- from .resources.repositories import AsyncRepositoriesResource
-
- return AsyncRepositoriesResource(self)
-
@cached_property
def secrets(self) -> AsyncSecretsResource:
from .resources.secrets import AsyncSecretsResource
@@ -633,12 +619,6 @@ def objects(self) -> objects.ObjectsResourceWithRawResponse:
return ObjectsResourceWithRawResponse(self._client.objects)
- @cached_property
- def repositories(self) -> repositories.RepositoriesResourceWithRawResponse:
- from .resources.repositories import RepositoriesResourceWithRawResponse
-
- return RepositoriesResourceWithRawResponse(self._client.repositories)
-
@cached_property
def secrets(self) -> secrets.SecretsResourceWithRawResponse:
from .resources.secrets import SecretsResourceWithRawResponse
@@ -724,12 +704,6 @@ def objects(self) -> objects.AsyncObjectsResourceWithRawResponse:
return AsyncObjectsResourceWithRawResponse(self._client.objects)
- @cached_property
- def repositories(self) -> repositories.AsyncRepositoriesResourceWithRawResponse:
- from .resources.repositories import AsyncRepositoriesResourceWithRawResponse
-
- return AsyncRepositoriesResourceWithRawResponse(self._client.repositories)
-
@cached_property
def secrets(self) -> secrets.AsyncSecretsResourceWithRawResponse:
from .resources.secrets import AsyncSecretsResourceWithRawResponse
@@ -815,12 +789,6 @@ def objects(self) -> objects.ObjectsResourceWithStreamingResponse:
return ObjectsResourceWithStreamingResponse(self._client.objects)
- @cached_property
- def repositories(self) -> repositories.RepositoriesResourceWithStreamingResponse:
- from .resources.repositories import RepositoriesResourceWithStreamingResponse
-
- return RepositoriesResourceWithStreamingResponse(self._client.repositories)
-
@cached_property
def secrets(self) -> secrets.SecretsResourceWithStreamingResponse:
from .resources.secrets import SecretsResourceWithStreamingResponse
@@ -906,12 +874,6 @@ def objects(self) -> objects.AsyncObjectsResourceWithStreamingResponse:
return AsyncObjectsResourceWithStreamingResponse(self._client.objects)
- @cached_property
- def repositories(self) -> repositories.AsyncRepositoriesResourceWithStreamingResponse:
- from .resources.repositories import AsyncRepositoriesResourceWithStreamingResponse
-
- return AsyncRepositoriesResourceWithStreamingResponse(self._client.repositories)
-
@cached_property
def secrets(self) -> secrets.AsyncSecretsResourceWithStreamingResponse:
from .resources.secrets import AsyncSecretsResourceWithStreamingResponse
diff --git a/src/runloop_api_client/_version.py b/src/runloop_api_client/_version.py
index 51ea16bb5..0640f31e8 100644
--- a/src/runloop_api_client/_version.py
+++ b/src/runloop_api_client/_version.py
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
__title__ = "runloop_api_client"
-__version__ = "1.14.0" # x-release-please-version
+__version__ = "1.14.1" # x-release-please-version
diff --git a/src/runloop_api_client/pagination.py b/src/runloop_api_client/pagination.py
index 9d1fd9491..e9804970c 100644
--- a/src/runloop_api_client/pagination.py
+++ b/src/runloop_api_client/pagination.py
@@ -10,8 +10,6 @@
"AsyncBlueprintsCursorIDPage",
"SyncDevboxesCursorIDPage",
"AsyncDevboxesCursorIDPage",
- "SyncRepositoriesCursorIDPage",
- "AsyncRepositoriesCursorIDPage",
"SyncDiskSnapshotsCursorIDPage",
"AsyncDiskSnapshotsCursorIDPage",
"SyncBenchmarksCursorIDPage",
@@ -51,11 +49,6 @@ class DevboxesCursorIDPageItem(Protocol):
id: str
-@runtime_checkable
-class RepositoriesCursorIDPageItem(Protocol):
- id: str
-
-
@runtime_checkable
class DiskSnapshotsCursorIDPageItem(Protocol):
id: str
@@ -252,74 +245,6 @@ def next_page_info(self) -> Optional[PageInfo]:
return PageInfo(params={"starting_after": item.id})
-class SyncRepositoriesCursorIDPage(BaseSyncPage[_T], BasePage[_T], Generic[_T]):
- repositories: List[_T]
- has_more: Optional[bool] = None
- total_count: Optional[int] = None
-
- @override
- def _get_page_items(self) -> List[_T]:
- repositories = self.repositories
- if not repositories:
- return []
- return repositories
-
- @override
- def has_next_page(self) -> bool:
- has_more = self.has_more
- if has_more is not None and has_more is False:
- return False
-
- return super().has_next_page()
-
- @override
- def next_page_info(self) -> Optional[PageInfo]:
- repositories = self.repositories
- if not repositories:
- return None
-
- item = cast(Any, repositories[-1])
- if not isinstance(item, RepositoriesCursorIDPageItem) or item.id is None: # pyright: ignore[reportUnnecessaryComparison]
- # TODO emit warning log
- return None
-
- return PageInfo(params={"starting_after": item.id})
-
-
-class AsyncRepositoriesCursorIDPage(BaseAsyncPage[_T], BasePage[_T], Generic[_T]):
- repositories: List[_T]
- has_more: Optional[bool] = None
- total_count: Optional[int] = None
-
- @override
- def _get_page_items(self) -> List[_T]:
- repositories = self.repositories
- if not repositories:
- return []
- return repositories
-
- @override
- def has_next_page(self) -> bool:
- has_more = self.has_more
- if has_more is not None and has_more is False:
- return False
-
- return super().has_next_page()
-
- @override
- def next_page_info(self) -> Optional[PageInfo]:
- repositories = self.repositories
- if not repositories:
- return None
-
- item = cast(Any, repositories[-1])
- if not isinstance(item, RepositoriesCursorIDPageItem) or item.id is None: # pyright: ignore[reportUnnecessaryComparison]
- # TODO emit warning log
- return None
-
- return PageInfo(params={"starting_after": item.id})
-
-
class SyncDiskSnapshotsCursorIDPage(BaseSyncPage[_T], BasePage[_T], Generic[_T]):
snapshots: List[_T]
has_more: Optional[bool] = None
diff --git a/src/runloop_api_client/resources/__init__.py b/src/runloop_api_client/resources/__init__.py
index 58d7488f6..292f6d666 100644
--- a/src/runloop_api_client/resources/__init__.py
+++ b/src/runloop_api_client/resources/__init__.py
@@ -72,14 +72,6 @@
McpConfigsResourceWithStreamingResponse,
AsyncMcpConfigsResourceWithStreamingResponse,
)
-from .repositories import (
- RepositoriesResource,
- AsyncRepositoriesResource,
- RepositoriesResourceWithRawResponse,
- AsyncRepositoriesResourceWithRawResponse,
- RepositoriesResourceWithStreamingResponse,
- AsyncRepositoriesResourceWithStreamingResponse,
-)
from .benchmark_jobs import (
BenchmarkJobsResource,
AsyncBenchmarkJobsResource,
@@ -168,12 +160,6 @@
"AsyncObjectsResourceWithRawResponse",
"ObjectsResourceWithStreamingResponse",
"AsyncObjectsResourceWithStreamingResponse",
- "RepositoriesResource",
- "AsyncRepositoriesResource",
- "RepositoriesResourceWithRawResponse",
- "AsyncRepositoriesResourceWithRawResponse",
- "RepositoriesResourceWithStreamingResponse",
- "AsyncRepositoriesResourceWithStreamingResponse",
"SecretsResource",
"AsyncSecretsResource",
"SecretsResourceWithRawResponse",
diff --git a/src/runloop_api_client/resources/repositories.py b/src/runloop_api_client/resources/repositories.py
deleted file mode 100644
index 5b961cf64..000000000
--- a/src/runloop_api_client/resources/repositories.py
+++ /dev/null
@@ -1,928 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from __future__ import annotations
-
-import typing_extensions
-from typing import Optional
-
-import httpx
-
-from ..types import (
- repository_list_params,
- repository_create_params,
- repository_inspect_params,
- repository_refresh_params,
-)
-from .._types import Body, Omit, Query, Headers, NotGiven, omit, not_given
-from .._utils import path_template, maybe_transform, async_maybe_transform
-from .._compat import cached_property
-from .._resource import SyncAPIResource, AsyncAPIResource
-from .._response import (
- to_raw_response_wrapper,
- to_streamed_response_wrapper,
- async_to_raw_response_wrapper,
- async_to_streamed_response_wrapper,
-)
-from ..pagination import SyncRepositoriesCursorIDPage, AsyncRepositoriesCursorIDPage
-from .._base_client import AsyncPaginator, make_request_options
-from ..types.repository_connection_view import RepositoryConnectionView
-from ..types.repository_inspection_details import RepositoryInspectionDetails
-from ..types.repository_inspection_list_view import RepositoryInspectionListView
-
-__all__ = ["RepositoriesResource", "AsyncRepositoriesResource"]
-
-
-class RepositoriesResource(SyncAPIResource):
- @cached_property
- def with_raw_response(self) -> RepositoriesResourceWithRawResponse:
- """
- This property can be used as a prefix for any HTTP method call to return
- the raw response object instead of the parsed content.
-
- For more information, see https://www.github.com/runloopai/api-client-python#accessing-raw-response-data-eg-headers
- """
- return RepositoriesResourceWithRawResponse(self)
-
- @cached_property
- def with_streaming_response(self) -> RepositoriesResourceWithStreamingResponse:
- """
- An alternative to `.with_raw_response` that doesn't eagerly read the response body.
-
- For more information, see https://www.github.com/runloopai/api-client-python#with_streaming_response
- """
- return RepositoriesResourceWithStreamingResponse(self)
-
- def create(
- self,
- *,
- name: str,
- owner: str,
- blueprint_id: Optional[str] | Omit = omit,
- github_auth_token: Optional[str] | Omit = omit,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
- idempotency_key: str | None = None,
- ) -> RepositoryConnectionView:
- """
- Create a connection to a Github Repository and trigger an initial inspection of
- the repo's technical stack and developer environment requirements.
-
- Args:
- name: Name of the repository.
-
- owner: Account owner of the repository.
-
- blueprint_id: ID of blueprint to use as base for resulting RepositoryVersion blueprint.
-
- github_auth_token: GitHub authentication token for accessing private repositories.
-
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
-
- idempotency_key: Specify a custom idempotency key for this request
- """
- return self._post(
- "/v1/repositories",
- body=maybe_transform(
- {
- "name": name,
- "owner": owner,
- "blueprint_id": blueprint_id,
- "github_auth_token": github_auth_token,
- },
- repository_create_params.RepositoryCreateParams,
- ),
- options=make_request_options(
- extra_headers=extra_headers,
- extra_query=extra_query,
- extra_body=extra_body,
- timeout=timeout,
- idempotency_key=idempotency_key,
- ),
- cast_to=RepositoryConnectionView,
- )
-
- def retrieve(
- self,
- id: str,
- *,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
- ) -> RepositoryConnectionView:
- """
- Get Repository Connection details including latest inspection status and
- generated repository insights.
-
- Args:
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- if not id:
- raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
- return self._get(
- path_template("/v1/repositories/{id}", id=id),
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=RepositoryConnectionView,
- )
-
- def list(
- self,
- *,
- include_total_count: bool | Omit = omit,
- limit: int | Omit = omit,
- name: str | Omit = omit,
- owner: str | Omit = omit,
- starting_after: str | Omit = omit,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
- ) -> SyncRepositoriesCursorIDPage[RepositoryConnectionView]:
- """
- List all available repository connections.
-
- Args:
- include_total_count: If true (default), includes total_count in the response. Set to false to skip
- the count query for better performance on large datasets.
-
- limit: The limit of items to return. Default is 20. Max is 5000.
-
- name: Filter by repository name
-
- owner: Filter by repository owner
-
- starting_after: Load the next page of data starting after the item with the given ID.
-
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- return self._get_api_list(
- "/v1/repositories",
- page=SyncRepositoriesCursorIDPage[RepositoryConnectionView],
- options=make_request_options(
- extra_headers=extra_headers,
- extra_query=extra_query,
- extra_body=extra_body,
- timeout=timeout,
- query=maybe_transform(
- {
- "include_total_count": include_total_count,
- "limit": limit,
- "name": name,
- "owner": owner,
- "starting_after": starting_after,
- },
- repository_list_params.RepositoryListParams,
- ),
- ),
- model=RepositoryConnectionView,
- )
-
- def delete(
- self,
- id: str,
- *,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
- idempotency_key: str | None = None,
- ) -> object:
- """
- Permanently Delete a Repository Connection including any automatically generated
- inspection insights.
-
- Args:
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
-
- idempotency_key: Specify a custom idempotency key for this request
- """
- if not id:
- raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
- return self._post(
- path_template("/v1/repositories/{id}/delete", id=id),
- options=make_request_options(
- extra_headers=extra_headers,
- extra_query=extra_query,
- extra_body=extra_body,
- timeout=timeout,
- idempotency_key=idempotency_key,
- ),
- cast_to=object,
- )
-
- def inspect(
- self,
- id: str,
- *,
- github_auth_token: Optional[str] | Omit = omit,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
- idempotency_key: str | None = None,
- ) -> RepositoryInspectionDetails:
- """
- Inspect a repository connection by inspecting the specified version including
- repo's technical stack and developer environment requirements.
-
- Args:
- github_auth_token: GitHub authentication token for accessing private repositories.
-
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
-
- idempotency_key: Specify a custom idempotency key for this request
- """
- if not id:
- raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
- return self._post(
- path_template("/v1/repositories/{id}/inspect", id=id),
- body=maybe_transform(
- {"github_auth_token": github_auth_token}, repository_inspect_params.RepositoryInspectParams
- ),
- options=make_request_options(
- extra_headers=extra_headers,
- extra_query=extra_query,
- extra_body=extra_body,
- timeout=timeout,
- idempotency_key=idempotency_key,
- ),
- cast_to=RepositoryInspectionDetails,
- )
-
- def list_inspections(
- self,
- id: str,
- *,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
- ) -> RepositoryInspectionListView:
- """
- List all inspections of a repository connection including automatically
- generated insights for each inspection.
-
- Args:
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- if not id:
- raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
- return self._get(
- path_template("/v1/repositories/{id}/inspections", id=id),
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=RepositoryInspectionListView,
- )
-
- @typing_extensions.deprecated("deprecated")
- def refresh(
- self,
- id: str,
- *,
- blueprint_id: Optional[str] | Omit = omit,
- github_auth_token: Optional[str] | Omit = omit,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
- idempotency_key: str | None = None,
- ) -> object:
- """
- Refresh a repository connection by inspecting the latest version including
- repo's technical stack and developer environment requirements.
-
- Args:
- blueprint_id: ID of blueprint to use as base for resulting RepositoryVersion blueprint.
-
- github_auth_token: GitHub authentication token for accessing private repositories.
-
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
-
- idempotency_key: Specify a custom idempotency key for this request
- """
- if not id:
- raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
- return self._post(
- path_template("/v1/repositories/{id}/refresh", id=id),
- body=maybe_transform(
- {
- "blueprint_id": blueprint_id,
- "github_auth_token": github_auth_token,
- },
- repository_refresh_params.RepositoryRefreshParams,
- ),
- options=make_request_options(
- extra_headers=extra_headers,
- extra_query=extra_query,
- extra_body=extra_body,
- timeout=timeout,
- idempotency_key=idempotency_key,
- ),
- cast_to=object,
- )
-
- def retrieve_inspection(
- self,
- id: str,
- *,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
- ) -> RepositoryInspectionDetails:
- """
- Get a repository inspection by id.
-
- Args:
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- if not id:
- raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
- return self._get(
- path_template("/v1/repositories/inspections/{id}", id=id),
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=RepositoryInspectionDetails,
- )
-
-
-class AsyncRepositoriesResource(AsyncAPIResource):
- @cached_property
- def with_raw_response(self) -> AsyncRepositoriesResourceWithRawResponse:
- """
- This property can be used as a prefix for any HTTP method call to return
- the raw response object instead of the parsed content.
-
- For more information, see https://www.github.com/runloopai/api-client-python#accessing-raw-response-data-eg-headers
- """
- return AsyncRepositoriesResourceWithRawResponse(self)
-
- @cached_property
- def with_streaming_response(self) -> AsyncRepositoriesResourceWithStreamingResponse:
- """
- An alternative to `.with_raw_response` that doesn't eagerly read the response body.
-
- For more information, see https://www.github.com/runloopai/api-client-python#with_streaming_response
- """
- return AsyncRepositoriesResourceWithStreamingResponse(self)
-
- async def create(
- self,
- *,
- name: str,
- owner: str,
- blueprint_id: Optional[str] | Omit = omit,
- github_auth_token: Optional[str] | Omit = omit,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
- idempotency_key: str | None = None,
- ) -> RepositoryConnectionView:
- """
- Create a connection to a Github Repository and trigger an initial inspection of
- the repo's technical stack and developer environment requirements.
-
- Args:
- name: Name of the repository.
-
- owner: Account owner of the repository.
-
- blueprint_id: ID of blueprint to use as base for resulting RepositoryVersion blueprint.
-
- github_auth_token: GitHub authentication token for accessing private repositories.
-
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
-
- idempotency_key: Specify a custom idempotency key for this request
- """
- return await self._post(
- "/v1/repositories",
- body=await async_maybe_transform(
- {
- "name": name,
- "owner": owner,
- "blueprint_id": blueprint_id,
- "github_auth_token": github_auth_token,
- },
- repository_create_params.RepositoryCreateParams,
- ),
- options=make_request_options(
- extra_headers=extra_headers,
- extra_query=extra_query,
- extra_body=extra_body,
- timeout=timeout,
- idempotency_key=idempotency_key,
- ),
- cast_to=RepositoryConnectionView,
- )
-
- async def retrieve(
- self,
- id: str,
- *,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
- ) -> RepositoryConnectionView:
- """
- Get Repository Connection details including latest inspection status and
- generated repository insights.
-
- Args:
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- if not id:
- raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
- return await self._get(
- path_template("/v1/repositories/{id}", id=id),
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=RepositoryConnectionView,
- )
-
- def list(
- self,
- *,
- include_total_count: bool | Omit = omit,
- limit: int | Omit = omit,
- name: str | Omit = omit,
- owner: str | Omit = omit,
- starting_after: str | Omit = omit,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
- ) -> AsyncPaginator[RepositoryConnectionView, AsyncRepositoriesCursorIDPage[RepositoryConnectionView]]:
- """
- List all available repository connections.
-
- Args:
- include_total_count: If true (default), includes total_count in the response. Set to false to skip
- the count query for better performance on large datasets.
-
- limit: The limit of items to return. Default is 20. Max is 5000.
-
- name: Filter by repository name
-
- owner: Filter by repository owner
-
- starting_after: Load the next page of data starting after the item with the given ID.
-
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- return self._get_api_list(
- "/v1/repositories",
- page=AsyncRepositoriesCursorIDPage[RepositoryConnectionView],
- options=make_request_options(
- extra_headers=extra_headers,
- extra_query=extra_query,
- extra_body=extra_body,
- timeout=timeout,
- query=maybe_transform(
- {
- "include_total_count": include_total_count,
- "limit": limit,
- "name": name,
- "owner": owner,
- "starting_after": starting_after,
- },
- repository_list_params.RepositoryListParams,
- ),
- ),
- model=RepositoryConnectionView,
- )
-
- async def delete(
- self,
- id: str,
- *,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
- idempotency_key: str | None = None,
- ) -> object:
- """
- Permanently Delete a Repository Connection including any automatically generated
- inspection insights.
-
- Args:
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
-
- idempotency_key: Specify a custom idempotency key for this request
- """
- if not id:
- raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
- return await self._post(
- path_template("/v1/repositories/{id}/delete", id=id),
- options=make_request_options(
- extra_headers=extra_headers,
- extra_query=extra_query,
- extra_body=extra_body,
- timeout=timeout,
- idempotency_key=idempotency_key,
- ),
- cast_to=object,
- )
-
- async def inspect(
- self,
- id: str,
- *,
- github_auth_token: Optional[str] | Omit = omit,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
- idempotency_key: str | None = None,
- ) -> RepositoryInspectionDetails:
- """
- Inspect a repository connection by inspecting the specified version including
- repo's technical stack and developer environment requirements.
-
- Args:
- github_auth_token: GitHub authentication token for accessing private repositories.
-
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
-
- idempotency_key: Specify a custom idempotency key for this request
- """
- if not id:
- raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
- return await self._post(
- path_template("/v1/repositories/{id}/inspect", id=id),
- body=await async_maybe_transform(
- {"github_auth_token": github_auth_token}, repository_inspect_params.RepositoryInspectParams
- ),
- options=make_request_options(
- extra_headers=extra_headers,
- extra_query=extra_query,
- extra_body=extra_body,
- timeout=timeout,
- idempotency_key=idempotency_key,
- ),
- cast_to=RepositoryInspectionDetails,
- )
-
- async def list_inspections(
- self,
- id: str,
- *,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
- ) -> RepositoryInspectionListView:
- """
- List all inspections of a repository connection including automatically
- generated insights for each inspection.
-
- Args:
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- if not id:
- raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
- return await self._get(
- path_template("/v1/repositories/{id}/inspections", id=id),
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=RepositoryInspectionListView,
- )
-
- @typing_extensions.deprecated("deprecated")
- async def refresh(
- self,
- id: str,
- *,
- blueprint_id: Optional[str] | Omit = omit,
- github_auth_token: Optional[str] | Omit = omit,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
- idempotency_key: str | None = None,
- ) -> object:
- """
- Refresh a repository connection by inspecting the latest version including
- repo's technical stack and developer environment requirements.
-
- Args:
- blueprint_id: ID of blueprint to use as base for resulting RepositoryVersion blueprint.
-
- github_auth_token: GitHub authentication token for accessing private repositories.
-
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
-
- idempotency_key: Specify a custom idempotency key for this request
- """
- if not id:
- raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
- return await self._post(
- path_template("/v1/repositories/{id}/refresh", id=id),
- body=await async_maybe_transform(
- {
- "blueprint_id": blueprint_id,
- "github_auth_token": github_auth_token,
- },
- repository_refresh_params.RepositoryRefreshParams,
- ),
- options=make_request_options(
- extra_headers=extra_headers,
- extra_query=extra_query,
- extra_body=extra_body,
- timeout=timeout,
- idempotency_key=idempotency_key,
- ),
- cast_to=object,
- )
-
- async def retrieve_inspection(
- self,
- id: str,
- *,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
- ) -> RepositoryInspectionDetails:
- """
- Get a repository inspection by id.
-
- Args:
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- if not id:
- raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
- return await self._get(
- path_template("/v1/repositories/inspections/{id}", id=id),
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=RepositoryInspectionDetails,
- )
-
-
-class RepositoriesResourceWithRawResponse:
- def __init__(self, repositories: RepositoriesResource) -> None:
- self._repositories = repositories
-
- self.create = to_raw_response_wrapper(
- repositories.create,
- )
- self.retrieve = to_raw_response_wrapper(
- repositories.retrieve,
- )
- self.list = to_raw_response_wrapper(
- repositories.list,
- )
- self.delete = to_raw_response_wrapper(
- repositories.delete,
- )
- self.inspect = to_raw_response_wrapper(
- repositories.inspect,
- )
- self.list_inspections = to_raw_response_wrapper(
- repositories.list_inspections,
- )
- self.refresh = ( # pyright: ignore[reportDeprecated]
- to_raw_response_wrapper(
- repositories.refresh, # pyright: ignore[reportDeprecated],
- )
- )
- self.retrieve_inspection = to_raw_response_wrapper(
- repositories.retrieve_inspection,
- )
-
-
-class AsyncRepositoriesResourceWithRawResponse:
- def __init__(self, repositories: AsyncRepositoriesResource) -> None:
- self._repositories = repositories
-
- self.create = async_to_raw_response_wrapper(
- repositories.create,
- )
- self.retrieve = async_to_raw_response_wrapper(
- repositories.retrieve,
- )
- self.list = async_to_raw_response_wrapper(
- repositories.list,
- )
- self.delete = async_to_raw_response_wrapper(
- repositories.delete,
- )
- self.inspect = async_to_raw_response_wrapper(
- repositories.inspect,
- )
- self.list_inspections = async_to_raw_response_wrapper(
- repositories.list_inspections,
- )
- self.refresh = ( # pyright: ignore[reportDeprecated]
- async_to_raw_response_wrapper(
- repositories.refresh, # pyright: ignore[reportDeprecated],
- )
- )
- self.retrieve_inspection = async_to_raw_response_wrapper(
- repositories.retrieve_inspection,
- )
-
-
-class RepositoriesResourceWithStreamingResponse:
- def __init__(self, repositories: RepositoriesResource) -> None:
- self._repositories = repositories
-
- self.create = to_streamed_response_wrapper(
- repositories.create,
- )
- self.retrieve = to_streamed_response_wrapper(
- repositories.retrieve,
- )
- self.list = to_streamed_response_wrapper(
- repositories.list,
- )
- self.delete = to_streamed_response_wrapper(
- repositories.delete,
- )
- self.inspect = to_streamed_response_wrapper(
- repositories.inspect,
- )
- self.list_inspections = to_streamed_response_wrapper(
- repositories.list_inspections,
- )
- self.refresh = ( # pyright: ignore[reportDeprecated]
- to_streamed_response_wrapper(
- repositories.refresh, # pyright: ignore[reportDeprecated],
- )
- )
- self.retrieve_inspection = to_streamed_response_wrapper(
- repositories.retrieve_inspection,
- )
-
-
-class AsyncRepositoriesResourceWithStreamingResponse:
- def __init__(self, repositories: AsyncRepositoriesResource) -> None:
- self._repositories = repositories
-
- self.create = async_to_streamed_response_wrapper(
- repositories.create,
- )
- self.retrieve = async_to_streamed_response_wrapper(
- repositories.retrieve,
- )
- self.list = async_to_streamed_response_wrapper(
- repositories.list,
- )
- self.delete = async_to_streamed_response_wrapper(
- repositories.delete,
- )
- self.inspect = async_to_streamed_response_wrapper(
- repositories.inspect,
- )
- self.list_inspections = async_to_streamed_response_wrapper(
- repositories.list_inspections,
- )
- self.refresh = ( # pyright: ignore[reportDeprecated]
- async_to_streamed_response_wrapper(
- repositories.refresh, # pyright: ignore[reportDeprecated],
- )
- )
- self.retrieve_inspection = async_to_streamed_response_wrapper(
- repositories.retrieve_inspection,
- )
diff --git a/src/runloop_api_client/types/__init__.py b/src/runloop_api_client/types/__init__.py
index bf5d8ef3f..185e66268 100644
--- a/src/runloop_api_client/types/__init__.py
+++ b/src/runloop_api_client/types/__init__.py
@@ -65,7 +65,6 @@
from .devbox_shutdown_params import DevboxShutdownParams as DevboxShutdownParams
from .mcp_config_list_params import McpConfigListParams as McpConfigListParams
from .object_download_params import ObjectDownloadParams as ObjectDownloadParams
-from .repository_list_params import RepositoryListParams as RepositoryListParams
from .scenario_create_params import ScenarioCreateParams as ScenarioCreateParams
from .scenario_run_list_view import ScenarioRunListView as ScenarioRunListView
from .scenario_update_params import ScenarioUpdateParams as ScenarioUpdateParams
@@ -83,16 +82,12 @@
from .mcp_config_update_params import McpConfigUpdateParams as McpConfigUpdateParams
from .network_policy_list_view import NetworkPolicyListView as NetworkPolicyListView
from .object_download_url_view import ObjectDownloadURLView as ObjectDownloadURLView
-from .repository_create_params import RepositoryCreateParams as RepositoryCreateParams
-from .repository_manifest_view import RepositoryManifestView as RepositoryManifestView
from .benchmark_job_list_params import BenchmarkJobListParams as BenchmarkJobListParams
from .benchmark_run_list_params import BenchmarkRunListParams as BenchmarkRunListParams
from .devbox_send_std_in_result import DevboxSendStdInResult as DevboxSendStdInResult
from .devbox_snapshot_list_view import DevboxSnapshotListView as DevboxSnapshotListView
from .devbox_upload_file_params import DevboxUploadFileParams as DevboxUploadFileParams
from .object_list_public_params import ObjectListPublicParams as ObjectListPublicParams
-from .repository_inspect_params import RepositoryInspectParams as RepositoryInspectParams
-from .repository_refresh_params import RepositoryRefreshParams as RepositoryRefreshParams
from .scenario_start_run_params import ScenarioStartRunParams as ScenarioStartRunParams
from .benchmark_start_run_params import BenchmarkStartRunParams as BenchmarkStartRunParams
from .blueprint_build_parameters import BlueprintBuildParameters as BlueprintBuildParameters
@@ -101,7 +96,6 @@
from .gateway_config_list_params import GatewayConfigListParams as GatewayConfigListParams
from .input_context_update_param import InputContextUpdateParam as InputContextUpdateParam
from .network_policy_list_params import NetworkPolicyListParams as NetworkPolicyListParams
-from .repository_connection_view import RepositoryConnectionView as RepositoryConnectionView
from .scenario_environment_param import ScenarioEnvironmentParam as ScenarioEnvironmentParam
from .benchmark_job_create_params import BenchmarkJobCreateParams as BenchmarkJobCreateParams
from .devbox_download_file_params import DevboxDownloadFileParams as DevboxDownloadFileParams
@@ -119,14 +113,11 @@
from .network_policy_update_params import NetworkPolicyUpdateParams as NetworkPolicyUpdateParams
from .scoring_contract_result_view import ScoringContractResultView as ScoringContractResultView
from .scoring_function_result_view import ScoringFunctionResultView as ScoringFunctionResultView
-from .repository_inspection_details import RepositoryInspectionDetails as RepositoryInspectionDetails
from .scenario_definition_list_view import ScenarioDefinitionListView as ScenarioDefinitionListView
from .scoring_contract_update_param import ScoringContractUpdateParam as ScoringContractUpdateParam
from .blueprint_build_logs_list_view import BlueprintBuildLogsListView as BlueprintBuildLogsListView
from .devbox_create_ssh_key_response import DevboxCreateSSHKeyResponse as DevboxCreateSSHKeyResponse
from .devbox_wait_for_command_params import DevboxWaitForCommandParams as DevboxWaitForCommandParams
-from .repository_connection_list_view import RepositoryConnectionListView as RepositoryConnectionListView
-from .repository_inspection_list_view import RepositoryInspectionListView as RepositoryInspectionListView
from .devbox_read_file_contents_params import DevboxReadFileContentsParams as DevboxReadFileContentsParams
from .benchmark_update_scenarios_params import BenchmarkUpdateScenariosParams as BenchmarkUpdateScenariosParams
from .devbox_list_disk_snapshots_params import DevboxListDiskSnapshotsParams as DevboxListDiskSnapshotsParams
diff --git a/src/runloop_api_client/types/repository_connection_list_view.py b/src/runloop_api_client/types/repository_connection_list_view.py
deleted file mode 100644
index 3146f27fd..000000000
--- a/src/runloop_api_client/types/repository_connection_list_view.py
+++ /dev/null
@@ -1,17 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from typing import List, Optional
-
-from .._models import BaseModel
-from .repository_connection_view import RepositoryConnectionView
-
-__all__ = ["RepositoryConnectionListView"]
-
-
-class RepositoryConnectionListView(BaseModel):
- has_more: bool
-
- repositories: List[RepositoryConnectionView]
- """List of repositories matching filter."""
-
- total_count: Optional[int] = None
diff --git a/src/runloop_api_client/types/repository_connection_view.py b/src/runloop_api_client/types/repository_connection_view.py
deleted file mode 100644
index e126071e8..000000000
--- a/src/runloop_api_client/types/repository_connection_view.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from .._models import BaseModel
-
-__all__ = ["RepositoryConnectionView"]
-
-
-class RepositoryConnectionView(BaseModel):
- """The ID of the Repository."""
-
- id: str
- """The ID of the Repository."""
-
- name: str
- """The name of the Repository."""
-
- owner: str
- """The account owner of the Repository."""
diff --git a/src/runloop_api_client/types/repository_create_params.py b/src/runloop_api_client/types/repository_create_params.py
deleted file mode 100644
index fc241739e..000000000
--- a/src/runloop_api_client/types/repository_create_params.py
+++ /dev/null
@@ -1,22 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from __future__ import annotations
-
-from typing import Optional
-from typing_extensions import Required, TypedDict
-
-__all__ = ["RepositoryCreateParams"]
-
-
-class RepositoryCreateParams(TypedDict, total=False):
- name: Required[str]
- """Name of the repository."""
-
- owner: Required[str]
- """Account owner of the repository."""
-
- blueprint_id: Optional[str]
- """ID of blueprint to use as base for resulting RepositoryVersion blueprint."""
-
- github_auth_token: Optional[str]
- """GitHub authentication token for accessing private repositories."""
diff --git a/src/runloop_api_client/types/repository_inspect_params.py b/src/runloop_api_client/types/repository_inspect_params.py
deleted file mode 100644
index c42103dab..000000000
--- a/src/runloop_api_client/types/repository_inspect_params.py
+++ /dev/null
@@ -1,13 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from __future__ import annotations
-
-from typing import Optional
-from typing_extensions import TypedDict
-
-__all__ = ["RepositoryInspectParams"]
-
-
-class RepositoryInspectParams(TypedDict, total=False):
- github_auth_token: Optional[str]
- """GitHub authentication token for accessing private repositories."""
diff --git a/src/runloop_api_client/types/repository_inspection_details.py b/src/runloop_api_client/types/repository_inspection_details.py
deleted file mode 100644
index 0870ce693..000000000
--- a/src/runloop_api_client/types/repository_inspection_details.py
+++ /dev/null
@@ -1,83 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from typing import Dict, List, Optional
-from typing_extensions import Literal
-
-from .._models import BaseModel
-from .repository_manifest_view import RepositoryManifestView
-
-__all__ = ["RepositoryInspectionDetails", "WorkflowContexts", "WorkflowContextsActionsContext"]
-
-
-class WorkflowContextsActionsContext(BaseModel):
- """Details about actions processing for this workflow."""
-
- actions_skipped_unnecessary: List[str]
- """
- Actions that were skipped because they were unnecessary (e.g., upload
- artifacts).
- """
-
- actions_taken: List[str]
- """Actions that were translated into commands and executed."""
-
- actions_unknown: List[str]
- """
- Actions that were not understood and skipped because we did not know what to do.
- """
-
-
-class WorkflowContexts(BaseModel):
- """
- Workflow context containing file name and details about actions processing during inspection.
- """
-
- actions_context: WorkflowContextsActionsContext
- """Details about actions processing for this workflow."""
-
- file_name: str
- """The file name of the workflow."""
-
-
-class RepositoryInspectionDetails(BaseModel):
- id: str
- """The ID of the inspection."""
-
- commit_sha: str
- """The sha of the inspected version of the Repository."""
-
- inspected_at: int
- """Inspection time of the Repository Version (Unix timestamp milliseconds)."""
-
- repository_manifest: RepositoryManifestView
- """Repository manifest containing container config and workspace details."""
-
- status: Literal[
- "invalid",
- "repo_auth_pending",
- "repo_authentication_failure",
- "repo_access_failure",
- "inspection_pending",
- "inspection_failed",
- "inspection_success",
- "inspection_user_manifest_added",
- ]
- """The status of the repository inspection."""
-
- blueprint_id: Optional[str] = None
- """The blueprint ID associated with this inspection if successful."""
-
- blueprint_name: Optional[str] = None
- """The blueprint name associated with this inspection if successful."""
-
- build_status: Optional[Literal["image_building", "image_build_success", "image_build_failure"]] = None
- """The status of the linked Blueprint build."""
-
- user_manifest: Optional[RepositoryManifestView] = None
- """
- User uploaded repository manifest containing container config and workspace
- details.
- """
-
- workflow_contexts: Optional[Dict[str, WorkflowContexts]] = None
- """Workflow contexts mapping workflow names to their processing details."""
diff --git a/src/runloop_api_client/types/repository_inspection_list_view.py b/src/runloop_api_client/types/repository_inspection_list_view.py
deleted file mode 100644
index e6a7108b7..000000000
--- a/src/runloop_api_client/types/repository_inspection_list_view.py
+++ /dev/null
@@ -1,13 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from typing import List
-
-from .._models import BaseModel
-from .repository_inspection_details import RepositoryInspectionDetails
-
-__all__ = ["RepositoryInspectionListView"]
-
-
-class RepositoryInspectionListView(BaseModel):
- inspections: List[RepositoryInspectionDetails]
- """List of inspections for this repository."""
diff --git a/src/runloop_api_client/types/repository_list_params.py b/src/runloop_api_client/types/repository_list_params.py
deleted file mode 100644
index 813842cab..000000000
--- a/src/runloop_api_client/types/repository_list_params.py
+++ /dev/null
@@ -1,27 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from __future__ import annotations
-
-from typing_extensions import TypedDict
-
-__all__ = ["RepositoryListParams"]
-
-
-class RepositoryListParams(TypedDict, total=False):
- include_total_count: bool
- """If true (default), includes total_count in the response.
-
- Set to false to skip the count query for better performance on large datasets.
- """
-
- limit: int
- """The limit of items to return. Default is 20. Max is 5000."""
-
- name: str
- """Filter by repository name"""
-
- owner: str
- """Filter by repository owner"""
-
- starting_after: str
- """Load the next page of data starting after the item with the given ID."""
diff --git a/src/runloop_api_client/types/repository_manifest_view.py b/src/runloop_api_client/types/repository_manifest_view.py
deleted file mode 100644
index acb862672..000000000
--- a/src/runloop_api_client/types/repository_manifest_view.py
+++ /dev/null
@@ -1,174 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from typing import Dict, List, Optional
-from typing_extensions import Literal
-
-from .._models import BaseModel
-
-__all__ = [
- "RepositoryManifestView",
- "ContainerConfig",
- "Language",
- "Workspace",
- "WorkspaceDevCommands",
- "ContainerizedService",
- "ContainerizedServiceCredentials",
-]
-
-
-class ContainerConfig(BaseModel):
- """Container configuration specifying the base image and setup commands."""
-
- base_image_name: str
- """The name of the base image.
-
- Should be one of the GitHub public images like ubuntu-latest, ubuntu-24.04,
- ubuntu-22.04, windows-latest, windows-2022, macos-latest etc.
- """
-
- architecture: Optional[Literal["x86_64", "arm64"]] = None
- """The target architecture for the Repository Container."""
-
- setup_commands: Optional[List[str]] = None
- """
- Commands to run to setup the base container such as installing necessary
- toolchains (e.g. apt install).
- """
-
-
-class Language(BaseModel):
- language: Optional[str] = None
-
- version: Optional[str] = None
-
-
-class WorkspaceDevCommands(BaseModel):
- """
- Extracted common commands important to the developer life cycle like linting, testing, building, etc.
- """
-
- build: Optional[List[str]] = None
- """Build command (e.g. npm run build)."""
-
- install: Optional[List[str]] = None
- """Installation command (e.g. pip install -r requirements.txt)."""
-
- lint: Optional[List[str]] = None
- """Lint command (e.g. flake8)."""
-
- scripts: Optional[List[str]] = None
- """Script commands."""
-
- test: Optional[List[str]] = None
- """Test command (e.g. pytest)."""
-
-
-class Workspace(BaseModel):
- """
- A workspace is a buildable unit of code within a repository and often represents a deployable unit of code like a backend service or a frontend app.
- """
-
- build_tool: List[str]
- """Name of the build tool used (e.g. pip, npm)."""
-
- dev_commands: Optional[WorkspaceDevCommands] = None
- """
- Extracted common commands important to the developer life cycle like linting,
- testing, building, etc.
- """
-
- name: Optional[str] = None
- """Name of the workspace.
-
- Can be empty if the workspace is the root of the repository. Only necessary for
- monorepo style repositories.
- """
-
- path: Optional[str] = None
- """Path to the workspace from the root of the repository.
-
- Can be empty if the workspace is the root of the repository. Only necessary for
- monorepo style repositories.
- """
-
- workspace_refresh_commands: Optional[List[str]] = None
- """
- Commands to run to refresh this workspace after pulling the latest changes to
- the repository via git (e.g. npm install).
- """
-
- workspace_setup_commands: Optional[List[str]] = None
- """
- Commands to run to setup this workspace after a fresh clone of the repository on
- a new container such as installing necessary toolchains and dependencies (e.g.
- npm install).
- """
-
-
-class ContainerizedServiceCredentials(BaseModel):
- """The credentials of the container service."""
-
- password: str
- """The password of the container service."""
-
- username: str
- """The username of the container service."""
-
-
-class ContainerizedService(BaseModel):
- image: str
- """The image of the container service."""
-
- name: str
- """The name of the container service."""
-
- credentials: Optional[ContainerizedServiceCredentials] = None
- """The credentials of the container service."""
-
- env: Optional[Dict[str, str]] = None
- """The environment variables of the container service."""
-
- options: Optional[str] = None
- """Additional Docker container create options."""
-
- port_mappings: Optional[List[str]] = None
- """The port mappings of the container service.
-
- Port mappings are in the format of :.
- """
-
-
-class RepositoryManifestView(BaseModel):
- """
- The repository manifest contains container configuration and workspace definitions for a repository.
- """
-
- container_config: ContainerConfig
- """Container configuration specifying the base image and setup commands."""
-
- languages: List[Language]
- """List of required languages found in Repository."""
-
- workspaces: List[Workspace]
- """List of workspaces within the repository.
-
- Each workspace represents a buildable unit of code.
- """
-
- containerized_services: Optional[List[ContainerizedService]] = None
- """List of discovered ContainerizedServices.
-
- Services can be explicitly started when creating a Devbox.
- """
-
- env_vars: Optional[Dict[str, str]] = None
- """
- Qualified environment variables and values that should be set for this
- repository to run correctly.
- """
-
- required_env_vars: Optional[List[str]] = None
- """
- Missing environment variables that (may) be required for this repository to run
- correctly.
- """
diff --git a/src/runloop_api_client/types/repository_refresh_params.py b/src/runloop_api_client/types/repository_refresh_params.py
deleted file mode 100644
index e0eeae3e1..000000000
--- a/src/runloop_api_client/types/repository_refresh_params.py
+++ /dev/null
@@ -1,16 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from __future__ import annotations
-
-from typing import Optional
-from typing_extensions import TypedDict
-
-__all__ = ["RepositoryRefreshParams"]
-
-
-class RepositoryRefreshParams(TypedDict, total=False):
- blueprint_id: Optional[str]
- """ID of blueprint to use as base for resulting RepositoryVersion blueprint."""
-
- github_auth_token: Optional[str]
- """GitHub authentication token for accessing private repositories."""
diff --git a/tests/api_resources/test_repositories.py b/tests/api_resources/test_repositories.py
deleted file mode 100644
index 20fa91e6d..000000000
--- a/tests/api_resources/test_repositories.py
+++ /dev/null
@@ -1,695 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from __future__ import annotations
-
-import os
-from typing import Any, cast
-
-import pytest
-
-from tests.utils import assert_matches_type
-from runloop_api_client import Runloop, AsyncRunloop
-from runloop_api_client.types import (
- RepositoryConnectionView,
- RepositoryInspectionDetails,
- RepositoryInspectionListView,
-)
-from runloop_api_client.pagination import SyncRepositoriesCursorIDPage, AsyncRepositoriesCursorIDPage
-
-# pyright: reportDeprecated=false
-
-base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
-
-
-class TestRepositories:
- parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"])
-
- @parametrize
- def test_method_create(self, client: Runloop) -> None:
- repository = client.repositories.create(
- name="name",
- owner="owner",
- )
- assert_matches_type(RepositoryConnectionView, repository, path=["response"])
-
- @parametrize
- def test_method_create_with_all_params(self, client: Runloop) -> None:
- repository = client.repositories.create(
- name="name",
- owner="owner",
- blueprint_id="blueprint_id",
- github_auth_token="github_auth_token",
- )
- assert_matches_type(RepositoryConnectionView, repository, path=["response"])
-
- @parametrize
- def test_raw_response_create(self, client: Runloop) -> None:
- response = client.repositories.with_raw_response.create(
- name="name",
- owner="owner",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- repository = response.parse()
- assert_matches_type(RepositoryConnectionView, repository, path=["response"])
-
- @parametrize
- def test_streaming_response_create(self, client: Runloop) -> None:
- with client.repositories.with_streaming_response.create(
- name="name",
- owner="owner",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- repository = response.parse()
- assert_matches_type(RepositoryConnectionView, repository, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @parametrize
- def test_method_retrieve(self, client: Runloop) -> None:
- repository = client.repositories.retrieve(
- "id",
- )
- assert_matches_type(RepositoryConnectionView, repository, path=["response"])
-
- @parametrize
- def test_raw_response_retrieve(self, client: Runloop) -> None:
- response = client.repositories.with_raw_response.retrieve(
- "id",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- repository = response.parse()
- assert_matches_type(RepositoryConnectionView, repository, path=["response"])
-
- @parametrize
- def test_streaming_response_retrieve(self, client: Runloop) -> None:
- with client.repositories.with_streaming_response.retrieve(
- "id",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- repository = response.parse()
- assert_matches_type(RepositoryConnectionView, repository, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @parametrize
- def test_path_params_retrieve(self, client: Runloop) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
- client.repositories.with_raw_response.retrieve(
- "",
- )
-
- @parametrize
- def test_method_list(self, client: Runloop) -> None:
- repository = client.repositories.list()
- assert_matches_type(SyncRepositoriesCursorIDPage[RepositoryConnectionView], repository, path=["response"])
-
- @parametrize
- def test_method_list_with_all_params(self, client: Runloop) -> None:
- repository = client.repositories.list(
- include_total_count=True,
- limit=0,
- name="name",
- owner="owner",
- starting_after="starting_after",
- )
- assert_matches_type(SyncRepositoriesCursorIDPage[RepositoryConnectionView], repository, path=["response"])
-
- @parametrize
- def test_raw_response_list(self, client: Runloop) -> None:
- response = client.repositories.with_raw_response.list()
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- repository = response.parse()
- assert_matches_type(SyncRepositoriesCursorIDPage[RepositoryConnectionView], repository, path=["response"])
-
- @parametrize
- def test_streaming_response_list(self, client: Runloop) -> None:
- with client.repositories.with_streaming_response.list() as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- repository = response.parse()
- assert_matches_type(SyncRepositoriesCursorIDPage[RepositoryConnectionView], repository, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @parametrize
- def test_method_delete(self, client: Runloop) -> None:
- repository = client.repositories.delete(
- "id",
- )
- assert_matches_type(object, repository, path=["response"])
-
- @parametrize
- def test_raw_response_delete(self, client: Runloop) -> None:
- response = client.repositories.with_raw_response.delete(
- "id",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- repository = response.parse()
- assert_matches_type(object, repository, path=["response"])
-
- @parametrize
- def test_streaming_response_delete(self, client: Runloop) -> None:
- with client.repositories.with_streaming_response.delete(
- "id",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- repository = response.parse()
- assert_matches_type(object, repository, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @parametrize
- def test_path_params_delete(self, client: Runloop) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
- client.repositories.with_raw_response.delete(
- "",
- )
-
- @parametrize
- def test_method_inspect(self, client: Runloop) -> None:
- repository = client.repositories.inspect(
- id="id",
- )
- assert_matches_type(RepositoryInspectionDetails, repository, path=["response"])
-
- @parametrize
- def test_method_inspect_with_all_params(self, client: Runloop) -> None:
- repository = client.repositories.inspect(
- id="id",
- github_auth_token="github_auth_token",
- )
- assert_matches_type(RepositoryInspectionDetails, repository, path=["response"])
-
- @parametrize
- def test_raw_response_inspect(self, client: Runloop) -> None:
- response = client.repositories.with_raw_response.inspect(
- id="id",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- repository = response.parse()
- assert_matches_type(RepositoryInspectionDetails, repository, path=["response"])
-
- @parametrize
- def test_streaming_response_inspect(self, client: Runloop) -> None:
- with client.repositories.with_streaming_response.inspect(
- id="id",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- repository = response.parse()
- assert_matches_type(RepositoryInspectionDetails, repository, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @parametrize
- def test_path_params_inspect(self, client: Runloop) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
- client.repositories.with_raw_response.inspect(
- id="",
- )
-
- @parametrize
- def test_method_list_inspections(self, client: Runloop) -> None:
- repository = client.repositories.list_inspections(
- "id",
- )
- assert_matches_type(RepositoryInspectionListView, repository, path=["response"])
-
- @parametrize
- def test_raw_response_list_inspections(self, client: Runloop) -> None:
- response = client.repositories.with_raw_response.list_inspections(
- "id",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- repository = response.parse()
- assert_matches_type(RepositoryInspectionListView, repository, path=["response"])
-
- @parametrize
- def test_streaming_response_list_inspections(self, client: Runloop) -> None:
- with client.repositories.with_streaming_response.list_inspections(
- "id",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- repository = response.parse()
- assert_matches_type(RepositoryInspectionListView, repository, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @parametrize
- def test_path_params_list_inspections(self, client: Runloop) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
- client.repositories.with_raw_response.list_inspections(
- "",
- )
-
- @parametrize
- def test_method_refresh(self, client: Runloop) -> None:
- with pytest.warns(DeprecationWarning):
- repository = client.repositories.refresh(
- id="id",
- )
-
- assert_matches_type(object, repository, path=["response"])
-
- @parametrize
- def test_method_refresh_with_all_params(self, client: Runloop) -> None:
- with pytest.warns(DeprecationWarning):
- repository = client.repositories.refresh(
- id="id",
- blueprint_id="blueprint_id",
- github_auth_token="github_auth_token",
- )
-
- assert_matches_type(object, repository, path=["response"])
-
- @parametrize
- def test_raw_response_refresh(self, client: Runloop) -> None:
- with pytest.warns(DeprecationWarning):
- response = client.repositories.with_raw_response.refresh(
- id="id",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- repository = response.parse()
- assert_matches_type(object, repository, path=["response"])
-
- @parametrize
- def test_streaming_response_refresh(self, client: Runloop) -> None:
- with pytest.warns(DeprecationWarning):
- with client.repositories.with_streaming_response.refresh(
- id="id",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- repository = response.parse()
- assert_matches_type(object, repository, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @parametrize
- def test_path_params_refresh(self, client: Runloop) -> None:
- with pytest.warns(DeprecationWarning):
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
- client.repositories.with_raw_response.refresh(
- id="",
- )
-
- @parametrize
- def test_method_retrieve_inspection(self, client: Runloop) -> None:
- repository = client.repositories.retrieve_inspection(
- "id",
- )
- assert_matches_type(RepositoryInspectionDetails, repository, path=["response"])
-
- @parametrize
- def test_raw_response_retrieve_inspection(self, client: Runloop) -> None:
- response = client.repositories.with_raw_response.retrieve_inspection(
- "id",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- repository = response.parse()
- assert_matches_type(RepositoryInspectionDetails, repository, path=["response"])
-
- @parametrize
- def test_streaming_response_retrieve_inspection(self, client: Runloop) -> None:
- with client.repositories.with_streaming_response.retrieve_inspection(
- "id",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- repository = response.parse()
- assert_matches_type(RepositoryInspectionDetails, repository, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @parametrize
- def test_path_params_retrieve_inspection(self, client: Runloop) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
- client.repositories.with_raw_response.retrieve_inspection(
- "",
- )
-
-
-class TestAsyncRepositories:
- parametrize = pytest.mark.parametrize(
- "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"]
- )
-
- @parametrize
- async def test_method_create(self, async_client: AsyncRunloop) -> None:
- repository = await async_client.repositories.create(
- name="name",
- owner="owner",
- )
- assert_matches_type(RepositoryConnectionView, repository, path=["response"])
-
- @parametrize
- async def test_method_create_with_all_params(self, async_client: AsyncRunloop) -> None:
- repository = await async_client.repositories.create(
- name="name",
- owner="owner",
- blueprint_id="blueprint_id",
- github_auth_token="github_auth_token",
- )
- assert_matches_type(RepositoryConnectionView, repository, path=["response"])
-
- @parametrize
- async def test_raw_response_create(self, async_client: AsyncRunloop) -> None:
- response = await async_client.repositories.with_raw_response.create(
- name="name",
- owner="owner",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- repository = await response.parse()
- assert_matches_type(RepositoryConnectionView, repository, path=["response"])
-
- @parametrize
- async def test_streaming_response_create(self, async_client: AsyncRunloop) -> None:
- async with async_client.repositories.with_streaming_response.create(
- name="name",
- owner="owner",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- repository = await response.parse()
- assert_matches_type(RepositoryConnectionView, repository, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @parametrize
- async def test_method_retrieve(self, async_client: AsyncRunloop) -> None:
- repository = await async_client.repositories.retrieve(
- "id",
- )
- assert_matches_type(RepositoryConnectionView, repository, path=["response"])
-
- @parametrize
- async def test_raw_response_retrieve(self, async_client: AsyncRunloop) -> None:
- response = await async_client.repositories.with_raw_response.retrieve(
- "id",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- repository = await response.parse()
- assert_matches_type(RepositoryConnectionView, repository, path=["response"])
-
- @parametrize
- async def test_streaming_response_retrieve(self, async_client: AsyncRunloop) -> None:
- async with async_client.repositories.with_streaming_response.retrieve(
- "id",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- repository = await response.parse()
- assert_matches_type(RepositoryConnectionView, repository, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @parametrize
- async def test_path_params_retrieve(self, async_client: AsyncRunloop) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
- await async_client.repositories.with_raw_response.retrieve(
- "",
- )
-
- @parametrize
- async def test_method_list(self, async_client: AsyncRunloop) -> None:
- repository = await async_client.repositories.list()
- assert_matches_type(AsyncRepositoriesCursorIDPage[RepositoryConnectionView], repository, path=["response"])
-
- @parametrize
- async def test_method_list_with_all_params(self, async_client: AsyncRunloop) -> None:
- repository = await async_client.repositories.list(
- include_total_count=True,
- limit=0,
- name="name",
- owner="owner",
- starting_after="starting_after",
- )
- assert_matches_type(AsyncRepositoriesCursorIDPage[RepositoryConnectionView], repository, path=["response"])
-
- @parametrize
- async def test_raw_response_list(self, async_client: AsyncRunloop) -> None:
- response = await async_client.repositories.with_raw_response.list()
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- repository = await response.parse()
- assert_matches_type(AsyncRepositoriesCursorIDPage[RepositoryConnectionView], repository, path=["response"])
-
- @parametrize
- async def test_streaming_response_list(self, async_client: AsyncRunloop) -> None:
- async with async_client.repositories.with_streaming_response.list() as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- repository = await response.parse()
- assert_matches_type(AsyncRepositoriesCursorIDPage[RepositoryConnectionView], repository, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @parametrize
- async def test_method_delete(self, async_client: AsyncRunloop) -> None:
- repository = await async_client.repositories.delete(
- "id",
- )
- assert_matches_type(object, repository, path=["response"])
-
- @parametrize
- async def test_raw_response_delete(self, async_client: AsyncRunloop) -> None:
- response = await async_client.repositories.with_raw_response.delete(
- "id",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- repository = await response.parse()
- assert_matches_type(object, repository, path=["response"])
-
- @parametrize
- async def test_streaming_response_delete(self, async_client: AsyncRunloop) -> None:
- async with async_client.repositories.with_streaming_response.delete(
- "id",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- repository = await response.parse()
- assert_matches_type(object, repository, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @parametrize
- async def test_path_params_delete(self, async_client: AsyncRunloop) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
- await async_client.repositories.with_raw_response.delete(
- "",
- )
-
- @parametrize
- async def test_method_inspect(self, async_client: AsyncRunloop) -> None:
- repository = await async_client.repositories.inspect(
- id="id",
- )
- assert_matches_type(RepositoryInspectionDetails, repository, path=["response"])
-
- @parametrize
- async def test_method_inspect_with_all_params(self, async_client: AsyncRunloop) -> None:
- repository = await async_client.repositories.inspect(
- id="id",
- github_auth_token="github_auth_token",
- )
- assert_matches_type(RepositoryInspectionDetails, repository, path=["response"])
-
- @parametrize
- async def test_raw_response_inspect(self, async_client: AsyncRunloop) -> None:
- response = await async_client.repositories.with_raw_response.inspect(
- id="id",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- repository = await response.parse()
- assert_matches_type(RepositoryInspectionDetails, repository, path=["response"])
-
- @parametrize
- async def test_streaming_response_inspect(self, async_client: AsyncRunloop) -> None:
- async with async_client.repositories.with_streaming_response.inspect(
- id="id",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- repository = await response.parse()
- assert_matches_type(RepositoryInspectionDetails, repository, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @parametrize
- async def test_path_params_inspect(self, async_client: AsyncRunloop) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
- await async_client.repositories.with_raw_response.inspect(
- id="",
- )
-
- @parametrize
- async def test_method_list_inspections(self, async_client: AsyncRunloop) -> None:
- repository = await async_client.repositories.list_inspections(
- "id",
- )
- assert_matches_type(RepositoryInspectionListView, repository, path=["response"])
-
- @parametrize
- async def test_raw_response_list_inspections(self, async_client: AsyncRunloop) -> None:
- response = await async_client.repositories.with_raw_response.list_inspections(
- "id",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- repository = await response.parse()
- assert_matches_type(RepositoryInspectionListView, repository, path=["response"])
-
- @parametrize
- async def test_streaming_response_list_inspections(self, async_client: AsyncRunloop) -> None:
- async with async_client.repositories.with_streaming_response.list_inspections(
- "id",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- repository = await response.parse()
- assert_matches_type(RepositoryInspectionListView, repository, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @parametrize
- async def test_path_params_list_inspections(self, async_client: AsyncRunloop) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
- await async_client.repositories.with_raw_response.list_inspections(
- "",
- )
-
- @parametrize
- async def test_method_refresh(self, async_client: AsyncRunloop) -> None:
- with pytest.warns(DeprecationWarning):
- repository = await async_client.repositories.refresh(
- id="id",
- )
-
- assert_matches_type(object, repository, path=["response"])
-
- @parametrize
- async def test_method_refresh_with_all_params(self, async_client: AsyncRunloop) -> None:
- with pytest.warns(DeprecationWarning):
- repository = await async_client.repositories.refresh(
- id="id",
- blueprint_id="blueprint_id",
- github_auth_token="github_auth_token",
- )
-
- assert_matches_type(object, repository, path=["response"])
-
- @parametrize
- async def test_raw_response_refresh(self, async_client: AsyncRunloop) -> None:
- with pytest.warns(DeprecationWarning):
- response = await async_client.repositories.with_raw_response.refresh(
- id="id",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- repository = await response.parse()
- assert_matches_type(object, repository, path=["response"])
-
- @parametrize
- async def test_streaming_response_refresh(self, async_client: AsyncRunloop) -> None:
- with pytest.warns(DeprecationWarning):
- async with async_client.repositories.with_streaming_response.refresh(
- id="id",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- repository = await response.parse()
- assert_matches_type(object, repository, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @parametrize
- async def test_path_params_refresh(self, async_client: AsyncRunloop) -> None:
- with pytest.warns(DeprecationWarning):
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
- await async_client.repositories.with_raw_response.refresh(
- id="",
- )
-
- @parametrize
- async def test_method_retrieve_inspection(self, async_client: AsyncRunloop) -> None:
- repository = await async_client.repositories.retrieve_inspection(
- "id",
- )
- assert_matches_type(RepositoryInspectionDetails, repository, path=["response"])
-
- @parametrize
- async def test_raw_response_retrieve_inspection(self, async_client: AsyncRunloop) -> None:
- response = await async_client.repositories.with_raw_response.retrieve_inspection(
- "id",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- repository = await response.parse()
- assert_matches_type(RepositoryInspectionDetails, repository, path=["response"])
-
- @parametrize
- async def test_streaming_response_retrieve_inspection(self, async_client: AsyncRunloop) -> None:
- async with async_client.repositories.with_streaming_response.retrieve_inspection(
- "id",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- repository = await response.parse()
- assert_matches_type(RepositoryInspectionDetails, repository, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @parametrize
- async def test_path_params_retrieve_inspection(self, async_client: AsyncRunloop) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `id` but received ''"):
- await async_client.repositories.with_raw_response.retrieve_inspection(
- "",
- )