First off, thank you for considering contributing! Every contribution helps make this project better for the Toyota Connected Services community.
- Code of Conduct
- Getting Started
- Development Setup
- How to Contribute
- Pull Request Process
- Coding Standards
- Reporting Bugs
- Suggesting Features
This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to the maintainers via the project's issue tracker.
- Fork the repository
- Clone your fork locally
- Create a branch for your changes
- Make your changes
- Submit a pull request
- .NET 10 SDK
- Visual Studio 2026, VS Code, or JetBrains Rider
git clone https://github.com/<your-username>/SharpToyotaClient.git
cd SharpToyotaClient
dotnet build SharpToyotaClient.slnxUnit tests (no credentials required):
dotnet test --filter "MethodName~IsCorrect|MethodName~HasExpectedValues"Integration tests (requires Toyota credentials):
$env:TOYOTA_USERNAME = "your_username"
$env:TOYOTA_PASSWORD = "your_password"
dotnet testNote: Integration tests make real API calls to Toyota Connected Services. Use them responsibly and do not run them in CI without appropriate credentials.
- Bug fixes — Fix an issue and submit a PR
- New API endpoints — Add support for additional Toyota API endpoints
- Response models — Improve or correct API response model mappings
- Documentation — Improve docs, add examples, fix typos
- Tests — Add unit tests or improve test coverage
- New Toyota Connected Services API endpoints (see
config.jsonfor the endpoint pattern) - Better response model coverage (many payloads use
object?and could be strongly typed) - Error handling improvements
- Performance optimizations for high-frequency polling scenarios
- Create an issue first for non-trivial changes to discuss the approach
- Fork & branch — Create a feature branch from
master - Keep it focused — One PR per feature or fix
- Follow conventions — Match the existing code style
- Add tests — All new public API methods need at least one test
- Update docs — Update
docs/api-reference.mdif you add new methods - Ensure build passes — Run
dotnet buildanddotnet testbefore submitting - Write a clear description — Explain what, why, and how
- Code compiles without warnings
- New/changed public methods have XML documentation
- Tests added for new functionality
-
docs/api-reference.mdupdated if API surface changed - No secrets, credentials, or personal data in the code
- Follows existing naming conventions
- Target Framework: .NET 10 / C# 14
- Async all the way — All I/O methods must be async with
Asyncsuffix - CancellationToken — All async methods must accept
CancellationToken - Nullable reference types — Enabled; use
?for nullable types - Naming:
- Methods:
PascalCase, async methods end withAsync - Private fields:
_camelCase - Constants:
UPPER_SNAKE_CASE(matching existing convention)
- Methods:
- Response models — Follow the existing pattern in
Models/ResponseModels.cs - No breaking changes — To the
IMyToyotaClientinterface without discussion
Use the Bug Report template and include:
- .NET version (
dotnet --info) - Steps to reproduce
- Expected vs. actual behavior
- Relevant logs (with credentials redacted)
Use the Feature Request template and include:
- Description of the feature
- Use case / motivation
- If it's a new API endpoint, include any documentation or references you have
By contributing, you agree that your contributions will be licensed under the MIT License.