Issues and pull requests are welcome!
- Fork the repository
- Create a feature branch from
main - Make your changes
- Submit a pull request
dotnet build --configuration ReleaseThe plugin targets Jellyfin 12.0.0 and net10.0. Package references must remain
aligned with the supported Jellyfin server version.
dotnet testChanges that affect authorization, the provisioning-secret gate, or session creation must also be tested against a disposable Jellyfin server:
scripts/smoke-test.shThe smoke test requires Docker and must never be pointed at a production server.
Run lint checks locally before opening a PR:
dotnet format whitespace --verify-no-changes
dotnet format style --verify-no-changes --severity warnRead docs/ARCHITECTURE.md and docs/SECURITY.md first. This is a deliberately small, security-sensitive plugin, and the invariants in those documents are requirements.
Keep the plugin stateless and narrowly scoped. Do not add configuration, a dashboard page, custom token persistence, duplicate authorization rules, or unrelated client installer functionality.
- Search existing issues before opening a new one
- Include the Jellyfin version, plugin version, and relevant logs
- Never include API keys, provisioning secrets, or access tokens
- Scrub Jellyfin logs before attaching them, because revoked tokens may appear in upstream logout messages
- Keep branches, commits, and PRs focused. Do not mix unrelated local changes into the same PR.
- Use semantic names by default.
- Branches:
fix/<scope>-<summary>,feat/<scope>-<summary>,refactor/<scope>-<summary> - Commits:
fix(scope): summary,feat(scope): summary,refactor(scope): summary - PR titles:
fix(scope): summary,feat(scope): summary,refactor(scope): summary
- Keep changes focused and minimal
- Run the relevant validation before submitting
- Test against a running Jellyfin instance when changing runtime behavior
- Describe what your PR changes and why
This project uses LLM-assisted development. Contributions generated with AI assistance are welcome, but please review and test all code before submitting.