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 PK sont des clés primaires UUID générées côté base (gen_random_uuid()).
  • TIMESTAMPTZ = timestamp avec fuseau horaire, stocké en UTC.
  • Vous cherchez comment utiliser un service dans votre code ? → Guides pratiques
  • Vous voulez comprendre pourquoi ces services sont structurés ainsi ? → Explications