web-dev-qa-db-ja.com

git-mediawikiを介してデプロイするGitHubサービス

私は、オープンソースのレーシングゲームであるSuperTuxKartのドキュメントの作成とWebサイトの管理を支援してきました。 ウェブサイト はMediaWikiを使用していますが、SourceForgeホスティングから切り替えて、無料のアカウント作成を許可しないことを検討し、決定しました。しかし、これにより、以前のアカウントを悩ませていたスパムアカウントを回避しながら、Wikiへの投稿を許可する方法に関してジレンマに陥りました。

プルリクエストがコンテンツをGitHubに送信し、それをMediaWikiに展開できるようにすることでうまくいくと判断しました。いくつかの調査と実験を行った後、git-mediawikiを使用して、

  1. Wikiを複製する
  2. WikiをGitHubにプッシュする
  3. Wikiから変更を取得してマージする
  4. GitHubから変更を取得してマージします(ただし、マージの競合が発生した場合はWikiが優先されます)
  5. WikiとGitHubにプッシュします。

私が探しているのは、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
1
user48147

スパム登録を単に除外するのに比べて、非常に複雑に思えます。 reCaptcha または Googleログイン を使用します。

本当にこれを行うつもりなら、 GitHub拡張 および mw-to-git ツールが最も成熟したソリューションのように見えます。

1
Tgr