Skip to content

Commit be43e47

Browse files
authored
More kiota support (#85)
## Why is this change necessary? Allow better usage of Kiota codegen ## How does this change address the issue? Updates the open API generation to include generic error return bodies adds in an adjuster to post-process the kiota typescript models to better handle nullability ## What side effects does this change have? None ## How is this change tested? Downstream repos using lots of HTTP APIs and also GraphQL ## Other Pulled in other misc upstream version updates <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added new UI icons: arrow-up-down, arrow-up-narrow-wide, arrow-down-wide-narrow, moon, sun, and menu * Improved OpenAPI docs by standardizing problem/error schema for richer error responses * **Chores** * Bumped numerous dev/runtime tool versions and CI/tooling configs; updated devcontainer extensions * Consolidated generated OpenAPI output paths and updated related build scripts; added post-codegen nullable-fix utility * Adjusted pre-commit/typing exclusions to target generated OpenAPI paths * **Tests** * Strengthened OpenAPI test to verify cached, stable responses <!-- end of auto-generated comment: release notes by coderabbit.ai -->
1 parent 8915b04 commit be43e47

File tree

21 files changed

+325
-84
lines changed

21 files changed

+325
-84
lines changed

.copier-answers.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Changes here will be overwritten by Copier
2-
_commit: v0.0.77
2+
_commit: v0.0.78
33
_src_path: gh:LabAutomationAndScreening/copier-base-template.git
44
description: A web app that is hosted within a local intranet. Nuxt frontend, python
55
backend, docker-compose

.devcontainer/devcontainer.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@
2424
2525
2626
27-
"github.copilot@1.380.1802",
28-
"[email protected].2025101401",
27+
"github.copilot@1.388.0",
28+
"[email protected].2025102701",
2929

3030
// Python
3131
@@ -63,5 +63,5 @@
6363
"initializeCommand": "sh .devcontainer/initialize-command.sh",
6464
"onCreateCommand": "sh .devcontainer/on-create-command.sh",
6565
"postStartCommand": "sh .devcontainer/post-start-command.sh"
66-
// Devcontainer context hash (do not manually edit this, it's managed by a pre-commit hook): 92c759a1 # spellchecker:disable-line
66+
// Devcontainer context hash (do not manually edit this, it's managed by a pre-commit hook): 8188701b # spellchecker:disable-line
6767
}

.devcontainer/install-ci-tooling.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
import tempfile
88
from pathlib import Path
99

10-
UV_VERSION = "0.9.2"
11-
PNPM_VERSION = "10.18.3"
12-
COPIER_VERSION = "9.10.2"
10+
UV_VERSION = "0.9.5"
11+
PNPM_VERSION = "10.19.0"
12+
COPIER_VERSION = "9.10.3"
1313
COPIER_TEMPLATE_EXTENSIONS_VERSION = "0.3.3"
1414
PRE_COMMIT_VERSION = "4.3.0"
1515
GITHUB_WINDOWS_RUNNER_BIN_PATH = r"C:\Users\runneradmin\.local\bin"

.github/actions/install_deps/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ runs:
5959

6060
- name: Setup node
6161
if: ${{ inputs.node-version != 'notUsing' }}
62-
uses: actions/setup-node@v5.0.0
62+
uses: actions/setup-node@v6.0.0
6363
with:
6464
node-version: ${{ inputs.node-version }}
6565

.pre-commit-config.yaml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ repos:
5959
(?x)^(
6060
.*/vendor_files/.*|
6161
.*tests/.*/__snapshots__/.*|
62-
.*/openapi_codegen/.*|
62+
.*/generated/open[-_]api/.*|
6363
)$
6464
- id: end-of-file-fixer
6565
# the XML formatter hook doesn't leave a blank line at the end, so excluding XML files from this hook to avoid conflicts
@@ -71,7 +71,7 @@ repos:
7171
template/template/.copier-answers.yml.jinja|
7272
template/.copier-answers.yml.jinja|
7373
.*generated/graphql.ts|
74-
.*/openapi_codegen/.*|
74+
.*/generated/open[-_]api/.*|
7575
.*tests/.*/__snapshots__/.*|
7676
.devcontainer/devcontainer-lock.json|
7777
.copier-answers.yml|
@@ -88,7 +88,7 @@ repos:
8888
.*pyrightconfig.json|
8989
.*tsconfig.json|
9090
.*biome.jsonc|
91-
.*/openapi_codegen/.*|
91+
.*/generated/open[-_]api/.*|
9292
.*tests/.*/__snapshots__/.*|
9393
.*/vendor_files/.*|
9494
)$
@@ -102,7 +102,7 @@ repos:
102102
exclude: |
103103
(?x)^(
104104
.*generated/graphql.ts|
105-
.*/openapi_codegen/.*|
105+
.*/generated/open[-_]api/.*|
106106
.*/schema.graphql|
107107
.*pyrightconfig\.json|
108108
)$
@@ -129,7 +129,7 @@ repos:
129129
.*.jsonc|
130130
.*/vendor_files/.*|
131131
.*/schema.graphql|
132-
.*/openapi_codegen/.*|
132+
.*/generated/open[-_]api/.*|
133133
.*generated/graphql.ts|
134134
template/.*|
135135
)$
@@ -243,7 +243,7 @@ repos:
243243
description: Runs hadolint to lint Dockerfiles
244244

