MediaWiki code search is a fully free software tool that lets you easily search through all of MediaWiki core, extensions, and skins that are hosted on Gerrit. You can limit your search to specific repositories, or types of repositories too. Regular expressions are supported in both the search string, and when filtering by path.
Try it out: https://codesearch.wmflabs.org/
codesearch uses hound as the search implementation. It indexes the
origin/master branch of all specified repositories, and updates them every hour. Each search profile is backed by a different instance of hound. A small Python Flask server acts as the proxy for the web frontend, backed by gunicorn, to the individual hound instances.
- MediaWiki core
- Any extension in Gerrit that is not marked as read only and those included in the MWStake list
- Any skin in Gerrit that is not marked as read only
- Milkshake repositories from GitHub
- OOUI (oojs/ui in Gerrit)
- translatewiki configuration (from Gerrit)
- operations/puppet, operations/dns and operations/mediawiki-config in Gerrit
- ArmchairGM (this is currently hidden by default; you can access it through https://codesearch.wmflabs.org/armchairgm/)
- Pywikibot core (from Gerrit)
Additional repositories can be added upon request. Any submodules will need to be added manually (T188023). codesearch's configuration uses <https://www.mediawiki.org/w/api.php?action=query&format=jsonfm&formatversion=2&list=extdistrepos>.
It currently runs from the "codesearch" Cloud VPS project, on the codesearch3 instance. Everything is managed using systemd units,
hound_proxy for the web proxy, and
hound-$backend for each individual hound instance. nagf is helpful to monitor the health of the instance.
Each unit is set to start upon boot, but if it goes down, running
sudo MODE=start /srv/codesearch/manage.sh should bring up everything again. It usually takes up to 5 minutes for everything to start, the health check page should be helpful in seeing whether the hound backends are actually down, or just starting up still.
Bugs and feature requestsEdit
Please file them in the Phabricator project.