Steps to replicate the issue (include links if applicable):
Install grabbers as per documentation https://www.mediawiki.org/wiki/Manual:Grabbers
sudo -u www-data php /var/www/wiki/w/mediawiki-tools-grabbers/grabFiles.php --url https://www.example.com/w/api.php
What happens?:
[35c7f4bed02ebde4690dfe95] [no req] Error: Call to undefined method RepoGroup::singleton()
Backtrace:
from /var/www/wiki/w/mediawiki-tools-grabbers/includes/FileGrabber.php(64)
#0 /var/www/wiki/w/mediawiki-tools-grabbers/grabFiles.php(34): FileGrabber->execute()
#1 /var/www/wiki/w/maintenance/doMaintenance.php(114): GrabFiles->execute()
#2 /var/www/wiki/w/mediawiki-tools-grabbers/grabFiles.php(143): require_once(string)
#3 {main}
What should have happened instead?:
No error.
Software version (skip for WMF-hosted wikis like Wikipedia):
1.38.2
Other information (browser name/version, screenshots, etc.):
Line https://github.com/wikimedia/mediawiki-tools-grabbers/blob/master/includes/FileGrabber.php#L64 might be broken.
$this->localRepo = RepoGroup::singleton()->getLocalRepo();
I found RepoGroup::singleton() in the developer documentation for MediaWiki version 1.37:
https://doc.wikimedia.org/mediawiki-core/REL1_37/php/classRepoGroup.html
But when changing to version in above link to REL1_38 (MediaWiki version 1.38) the developer documentation no longer mentions singleton:
https://doc.wikimedia.org/mediawiki-core/REL1_38/php/classRepoGroup.html
Therefore I guess MediaWiki API changes have broken grabFiles.php.