Blog Zenika

#CodeTheWorld

Open source

Comment remercier ses contributeurs sur GitHub ?

Fin octobre, j’ai initié un projet GitHub pour lister les différentes communautés nantaises. Et les contributions sont rapidement arrivées 💪 🙏 ! Comme dans la plupart des projets open source, le remerciement s’effectue en listant les contributeurs et c’est la moindre des choses que je pouvais faire pour les remercier.

Au lieu de le faire manuellement à chaque contribution et de trouver une représentation graphique sympa, j’ai effectué quelques recherches et je suis rapidement tombé sur ce robot all-contributor. Il permet de lister les contributeurs dans un fichier, par défaut le README.md, avec leur identifiant GitHub et leur photo de profil. Le robot affiche également le nombre de contributeurs sous la forme d’un compteur.

Visualisation du nombre de contributeurs sur ce projet

Comment obtenir la liste des contributeurs ?

Visualisation du tableau des contributeurs

Ce résultat est obtenu par des pull requests que le robot a automatiquement créées suite à des commandes positionnées dans des issues ou des pull requests par un mainteneur du projet.

Un @all-contributors please add @<pseudo-github> for <something> permet de solliciter le robot et d’ajouter une personne via son pseudo GitHub pour une action qu’il a effectuée (représentée par dans l’exemple). La liste des actions prévues par all-contributor est affichée sur cette page : https://allcontributors.org/docs/fr/emoji-key.

Le bot détecte cette phrase, crée automatiquement une pull request pour incrémenter le nombre de contributeurs et ajouter le nom du contributeur et sa photo de profil dans le tableau des contributeurs. Rapide et simple !

Illustration de l’interaction avec le robot

Dans le README.md, ces deux parties doivent pouvoir être identifiables par le robot et cela se passe par l’intermédiaire de tags :

  • pour le compteur, il suffit de positionner ceci :
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
<!-- ALL-CONTRIBUTORS-BADGE:END -->
  • pour le tableau des contributeurs :
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
<table>
</table>
<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- ALL-CONTRIBUTORS-LIST:END -->

C’est avec ces informations que le robot retrouve les emplacements à modifier.

Afficher les contributeurs dans un autre fichier que le README.md

Si vous souhaitez afficher ces informations dans un autre fichier que le README.md principal, cela est possible. Le robot se base sur un fichier de configuration .all-contributorsrc à placer dans votre projet. Ce fichier permet de renseigner le nom du document où renseigner les contributions, la taille des photos de profil, le nombre de contributeurs par ligne et un template d’affichage de chaque contributeur. Voici un exemple de base :

{
  "files": [
    "README.md"    
  ],
  "imageSize": 100,
  "contributorsPerLine": 7,
  "contributorsSortAlphabetically": false,
  "badgeTemplate": "[![All Contributors](https://img.shields.io/badge/all_contributors-<%= contributors.length %>-orange.svg?style=flat-square)](#contributors)",
  "contributorTemplate": "<a href=\"<%= contributor.profile %>\"><img src=\"<%= contributor.avatar_url %>\" width=\"<%= options.imageSize %>px;\" alt=\"\"/><br /><sub><b><%= contributor.name %></b></sub></a>",
  "types": {
    "custom": {
      "symbol": "🔭",
      "description": "A custom contribution type.",
      "link": "[<%= symbol %>](<%= url %> \"<%= description %>\"),"
    }
  },
  "skipCi": true,
  "contributors": [],
  "projectName": "xxxx",
  "projectOwner": "xxxxx",
  "repoType": "github",
  "repoHost": "https://github.com"

💡 Si vous avez une CI sur votre projet, pensez bien à positionner la valeur “true” au paramètre “skipCi”, cela vous fera économiser des traitements.

Une interface en ligne de commande (CLI) est également disponible. Installable comme toute bibliothèque via npm ou yarn, l’ajout de contributeur se fait alors avec cette commande yarn all-contributors add <pseudo-github> <something>.

Un bot simple d’installation et d’utilisation qui permet de remercier vos contributeurs comme il se doit 💪


ℹ️ Pour plus d’informations, voici la page de documentation du projet : https://allcontributors.org/docs/fr/overview

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

En savoir plus sur Blog Zenika

Abonnez-vous pour poursuivre la lecture et avoir accès à l’ensemble des archives.

Continue reading