Sécurisation, déploiement CI/CD Gitea et documentation INFCDAAL3
- CI/CD Gitea Actions: ci.yml (Pint + PHPUnit), deploy.yml (déploiement SSH) - Suppression de l'ancien workflow GitHub cassé - En-têtes de sécurité: ajout CSP et Permissions-Policy - RGPD: droit à l'effacement (anonymisation du compte) + tests - Correctifs: ForceHttps hors env testing, timestamps du modèle Utilisateur, suppression des migrations en doublon (migrate échouait sur base neuve) - Qualité: formatage Laravel Pint sur l'ensemble du code - Documentation dossier technique (docs/) + .docx + .pptx Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# 03 — Outil de gestion des versions
|
||||
|
||||
Projet **(RE)Sources Relationnelles** — Bloc INFCDAAL3
|
||||
|
||||
## 1. Outil choisi : Git + Gitea (auto-hébergé)
|
||||
|
||||
Le versionnement du code repose sur **Git**, hébergé sur une instance
|
||||
**Gitea** auto-hébergée par l'équipe :
|
||||
|
||||
- Instance : `https://gitea.sam-coffre.duckdns.org/`
|
||||
- Motivations du choix :
|
||||
- **Maîtrise des données** : hébergement sur notre propre serveur (cohérent
|
||||
avec un contexte ministériel / RGPD, pas de dépendance à un tiers).
|
||||
- **Léger et open source** : Gitea est simple à administrer et gratuit.
|
||||
- **Fonctionnalités complètes** : dépôts Git, *pull requests*, *issues*,
|
||||
*releases*, et **Gitea Actions** (CI/CD) intégrés.
|
||||
|
||||
## 2. Organisation du dépôt
|
||||
|
||||
- **Branche principale** : `master` (branche de référence, protégée, déployée).
|
||||
- **Branches de fonctionnalité** *(recommandé)* : une branche par fonctionnalité
|
||||
(`feature/…`), fusionnée via *pull request* après relecture.
|
||||
- Fichiers de configuration Git présents : `.gitignore`, `.gitattributes`,
|
||||
`.editorconfig` (cohérence entre développeurs).
|
||||
|
||||
## 3. Convention de nommage des commits
|
||||
|
||||
Convention recommandée (type *Conventional Commits*) :
|
||||
|
||||
```
|
||||
<type>: <description courte>
|
||||
|
||||
Types : feat, fix, docs, style, refactor, test, chore
|
||||
Exemples :
|
||||
feat: ajout de la création de ressources
|
||||
fix: correction de la redirection HTTPS
|
||||
docs: rédaction du plan de sécurisation
|
||||
```
|
||||
|
||||
## 4. Flux de travail (workflow) proposé
|
||||
|
||||
1. Créer une branche depuis `master` : `git checkout -b feature/ma-fonctionnalite`.
|
||||
2. Développer + commits atomiques.
|
||||
3. Pousser la branche : `git push origin feature/ma-fonctionnalite`.
|
||||
4. Ouvrir une **Pull Request** sur Gitea.
|
||||
5. La **CI** (Pint + tests) s'exécute automatiquement sur la PR.
|
||||
6. Relecture par un pair, puis fusion dans `master`.
|
||||
7. La fusion déclenche le **déploiement automatique** en production.
|
||||
|
||||
## 5. Gestion des livraisons (releases)
|
||||
|
||||
- Utilisation des **tags Git** pour marquer les versions : `v1.0.0`, `v1.1.0`…
|
||||
- Convention **SemVer** : `MAJEUR.MINEUR.CORRECTIF`.
|
||||
- Les *Releases* Gitea documentent chaque version livrée (notes de version).
|
||||
|
||||
## 6. Sécurité du dépôt
|
||||
|
||||
- Aucun secret versionné : `.env`, clés et certificats sont exclus via
|
||||
`.gitignore`.
|
||||
- Accès au dépôt restreint aux membres de l'équipe (comptes Gitea).
|
||||
- Historique complet et traçable (auteur, date, message de chaque modification).
|
||||
Reference in New Issue
Block a user