Introduction à CLA Assistant pour la Gestion des Licences de Contributeurs
CLA Assistant est un outil open source robuste conçu pour simplifier et automatiser l'ensemble du processus de gestion des Accords de Licence de Contributeurs (CLA). Il libère les mainteneurs de projets de la charge administrative liée à la conformité légale, leur permettant de se concentrer sur le développement du code et la qualité du projet. Cet assistant est un atout indispensable pour tout projet open source.
Qu'est-ce qu'un CLA et pourquoi CLA Assistant est-il nécessaire ?
Un Accord de Licence de Contributeur (CLA) est un document juridique fondamental qui protège la propriété intellectuelle d'un projet open source, en définissant les droits et responsabilités entre le contributeur et les gestionnaires du projet. La gestion manuelle de ces accords, de leur signature à leur vérification, est non seulement chronophage mais aussi sujette aux erreurs.
CLA Assistant résout ces défis en automatisant plusieurs aspects clés :
- Il détecte automatiquement les nouvelles Pull Requests (PR) et invite les contributeurs à signer le CLA.
- Les contributeurs peuvent signer directement depuis l'interface de leur PR.
- Il assure l'authentification de l'identité GitHub du signataire pour une vérification fiable.
- Le statut de la PR est mis à jour en temps réel, permettant la fusion automatique une fois le CLA signé.
- En cas de modification du contenu du CLA, les contributeurs sont intelligemment notifiés pour re-signer si nécessaire.
Mise en Route Rapide : Configurer votre Système de Gestion des CLA en Trois Étapes
1. Préparation du Document CLA
La première étape consiste à rédiger votre accord de licence. Nous vous recommandons d'utiliser un modèle, comme ceux disponibles sur contributoragreements.org, et de l'adapter aux exigences spécifiques de votre projet. Une fois finalisé, ce document doit être hébergé sous forme de GitHub Gist.
2. Association du Dépôt au CLA
Accédez à la plateforme CLA Assistant. Suivez les instructions pour lier votre dépôt GitHub à votre Gist contenant le CLA. Cette opération configure automatiquement les webhooks nécessaires pour que CLA Assistant puisse surveiller les nouvelles soumissions de PR dans votre dépôt.
3. Découverte du Processus Automatisé
Une fois la configuration achevée, CLA Assistant prend le relais :
- Lorsqu'une nouvelle PR est soumise, un commentaire est automatiquement ajouté pour guider le contributeur vers le processus de signature du CLA.
- Une interface intuitive est fournie pour la signature, souvent avec une authentification simplifiée via GitHub.
- Dès la signature complétée, le statut de la PR est mis à jour instantanément, informant les mainteneurs du projet de sa conformité.
Fonctionnalités Avancées : Collecte de Champs Personnalisés
Pour les projets nécessitant des informations additionnelles de la part des contributeurs, CLA Assistant offre une fonctionnalité de champs personnalisés. Il suffit d'inclure un fichier metadata.json dans votre Gist CLA pour définir les données supplémentaires à collecter.
Exemple de configuration (format JSON) :
{
"identiteComplete": {
"libelle": "Nom et Prénom",
"type": "chaine",
"cleGitHub": "fullName"
},
"adresseElectronique": {
"libelle": "Adresse E-mail",
"type": "chaine",
"cleGitHub": "emailPrincipal",
"obligatoire": true
},
"consentementAccepte": {
"libelle": "J'ai pris connaissance et j'accepte les termes du CLA",
"type": "booleen",
"obligatoire": true
}
}
Une définition complète du schéma JSON peut être consultée dans le fichier custom-fields-schema.json du projet.
Guide de Déploiement Autonome
Pour les équipes ayant des exigences spécifiques en matière d'infrastructure, CLA Assistant peut être déployé sur vos propres serveurs. Voici les étapes principales pour une installation autonome :
1. Cloner le Dépôt
git clone https://gitcode.com/gh_mirrors/cl/cla-assistant
cd cla-assistant
2. Installation des Dépendances
npm install
3. Configuration des Variables d'Environnement
cp .env.example .env
# Modifiez le fichier .env pour définir les paramètres essentiels
4. Lancement du Service
npm run start
Des instructions de déploiement plus détaillées sont disponibles dans la section "Setup your own instance of CLA assistant" du fichier README.md du projet.
Questions Fréquemment Posées
Où sont stockées les données de signature ?
Depuis le 27 août 2021, toutes les données sont sécurisées et stockées dans une base de données Cosmos DB sur Microsotf Azure en Europe, garantissant ainsi la conformtié et la sécurité des informations.
Comment consulter la liste des signataires ?
Les administrateurs de projet peuvent accéder à une liste exhaustive des contributeurs ayant signé le CLA directement depuis l'interface de CLA Assistant. Cette liste peut également être exportée au format CSV pour des analyses ou des archives.
Comment gérer les Pull Requests des comptes de bot (ex: Dependabot) ?
Il est possible d'ajouter les noms d'utilisateur des bots (par exemple, dependabot[bot]) à une liste blanche dans le tableau de bord de CLA Assistant. Cela permet à leurs Pull Requests d'être acceptées sans nécessiter une signature de CLA.