Skip to content

feat: add Azure OpenAI adapter, update README, and bundle Renovate dep updates#72

Merged
colbytimm merged 23 commits into
mainfrom
feat/azure-openai-adapter-and-readme-cleanup
Jun 6, 2026
Merged

feat: add Azure OpenAI adapter, update README, and bundle Renovate dep updates#72
colbytimm merged 23 commits into
mainfrom
feat/azure-openai-adapter-and-readme-cleanup

Conversation

@colbytimm

@colbytimm colbytimm commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Summary

Three things in this branch:

1. Azure OpenAI adapter

  • New azure_openai adapter wired to the Azure REST shape: api-key header, POST /openai/deployments/{deployment}/chat/completions?api-version=... (deployment = the configured model, configurable api_version, default 2024-10-21).
  • Registered in adapter_manager, adapters/__init__, the models/config.py Literal, and schema/v0.1/schema.json enum.
  • Fully wired through the CLI/Runner like every other provider: --azure-openai-api-key flag, AZURE_OPENAI_API_KEY env var, plus AZURE_OPENAI_ENDPOINT / AZURE_OPENAI_API_VERSION env support.
  • New unit tests for the adapter and the CLI flag.
  • Resolves [FEATURE]: Azure OpenAI Adapter #10

2. README cleanup

  • Removed emojis from headings, anchors, <details> summaries, and the badge/CTA lines.
  • Kept the ✅/📋 status markers in the adapter/drift tables (intentional — useful for scanning implemented vs. planned and core tests); de-emoji'd only headings, anchors, and <details> summaries.
  • Marked Azure OpenAI as Available.

3. Bundled Renovate dependency updates

Merged 9 open Renovate branches via 3-way merge (preserving their commits): openai 2.38, importlib-resources 7.1, respx 0.23.1, pytest-asyncio 1.4, rich 15, setup-uv v8, upload-pages-artifact v5, react-monorepo 19.2.6, typescript 6.0.3. Regenerated uv.lock.

Skipped renovate/docusaurus-monorepo — it is ~119 commits / a year behind main and would have reverted current test files. It should be rebased/recreated by Renovate rather than merged here.

Code review

A high-effort multi-angle review was run. Key fix applied: Azure OpenAI was wired through the CLI/Runner for parity with other providers (previously env-var-only). Unused response model classes were trimmed.

A noted follow-up (out of scope): OpenAI and Azure adapters share a near-identical execute(); a shared OpenAICompatibleAdapter base class could de-duplicate them.

Verification

  • ruff check . clean
  • Full unit suite: 268 passed, coverage 88.99% (>=80% gate)
  • Integration tests not run (they hit live LLM APIs / need keys)

Note

The bundled Renovate PRs (#58, #59, #62, #63, #65, #66, #67, #68, #71) will need closing once this lands.

renovate Bot and others added 21 commits April 29, 2026 11:33
…' into feat/azure-openai-adapter-and-readme-cleanup
…o feat/azure-openai-adapter-and-readme-cleanup
…ure-openai-adapter-and-readme-cleanup

# Conflicts:
#	pyproject.toml
#	uv.lock
… into feat/azure-openai-adapter-and-readme-cleanup
…tifact-5.x' into feat/azure-openai-adapter-and-readme-cleanup
…' into feat/azure-openai-adapter-and-readme-cleanup
@github-actions

github-actions Bot commented Jun 1, 2026

Copy link
Copy Markdown

Successfully published version 0.0.2.dev248 to TestPyPI. 🚀

@github-actions

github-actions Bot commented Jun 1, 2026

Copy link
Copy Markdown

Successfully published version 0.0.2.dev249 to TestPyPI. 🚀

Copilot AI left a comment

Copy link
Copy Markdown

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 adds first-class Azure OpenAI support to PromptDrifter (adapter + CLI/Runner wiring + schema/config registration), refreshes the README formatting/status tables, and batches several Renovate dependency updates (Python deps, docs frontend deps, and GitHub Actions).

Changes:

  • Introduce an azure_openai adapter (Azure REST shape) and register it across adapter registry, config model literals, and JSON schema.
  • Wire Azure OpenAI API key support through CLI/Runner and add unit tests for the adapter and CLI flag behavior.
  • Update README formatting/status presentation and bump multiple dependencies / workflows (plus regenerate lockfiles).

Reviewed changes

Copilot reviewed 17 out of 19 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/promptdrifter/adapters/azure_openai.py New Azure OpenAI adapter + config (core functionality of the feature).
src/promptdrifter/adapters/models/azure_openai_models.py Adds Azure-specific header model and reuses the standard response model.
src/promptdrifter/adapter_manager.py Registers azure_openai in the adapter registry.
src/promptdrifter/adapters/__init__.py Exposes AzureOpenAIAdapter from the adapters package.
src/promptdrifter/cli.py Adds --azure-openai-api-key and passes it into Runner.
src/promptdrifter/runner.py Stores Azure key in Runner’s api_keys map for adapter creation.
src/promptdrifter/models/config.py Extends adapter_type literal to include azure_openai.
src/promptdrifter/schema/v0.1/schema.json Adds azure_openai to the schema enum for adapter type validation.
src/promptdrifter/config/adapter_settings.py Adds Azure OpenAI env var names + defaults (endpoint/api-version).
tests/unit/adapters/test_azure_openai_adapter.py New unit tests for Azure adapter behavior and error handling.
tests/unit/test_cli.py Updates CLI tests to include the new Azure API key argument + adds a flag test.
tests/unit/test_adapter_manager.py Updates adapter registry expectations to include Azure.
README.md Removes emoji from headings/anchors and marks Azure OpenAI as available (tables updated).
pyproject.toml Bumps Python dependencies (OpenAI, Rich, importlib-resources, respx, pytest-asyncio).
docs/package-lock.json Updates docs frontend deps (React / TS).
.github/workflows/shared-build-and-test.yaml Bumps setup-uv action to v8.1.0.
.github/workflows/shared-publish-package.yaml Bumps setup-uv action to v8.1.0.
.github/workflows/deploy-docs.yaml Bumps upload-pages-artifact action to v5.
Files not reviewed (1)
  • docs/package-lock.json: Language not supported

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

Comment thread src/promptdrifter/adapters/azure_openai.py
Comment thread src/promptdrifter/adapters/azure_openai.py
Comment thread README.md
Comment thread src/promptdrifter/config/adapter_settings.py
@github-actions

github-actions Bot commented Jun 1, 2026

Copy link
Copy Markdown

Successfully published version 0.0.2.dev250 to TestPyPI. 🚀

@colbytimm colbytimm merged commit b950c7a into main Jun 6, 2026
8 checks passed
@colbytimm colbytimm deleted the feat/azure-openai-adapter-and-readme-cleanup branch June 6, 2026 16:26
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.

[FEATURE]: Azure OpenAI Adapter

2 participants