Introduction
Le nombre de contributeurs open source a augmenté de manière exponentielle, ce qui rend difficile la gestion des pull requests. Pour résoudre ce problème, GitHub a introduit des limites de pull request pour aider les mainteneurs à gérer le flux de contributions.
Contexte Technique
Les limites de pull request permettent de définir un nombre maximum de pull requests que peut ouvrir un utilisateur sans accès en écriture dans un référentiel. Une fois cette limite atteinte, l'utilisateur doit fermer ou fusionner un pull request avant d'en ouvrir un autre. Les pull requests ouvertes par des agents IA comme Copilot sont également prises en compte dans cette limite. Les contributeurs de confiance peuvent être placés sur une liste de bypass, ce qui leur permet d'être exemptés de ces limites sans pour autant avoir un accès en écriture complet.
Ces limites sont persistantes et configurables, ce qui donne aux mainteneurs le contrôle dont ils ont besoin pour gérer les contributions. Elles changent également la façon dont les contributeurs se comportent, car ils doivent être plus sélectifs et prioriser leurs contributions.
Analyse et Implications
Les limites de pull request ont déjà montré leur efficacité dans la réduction du bruit et la facilitation de la gestion des contributions. Les mainteneurs peuvent ainsi se concentrer sur les pull requests de qualité et gérer leur backlog de manière plus efficace. Cela est particulièrement important dans le contexte actuel, où le nombre de pull requests a augmenté de manière exponentielle, passant de 25 millions à 90 millions par mois.
Perspective
GitHub prévoit de développer davantage ces fonctionnalités, notamment en introduisant des limites pour les problèmes et des contrôles plus granulaires pour les contributions. Les archives de pull requests et les limites de problèmes sont déjà en développement, et les signaux de confiance plus intelligents seront prochainement mis en place. L'objectif est de donner aux mainteneurs les outils dont ils ont besoin pour gérer les contributions de manière efficace et de permettre aux contributeurs de se concentrer sur les tâches qui ont le plus d'impact.