Greboca  

DLFP - Dépêches  -  Mergify automatise les demandes d'intégrations GitHub

 -  Novembre 2018 - 

La récente sortie de la version 2 de Mergify est l'occasion de présenter cet outil d'aide aux développeurs utilisant GitHub et ses demandes d'intégrations (pull requests en anglais).

Mergify

Le problème

La plupart des développeurs utilisant GitHub font usage des demandes d'intégration pour modifier le code contenu dans leur dépôt de source. C'est d'ailleurs la facilité d'ouvrir de nouvelles demandes qui est devenu un des facteurs de succès de GitHub à son début.

Or les demandes d'intégration se sont sophistiquées, elles intégrent une grande quantité d'information et des systèmes d'intégration continue (Travis CI, Circle CI, etc.).

Il devient donc de plus en plus compliqué pour les projets de gérer les demandes d'intégrations, nombre d'entre eux créent des robots pour les y aider. CPython, par exemple, a écrit un robot nommé Miss Islington pour les aider à rétroporter des correctifs de bugs.

La solution

Le projet Mergify est né de ce constat et propose un robot programmable pouvant servir à implémenter différentes façons de manipuler et gérer les demandes d'intégration. Le projet est sous license Apache 2.0 et utilise GitHub pour son développement (évidemment !).

Un problème récurrent est l'intégration (merge) automatique d'une demande d'intégration (pull request) lorsque certains critères correspondent. Par exemple, les développeurs veulent intégrer un changement de code lorsque:

  • Le système d'intégration continue valide le changement ;
  • Un humain approuve le changement ;
  • La demande d'intégration n'a pas d'étiquette work-in-progress.

En écrivant une règle Mergify ainsi:

pull_request_rules:
  - name: automatic merge
    conditions:
      - status-success=continuous-integration/travis/pr
      - "#approved-by-reviews>=1"
      - label!=work-in-progress
    actions:
       merge:
          method: merge

Dès que la demande d'intégration correspondra à ses critères, le moteur de Mergify se chargera d'intégrer (merge) le changement de code.

Mergify fournit des rapports complets des actions qu'il va exécuter dans l'onglet Checks des demandes d'intégration :

Mergify Check

Fonctionnalités

Mergify propose différentes actions :

  • merge : permet d'intégrer une pull request ;
  • backport : permet de dupliquer une demande d'intégration sur une nouvelle branche afin de rétroporter un changement ;
  • close : permet de fermer une demande d'intégration (sans intégrer le changement) ;
  • delete_head_branch : permet de supprimer la branche à l'origine de la demande d'intégration ;
  • label : permet d'ajouter ou de retirer des étiquettes ;
  • dismiss_reviews : permet de supprimer les revues de code effectuées.

Toutes ces actions peuvent être combinées et utilisées sur une multitude de critères venant de la demande d'intégration, comme le nom, l'auteur, les étiquettes, le nombre de fichiers modifiés, etc..

Hébergement

Mergify peut être hébergé sur votre propre serveur ou utilisé via la plateforme Mergify.io qui fournit le service hébergé pour les utilisateurs, et gratuitement pour les projets open source.

Commentaires : voir le flux atom ouvrir dans le navigateur

par Julien Danjou, ZeroHeure, palm123, Julien Jorge

DLFP - Dépêches

LinuxFr.org

Urgent : appel à mobilisation de l’April pour une priorité au logiciel libre dans l’éducation !

 -  10 février - 

L’examen en séance publique du projet de loi français pour une école de la confiance va démarrer lundi 11 février 2019 à partir de 16 h. Deux (...)


Pass the SALT 2019 : sécurité et logiciels libres reviennent à Lille

 -  8 février - 

Après une première édition réussie en juillet dernier, Pass the SALT, conférence dédiée à la sécurité et aux logiciels libres, revient à l’école Polytech (...)


mat2, version Web

 -  5 février - 

mat2, dont on a déjà parlé ici, est un outil permettant de supprimer les métadonnées de tout un tas de formats de fichiers, comme des photos, des (...)


Firefox 65

 -  30 janvier - 

La version 65 de Firefox a été publiée le 29 janvier 2019. Les principales nouveautés concernent la protection contre le suivi, le multilinguisme, (...)


Directive droit d’auteur : bientôt la dernière ligne droite pour enterrer un texte liberticide

 -  20 janvier - 

Le 21 janvier 2019 sera une date importante pour l’avenir du projet de directive sur le droit d’auteur, celle du dernier trilogue qui doit aboutir (...)