AUR-390: Blizzard API provider scaffold + doctor - #33
Merged
aurokin merged 1 commit intoMay 31, 2026
Merged
Conversation
New blizzard-api provider package and `blizzard` CLI exposing a doctor-only slice: OAuth client-credentials auth posture and env-file credential discovery (.env.local > provider env file > process environment), with per-key source attribution and a "mixed" label when the credential halves resolve from different sources. Region is surfaced when configured but routing stays deferred to the Game Data/Profile slice. - Wrapper registration with honest capability metadata (doctor=ready, search/resolve/game_data/profile=coming_soon); expansion_mode=none. - import-linter wiring keeps the provider independent and layered. - Auth discovery is pure-read (no os.environ mutation) so doctor never leaks credentials into the process or output. - Scaffold scope only: Game Data and Profile endpoints are deferred. make check green (978 passed, 237 deselected; ruff/mypy/import-linter clean). diffwarden iterated to convergence: codex-gpt54, codex-gpt55, cursor-composer all clean; every valid finding fixed, one declined with documented rationale (--expansion mirrors existing simc behavior). Closes AUR-390 Co-Authored-By: OpenAI Codex <noreply@openai.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
aurokin
deleted the
aur-390-blizzard-api-provider-bootstrap-and-oauth-patterns
branch
May 31, 2026 23:24
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Scaffold slice of the Blizzard Battle.net WoW API provider (AUR-390): a new
blizzard-apipackage andblizzardCLI exposing a doctor-only command plus auth posture. This validates the shared OAuth client-credentials architecture (phase 3,docs/architecture/AUTH_ARCHITECTURE.md) as a second auth point alongsidewarcraftlogs, without yet shipping Game Data / Profile endpoints.What's included
blizzard doctor— reports install state, OAuth client-credentials auth posture, capability metadata, and a configured (but deferred-routing) region..env.local> provider env file > process environment, resolved per key so each credential half is attributed to the source that supplied it.credential_sourceis the file path when both halves share a source,"environment"for process env,"mixed"when split,Nonewhen unconfigured. Reads are pure — noos.environmutation, and credentials are never emitted in output.doctor=ready;search/resolve/game_data/profile=coming_soon),expansion_mode=none, surfaced through thewarcraft blizzardpassthrough and surface filtering.import-linterkeeps the provider independent and correctly layered; the wrapper declares its newblizzard-api-clidependency.docs/blizzard-api/README.mdscaffold section;CHANGELOG.mdUnreleased entry.tests/test_blizzard_api_cli.pycovers doctor payload, region discovery from env/provider file, per-source credential attribution (environment/ file /mixed), and unconfigured state. Wrapper test sets updated for the 10th provider.Deferred (not in this slice)
Game Data and Profile endpoints, and region/namespace-aware routing, are out of scope for this scaffold and remain to be implemented. Recommend a follow-up issue to track that work.
Design note
A shared
read_env_valueshelper was prototyped inwarcraft_core.envthen reverted in favor of a provider-local parser inblizzard_api_cli/auth.py, following the repo rule to extract shared helpers only once a second consumer exists. This keeps the core unchanged and the>=0.1.0floor accurate.Verification
make checkgreen — 978 passed, 237 deselected; ruff / mypy / import-linter clean.diffwarden --target uncommittediterated to convergence: codex-gpt54, codex-gpt55, cursor-composer all report no findings (verdict "patch is correct"). One finding declined with documented inline rationale (--expansionwithexpansion_mode=nonemirrors existingsimcbehavior).Closes AUR-390
🤖 Generated with Claude Code