Greboca  

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

 -  8 novembre - 

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

Nouvelles de Git : 2.20.0, Git Merge, etc.

 -  10 décembre - 

La version 2.20.0 de Git, logiciel de gestion de versions décentralisé, vient tout juste d’être étiquetée par Junio Hamano, le mainteneur. Elle (...)


Proxmox VE 5.3 vient avec CephFS

 -  9 décembre - 

Proxmox Server Solutions GmbH, développeur de la plate‐forme de virtualisation libre Proxmox VE, a publié Proxmox VE 5.3. C’est une plate‐forme de (...)


Systèmes d’exploitation pour téléphones — partie 1 : premières initiatives ☎😍

 -  9 décembre - 

Voici la première dépêche d’une série sur les systèmes d’exploitation (plus ou moins) libres pour téléphones. Dans les années 90, nos téléphones n’étaient (...)


Sortie de LemonLDAP::NG 2.0

 -  6 décembre - 

LemonLDAP::NG est un logiciel libre d’authentification unique pour applications Web (WebSSO), de contrôle d’accès et de fédération d’identités, écrit (...)


Lettre d’actualité XMPP du 30 novembre 2018

 -  4 décembre - 

XMPP est un protocole ouvert et standard pour les communications en temps réel, utilisé notamment pour de la messagerie instantanée et l’audio‐vidéo (...)