Git/Reviewers

< Git
Revision as of 11:05, 4 October 2024 by TheresNoTime (talk | contribs) (mediawiki/extensions/LoginNotify: tidying up gerrit dash)

This is a page where people can register to be automatically added as reviewer to newly opened changes in Gerrit or Gitlab depending on specific conditions. After registering here, reviewer-bot will add you as reviewer to every change that matches the project and file filter. For Gitlab, you will get an "@" mention in the merge request.

Manual on MediaWiki Tools
Gerrit Reviewer Bot
Release status: stable
Description Adds reviewers to Gerrit patchsets Log of recent actions
Author(s) User:valhallasw Please send me a talk page message or e-mail if the bot is malfunctioning.
License MIT
Download https://github.com/valhallasw/gerrit-reviewer-bot
Most of this functionality is built into gerrit itself, and can be configured in your settings instead of relying on this bot.
Note Note: If you are looking for a list of people that could review your patch, please see Developers/Maintainers.

Gerrit supports a similar feature by itself (including filtering by modified file name and words appearing in commit message), see Gerrit/watched projects and https://gerrit.wikimedia.org/r/settings/projects. Likewise, GitLab supports enabling notifications on projects, groups, individual merge requests, etc. See https://docs.gitlab.com/ee/user/profile/notifications.html. GitLab does not support filename-based matching, so this page may still be useful to you.

How to add yourself

Each project has a header with the Gerrit or Gitlab project name, followed by a list of people (using Template:Gerrit-reviewer or Template:Gitlab-mention), for example:

=== test/mediawiki/extensions/examples ===
* {{Gerrit-reviewer|User 2}}
* {{Gerrit-reviewer|User 1|file_regexp=<nowiki>i18n</nowiki>}}

The file_regexp parameter can be used to filter for changes in specific files:

* {{Gerrit-reviewer|User 1|file_regexp=<nowiki>i18n</nowiki>}}

will watch for changes where a file with 'i18n' in the name is changed, while

* {{Gerrit-reviewer|User 1|file_regexp=<nowiki>^includes/specials</nowiki>}}

will watch for changes in the includes/specials directory. You can test the regexp using [1] with IGNORECASE and DOTALL enabled. The <nowiki> tags are suggested but only required when the regexp contains characters that interfere with template parsing (e.g. | and }}).

An optional match_all_files parameter makes the bot only mark changes where the file_regexp matches all the changed files:

* {{Gerrit-reviewer|User 1|file_regexp=<nowiki>\.css|\.txt</nowiki>|match_all_files}}

This is useful since review scores apply to the whole changeset, rather than parts of it, so users that are comfortable with reviewing only a subsection of the changes wouldn't be able to review the whole patchset. For instance, front-end changes often touch both CSS and JavaScript files. A user who is confident about his CSS knowledge but not so much about his JavaScript ones can use match_all_files to restrict reviews attributed to them to those that only touch CSS files.

Listen to Gerrit repository groups

Projects are matched based on unix filename matching as implemented in the fnmatch module. The idea is to set a file_regexp, which filters changesets by changed files instead of repository.

*

  • Zoranzoki21 (only commits where at least one of the changed files match /(bs|hr|sr\-e[cl])\.json/)
  • Thcipriani (only commits where at least one of the changed files match /scap/scap\.cfg/)
  • Revi (only commits where at least one of the changed files match /ko\.json/)
  • Dr0ptp4kt (only commits where at least one of the changed files match /abstractSchemaChanges/)

