Ce que vous accomplirez
Vous configurerez un dépôt Git partagé avec branch protection, un workflow par défaut propre, des hooks pour la qualité de code, et une intégration CI.
Étape 1 : créer le dépôt
git clone [email protected]:myorg/project.git
cd project
Étape 2 : configurer la branche par défaut
git config init.defaultBranch main
Étape 3 : branch protection
- Requérir une pull request avant le merge.
- Requérir au moins une review approuvée.
- Requérir des status checks passants.
- Requérir un historique linéaire.
- Interdire les force pushes.
- Interdire la suppression directe.
Étape 4 : .gitignore et .gitattributes
# .gitignore - exemple pour Node
node_modules/
dist/
.env*
!.env.example
.DS_Store
*.swp
# .gitattributes
* text=auto eol=lf
*.png binary
*.jpg binary
*.pdf binary
Étape 5 : CODEOWNERS
# .github/CODEOWNERS
* @myorg/maintainers
/docs/ @myorg/docs-team
/infra/ @myorg/devops
Étape 6 : templates de PR et issue
# .github/PULL_REQUEST_TEMPLATE.md
## Résumé
## Plan de test
- [ ]
## Captures / vidéos (si UI)
## Issues liés
Étape 7 : hooks pre-commit
npm install --save-dev husky lint-staged
npx husky init
# .husky/pre-commit
npx lint-staged
# package.json
"lint-staged": {
"*.{js,ts}": ["eslint --fix", "prettier --write"]
}
Étape 8 : configuration CI
# .github/workflows/ci.yml
name: CI
on:
push:
branches: [main]
pull_request:
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm ci
- run: npm run lint
- run: npm test
Étape 9 : scan de secrets
# .github/workflows/gitleaks.yml
name: gitleaks
on: [pull_request]
jobs:
scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: gitleaks/gitleaks-action@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Étape 10 : documentation de contribution
Étape 11 : inviter l'équipe
Étape 12 : premier PR
Maintenance
- Réviser les règles de branch protection trimestriellement.
- Mettre à jour CODEOWNERS quand l'équipe change.
- Rafraîchir les configurations des bots de mise à jour de dépendances.
- Élaguer périodiquement les branches mergées.