167 lines
7.3 KiB
Markdown
167 lines
7.3 KiB
Markdown
---
|
|
title: Review Board
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, development, code-review, git, python, svn, mercurial, legacy]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Development, https://github.com/reviewboard/reviewboard]
|
|
---
|
|
|
|
# 💻 Review Board
|
|
|
|
> **L'ancêtre open source de la code review** : créé en 2006 par VMware, Review Board reste un outil de référence pour les équipes qui veulent un workflow de revue de code **structuré, scriptable, et compatible multi-VCS** (Git, SVN, Mercurial, Perforce).
|
|
|
|
## 📋 Informations Générales
|
|
|
|
| Champ | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [reviewboard.org](https://www.reviewboard.org/) |
|
|
| **GitHub** | [reviewboard/reviewboard](https://github.com/reviewboard/reviewboard) |
|
|
| **License** | MIT |
|
|
| **Langage** | Python (Django) |
|
|
| **Étoiles GitHub** | 1,7k ⭐ |
|
|
| **Dernière MAJ** | 2026-06-07 |
|
|
| **Catégorie** | [[cat-development\|Development]], Code Review |
|
|
|
|
## 📝 Description
|
|
|
|
**Review Board** est un **outil de code review open source créé en 2006** par **VMware** (développé originellement par Christian Hammond et David Trowbridge), bien avant la généralisation de GitHub/GitLab. C'est l'un des **plus anciens projets de code review** encore activement maintenus, et il équipe des organisations comme **Apache Software Foundation, Mozilla, Docker, Samsung**.
|
|
|
|
L'idée : offrir un **workflow de review structuré** (review requests, review drafts, ship-it, screenshots, comments inline, batch updates) **indépendant de la plateforme d'hébergement Git**. Contrairement à GitHub/GitLab où la code review est **intégrée au workflow Git**, Review Board fonctionne comme un **layer transverse** : on peut review du code venant de **Git, SVN, Mercurial, Perforce, Plastic, ClearCase** — utile pour les organisations qui mixent les VCS ou qui ont des legacy.
|
|
|
|
Review Board se distingue par sa **maturité** (20 ans d'évolution), son **API REST complète** (scriptable, intégrable), et son **écosystème d'extensions** (Power Pack commercial, Review Bot). Pour les **équipes enterprise** ou les **projets open source matures** qui veulent un outil de review dédié (et pas juste un tab "Pull Request"), c'est une option solide.
|
|
|
|
**Public cible** : **équipes enterprise, projets open source, organisations multi-VCS, équipes qui veulent un workflow de review explicite et auditable**.
|
|
|
|
### Fonctionnalités principales
|
|
|
|
- ✅ **Multi-VCS** : Git, SVN, Mercurial, Perforce, Plastic, ClearCase, CVS
|
|
- ✅ **Review requests** : formel, structuré, avec champs description/testing
|
|
- ✅ **Diff viewer** : side-by-side, unified, syntax highlighting 100+ langages
|
|
- ✅ **Commentaires inline** ancrés sur le code (fichier + ligne)
|
|
- ✅ **Screenshots / attachments** : pièces jointes aux reviews
|
|
- ✅ **Ship-it !** : validation rapide d'un review
|
|
- ✅ **Batch updates** : publier plusieurs review comments en une fois
|
|
- ✅ **Statuts** : pending, submitted, discarded, archived
|
|
- ✅ **API REST** complète : tout est scriptable
|
|
- ✅ **Webhooks** : intégration CI/CD (Jenkins, GitHub Actions)
|
|
- ✅ **Extensions** : Power Pack (statistiques), Review Bot (lint auto)
|
|
- ✅ **Maturité enterprise** : SSO SAML, audit, LDAP/AD
|
|
|
|
## 🚀 Installation
|
|
|
|
### Via Docker (community)
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
version: '3.8'
|
|
services:
|
|
reviewboard:
|
|
image: beanbag/reviewboard:latest
|
|
container_name: reviewboard
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8080:8080"
|
|
environment:
|
|
REVIEWBOARD_SITE_DOMAIN: "review.example.com"
|
|
REVIEWBOARD_SITE_ROOT: "/"
|
|
REVIEWBOARD_SITE_ADMIN_MEDIA: "admin/"
|
|
REVIEWBOARD_DB_ENGINE: "django.db.backends.postgresql"
|
|
REVIEWBOARD_DB_NAME: reviewboard
|
|
REVIEWBOARD_DB_USER: reviewboard
|
|
REVIEWBOARD_DB_PASSWORD: changez-moi
|
|
REVIEWBOARD_DB_HOST: db
|
|
REVIEWBOARD_REPO_SSH_HOST: "review.example.com"
|
|
REVIEWBOARD_ALLOWED_HOSTS: "review.example.com"
|
|
volumes:
|
|
- reviewboard_data:/var/www/reviewboard
|
|
depends_on:
|
|
- db
|
|
- memcached
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.review.rule=Host(`review.example.com`)"
|
|
- "traefik.http.routers.review.entrypoints=websecure"
|
|
- "traefik.http.routers.review.tls.certresolver=letsencrypt"
|
|
|
|
db:
|
|
image: postgres:16-alpine
|
|
container_name: reviewboard-db
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_USER: reviewboard
|
|
POSTGRES_PASSWORD: changez-moi
|
|
POSTGRES_DB: reviewboard
|
|
volumes:
|
|
- reviewboard_db:/var/lib/postgresql/data
|
|
|
|
memcached:
|
|
image: memcached:1.6-alpine
|
|
container_name: reviewboard-memcached
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
reviewboard_data:
|
|
reviewboard_db:
|
|
```
|
|
|
|
### Installation manuelle (Debian/Ubuntu)
|
|
|
|
```bash
|
|
sudo apt install -y python3-pip python3-dev memcached postgresql libmemcached-dev
|
|
sudo -u postgres createuser --createdb --superuser reviewboard
|
|
sudo -u postgres createdb -O reviewboard reviewboard
|
|
sudo pip install ReviewBoard
|
|
sudo rb-site install /var/www/reviewboard
|
|
sudo rb-site manage /var/www/reviewboard runserver
|
|
```
|
|
|
|
## ⚙️ Configuration
|
|
|
|
1. **Créer un compte admin** : premier accès sur `https://review.example.com`
|
|
2. **Ajouter un repository** : Admin > Repositories > Add > type (Git/SVN) + URL
|
|
3. **Configurer les groupes d'utilisateurs** : Admin > Users / Groups
|
|
4. **Intégration CI/CD** : webhooks post-commit ou pre-merge
|
|
5. **Extensions** : installer `Power Pack` (commercial, statistiques), `Review Bot` (auto-lint)
|
|
6. **SSO** : configurer LDAP/AD ou SAML (Power Pack)
|
|
7. **Sauvegardes** : DB PostgreSQL + `reviewboard_data` (uploads)
|
|
|
|
## 🔗 Alternatives
|
|
|
|
- **Gerrit** — Concurrent direct, basé sur Git uniquement, plus "engineering-heavy"
|
|
- **Phabricator** — Suite complète (Differential + Diffusion + Herald), abandonnée
|
|
- **GitLab** — Code review intégrée, leader du marché moderne
|
|
- **GitHub Pull Requests** — Standard pour projets open source
|
|
- **Crucible** — Atlassian, propriétaire, cher
|
|
- **Gitea/Forgejo** — Plateforme Git légère, PRs intégrées
|
|
- **RhodeCode** — Plateforme centralisée (Git + Mercurial), plus large
|
|
|
|
## 🔒 Sécurité
|
|
|
|
- **🔐 HTTPS obligatoire via [[app-traefik]]** : Review Board contient potentiellement du code source sensible
|
|
- **🛡️ Authentification forte** : configurer SSO/SAML (LDAP, Google, GitHub OAuth)
|
|
- **🔒 Permissions par repository** : configurer groupes d'accès, lecture seule par défaut
|
|
- **🛡️ API tokens** : utiliser des tokens à scope limité pour les intégrations CI/CD
|
|
- **🛡️ Audit log** : conserver les logs d'accès (intégration Power Pack)
|
|
- **🛡️ Sauvegardes chiffrées** : DB PostgreSQL + uploads
|
|
|
|
## 📚 Ressources
|
|
|
|
- [Site officiel](https://www.reviewboard.org/)
|
|
- [Documentation](https://www.reviewboard.org/docs/)
|
|
- [GitHub reviewboard/reviewboard](https://github.com/reviewboard/reviewboard)
|
|
- [Power Pack (commercial)](https://www.reviewboard.org/power-pack/)
|
|
- [Review Bot](https://www.reviewboard.org/downloads/reviewbot/)
|
|
- [Liste des déploiements notables](https://www.reviewboard.org/users/)
|
|
|
|
## 🔗 Pages Liées
|
|
|
|
- [[cat-development]] — Catégorie Development
|
|
- [[app-gitea]] — Plateforme Git légère avec PRs intégrées
|
|
- [[app-gitlab]] — Plateforme DevOps complète (code review incluse)
|
|
- [[app-traefik]] — Reverse proxy HTTPS
|
|
- [[securisation-home-lab]] — Bonnes pratiques
|
|
- [[recettes-docker-compose]] — Templates Docker
|