245245
- repo: https://github.com/astral-sh/ruff-pre-commit
246-
rev: f9351c924055bf6c7b4a4670237d3ce141e9f57c # frozen: v0.14.0
246+
rev: 3db93a2be6f214ed722bf7bce095ec1b1715422a # frozen: v0.14.2
247247
hooks:
248248
- id: ruff
249249
name: ruff-src
@@ -252,7 +252,7 @@ repos:
252252
exclude: |
253253
(?x)^(
254254
.*/graphql_codegen/.*|
255-
.*/openapi_codegen/.*|
255+
.*/generated/open[-_]api/.*|
256256
template/.*|
257257
)$
258258
- id: ruff
@@ -262,26 +262,26 @@ repos:
262262
exclude: |
263263
(?x)^(
264264
.*/graphql_codegen/.*|
265-
.*/openapi_codegen/.*|
265+
.*/generated/open[-_]api/.*|
266266
template/.*|
267267
)$
268268
- id: ruff-format
269269
exclude: |
270270
(?x)^(
271271
.*/graphql_codegen/.*|
272-
.*/openapi_codegen/.*|
272+
.*/generated/open[-_]api/.*|
273273
)$
274274
275275
- repo: https://github.com/pylint-dev/pylint
276-
rev: 9a3035053154ba0c3ca3b300d6bc9fa72b95d552 # frozen: v4.0.1
276+
rev: 0eb92d25fd38ba5bad2f8d2ea7df63ad23e18ae3 # frozen: v4.0.2
277277
hooks:
278278
- id: pylint
279279
name: pylint
280280
# exclude the template files---duplication within them will be discovered during CI of that template instantiation
281281
exclude: |
282282
(?x)^(
283283
.*/graphql_codegen/.*|
284-
.*/openapi_codegen/.*|
284+
.*/generated/open[-_]api/.*|
285285
template/.*|
286286
)$
287287
args:
@@ -297,7 +297,7 @@ repos:
297297
exclude: |
298298
(?x)^(
299299
.*/graphql_codegen/.*|
300-
.*/openapi_codegen/.*|
300+
.*/generated/open[-_]api/.*|
301301
)$
302302
# don't pass filenames else the command line sees them twice
303303
pass_filenames: false

extensions/context.py

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -10,31 +10,31 @@ class ContextUpdater(ContextHook):
1010

