Thanks for your interest in contributing! This document explains how to get started.
- Fork and clone the repository
- Install .NET 10 SDK
- Run
dotnet buildto verify everything compiles - Run
dotnet test --filter "Category!=Integration"to run unit tests
- Check existing issues and PRs to avoid duplicate work
- For significant changes, open an issue first to discuss the approach
- Follow existing patterns in the codebase
- All public APIs need XML documentation comments
- Keep methods focused and small
- Use async/await consistently (all I/O operations should be async)
- Add unit tests for new functionality
- Ensure all existing tests pass before submitting
- Integration tests require a Lichess API token and hit live servers, so they're excluded from CI
Run tests:
dotnet test --filter "Category!=Integration"- Write clear commit messages explaining what and why
- Keep commits focused on a single change
- Create a branch from
main - Make your changes with tests
- Ensure
dotnet buildanddotnet test --filter "Category!=Integration"pass - Push and open a PR against
main - Fill in the PR description explaining your changes
src/LichessSharp/ # Main library
Api/ # API implementations (one per Lichess API area)
Api/Contracts/ # Interfaces for each API
Models/ # Request/response DTOs
Http/ # HTTP client infrastructure
tests/LichessSharp.Tests/ # Unit and integration tests
samples/ # Example applications
docs/ # Documentation
- Find the endpoint in
openapi/lichess.openapi.json - Add the method to the appropriate interface in
Api/Contracts/ - Implement the method in the corresponding API class
- Add unit tests
- Update
docs/api-coverage.md
Open an issue if you have questions or need guidance.