Contribuer
Prérequis
- Python 3.12 — le dépôt fournit un
Pipfileà la racine pour pre-commit et l’outillage partagé - Node.js (LTS) et pnpm — requis pour les applications TypeScript et le site de documentation
- Git 2.x
Hooks pre-commit
Tout le linting et le formatage sont appliqués au moment du commit via .pre-commit-config.yaml. Les hooks exécutés à chaque commit sont :
| Hook | Rôle |
|---|---|
ruff | Linting Python et correction automatique |
prettier | Formatage TypeScript / JS / JSON / MDX |
check-yaml | Validation de la syntaxe YAML |
Nommage des branches
| Type | Motif | Exemple |
|---|---|---|
| Nouvelle fonctionnalité | feature/* | feature/add-hmis-dbt-model |
| Correction de bug | fix/* | fix/prefect-flow-timeout |
| Maintenance | chore/* | chore/update-pre-commit-hooks |
Flux de PR
- Ouvrez une PR depuis votre branche vers
main. - Les contrôles CI doivent passer (voir ci-dessous) avant le merge.
- Demandez une revue à un membre de l’équipe.
- Effectuez un squash-merge vers
mainavec un message de commit conventionnel.
Mise en place
Cloner le dépôt
git clone git@github.com:MOH-Rwanda/Healthcare.MOH.RWA.HIC.git
cd Healthcare.MOH.RWA.HICInstaller pre-commit
pip install pre-commit
pre-commit installCette commande installe les hooks dans votre répertoire local .git/hooks. Ils s’exécuteront automatiquement à chaque git commit.
Configurer l’application sur laquelle vous travaillez
Suivez le guide de mise en place du sous-système concerné :
- dbt — voir Analytics / dbt
- Prefect — voir Analytics / Prefect
- GreenRiver — voir Plateforme
- Site de documentation —
pnpm install && pnpm dev(port 4050)
Workflows CI/CD
Sept workflows GitHub Actions couvrent l’ensemble du pipeline de livraison :
| Workflow | Déclencheur |
|---|---|
dbt-ci | Push / PR touchant dbt/ |
prefect-deploy | Push sur main touchant prefect/ |
jupyter-validate | Push / PR touchant notebooks/ |
greenriver-fe | Push / PR touchant l’application frontend |
greenriver-be | Push / PR touchant l’application backend |
pr-validation | Chaque PR — vérifie le nommage des branches et le format des commits |
security-scan | Chaque nuit et à chaque PR — Trivy + Bandit |
Tous les contrôles CI doivent être au vert avant qu’une PR puisse être mergée. Le workflow pr-validation échouera si le nom de votre branche ou vos messages de commit ne respectent pas les conventions décrites dans Conventions Git et de commit.
Dernière mise à jour le