私は、オープンソースのレーシングゲームであるSuperTuxKartのドキュメントの作成とWebサイトの管理を支援してきました。 ウェブサイト はMediaWikiを使用していますが、SourceForgeホスティングから切り替えて、無料のアカウント作成を許可しないことを検討し、決定しました。しかし、これにより、以前のアカウントを悩ませていたスパムアカウントを回避しながら、Wikiへの投稿を許可する方法に関してジレンマに陥りました。
プルリクエストがコンテンツをGitHubに送信し、それをMediaWikiに展開できるようにすることでうまくいくと判断しました。いくつかの調査と実験を行った後、git-mediawikiを使用して、
私が探しているのは、GitHubへのコミットがあるたびにこのスクリプトを定期的に(たとえば15分ごとに)and実行するGitHub webhookサービスですまた、自分の資格情報を使用せずにgitリポジトリへの書き込みアクセスの方法が必要です。 MediaWikiページは通常のgitリポジトリから読み取ることができないため、サーバーにスクリプトgit pullを更新するだけではできません。データベース内に存在する必要があります。
スクリプトの内容は次のとおりです。
#!/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
スパム登録を単に除外するのに比べて、非常に複雑に思えます。 reCaptcha または Googleログイン を使用します。
本当にこれを行うつもりなら、 GitHub拡張 および mw-to-git ツールが最も成熟したソリューションのように見えます。