Thanks for taking the time to contribute to apidrift.
Prereqs:
- Node.js (LTS recommended)
- npm
Setup:
npm installnpm test
Run the CLI locally:
node bin/apidrift.js --help
src/
commands/ CLI commands
core/ schema inference + diff engine
discovery/ OpenAPI / GraphQL / heuristic discovery
storage/ snapshot persistence
ui/ terminal rendering
Look for issues labeled:
- good first issue
- docs
- help wanted
- gssoc
Please comment on an issue before starting work.
Maintainers may assign issues to avoid duplicate work and conflicting pull requests.
Unassigned PRs may be closed if the issue is already being worked on.
Run against two live endpoints:
node bin/apidrift.js diff \
https://jsonplaceholder.typicode.com/users/1 \
https://jsonplaceholder.typicode.com/posts/1 \
--force- Bug fixes (with a minimal reproducible example)
- Docs improvements (README clarity, examples)
- Small, focused features with tests
If you’re unsure, open an issue first describing the problem and the proposed approach.
- Keep changes small and scoped.
- Avoid breaking CLI UX; prefer backward-compatible options.
- Be mindful of safety defaults (GET-only by default; opt-in for non-GET methods).
- Add/adjust tests when behavior changes.
- Ensure
npm testpasses before opening a PR.
Use clear, conventional messages (examples):
fix: handle empty auth token warningdocs: clarify init + env setupchore: bump version
Before opening a PR:
- Explain why the change is needed.
- Include before/after CLI output when relevant.
- Note any breaking changes clearly.
If you discover a security issue, please do not open a public issue. Instead, contact the maintainer directly.