Référence¶
La référence est une documentation exhaustive et précise. Elle décrit le comportement exact des API, des schémas, et des services. Consultez-la quand vous avez besoin de savoir ce qu'une fonction accepte, ce qu'une table contient, ou ce qu'un endpoint retourne.
Diátaxis — mode information : la référence ne vous apprend pas — elle vous informe. Chaque entrée est complète, précise, et sans contexte superflu.
Documents de référence¶
Services API interne¶
Signatures complètes de tous les services Rust disponibles dans gitrust-core et rustwarden-core : AuthService, UserService, RepositoryService, IssueService, LabelService, TotpService, ResourceService, et plus.
Schéma base de données¶
ERD Mermaid complet, définition de chaque table avec types Rust/SeaORM, contraintes, index, et règles de clé étrangère. Ordre des migrations inclus.
API REST v1¶
Tous les endpoints /api/v1/ : authentification, utilisateurs, dépôts, issues, pull requests, pipelines CI. Format requête/réponse JSON, codes d'erreur, pagination, rate limiting, exemples curl.
Hooks git post-receive¶
Implémentation du trait RustwardenHooks dans gitrust. Événements on_user_registered, on_user_deleted, on_resource_shared, on_resource_unshared avec leurs effets de bord. Séquence receive-pack, dispatch webhook/CI, tests locaux.
API rustwarden-core¶
Extracteurs Axum (AuthUser, OptionalUser, AuthenticatedSession), middleware JWT/CSRF/rate-limit, JwtService, trait RustwardenHooks, i18n, EmailQueueService. Règles d'extension du framework.
Conventions de lecture¶
- Les signatures de méthode suivent la syntaxe Rust :
fn nom(arg: Type) -> Result<ReturnType, Error>. - Les types
Option<T>indiquent un champ nullable en base ou un paramètre optionnel. - Les colonnes marquées
PKsont des clés primaires UUID générées côté base (gen_random_uuid()). TIMESTAMPTZ= timestamp avec fuseau horaire, stocké en UTC.
Navigation croisée¶
- Vous cherchez comment utiliser un service dans votre code ? → Guides pratiques
- Vous voulez comprendre pourquoi ces services sont structurés ainsi ? → Explications