Files
devin-ai-integration[bot] 29794d0d56 Route volume-api generation through redocly filtering (#1731)
## Summary

Follow-up to #1728 (per review:
https://github.com/e2b-dev/E2B/pull/1728#discussion_r3822169921): the
volume-content client generation now bundles through redocly first, like
the envd pipeline, so future `x-internal: true` operations in the synced
spec are dropped before SDK schemas are generated.

- `redocly.yaml`: new `volume` API rooted at
`spec/openapi-volumecontent.yml` with the same `filter-out: x-internal`
+ `remove-unused-components` decorators as `envd`.
- js-sdk `generate:volume-api` and python-sdk `generate-volume-api` now
run `redocly bundle volume -o spec/openapi_generated.volume.yml` before
their generators (the bundle output is gitignored like the other
`openapi_generated.*.yml` files).

Regenerated output: the Python volume client is byte-identical (the spec
has no `x-internal` operations today); the JS `schema.gen.ts` only loses
four response components (400/401/403/409) that no operation referenced,
dropped by `remove-unused-components`.

Now that #1728 is merged, this is rebased onto `main` (single commit,
codegen plumbing only) and ready for review.

Link to Devin session:
https://app.devin.ai/sessions/175095f75cbe42df8710718a1ff2a6a3
Requested by: @mishushakov

---------

Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: mish@e2b.dev <mish@e2b.dev>
2026-08-21 14:59:45 +00:00

59 lines
1.8 KiB
Makefile

ROOT_DIR := $(abspath $(dir $(lastword $(MAKEFILE_LIST)))/../..)
generate-api:
redocly bundle python-sdk --config $(ROOT_DIR)/redocly.yaml -o $(ROOT_DIR)/spec/openapi_generated.python-sdk.yml
openapi-python-client generate --output-path $(ROOT_DIR)/packages/python-sdk/e2b/api/api --overwrite --path $(ROOT_DIR)/spec/openapi_generated.python-sdk.yml
rm -rf e2b/api/client
mv e2b/api/api/e2b_api_client e2b/api/client
rm -rf e2b/api/api
ruff format .
generate-volume-api:
redocly bundle volume --config $(ROOT_DIR)/redocly.yaml -o $(ROOT_DIR)/spec/openapi_generated.volume.yml
openapi-python-client generate --output-path $(ROOT_DIR)/packages/python-sdk/e2b/volume/api --overwrite --path $(ROOT_DIR)/spec/openapi_generated.volume.yml
rm -rf e2b/volume/client
mv e2b/volume/api/e2b_api_client e2b/volume/client
rm -rf e2b/volume/api
ruff format .
# Requires `buf` and the codegen dependency group (`make init`), which
# provides the `protoc-gen-connectrpc` plugin.
generate-envd:
cd $(ROOT_DIR)/spec/envd && pwd && buf generate --template buf-python.gen.yaml
./scripts/fix-python-pb.sh
ruff format .
generate: generate-api generate-envd generate-mcp generate-volume-api
# Install the code-generation toolchain into the uv env. After this, run the
# generators locally with e.g. `uv run make generate-api`.
init:
uv sync --group codegen
typecheck:
ty check
lint:
ruff check .
ruff format --check .
format:
ruff format .
generate-mcp:
datamodel-codegen \
--input ../../spec/mcp-server.json \
--input-file-type jsonschema \
--output e2b/sandbox/mcp.py \
--output-model-type typing.TypedDict \
--target-python-version 3.10 \
--class-name McpServer \
--use-field-description \
--disable-timestamp \
--extra-fields forbid
.PHONY: test
test:
uv run pytest --verbose --numprocesses=4