Contributing
Reporting issues
Bugs, spec-drift oddities, generator quirks: open an issue on the main code repo — ValeryVerkhoturov/wb-api-client/issues.
Include:
- Which language client (Python / TypeScript / Go / Java / PHP / OneScript / C# / Rust)
- Which sub-module (
items,orders_fbs,analytics, …) - Version string from the manifest (
1.YYYYMMDD.N) - Minimal reproduction — one API call, one exception, one expected-vs-actual
Docs-site issues (typos, missing content, broken examples) go on the docs repo: ValeryVerkhoturov/wb-api-client-docs/issues.
Do NOT hand-edit generated code
Every file under clients/ in the main repo is generated. Editing there gets overwritten on the next daily-check run — the PR check will also flag it before merge.
If you find something wrong in generated output, the fix goes in one of:
scripts/pipeline/specs/postprocess.py— a new pass, if the fix applies to the spec before generation.scripts/pipeline/generation/secrets.py— if the fix is in the generatedConfiguration/ApiClientboilerplate.generator-configs/*.yaml— if it's an openapi-generator option toggle.templates/{lang}/*— if it's in the top-level manifest.
The architecture reference has the full pipeline map.
Local development
git clone --recurse-submodules https://github.com/ValeryVerkhoturov/wb-api-client
cd wb-api-client
pip install -r scripts/requirements.txt # ruamel.yaml, markdownify, requests, black, flask
./scripts/download-specs.py # pull upstream (may 498 locally)
python scripts/process-specs.py # -> swaggers/processed/
./scripts/generate-clients.py 1.20260920.0 # -> clients/{python,typescript,go,java,php,onescript,csharp,rust}
make verify # build + format check every languagegenerate-clients.py always regenerates all eight languages. For per-language iteration during debugging, comment out the other queue_generation calls rather than adding a flag. The OPENAPI_GENERATOR_THREADS environment variable controls generation concurrency (default: 2).
Formatting runs inside Docker so contributors don't need language runtimes installed. make verify-<lang> and make {black,prettier,gofmt,spotless,php-cs-fixer,dotnet-format} are individual targets. OneScript has no formatter, so make verify-onescript compiles every module with oscript -check and loads the package instead. make help lists everything.
The pipeline itself lives in scripts/pipeline/, organized by bounded context (see architecture); the flat scripts/*.py files are just CLI shims. Changes under scripts/ are additionally gated by make scripts-check (kernel smoke checks, no # comments, no docstrings), and black covers scripts/ too, not just clients/python.
PR flow
- Fork the main repo.
- Make your change to
scripts/,templates/,generator-configs/, or a workflow. - Regenerate locally so
clients/matches. - Commit
swaggers/,clients/, and your source changes together. - Open a PR. The PR-check workflow will regenerate from scratch and fail if
git diffis non-empty against your commit — that catches non-determinism.
Contributing to the docs site
This site lives in ValeryVerkhoturov/wb-api-client-docs.
git clone https://github.com/ValeryVerkhoturov/wb-api-client-docs
cd wb-api-client-docs
npm install
npm run docs:dev
# → http://localhost:5173/wb-api-client-docs/Push to main; the deploy workflow builds and publishes to GitHub Pages automatically.
License
Both repos are Apache 2.0. Contributions are assumed to be under the same license.