cloud/metricsinfra/*

integration/config

  • jbond (only commits where at least one of the changed files match /^dockerfiles/operations-puppet/)

integration/quibble

search/*

wikimedia/discovery/*

mediawiki/extensions/BlueSpice*

mediawiki/skins/BlueSpice*

mediawiki/tools/phan*

wikimedia-cz/*

mediawiki/services/wikispeech*

cloud/toolforge/*

Listen to specific Gerrit repositories

cergen

integration/tox-wikimedia

jsdoc/wmf-theme

mediawiki/core

  • Aaron Schulz (only commits where at least one of the changed files match /^(includes/(filebackend|db|objectcache|externalstore)/|includes/libs/|maintenance/archive/[a-zA-Z]+)/)
  • Xcollazo (only commits where at least one of the changed files match /^includes/export/|^maintenance/includes/(Backup|TextPass|SevenZip)|^maintenance/(fetchText|dump)/)
  • jebe (only commits where at least one of the changed files match /^includes/export/|^maintenance/includes/(Backup|TextPass|SevenZip)|^maintenance/(fetchText|dump)/)
  • milimetric (only commits where at least one of the changed files match /^includes/export/|^maintenance/includes/(Backup|TextPass|SevenZip)|^maintenance/(fetchText|dump)/)
  • Catrope (only commits where at least one of the changed files match /resources/src/vue//)
  • cscott (only commits where at least one of the changed files match /[Pp]arser|virtualrest|OutputTransform/)
  • Cwhite (only commits where at least one of the changed files match /^((tests/phpunit/unit/)?includes/libs/Metrics)/)
  • daniel (only commits where at least one of the changed files match /^includes/content//)
  • dcausse (only commits where at least one of the changed files match /^includes/search//)
  • Gergő Tisza (only commits where at least one of the changed files match /^includes/auth/|includes/session//)}}
  • Huji (only commits where at least one of the changed files match /(Equivset|MessagesFa)/)
  • Jdlrobson (only commits where at least one of the changed files match /^(includes/skins|includes/ResourceLoader/SkinModule\.php|resources/.*)/)
  • Jjanes (only commits where at least one of the changed files match /\.sql$/)
  • Kosta Harlan (only commits where at least one of the changed files match /^tests/phpunit/MediaWikiUnitTestCase.php/)
  • Legoktm (only commits where at least one of the changed files match /registration|[Cc]onfig/)
  • Liangent (only commits where at least one of the changed files match /^includes/language/(LanguageConverter\.php|converters/ZhConverter)|^includes/languages/(LanguageZh|data/ZhConversion\.php)|^maintenance/language/zhtable//)
  • Revi (only commits where at least one of the changed files match /languages/messages/MessagesKo.php/)
  • Samwilson (only commits where at least one of the changed files match /resources/src/mediawiki\.editRecovery/)
  • Skizzerz (only commits where at least one of the changed files match /[Mm]ssql/)
  • Tchanders (only commits where at least one of the changed files match /^includes/.*block/)
  • Tpt (only commits where at least one of the changed files match /(DjVu|EditPage\.php)/)
  • Urbanecm (only commits where at least one of the changed files match /(Messages(Cs|Sk)|includes/block/(UnblockUser|BlockUser|UserBlockCommandFactory|BlockPermissionChecker)|includes/specials/(SpecialBlock|SpecialUnblock).php)/)
  • Winston Sung (only commits where at least one of the changed files match /LanguageCode|/Names\.php|LanguageConverter|/converters/|(Language|Messages)Zh|ZhConversion|^maintenance/language/zhtable//)
  • Zabe (only commits where at least one of the changed files match /^includes/.*block/)
  • Zppix (only commits where at least one of the changed files match /languages/l18n/en.json/)

mediawiki/event-schemas

mediawiki/extensions/AbuseFilter

mediawiki/extensions/ActiveAbstract

mediawiki/extensions/AdvancedSearch

mediawiki/extensions/AdvancedMeta

mediawiki/extensions/ArticleRatings

mediawiki/extensions/AutoModerator

mediawiki/extensions/BlogPage

mediawiki/extensions/CampaignEvents

mediawiki/extensions/Capiunto

mediawiki/extensions/CirrusSearch

mediawiki/extensions/Cite

mediawiki/extensions/CentralAuth

mediawiki/extensions/CentralNotice

mediawiki/extensions/ChessBrowser

mediawiki/extensions/CheckUser

mediawiki/extensions/cldr

  • Winston Sung (only commits where at least one of the changed files match /LocalNames/)

mediawiki/extensions/CodeEditor

mediawiki/extensions/CodeMirror

mediawiki/extensions/CognitiveProcessDesigner

mediawiki/extensions/Collection

mediawiki/extensions/Collection/OfflineContentGenerator

mediawiki/extensions/Collection/OfflineContentGenerator/bundler

mediawiki/extensions/Collection/OfflineContentGenerator/latex_renderer

mediawiki/extensions/Comments

mediawiki/extensions/CommentStreams

mediawiki/extensions/CommunityConfiguration

mediawiki/extensions/CommunityRequests

mediawiki/extensions/ContactPage

mediawiki/extensions/ContainerFilter

mediawiki/extensions/ContentDroplets

mediawiki/extensions/ContentTransfer

mediawiki/extensions/ContentStabilization

mediawiki/extensions/CreateUserPage

mediawiki/extensions/DarkMode

mediawiki/extensions/DisplayTitle

mediawiki/extensions/DonationInterface

mediawiki/extensions/DrawioEditor

mediawiki/extensions/ElectronPdfService

mediawiki/extensions/EmailAuthorization

mediawiki/extensions/EventBus

mediawiki/extensions/FileExporter

mediawiki/extensions/FileImporter

mediawiki/extensions/FlaggedRevs

mediawiki/extensions/FlickrAPI

mediawiki/extensions/Forms

mediawiki/extensions/Gadgets

mediawiki/extensions/Genealogy

mediawiki/extensions/GeoData

mediawiki/extensions/GlobalBlocking

mediawiki/extensions/GlobalPreferences

mediawiki/extensions/GlobalWatchlist

mediawiki/extensions/GrowthExperiments

mediawiki/extensions/GuidedTour

mediawiki/extensions/HierarchyBuilder

mediawiki/extensions/IPReputation

mediawiki/extensions/IPInfo

mediawiki/extensions/ImageMapEdit

mediawiki/extensions/ReportIncident

mediawiki/extensions/InputBox

mediawiki/extensions/JSBreadCrumbs

mediawiki/extensions/BreadCrumbs2

mediawiki/extensions/Kartographer

mediawiki/extensions/LabeledSectionTransclusion

mediawiki/extensions/LDAPAuthentication2

mediawiki/extensions/LDAPAuthorization

mediawiki/extensions/LDAPGroups

mediawiki/extensions/LDAPProvider

mediawiki/extensions/LDAPUserInfo

mediawiki/extensions/Lingo

mediawiki/extensions/LoginNotify

mediawiki/extensions/Math

mediawiki/extensions/MathSearch

mediawiki/extensions/MassMessage

mediawiki/extensions/MediaModeration

mediawiki/extensions/MediaUploader

mediawiki/extensions/MediaWikiChat

mediawiki/extensions/MediaWikiFarm

mediawiki/extensions/MediaSearch

mediawiki/extensions/MissedPages

mediawiki/extensions/MobileApp

mediawiki/extensions/MobileFrontend

  • D3r1ck01 (only commits where at least one of the changed files match /^tests/phpunit/)

mediawiki/extensions/NSFileRepo

mediawiki/extensions/Nuke

mediawiki/extensions/NumberHeadings

mediawiki/extensions/OATHAuth

mediawiki/extensions/OAuth

mediawiki/extensions/OpenBadges

mediawiki/extensions/OpenIDConnect

mediawiki/extensions/PageCheckout

mediawiki/extensions/PageTriage

mediawiki/extensions/ParserFunctions

mediawiki/extensions/ParserMigration

mediawiki/extensions/PluggableAuth

mediawiki/extensions/Phonos

mediawiki/extensions/ReadingLists

mediawiki/extensions/RealMe

mediawiki/extensions/RedirectManager

mediawiki/extensions/RevisionSlider

mediawiki/extensions/Scribunto

mediawiki/extensions/SectionAnchors

mediawiki/extensions/SecureAuth

mediawiki/extensions/SecureLinkFixer

mediawiki/extensions/SecurePoll

mediawiki/extensions/SecurityApi

mediawiki/extensions/SendGrid

mediawiki/extensions/Share

mediawiki/extensions/SimpleCalendar

mediawiki/extensions/SimpleSAMLphp

mediawiki/extensions/SocialProfile

mediawiki/extensions/SpamBlacklist

mediawiki/extensions/SparkPost

mediawiki/extensions/SpecialNamespaces

mediawiki/extensions/StandardDialogs

mediawiki/extensions/TemplateData

mediawiki/extensions/TemplateSandbox

mediawiki/extensions/TemplateStyles

mediawiki/extensions/TemplateWizard

mediawiki/extensions/TheWikipediaLibrary

mediawiki/extensions/timeline

mediawiki/extensions/TitleBlacklist

mediawiki/extensions/TitleIcon

mediawiki/extensions/TwoColConflict

mediawiki/extensions/UnifiedTaskOverview

mediawiki/extensions/UnlinkedWikibase

mediawiki/extensions/UploadWizard

mediawiki/extensions/UrlShortener

mediawiki/extensions/VueTest

mediawiki/extensions/WebAuthn

mediawiki/extensions/Wikibase

  • Hoo man (only commits where at least one of the changed files match /^client/resources/|^client/includes/DataAccess/|^(client|lib|repo)/includes/UpdateRepo.*/)

mediawiki/extensions/WikibaseMediaInfo

mediawiki/extensions/WikiEditor

mediawiki/extensions/WikiForum

mediawiki/extensions/WikimediaApiPortalOAuth

mediawiki/extensions/WikimediaCampaignEvents

mediawiki/extensions/WikimediaIncubator

mediawiki/extensions/Wikisource

mediawiki/extensions/PreToClip

mediawiki/extensions/ProofreadPage

  • Sohom Datta (only commits where at least one of the changed files match /^(modules/|tests/selenium|tests/qunit)/)

mediawiki/extensions/Wikispeech

mediawiki/extensions/WikispeechSpeechDataCollector

mediawiki/extensions/Workflows

mediawiki/extensions/TableTools

mediawiki/extensions/VueJsPlus

mediawiki/extensions/BlueSpiceWikiFarm

mediawiki/extensions/AIEditingAssistant

mediawiki/extensions/CollabPads

mediawiki/libs/IPAValidator

mediawiki/libs/phpstorm-stubs

mediawiki/php/luasandbox

mediawiki/php/wikidiff2

mediawiki/services/citoid

mediawiki/services/citoid/deploy

mediawiki/services/mathoid

mediawiki/services/mobileapps

mediawiki/services/ocg-collection

mediawiki/services/trending-edits

mediawiki/services/wikifeeds

mediawiki/services/eventstreams

mediawiki/services/eventstreams/deploy

mediawiki/skins

mediawiki/skins/BlueSpiceSkin

mediawiki/skins/Foreground

mediawiki/skins/Metrolook

mediawiki/skins/MinervaNeue

mediawiki/skins/Vector

mediawiki/skins/WikimediaApiPortal

mediawiki/ruby/api

mediawiki/selenium

mediawiki/tools/cli

mediawiki/tools/codesniffer

mediawiki/vagrant

  • Dduvall
  • Gergő Tisza
  • ejegg (only commits where at least one of the changed files match /^puppet/modules/(crm|payments|smashpig)/)
  • XenoRyet (only commits where at least one of the changed files match /^puppet/modules/(crm|payments|smashpig)/)
  • jgleeson (only commits where at least one of the changed files match /^puppet/modules/(crm|payments|smashpig)/)
  • cstone (only commits where at least one of the changed files match /^puppet/modules/(crm|payments|smashpig)/)
  • Xcollazo (only commits where at least one of the changed files match /^puppet/modules/dumps/)
  • jebe (only commits where at least one of the changed files match /^puppet/modules/dumps/)
  • milimetric (only commits where at least one of the changed files match /^puppet/modules/dumps/)

