Skip to content

More kiota support#103

Merged
ejfine merged 11 commits intomainfrom
more-kiota
Oct 27, 2025
Merged

More kiota support#103
ejfine merged 11 commits intomainfrom
more-kiota

Conversation

@ejfine
Copy link
Contributor

@ejfine ejfine commented Oct 27, 2025

Why is this change necessary?

Better usage of Kiota downstream for codegen

How does this change address the issue?

Updates the pre-commit ignore paths

What side effects does this change have?

None

How is this change tested?

Downstream repos

Other

Bumps pyright, which required removing reportShadowedImports (since it was deprecated/removed)

Summary by CodeRabbit

  • Chores
    • Bumped devcontainer editor/AI extensions and template defaults.
    • Updated CI/dev tooling versions and installer defaults (UV, Copier, etc.).
    • Updated project dependency/tool versions (pyright) and many tool-version references.
    • Standardized generated file path patterns across configs (openapi → generated/open_api).
    • Adjusted static analysis settings (pre-commit hooks, linter revisions, removed a Pyright flag).

@coderabbitai
Copy link

coderabbitai bot commented Oct 27, 2025

Note

Other AI code review bot(s) detected

CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.

Walkthrough

This PR updates many pinned tooling and extension versions, adjusts generated-file exclusion patterns from openapi_codegen to generated/open_api (and variants), and refreshes the devcontainer context hash and installer version constants.

Changes

Cohort / File(s) Summary
Devcontainer files
\.devcontainer/devcontainer\.json, template/.devcontainer/devcontainer\.json.jinja-base
Bumped VS Code extension versions (e.g., github.copilot, github.copilot-chat, anthropic.claude-code) and updated devcontainer context hash.
Installer tooling
\.devcontainer/install-ci-tooling\.py
Bumped installer constants: UV_VERSION 0.9.2 → 0.9.5 and COPIER_VERSION 9.10.2 → 9.10.3.
Context/version pins
extensions/context\.py
Updated many hard-coded tool/version strings used by the ContextUpdater hook (pyright, pnpm, pulumi and pulumi_aws, boto3, pydantic, fastapi, uvicorn, nuxt/vue/node tooling, eslint, GH Actions node setup, etc.).
Pre-commit & linters
\.pre-commit-config\.yaml, pyrightconfig\.json
Replaced generated-file exclude patterns from .*openapi_codegen/.* / **/openapi_codegen to .*generated/open[-_]api/.* / **/generated/open_api; updated several hook revisions (ruff, pylint) and removed reportShadowedImports from pyright config.
Project deps
pyproject\.toml
Bumped dependency pyright[nodejs] 1.1.406 → 1.1.407.

Sequence Diagram(s)

(The changes are version/config updates and path adjustments; no new control flow or runtime interactions were introduced, so no sequence diagram is necessary.)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Areas to spot-check:
    • Consistency of the new generated-file exclude patterns across all tooling configs (.pre-commit-config.yaml, pyrightconfig.json, any other tooling uses).
    • Cross-check that version bumps in extensions/context.py align with pyproject.toml and the template devcontainer versions where applicable.
    • Confirm installer version strings in .devcontainer/install-ci-tooling.py match release expectations for UV and Copier.

Possibly related PRs

  • Update Lint config #70 — Overlaps with same version pins and context changes in extensions/context.py and devcontainer updates.
  • Bump pytest-cov #92 — Modifies tooling/version constants and devcontainer/template entries similar to this PR.
  • Bump Fast API and Uvicorn #96 — Updates the same installer tooling constants (e.g., UV_VERSION) and related version entries.

Poem

🐰 A hop through versions, tidy and bright,
I nudged the pins, set the config aright.
Generated paths shifted to a newer lane,
Containers refreshed — all snug and sane. ✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Title Check ❓ Inconclusive The title "More kiota support" is vague and generic, failing to clearly communicate what specific changes were made to the codebase. While "Kiota" is mentioned in the description as the context for the changes, the title doesn't convey the actual modifications—such as pre-commit path filter updates, multiple version bumps across dependencies, or the removal of a deprecated Pyright configuration option. The title reads more as a purpose or theme statement rather than a specific summary of the changeset, making it difficult for someone scanning the commit history to quickly understand what was actually modified.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed The pull request description covers all the critical sections from the template: it explains why the change is necessary (better Kiota downstream usage), how it addresses the issue (pre-commit path updates), identifies side effects (none), documents testing approach (downstream repos), and includes additional context about the Pyright bump and deprecation removal. The only missing section is "Link to Issue or Message thread," which is a non-critical reference element. The description provides sufficient technical detail and rationale for the changes, making it clear to reviewers what motivated the work and how it was validated.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch more-kiota

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 42d207b and 99d3a08.

