Skip to main content

Snyk s’associe aux créateurs de Greenkeeper pour aider les développeurs à maintenir proactivement la santé de leurs dépendances

Écrit par
Headshot of Dan Mckean

Dan Mckean

5 mars 2020

0 minutes de lecture

Nous sommes heureux d’annoncer le lancement d’Automatic Dependency Upgrades, une fonctionnalité de Snyk Open Source qui aide les développeurs à réduire proactivement les vulnérabilités de sécurité et à préserver la santé de leurs dépendances lorsqu’ils utilisent des logiciels open source. Automatic Dependency Upgrades est le fruit d’un nouveau partenariat prometteur entre Snyk et Neighbourhoodie Software, créateurs de Greenkeeper et innovateurs dans le domaine des outils pour développeurs.

Depuis 2015, l’équipe Greenkeeper aide les développeurs à maintenir leurs logiciels à jour et en bon état. Elle a été l’une des pionnières dans ce domaine. S’allier à une autre équipe qui comprend les besoins des développeurs s’est imposé naturellement. Nous sommes fiers que le fruit de ce partenariat soit désormais accessible aux utilisateurs de Snyk et de Greenkeeper.

Le défi (croissant) des dépendances open source

Les développeurs intègrent à leur code un grand nombre de dépendances open source, directes comme indirectes. Beaucoup d’entre elles présentent des vulnérabilités de sécurité, et la possibilité d’appliquer des correctifs dépend largement de leur niveau de mise à jour : plus votre version est ancienne, plus la mise à niveau devient difficile.

Il est essentiel de surveiller les dépendances vulnérables et obsolètes pour préserver la sécurité et la santé des applications. Même pour l’équipe de développeurs la plus expérimentée, cette tâche est quasiment impossible sans automatisation. Examiner manuellement les dépendances de chaque projet et les mettre à niveau au besoin est une tâche pour le moins décourageante.

Avec Automatic Dependency Upgrades, Snyk Open Source surveille en continu chaque projet intégré et crée automatiquement des pull requests exploitables et riches en contexte dès qu’une nouvelle version de dépendance est détectée. Le contrôle du rythme et du périmètre des mises à niveau évite de submerger les développeurs. Grâce à la base de données complète de Snyk sur les vulnérabilités, toujours à jour, Automatic Dependency Upgrades veille également à ce que les versions recommandées n’introduisent jamais de nouvelles vulnérabilités.

Des processus de mise à niveau adaptés aux développeurs

Chez Snyk, notre objectif a toujours été de fournir aux développeurs des outils qui s’intègrent à leurs processus existants, plutôt que d’en créer de nouveaux. Automatic Dependency Upgrades ne fait pas exception : la fonctionnalité s’intègre directement aux dépôts de code et déclenche des mises à niveau automatiques des dépendances, comme pour toute autre pull request.

Demande de pull GitHub montrant la mise à niveau de react-scripts par Snyk, de la version 1.0.14 à la version 1.1.5, et répertoriant les vulnérabilités corrigées.

Comme toute pull request, les pull requests de mise à niveau des dépendances peuvent être examinées et vérifiées avant leur fusion afin de s’assurer qu’elles ne risquent pas de provoquer de régression. Dans le même esprit, Snyk ne déclenche pas de pull request de mise à niveau pour une version de dépendance publiée depuis moins de 21 jours. Nos recherches montrent que ce délai peut aider à éviter les versions illégitimes, par exemple si le compte d’un responsable de maintenance est compromis et qu’une version malveillante est publiée délibérément.

Demande de pull GitHub montrant les modifications apportées à package-lock.json, avec la mise à niveau du package content-disposition de la version 0.5.2 à la version 0.5.3

Prenez des décisions de mise à niveau éclairées par les données

Contrairement à d’autres solutions automatisées qui se contentent d’installer les nouvelles versions, Snyk fournit des informations contextuelles et exploitables pour aider les développeurs à prendre des décisions de mise à niveau plus éclairées. C’est particulièrement important dans les projets comportant de nombreuses dépendances obsolètes, et cela permet de prioriser les mises à niveau.

Les pull requests de mise à niveau automatisées de Snyk précisent le niveau de maturité de la mise à niveau suggérée et incluent les notes de version de la dépendance. Elles fournissent également des informations sur les vulnérabilités de sécurité corrigées par la mise à niveau, notamment leur niveau de gravité et l’existence éventuelle d’exploits connus pour chacune d’elles.

Demande de pull GitHub de snyk-bot pour mettre à niveau le package express de la version 4.16.0 vers la version 4.17.1, avec les notes de version affichées.

Maîtrisez le rythme des mises à niveau

Même si les dépendances à jour sont essentielles à la santé globale des projets, passer en revue les pull requests pour chaque nouvelle version de chaque dépendance peut s’avérer décourageant et chronophage. Nous voulions éviter de submerger les développeurs sous un flot de notifications ; nous leur avons donc donné la possibilité de contrôler le rythme et le périmètre des pull requests de mise à niveau.

Les mises à niveau de versions majeures étant généralement plus risquées, les paramètres par défaut de Snyk déclenchent uniquement des pull requests pour les mises à niveau mineures ou les correctifs. Les utilisateurs peuvent modifier ce comportement et demander à Snyk de déclencher également des pull requests pour les mises à niveau majeures — une fonctionnalité que Neighbourhoodie nous a aidés à mettre en œuvre dans le cadre de notre partenariat.

Snyk vous permet de limiter le nombre de pull requests de mise à niveau ouvertes à un instant donné et de préciser les dépendances que vous souhaitez ignorer.

Écran des paramètres Snyk pour les pull requests de mise à niveau automatique des dépendances : mises à niveau activées, versions correctives et mineures sélectionnées, et react-scripts ignoré.

Alors… comment démarrer ?

Automatic Dependency Upgrades est disponible dans toutes les offres Snyk Open Source : Free, Standard, Pro et Enterprise. Pour commencer à utiliser cette fonctionnalité, il vous suffit de vous inscrire sur Snyk, d’intégrer vos projets et d’attendre une pull request vous proposant des mises à niveau pour vos dépendances !

Automatic Dependency Upgrades est actuellement compatible avec les projets npm, Maven-Central et Yarn sur GitHub/GitHub Enterprise et Bitbucket Cloud. D’autres types de projets seront bientôt pris en charge. Restez à l’écoute !

Pour en savoir plus sur cette fonctionnalité et Snyk Open Source, consultez :

Bonne mise à niveau !