Codesearch

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/

Implementation
codesearch uses hound as the search implementation. It indexes the  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.

Included repositories

 * MediaWiki core
 * Any extension in Gerrit that is not marked as read only
 * Any skin in Gerrit that is not marked as read only
 * OOUI (oojs/ui in Gerrit)
 * 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/ )

Additional repositories can be added upon request. Any submodules will need to be added manually (T188023). Currently repositories such as operations/puppet.git are not included. codesearch's configuration uses .

Administration
It currently runs from the "codesearch" Cloud VPS project, on the codesearch3 instance. Everything is managed using systemd units,  for the web proxy, and   for each individual hound instance.

Each unit is set to start upon boot, but if it goes down, running  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.

The current project administrators are Addshore, Alangi Derick, Ladsgroup, Legoktm, MaxSem, and Prtksxna.

Source

 * codesearch, available under the terms of the GPL, v3 or any later version.
 * hound, available under the terms of the MIT license.

Bugs and feature requests
Please file them in the Phabricator project.