📒 Files selected for processing (2)
  • .devcontainer/devcontainer.json (2 hunks)
  • template/.devcontainer/devcontainer.json.jinja-base (1 hunks)
🔇 Additional comments (4)
.devcontainer/devcontainer.json (3)

27-33: LGTM! Extension version updates look good.

The version bumps for GitHub Copilot (1.388.0), Copilot Chat (0.33.2025102701), and Ruff (2025.28.0) are straightforward maintenance updates that align with the broader tooling refresh in this PR.


64-64: LGTM! Context hash properly updated.

The devcontainer context hash has been updated appropriately by the pre-commit hook as indicated by the inline comment.


33-35: LGTM! Template extension versions updated consistently.

The extension version bumps for GitHub Copilot (1.388.0), Copilot Chat (0.33.2025102701), and Claude Code (2.0.27) are consistent with the updates in .devcontainer/devcontainer.json and represent routine maintenance.

template/.devcontainer/devcontainer.json.jinja-base (1)

33-35: LGTM! Extension version bumps look good.

The version updates for GitHub Copilot, Copilot Chat, and Claude Code extensions are straightforward incremental updates from trusted sources. The syntax and format are correct.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@ejfine ejfine requested a review from Copilot October 27, 2025 20:41
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR updates the configuration for better Kiota code generation support by standardizing the path for generated OpenAPI code from openapi_codegen to generated/open_api. The PR also bumps several dependency versions, most notably pyright (which required removing the deprecated reportShadowedImports configuration).

Key changes:

  • Updates ignore paths across configuration files from **/openapi_codegen to **/generated/open[-_]api to support both underscore and hyphen variants
  • Bumps pyright from v1.1.406 to v1.1.407 and removes deprecated reportShadowedImports setting
  • Updates various dependency versions (uv, copier, pnpm, pulumi, boto3, pydantic, and multiple frontend packages)

Reviewed Changes

Copilot reviewed 6 out of 7 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
pyrightconfig.json Updates OpenAPI codegen path pattern and removes deprecated reportShadowedImports setting
pyproject.toml Bumps pyright version to 1.1.407
extensions/context.py Updates version numbers for tooling and dependencies used in template generation
.pre-commit-config.yaml Updates OpenAPI path exclusion pattern across multiple hooks and bumps ruff/pylint versions
.devcontainer/install-ci-tooling.py Updates UV_VERSION and COPIER_VERSION constants
.devcontainer/devcontainer.json Updates devcontainer context hash

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

.*/vendor_files/.*|
.*tests/.*/__snapshots__/.*|
.*/openapi_codegen/.*|
.*/generated/open[-_]api/.*|
Copy link

Copilot AI Oct 27, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The regex pattern .*/generated/open[-_]api/.* allows both hyphen and underscore variants (open-api and open_api). This flexibility could lead to inconsistent directory naming across projects. Consider documenting which variant should be used as the standard, or enforce a single pattern to maintain consistency.

Copilot uses AI. Check for mistakes.
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 84815c3 and 42d207b.

⛔ Files ignored due to path filters (1)
  • uv.lock is excluded by !**/*.lock
📒 Files selected for processing (6)
  • .devcontainer/devcontainer.json (1 hunks)
  • .devcontainer/install-ci-tooling.py (1 hunks)
  • .pre-commit-config.yaml (9 hunks)
  • extensions/context.py (3 hunks)
  • pyproject.toml (1 hunks)
  • pyrightconfig.json (1 hunks)
🔇 Additional comments (7)
.devcontainer/devcontainer.json (1)

64-64: LGTM!

The devcontainer context hash update is auto-generated by the pre-commit hook and reflects the changes in this PR.

pyproject.toml (1)

11-11: LGTM!

The pyright version bump to 1.1.407 aligns with the configuration changes in pyrightconfig.json and is consistent with the PR objectives.

.devcontainer/install-ci-tooling.py (1)

8-9: LGTM!

The version bumps for UV and Copier are straightforward updates that align with the corresponding changes in extensions/context.py.

extensions/context.py (1)

14-96: LGTM!

The version updates across multiple dependencies and tools are well-coordinated with the changes in other configuration files. These context values are used for templating and align with the PR's objective of updating tooling versions.

.pre-commit-config.yaml (2)

62-62: Path pattern updates are consistent within this file.

The updated regex pattern .*/generated/open[-_]api/.* is consistently applied across all pre-commit hooks. The pattern correctly matches both open_api and open-api naming conventions using the character class [-_].