1111
@override
1212
def hook(self, context: dict[Any, Any]) -> dict[Any, Any]:
13-
context["uv_version"] = "0.9.2"
14-
context["pnpm_version"] = "10.18.3"
13+
context["uv_version"] = "0.9.5"
14+
context["pnpm_version"] = "10.19.0"
1515
context["pre_commit_version"] = "4.3.0"
16-
context["pyright_version"] = "1.1.406"
16+
context["pyright_version"] = "1.1.407"
1717
context["pytest_version"] = "8.4.2"
1818
context["pytest_randomly_version"] = "4.0.1"
1919
context["pytest_cov_version"] = "7.0.0"
20-
context["copier_version"] = "9.10.2"
20+
context["copier_version"] = "9.10.3"
2121
context["copier_template_extensions_version"] = "0.3.3"
2222
context["sphinx_version"] = "8.1.3"
23-
context["pulumi_version"] = "3.203.0"
24-
context["pulumi_aws_version"] = "7.8.0"
23+
context["pulumi_version"] = "3.204.0"
24+
context["pulumi_aws_version"] = "7.10.0"
2525
context["pulumi_aws_native_version"] = "1.37.0"
2626
context["pulumi_command_version"] = "1.1.3"
2727
context["pulumi_github_version"] = "6.7.4"
2828
context["pulumi_okta_version"] = "6.0.0"
29-
context["boto3_version"] = "1.40.51"
29+
context["boto3_version"] = "1.40.60"
3030
context["ephemeral_pulumi_deploy_version"] = "0.0.5"
31-
context["pydantic_version"] = "2.12.2"
31+
context["pydantic_version"] = "2.12.3"
3232
context["pyinstaller_version"] = "6.16.0"
3333
context["setuptools_version"] = "80.7.1"
34-
context["strawberry_graphql_version"] = "0.283.3"
35-
context["fastapi_version"] = "0.119.0"
34+
context["strawberry_graphql_version"] = "0.284.1"
35+
context["fastapi_version"] = "0.120.1"
3636
context["fastapi_offline_version"] = "1.7.4"
37-
context["uvicorn_version"] = "0.37.0"
37+
context["uvicorn_version"] = "0.38.0"
3838
context["lab_auto_pulumi_version"] = "0.1.17"
3939
context["ariadne_codegen_version"] = "0.15.2"
4040
context["pytest_mock_version"] = "3.15.1"
@@ -44,28 +44,28 @@ def hook(self, context: dict[Any, Any]) -> dict[Any, Any]:
4444
context["node_version"] = "24.7.0"
4545
context["nuxt_ui_version"] = "^4.0.1"
4646
context["nuxt_version"] = "^4.1.0"
47-
context["nuxt_icon_version"] = "^2.0.0"
47+
context["nuxt_icon_version"] = "^2.1.0"
4848
context["typescript_version"] = "^5.9.3"
4949
context["playwright_version"] = "^1.56.0"
50-
context["vue_version"] = "^3.5.21"
51-
context["vue_tsc_version"] = "^3.1.1"
50+
context["vue_version"] = "^3.5.22"
51+
context["vue_tsc_version"] = "^3.1.2"
5252
context["vue_devtools_api_version"] = "^8.0.0"
5353
context["vue_router_version"] = "^4.6.0"
5454
context["dotenv_cli_version"] = "^10.0.0"
5555
context["faker_version"] = "^10.1.0"
5656
context["vitest_version"] = "^3.2.4"
57-
context["eslint_version"] = "^9.37.0"
57+
context["eslint_version"] = "^9.38.0"
5858
context["nuxt_eslint_version"] = "^1.9.0"
5959
context["zod_version"] = "^4.1.5"
6060
context["zod_from_json_schema_version"] = "^0.5.0"
61-
context["types_node_version"] = "^24.7.2"
61+
context["types_node_version"] = "^24.9.1"
6262
context["nuxt_apollo_version"] = "5.0.0-alpha.15"
6363
context["graphql_codegen_cli_version"] = "^6.0.0"
6464
context["graphql_codegen_typescript_version"] = "^5.0.0"
6565
context["graphql_codegen_typescript_operations_version"] = "^5.0.0"
6666
context["tailwindcss_version"] = "^4.1.11"
6767
context["iconify_vue_version"] = "^5.0.0"
68-
context["iconify_json_lucide_version"] = "^1.2.68"
68+
context["iconify_json_lucide_version"] = "^1.2.71"
6969
context["nuxt_fonts_version"] = "^0.11.4"
7070
context["nuxtjs_color_mode_version"] = "^3.5.2"
7171
context["vue_test_utils_version"] = "^2.4.6"
@@ -85,7 +85,7 @@ def hook(self, context: dict[Any, Any]) -> dict[Any, Any]:
8585
context["gha_docker_build_push"] = "v6.16.0"
8686
context["gha_configure_aws_credentials"] = "v5.0.0"
8787
context["gha_amazon_ecr_login"] = "v2.0.1"
88-
context["gha_setup_node"] = "v5.0.0"
88+
context["gha_setup_node"] = "v6.0.0"
8989
context["gha_action_gh_release"] = "v2.2.1"
9090
context["gha_mutex"] = "1ebad517141198e08d47cf72f3c0975316620a65 # v1.0.0-alpha.10"
9191
context["gha_pypi_publish"] = "v1.13.0"

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ dependencies = [
99
"pytest>=8.4.2",
1010
"pytest-cov>=7.0.0",
1111
"pytest-randomly>=4.0.1",
12-
"pyright[nodejs]>=1.1.406",
13-
"copier>=9.10.2",
12+
"pyright[nodejs]>=1.1.407",
13+
"copier>=9.10.3",
1414
"copier-template-extensions>=0.3.3"
1515

1616
# Specific to this template

pyrightconfig.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"**/__pycache__",
1414
"**/vendor_files",
1515
"**/graphql_codegen",
16-
"**/openapi_codegen",
16+
"**/generated/open_api",
1717
"**/.venv",
1818
"**/venv"
1919
],
@@ -101,7 +101,6 @@
101101
"reportUnnecessaryTypeIgnoreComment": true,
102102
"reportMatchNotExhaustive": true,
103103
"reportImplicitOverride": true,
104-
"reportShadowedImports": true,
105104
"pythonPlatform": "Linux",
106105
"executionEnvironments": [
107106
{

template/.devcontainer/devcontainer.json.jinja

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@
3131
3232
3333
34-
"github.copilot@1.380.1802",
35-
"[email protected].2025101401",{% endraw %}{% if install_claude_cli %}{% raw %}
36-
"[email protected].10",{% endraw %}{% endif %}{% raw %}
34+
"github.copilot@1.388.0",
35+
"[email protected].2025102701",{% endraw %}{% if install_claude_cli %}{% raw %}
36+
"[email protected].27",{% endraw %}{% endif %}{% raw %}
3737

3838
// Python
3939

template/.github/actions/install_deps/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ runs:
5959

6060
- name: Setup node
6161
if: ${{ inputs.node-version != 'notUsing' }}
62-
uses: actions/setup-node@v5.0.0
62+
uses: actions/setup-node@v6.0.0
6363
with:
6464
node-version: ${{ inputs.node-version }}
6565

0 commit comments

Comments
 (0)