web-dev-qa-db-fra.com

Service GitHub à déployer via git-mediawiki

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:

  1. Cloner le wiki
  2. Poussez le wiki sur GitHub
  3. Récupérer et fusionner les modifications depuis le wiki
  4. Récupérer et fusionner les modifications depuis GitHub (bien que le wiki soit prioritaire en cas de conflit de fusion)
  5. Poussez sur le wiki et sur GitHub.

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
1
user48147

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.

1
Tgr