However, note that pyrightconfig.json uses a glob pattern that only matches the underscore variant. See the comment on that file for details.

Also applies to: 74-74, 91-91, 105-105, 132-132, 255-255, 265-265, 272-272, 284-284, 300-300


246-246: LGTM!

The version updates for ruff (v0.14.2) and pylint (v4.0.2) are routine maintenance updates.

Also applies to: 276-276

pyrightconfig.json (1)

1-110: Verification confirmed: reportShadowedImports removal is accurate.

The setting was removed from pyright and included in recent pyright releases. The change to remove it from pyrightconfig.json is correct and justified.

"**/vendor_files",
"**/graphql_codegen",
"**/openapi_codegen",
"**/generated/open_api",
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify path pattern consistency across configuration files.

The glob pattern here uses **/generated/open_api (underscore only), but .pre-commit-config.yaml uses the regex pattern .*/generated/open[-_]api/.* (underscore OR hyphen). This inconsistency could result in files being excluded in pre-commit hooks but still analyzed by pyright, or vice versa.

Ensure the naming convention is consistent, or if both open_api and open-api are valid generated paths, update this glob pattern to match both.

Run the following script to check if both naming conventions exist in the codebase:


🏁 Script executed:

#!/bin/bash
# Description: Check for both generated/open_api and generated/open-api paths

# Search for directories matching either pattern
fd -t d -g "**/generated/open_api"
fd -t d -g "**/generated/open-api"

Length of output: 0


🏁 Script executed:

#!/bin/bash
# Description: Inspect actual config files and check for generated directories

echo "=== pyrightconfig.json ==="
cat pyrightconfig.json

echo -e "\n=== .pre-commit-config.yaml (search for generated pattern) ==="
grep -n "generated" .pre-commit-config.yaml || echo "No matches"

echo -e "\n=== Search for any generated directories ==="
fd -t d "generated" || echo "No generated directories found"

echo -e "\n=== Search for open_api or open-api anywhere ==="
rg -i "open.?api" --type-list | head -5
rg -i "open.?api" -l || echo "No matches"

Length of output: 5243


🌐 Web query:

pyrightconfig.json exclude glob pattern syntax documentation

💡 Result:

Summary: pyrightconfig.json exclude entries use filesystem glob patterns (wildcards) similar to gitignore-style/glob syntax: * matches any characters except '/', ** matches zero-or-more path components (recursive), ? matches one character, character classes ([a-z]) work, and patterns are anchored to the config-file/project root unless you prefix with **/. Exclude entries override include; Pyright auto-excludes common folders (node_modules, pycache, venv, .git) by default. See Pyright docs/examples and config discussion for details. [1][2][3]

Quick examples

  • "**/pycache" — exclude any pycache directory anywhere. [1]
  • ".venv" or "/.venv/" — exclude virtualenv. [1][2]
  • "src/experimental" — exclude that path relative to project root (not every directory named experimental). Use "**/experimental" to match any nested directory named experimental. [1][2]
  • Exclude overrides include (an excluded file in an included dir is not type-checked). [3]

Sources

  1. Pyright sample config & patterns in docs (pyrightconfig.json examples). [1]
  2. Pyright configuration reference (pyrightconfig.json behavior and defaults). [2]
  3. Pyright GitHub discussion / docs clarifying exclude overrides and LSP behavior. [3]

Update glob pattern to match both open_api and open-api naming conventions.

The pattern **/generated/open_api only excludes paths with underscore, but .pre-commit-config.yaml uses regex patterns that match both underscore and hyphen (open[-_]api). Update line 14 to **/generated/open[_-]api using glob character class syntax to ensure consistent exclusion behavior across both configuration files.

🤖 Prompt for AI Agents
In pyrightconfig.json around line 14, the exclude glob "**/generated/open_api"
only matches underscore and misses "open-api"; update the pattern to use a
character class matching both separators (open[_-]api) so it excludes both
generated/open_api and generated/open-api paths consistently with other configs;
replace the existing glob entry with the new pattern and save the file.

@ejfine ejfine merged commit f272634 into main Oct 27, 2025
7 checks passed
@ejfine ejfine deleted the more-kiota branch October 27, 2025 23:40
This was referenced Oct 30, 2025
@coderabbitai coderabbitai bot mentioned this pull request Nov 24, 2025
This was referenced Dec 11, 2025
@coderabbitai coderabbitai bot mentioned this pull request Jan 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants