Extension:Patroller

The Patroller extension adds an enhanced recent changes patrol interface to MediaWiki. It was written in June 2006 by Rob Church for use on Wikimedia web sites, and adopted in September 2015 by Developaws, and requires MediaWiki 1.32+. The interface filters incoming edits, prevents users from patrolling their own edits, and shares the workload between patrollers.

The extension adds a new special page; "Special:Patrol", accessible to users with the patroller user permission assigned. By default, this will be any sysop, but you may wish to customise the configuration in LocalSettings.php, e.g. to grant access to autoconfirmed users or a custom group.

User permissions
The extension adds a new permission named patroller. Use this to grant access to different user groups, e.g. to grant access to all autoconfirmed users, add the following to "LocalSettings.php", under the call to add the extension:

Revert reasons
To customize the list of pre-defined revert reasons, edit the "patrol-reasons" message. Reasons appear one per line, in a bulleted list.

Patrolling
When accessing Special:Patrol, a recent change will be selected based on certain criteria, and a diff. view generated.

You will be presented with three options:
 * Endorse - accept the edit and mark it as patrolled
 * Revert - reject the edit and undo the changes it makes
 * Skip - ignore the edit

After selecting the operation to perform, another change will be produced for review.

Reverting
When reverting, a custom reason can be entered in the text field, or a pre-defined reason can be used. If no custom reason is provided, then the currently selected pre-defined reason is used as the edit summary for the corresponding reversion.

Workload sharing
The extension shares the patrol load by temporarily storing a key to the recent change in a memory-based table, alongside a timestamp recording the time of assignment. While a change has a corresponding row in this table, it is not presented for review.

Rows in the table are removed once they have expired.

Selection criteria
When selecting a change for review, the extension ensures that it meets the following criteria:
 * Edit corresponds to the most recent change to a page
 * Edit was not made by the user doing the patrolling
 * Edit is not assigned to another user
 * Edit was not made by a bot, and has not already been patrolled