J'ai participé à la rédaction de la documentation et à la gestion du site Web de SuperTuxKart, un jeu de course à code source ouvert. Le site web utilise MediaWiki, mais nous avons discuté et décidé après notre passage de l’hébergement à SourceForge de ne pas autoriser la création de compte gratuit. Cependant, cela nous a laissé un dilemme quant à la façon d'autoriser les contributions au wiki tout en évitant les comptes de spam qui ont affecté le précédent.
Nous avons décidé qu'autoriser les demandes d'extraction à soumettre du contenu à GitHub, puis à le déployer sur MediaWiki fonctionnerait bien. Après quelques recherches et expérimentations, j’ai créé un script shell semi-fonctionnel utilisant git-mediawiki pour:
Ce que je recherche, c’est un service Webhook GitHub pour exécuter ce script régulièrement (par exemple toutes les 15 minutes) et chaque fois qu’il y a une validation de GitHub. Il a également besoin d'une méthode d'accès en écriture au référentiel git sans utiliser mes propres informations d'identification. Je ne peux pas simplement avoir un script qui mit à jour sur le serveur car les pages MediaWiki ne peuvent pas être lues à partir d'un référentiel git normal; ils doivent être dans une base de données.
Le contenu de mon script est ci-dessous:
#!/bin/bash
#
# Auto sync script for the SuperTuxKart wiki
# Set up repo if not already done
if ! [ -d "supertuxkart.net" ]
then
echo "Setting up repository..."
git clone --Origin wiki mediawiki::https://supertuxkart.net
cd "supertuxkart.net"
git remote add github https://github.com/MTres19/supertuxkart.net.git
git Push github master
fi
cd "supertuxkart.net"
git pull --rebase wiki
git pull --rebase -s recursive -X ours github master
git Push wiki master
git Push github master
Semble super compliqué comparé au filtrage des enregistrements de spam, par exemple. en utilisant reCaptcha ou identifiant Google .
Si vous êtes vraiment déterminé à faire cela, l'extension GitHub et l'outil mw-to-git semblent être les solutions les plus abouties.