Champs de profil Code forge, et amélioration subséquente du plugin Github

Note : Ceci n’est qu’une idée que je souhaite partager avec vous pour réflexion, et non une demande de fonctionnalité « officielle » de ma part :hugs:

Discourse dispose d’une excellente extension officielle : Discourse GitHub. Selon les paramètres, vous pouvez récompenser les membres du forum pour leurs contributions via des PR. Cependant, il n’est pas toujours possible de les attribuer, car les membres ne peuvent pas être associés à un compte GitHub :

Si je comprends bien, si l’adresse e-mail de votre commit GitHub et/ou votre nom d’utilisateur ne correspondent pas à un compte du forum, il se peut qu’aucune correspondance ne soit trouvée, et donc qu’aucun badge ne soit attribué.

Dans notre Humane Tech Community, nous n’avions pas activé les connexions basées sur GitHub depuis longtemps (je l’ai ajouté très récemment), mais nous disposons d’une organisation GitHub où nous collaborons sur des dépôts. Par conséquent, à titre informatif, nous avions toujours un champ de profil personnalisé nommé « Compte GitHub » à remplir par les membres.

La fonctionnalité supplémentaire proposée ici dans Discourse se compose de deux parties :

  1. Prise en charge d’un champ de profil officiel « Forge de code », activable dans les paramètres d’administration.
  2. Si activé, vérifier (et/ou valider) d’abord le champ « Forge de code » lors de l’attribution des badges.

Note : La terminologie Forge de code est tirée de ForgeFed, une extension du protocole ActivityPub visant à intégrer de manière fédérée toute forge de dépôt, quelle que soit sa localisation ou le logiciel utilisé (GitHub, GitLab, Gitea, SourceHut, etc.).

Champ de profil « Forge de code » vérifié

Introduction : Pour moi, et pour beaucoup de personnes avec qui je travaille (et peut-être même pour le mouvement du logiciel libre dans son ensemble, je pense), utiliser GitHub pour le développement de logiciels libres n’est plus une évidence. GitHub n’est plus le premier choix logique pour héberger des dépôts de code. Par exemple, j’utilise le plus souvent Codeberg, et j’ai des comptes sur GitLab, ainsi que sur diverses instances auto-hébergées de GitLab ou Gitea, etc. Feneas, où je suis modérateur, utilise uniquement GitLab. J’aimerais pouvoir exprimer ces différents choix de forge de code au sein de Discourse et auprès des membres de la communauté.

Fonctionnalité : Dans les paramètres d’administration, je peux configurer les forges de code liées à ma communauté et les activer en tant que champs de profil. Je peux également spécifier que je souhaite que le champ soit vérifié et/ou qu’il soit obligatoire (une extension supplémentaire de cette fonctionnalité peut être omise). Lorsqu’un membre remplit ce champ, il remplit sa fonction informative auprès des autres membres. Optionnellement (lorsqu’activé), une vérification a lieu : la personne est redirigée vers la forge de code configurée (probablement via un flux OAuth, similaire à la connexion GitHub, de sorte que des paramètres d’administration doivent être prévus à cet effet ; la connexion « Se connecter avec GitHub » ou avec une autre forge n’a pas besoin d’être activée), confirme, puis est renvoyée vers Discourse. Le champ de profil affiche alors une jolie coche de vérification. L’interface utilisateur peut être similaire à celle de Mastodon (bien que la méthode de vérification avec rel="me" soit très différente), où vous pouvez ajouter jusqu’à 4 champs de profil personnalisés :

Relation avec l’extension GitHub de Discourse

Si le champ de profil est présent, et surtout s’il est obligatoire et/ou vérifié, je imagine qu’il peut être utilisé comme premier endroit à vérifier pour l’attribution des badges de forge de code. Les attributions de badges sont basées sur toutes les forges de code configurées, et ne sont pas limitées à GitHub uniquement.

Édition : J’ai pris l’attribution de badges comme exemple pour améliorer l’extension GitHub. Cependant, l’extension elle-même pourrait devenir l’extension officielle « Forge de code », prenant en charge toutes les forges configurées.