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 abuse@posseth.com.
- 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>/Posseth.Toyota.Client.git
cd Posseth.Toyota.Client
dotnet build src/Posseth.Toyota.Client/Posseth.Toyota.Client.slnUnit 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.