URL: https://linuxfr.org/news/mergify-automatise-les-demandes-d-integration-github Title: Mergify automatise les demandes d’intégration GitHub Authors: Julien Danjou ZeroHeure, Davy Defaud, palm123 et Julien Jorge Date: 2018年11月08日T14:55:57+01:00 License: CC By-SA Tags: git, github et développement Score: 22 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égration (_pull requests_ en anglais). ![Mergify](https://avatars2.githubusercontent.com/u/37838584?s=100&v=4) ---- [Mergify.io](https://mergify.io) [Mergify sur GitHub](https://github.com/mergifyio) ---- 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 devenue 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égration, nombre d’entre eux créent des robots pour les y aider. CPython, par exemple, a écrit un robot nommé [Miss Islington](https://github.com/python/miss-islington) pour les aider à rétro‐porter des correctifs de bogues. 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 licence 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 : ```yaml 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](https://pix.toile-libre.org/upload/original/1541685256.png) Fonctionnalités =============== Mergify propose différentes actions : - _merge_, qui permet d’intégrer une _pull request_ ; - _backport_, qui permet de dupliquer une demande d’intégration sur une nouvelle branche afin de rétro‐porter un changement ; - _close_, qui permet de clore une demande d’intégration (sans intégrer le changement) ; - _delete_head_branch_, qui permet de supprimer la branche à l’origine de la demande d’intégration ; - _label_, qui permet d’ajouter ou de retirer des étiquettes ; - _dismiss_reviews_, qui 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 plate‐forme [Mergify.io](https://mergify.io) qui fournit le service hébergé pour les utilisateurs, et gratuitement pour les projets open source.

AltStyle によって変換されたページ (->オリジナル) /