mediawiki/vendor

  • Gergő Tisza (only commits where at least one of the changed files match /^psy/psysh//)

wikimedia/discovery/relevanceForge

wikimedia/discovery/discernatron

wikimedia/fundraising/crm

wikimedia/fundraising/crm/civicrm

wikimedia/fundraising/crm/drupal

wikimedia/fundraising/dash

wikimedia/fundraising/FRUEC

wikimedia/fundraising/php-queue

wikimedia/fundraising/process-control

wikimedia/fundraising/SmashPig

wikimedia/fundraising/stats

wikimedia/fundraising/tools

wikimedia/fundraising/tools/DjangoBannerStats

operations/cookbooks

  • Volans
  • Jbond
  • dcaro (only commits where at least one of the changed files match /.*wmcs.*/)

operations/debs/wmf-certificates

operations/debs/debdeploy

operations/debs/pybal

operations/deployment-charts

  • bd808 (only commits where at least one of the changed files match /^(helmfile\.d/services|charts)/(developer-portal|toolhub)/)
  • Urbanecm (only commits where at least one of the changed files match /^(helmfile\.d/services|charts)/linkrecommendation//)

operations/dns

operations/docker-images/docker-pkg

operations/homer/public

operations/puppet

  • bd808 (only commits where at least one of the changed files match /^modules/toollabs/|^hieradata/labs/tools//)
  • Filippo Giunchedi (only commits where at least one of the changed files match /^.*icinga.*/)
  • bblack (only commits where at least one of the changed files match /^modules/(authdns|pybal|lvs|nginx|tlsproxy|varnish|sslcert)/|^modules/role/manifests/(cache|lvs)/|^manifests/role/(authdns|lvs|tlsproxy)\.pp|^files/ssl/|^templates/varnish//)
  • Volans (only commits where at least one of the changed files match /(\.py(\.erb)?$|cumin|failoid|debmonitor|spicerack|cookbook|netbox|homer|puppetboard|reimage)/)
  • Giuseppe Lavagetto (only commits where at least one of the changed files match /^hieradata/regex.yaml|^modules/(mediawiki|service|httpd|php|etcd)/)
  • Muehlenhoff (only commits where at least one of the changed files match /^modules/admin//)
  • Jbond (only commits where at least one of the changed files match /modules/admin|apereo_cas|apt|wmflib|modules/base|cumin|cfssl|debian|debdeploy|debmonitor|kerberos|yubiauth|puppet|pki|ssh|sudo|sslcert|sysctl|modules/systemd?|ulogd|ferm|modules/security|standard|wikidough|\.rb$|(Gem|Rake)file|CONTRIBUTORS|^vendor_modules//)
  • Slyngshede (only commits where at least one of the changed files match /modules/admin|apereo_cas//)
  • Alexandros Kosiaris (only commits where at least one of the changed files match /^modules/(calico|docker|k8s|profile/kubernetes|etherpad|ferm|ganeti|lvs|network|ores|otrs|package_builder|service)/)
  • paladox (only commits where at least one of the changed files match /^modules/(gerrit|phabricator)/)
  • Xcollazo (only commits where at least one of the changed files match /^modules/(dumps|snapshot)/|^modules/(profile|role)/manifests/dumps//)
  • jebe (only commits where at least one of the changed files match /^modules/(dumps|snapshot)/|^modules/(profile|role)/manifests/dumps//)
  • Ssingh (only commits where at least one of the changed files match /^modules/(auditd|dnsdist|dnsrecursor)|^modules/(profile|role)/*/(wikidough|durum|dnsbox)/)
  • Legoktm (only commits where at least one of the changed files match /^modules/(extdist|codesearch|libraryupgrader|mailman|mailman3)//)
  • Cwhite (only commits where at least one of the changed files match /(opensearch|logstash)/)
  • dcaro (only commits where at least one of the changed files match /^modules/(toollabs|openstack|ceph)/|^hieradata/labs/tools/|^modules/(profile|role)/*/(toolforge|openstack|toollabs|labs)|modules/base/*/standard_packages//)
  • Hoo man (only commits where at least one of the changed files match /^modules/snapshot/(files/systemdjobs/wikibase|manifests/systemdjobs/(wiki(base|data).*\.pp|wikidatadumps/))/)
  • Dr0ptp4kt (only commits where at least one of the changed files match /(filtered_tables\.txt|realm\.pp|index-conf\.yaml|maintain-views\.yaml)$/)
  • Dzahn (only commits where at least one of the changed files match //^modules/(gerrit|phabricator|wikistats|planet|vrts|etherpad|gitlab|requesttracker|releases|contint|)/|^modules/(profile|role)/manifests/(gerrit|phabricator|planet|wikistats|vrts|etherpad|gitlab|requesttracker|releases|ci|miscweb|microsites|stewards|collaboration_services|aphlict)/)

operations/puppet/cdh

operations/puppet/cdh4

operations/puppet/kafka

operations/puppet/zookeeper

operations/mediawiki-config

  • Hoo man (only commits where at least one of the changed files match /^wmf-config/Wikibase\.php/)

operations/software

operations/software/conftool

operations/software/cumin

operations/software/debmonitor

operations/software/debmonitor/deploy

operations/software/debmonitor-client

operations/software/ecs

operations/software/external-monitoring

operations/software/homer

operations/software/keyholder

operations/software/netbox

operations/software/netbox-deploy

operations/software/netbox-extras

operations/software/pywmflib

operations/software/spicerack

operations/software/tools-webservice

operations/software/varnish/varnishkafka

operations/switchdc

labs/codesearch

labs/icinga2

labs/libraryupgrader

labs/toollabs

labs/tools/awmd-stats

labs/tools/Commons-twitter-bot

labs/tools/extjsonuploader

labs/tools/watch-translations

labs/tools/wikibugs2

labs/tools/wikisource-ocr

labs/tools/map-of-monuments

labs/tools/massmailer

labs/tools/meetingtimes

labs/tools/wikinity

labs/tools/weapon-of-mass-description

labs/tools/commons-mass-description

labs/tools/harvesting-data-refinery

labs/tools/heritage

labs/tools/sonarqubebot

labs/tools/urbanecmbot

labs/tools/train-blockers

labs/tools/github-pr-closer

labs/tools/majavah-bot

maps/kartotherian/package

maps/kartotherian/deploy

maps/tilerator/package

maps/tilerator/deploy

sink_nova_ldap

sink_nova_fixed_multi

apps/android/java-mwapi

apps/android/wikipedia

pywikibot/core

  • D3r1ck01 (only commits where at least one of the changed files match /^scripts/)

pywikibot/bots/FLOSSbot

pywikibot/spelling

pywikibot/compat

analytics/aqs

analytics/gobblin-wmf

analytics/quarry/web

analytics/refinery

analytics/refinery/source

analytics/wikihadoop

analytics/limn-mobile-data

wikidata/query/rdf

wikidata/query/deploy

wikidata/query/gui

wikidata/query/gui-deploy

wikimedia/css-sanitizer

wikimedia/normalized-exception

wikimedia/textcat

integration/commit-message-validator

wikimedia/portals

wikimedia-cz/tracker

wikimedia-event-utilities

labs/tools/stewardbots

labs/tools/stewardbots-ui

labs/tools/ZppixBot

eventlogging

wmf-utils

wikimedia/security/tooling

wikimedia/toolhub

design/codex

wikimedia/developer-portal

mediawiki/extensions/Chart

mediawiki/extensions/Wikistories

cloud/toolforge/toolforge-cli

cloud/toolforge/toolforge-build-cli

cloud/toolforge/toolforge-build-api

cloud/toolforge/buildpacks

releng/phatality

phabricator/antivandalism

phabricator/translations

research/recommendation-api

Listen to GitLab repository groups

Projects are matched based on unix filename matching as implemented in the fnmatch module. The idea is to set a file_regexp, which filters changesets by changed files instead of repository.

*

  • thcipriani (only commits where at least one of the changed files match /scap/scap\.cfg/)


Listen to specific GitLab repositories