Page MenuHomePhabricator

redirect gerrit repo paths to diffusion callsigns
Closed, ResolvedPublic

Description

In T101358#1582108, @mmodell wrote:
We can generate the callsign mapping in phabricator. One option that @demon and I came up with is to offer a static url, something like https://phabricator.wikimedia.org/r/project/mediawiki/extensions/Flow/ which would simply redirect to https://phabricator.wikimedia.org/diffusion/EFLW

Until this is implemented, various git templates on mediawiki.org (e.g. Template:Git_file) rely on Module:Callsigns to map gerrit project paths to callsigns.

Revisions and Commits

Related Objects

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

For reference:

@Negative24 started Template:Phab_file, once we get it working well enough it can become the new Template:Git_file on mediawiki.org and wikitech. It looks doable, just hundreds of lines in a {{#switch: {{{project}}} | ... }} ParserFunction to map project= paths to diffusion callsigns.

#switch is a terrible idea to store such map:

  • it is going through the Parser and its is quite slow
  • its going to be a pain in the ass to keep up-to-date
  • LUA module!!!

The Gerrit project name and Diffusion names do not match and are inconsistent (the last created project names in Diffusion have / as separator whereas it was a dash previously). Might have an impact as well.

What about having the Phabfile template to use the callsign? It is more or less meant to be an immutable human friendly ID and saves the crazy #switch.

So instead of:

{{phab file |project=mediawiki/extensions/Flow |file=composer.json }}

Do:

{{phab file |callsign=EFLW |file=composer.json }}

And the lookup map is gone.



That is what Module:Callsigns is doing and this task is about using Phabricator instead to handle the redirection.

What about having the Phabfile template to use the callsign? It is more or less meant to be an immutable human friendly ID and saves the crazy #switch.

Well, that's my question from T101358#1342162:

what's the most "correct" and future-proof way to specify a repo ?

Converting several thousand invocations of {{git file | project=path/to/repo }} to {{git file | callsign=XXXX }} is non-trivial but if the latter is the correct specification, we can consider it. But even with callsigns and eventually phabricator/diffusion as our git "origin" remote, it seems to me we still need some way to indicate to developers "Clone this repo in your mediawiki/extensions/BoilerPlate directory structure". So does path/to/repo go away?

@mmodell, can you comment?

@Spage: upstream is working on path/to/repo support in diffusion. See upstream task.

mmodell triaged this task as High priority.
mmodell moved this task from To Triage to In Progress on the Gitblit-Deprecate board.

@demon: Do you have a list of the repository callsigns mapping to the old project urls? I can build the redirect script but we need to have that mapping somewhere and the only version of such that I have available is far out of date at this point.

I do! Gimme a minute to regenerate that list and I'll pastebin it here on Phab.

This is everything as of a ~week ago:

1array(
2 'EEUS' => 'mediawiki/extensions/EditUser',
3 'ECHM' => 'mediawiki/extensions/ChemPF',
4 'EGPL' => 'mediawiki/extensions/GooglePlaces',
5 'EGAM' => 'mediawiki/extensions/GoogleAnalyticsMetrics',
6 'EFLA' => 'mediawiki/extensions/FlickrAPI',
7 'EDPG' => 'mediawiki/extensions/DeletePagesForGood',
8 'EDTM' => 'mediawiki/extensions/DebugTemplates',
9 'EDAD' => 'mediawiki/extensions/DateDiff',
10 'ECKP' => 'mediawiki/extensions/CookiePolicy',
11 'EBSS' => 'mediawiki/extensions/BSExtendedSearch',
12 'EARP' => 'mediawiki/extensions/ArticlePlaceholder',
13 'EHMT' => 'mediawiki/extensions/AddHTMLMetaAndTitle',
14 'EASM' => 'mediawiki/extensions/AccessibilitySimulation',
15 'ANPD' => 'analytics/aggregator/projectview/data',
16 'GMTD' => 'maps/tilerator/deploy',
17 'GMTL' => 'maps/tilerator',
18 'GMKD' => 'maps/kartotherian/deploy',
19 'GMKT' => 'maps/kartotherian',
20 'ANUJ' => 'analytics/ua-parser/uap-java',
21 'ANUC' => 'analytics/ua-parser/uap-core',
22 'ANLW' => 'analytics/limn-wikidata-data',
23 'ANLT' => 'analytics/limn-multimedia-data',
24 'ANLX' => 'analytics/limn-extdist-data',
25 'ANLN' => 'analytics/limn-analytics-data',
26 'GCLP' => 'CLDRPluralRuleParser',
27 'GGWL' => 'generator-wikimedia-php-library',
28 'GAVP' => 'avro-php',
29 'GATE' => 'at-ease',
30 'GWST' => 'WrappedString',
31 'GIPS' => 'IPSet',
32 'GACO' => 'AhoCorasick',
33 'CIRA' => 'integration/raita',
34 'CIDS' => 'integration/dashboard',
35 'TRCP' => 'labs/tools/wrcp',
36 'TWDZ' => 'labs/tools/wikidipendenza',
37 'TTRT' => 'labs/tools/translatemplate',
38 'TPTB' => 'labs/tools/ptable',
39 'TFRB' => 'labs/tools/forrestbot',
40 'TFLO' => 'labs/tools/flow-oauth-demo',
41 'TERO' => 'labs/tools/extreg-wos',
42 'TCRW' => 'labs/tools/crosswatch',
43 'TCJS' => 'labs/tools/cdnjs-index',
44 'EBOP' => 'mediawiki/extensions/BoilerPlate.git',
45 'GGER' => 'gerrit',
46 'EMLI' => 'mediawiki/extensions/MadLib',
47 'ELUL' => 'mediawiki/extensions/LastUserLogin',
48 'TWBT' => 'labs/tools/wikibugs2',
49 'TPBS' => 'labs/tools/phabricator-bug-status',
50 'TGTR' => 'labs/tools/gerrit-to-redis',
51 'TFCS' => 'labs/tools/faces',
52 'TSUB' => 'labs/tools/SuchABot',
53 'ECNA' => 'mediawiki/extensions/ContributorsAddon',
54 'ECNL' => 'mediawiki/extensions/ContributionsList',
55 'ECRG' => 'mediawiki/extensions/Cargo',
56 'ELNA' => 'mediawiki/extensions/Link_Attributes',
57 'ELNS' => 'mediawiki/extensions/LinkSuggest2',
58 'ELDP' => 'mediawiki/extensions/LDAPAuthorization',
59 'EHTW' => 'mediawiki/extensions/Html2Wiki',
60 'EHTC' => 'mediawiki/extensions/HitCounters',
61 'EATP' => 'mediawiki/extensions/GoogleAnalyticsTopPages',
62 'EGAC' => 'mediawiki/extensions/GoogleAPIClient',
63 'EGIT' => 'mediawiki/extensions/GitHub',
64 'EGAT' => 'mediawiki/extensions/Gather',
65 'EFAV' => 'mediawiki/extensions/Favorites',
66 'EFRM' => 'mediawiki/extensions/Farmer',
67 'EEDA' => 'mediawiki/extensions/EditAccount',
68 'EDIV' => 'mediawiki/extensions/DonationInterface/vendor',
69 'ECLV' => 'mediawiki/extensions/CollapsibleVector',
70 'EBUG' => 'mediawiki/extensions/Buggy',
71 'EACO' => 'mediawiki/extensions/ArticleComments',
72 'EAFU' => 'mediawiki/extensions/ApiFeatureUsage',
73 'ANAR' => 'analytics/aggregator/data',
74 'ANBC' => 'analytics/abacist',
75 'ANLD' => 'analytics/limn-edit-data',
76 'ANUA' => 'analytics/ua-parser',
77 'ANSV' => 'analytics/statsv',
78 'ANPC' => 'analytics/proof-of-concept',
79 'ANMS' => 'analytics/mediawiki-storage',
80 'ANLL' => 'analytics/limn-language-data',
81 'ANLF' => 'analytics/limn-flow-data',
82 'AGSD' => 'analytics/gerrit-stats/data',
83 'ANGS' => 'analytics/gerrit-stats',
84 'ANAG' => 'analytics/aggregator',
85 'MEXT' => 'mediawiki/extensions',
86 'CDB' => 'cdb',
87 'GVED' => 'VisualEditor/VisualEditor',
88 'TWVS' => 'labs/tools/wikiviewstats',
89 'TWAB' => 'labs/tools/wikipedia-android-builds',
90 'TWCA' => 'labs/tools/wikicaptcha',
91 'TSGN' => 'labs/tools/signpost',
92 'TPYW' => 'labs/tools/pywikibugs',
93 'TMUC' => 'labs/tools/multichill',
94 'TMTG' => 'labs/tools/maintgraph',
95 'TLST' => 'labs/tools/lists',
96 'TKIT' => 'labs/tools/kirstentest',
97 'THER' => 'labs/tools/heritage',
98 'TGUC' => 'labs/tools/guc',
99 'TGRT' => 'labs/tools/grrrit',
100 'TGFT' => 'labs/tools/giftbot',
101 'TGRM' => 'labs/tools/gblrenamemon',
102 'TEXD' => 'labs/tools/extdist',
103 'TCST' => 'labs/tools/coursestats',
104 'TCON' => 'labs/tools/connectivity',
105 'TBUB' => 'labs/tools/bub',
106 'TWMT' => 'labs/tools/WMT',
107 'LTOL' => 'labs/toollabs',
108 'LQMW' => 'labs/qmwbot',
109 'LPRI' => 'labs/private',
110 'LNAB' => 'labs/nagios-builder',
111 'LMAS' => 'labs/migration-assistant',
112 'LMAP' => 'labs/maps',
113 'LINU' => 'labs/invisible-unicorn',
114 'LINC' => 'labs/incubator',
115 'LCAU' => 'labs/centralauth',
116 'CIZU' => 'integration/zuul',
117 'CIPU' => 'integration/phpunit',
118 'CIPD' => 'integration/phpcs',
119 'CIPC' => 'integration/php-coveralls',
120 'CIPJ' => 'integration/phantomjs',
121 'CIJU' => 'integration/junitdiff',
122 'CIJJ' => 'integration/jenkins-job-builder',
123 'CIJE' => 'integration/jenkins',
124 'CIDR' => 'integration/docroot',
125 'CIDC' => 'integration/doc',
126 'CICS' => 'integration/consistency',
127 'CICF' => 'integration/config',
128 'CICP' => 'integration/composer',
129 'CIBU' => 'integration/bundler',
130 'GLAM' => 'glam/gwtoolset',
131 'APWW' => 'apps/win8/wikipedia',
132 'APWL' => 'apps/mobile/WikiLovesMonuments',
133 'APIW' => 'apps/ios/wikipedia',
134 'APIC' => 'apps/ios/commons',
135 'APGW' => 'apps/glass/wikipedia',
136 'APFW' => 'apps/firefox/wikipedia',
137 'APAW' => 'apps/android/wikipedia',
138 'APAT' => 'apps/android/translate',
139 'APAJ' => 'apps/android/java-mwapi',
140 'APAC' => 'apps/android/commons',
141 'ANZS' => 'analytics/zero-sms',
142 'ANZZ' => 'analytics/wp-zero',
143 'ANWS' => 'analytics/wikistats',
144 'ANWM' => 'analytics/wikimetrics',
145 'ANWH' => 'analytics/wikihadoop',
146 'ANWC' => 'analytics/webstatscollector',
147 'ANVK' => 'analytics/vagrant/kraken',
148 'ANVB' => 'analytics/vagrant/build',
149 'ANUM' => 'analytics/user-metrics',
150 'ANUL' => 'analytics/udplog',
151 'ANUF' => 'analytics/udp-filters',
152 'ANTK' => 'analytics/tools/kripke',
153 'ANSG' => 'analytics/statsd-ganglia',
154 'ANSN' => 'analytics/snuggle',
155 'ANRD' => 'analytics/reportcard/data',
156 'ANRC' => 'analytics/reportcard',
157 'ANRS' => 'analytics/refinery/source',
158 'ANRE' => 'analytics/refinery',
159 'ANQW' => 'analytics/quarry/web',
160 'ANPA' => 'analytics/pageview-api',
161 'ANMC' => 'analytics/multimedia/config',
162 'ANMU' => 'analytics/multimedia',
163 'ANME' => 'analytics/metrics',
164 'ANLU' => 'analytics/log2udp2',
165 'ANLM' => 'analytics/limn-mobile-data',
166 'ANLE' => 'analytics/limn-ee-data',
167 'ANLI' => 'analytics/limn',
168 'ANLC' => 'analytics/libcidr',
169 'ANLA' => 'analytics/libanon',
170 'ANKD' => 'analytics/kraken/deploy',
171 'ANKR' => 'analytics/kraken',
172 'ANKA' => 'analytics/kafkatee',
173 'ANGF' => 'analytics/global-dev/dashboard-data',
174 'ANDE' => 'analytics/global-dev/dashboard',
175 'ANGL' => 'analytics/glass',
176 'ANGD' => 'analytics/geowiki/data-public',
177 'ANGW' => 'analytics/geowiki',
178 'ANDC' => 'analytics/dclass',
179 'ANDW' => 'analytics/data-warehouse',
180 'ANAD' => 'analytics/dashiki',
181 'ANAC' => 'analytics/camus',
182 'ANAB' => 'analytics/blog',
183 'ANAS' => 'analytics/asana-stats',
184 'EMNC' => 'mediawiki/extensions/MagicNoCache',
185 'EMWS' => 'mediawiki/extensions/MWSearch',
186 'EMSQ' => 'mediawiki/extensions/MSSQLBackCompat',
187 'ELOO' => 'mediawiki/extensions/Loops',
188 'ELOF' => 'mediawiki/extensions/LoopFunctions',
189 'ELOU' => 'mediawiki/extensions/LookupUser',
190 'ELOG' => 'mediawiki/extensions/LogoFunctions',
191 'ELGE' => 'mediawiki/extensions/LogEntry',
192 'ELCK' => 'mediawiki/extensions/Lockdown',
193 'ELDE' => 'mediawiki/extensions/LockDownEnglishPages',
194 'ELOC' => 'mediawiki/extensions/LocalisationUpdate',
195 'ELIT' => 'mediawiki/extensions/LiveTranslate',
196 'ELSG' => 'mediawiki/extensions/Listings',
197 'ELSS' => 'mediawiki/extensions/ListSignup',
198 'ELQT' => 'mediawiki/extensions/LiquidThreads',
199 'ELIW' => 'mediawiki/extensions/LinkedWiki',
200 'ELIS' => 'mediawiki/extensions/LinkSuggest',
201 'ELIF' => 'mediawiki/extensions/LinkFilter',
202 'ELIN' => 'mediawiki/extensions/Lingo',
203 'ELIM' => 'mediawiki/extensions/Limn',
204 'ELRA' => 'mediawiki/extensions/LightweightRDFa',
205 'ELWC' => 'mediawiki/extensions/LifeWebCore',
206 'ELWE' => 'mediawiki/extensions/LifeWeb',
207 'ELES' => 'mediawiki/extensions/Less',
208 'ELDA' => 'mediawiki/extensions/LdapAuthentication',
209 'ELMO' => 'mediawiki/extensions/LastModified',
210 'ELTA' => 'mediawiki/extensions/LanguageTag',
211 'ELSR' => 'mediawiki/extensions/LanguageSelector',
212 'ELCH' => 'mediawiki/extensions/LandingCheck',
213 'ELST' => 'mediawiki/extensions/LabeledSectionTransclusion',
214 'EJSS' => 'mediawiki/extensions/JsonData/JsonSchema',
215 'EJSD' => 'mediawiki/extensions/JsonData',
216 'EJSC' => 'mediawiki/extensions/JsonConfig',
217 'EJOS' => 'mediawiki/extensions/Josa',
218 'EJSB' => 'mediawiki/extensions/JSBreadCrumbs',
219 'EIST' => 'mediawiki/extensions/IssueTracker',
220 'EIVS' => 'mediawiki/extensions/InviteSignup',
221 'EIWN' => 'mediawiki/extensions/InterwikiMap',
222 'EIWM' => 'mediawiki/extensions/InterwikiMagic',
223 'EIWI' => 'mediawiki/extensions/InterwikiIntegration',
224 'EIWA' => 'mediawiki/extensions/Interwiki',
225 'EILA' => 'mediawiki/extensions/Interlanguage',
226 'EIBM' => 'mediawiki/extensions/InteractiveBlockMessage',
227 'EINS' => 'mediawiki/extensions/Insider',
228 'EINB' => 'mediawiki/extensions/InputBox',
229 'EINC' => 'mediawiki/extensions/InlineCategorizer',
230 'EINF' => 'mediawiki/extensions/IndexFunction',
231 'EIMT' => 'mediawiki/extensions/ImageTagging',
232 'EIME' => 'mediawiki/extensions/ImageMetrics',
233 'EIMA' => 'mediawiki/extensions/ImageMap',
234 'EILI' => 'mediawiki/extensions/ImageLink',
235 'EIFP' => 'mediawiki/extensions/IframePage',
236 'EIFT' => 'mediawiki/extensions/IfTemplates',
237 'EINT' => 'mediawiki/extensions/I18nTags',
238 'EHOV' => 'mediawiki/extensions/Hovergallery',
239 'EHOS' => 'mediawiki/extensions/HostStats',
240 'EHIB' => 'mediawiki/extensions/HierarchyBuilder',
241 'EHPR' => 'mediawiki/extensions/HidePrefix',
242 'EHPA' => 'mediawiki/extensions/HelpPages',
243 'EHCO' => 'mediawiki/extensions/HelpCommons',
244 'EHET' => 'mediawiki/extensions/HeaderTabs',
245 'EHAT' => 'mediawiki/extensions/HashTables',
246 'EHTL' => 'mediawiki/extensions/HTMLets',
247 'EHTT' => 'mediawiki/extensions/HTMLTags',
248 'EHST' => 'mediawiki/extensions/HSTS',
249 'EGTG' => 'mediawiki/extensions/GuidedTour/guiders',
250 'EGTO' => 'mediawiki/extensions/GuidedTour',
251 'EGSB' => 'mediawiki/extensions/GroupsSidebar',
252 'EGVI' => 'mediawiki/extensions/GraphViz',
253 'EGRA' => 'mediawiki/extensions/Graph',
254 'EGSS' => 'mediawiki/extensions/GoogleSiteSearch',
255 'EGPO' => 'mediawiki/extensions/GooglePlusOne',
256 'EGNS' => 'mediawiki/extensions/GoogleNewsSitemap',
257 'EGMA' => 'mediawiki/extensions/GoogleMaps',
258 'EGLO' => 'mediawiki/extensions/GoogleLogin',
259 'EGDM' => 'mediawiki/extensions/GoogleDocs4MW',
260 'EGDT' => 'mediawiki/extensions/GoogleDocTag',
261 'EGCW' => 'mediawiki/extensions/GoogleCustomWikiSearch',
262 'EGAE' => 'mediawiki/extensions/GoogleAppEngine',
263 'EGAS' => 'mediawiki/extensions/GoogleAdSense',
264 'EGTS' => 'mediawiki/extensions/GoToShell',
265 'EGUR' => 'mediawiki/extensions/GlobalUserrights',
266 'EGUP' => 'mediawiki/extensions/GlobalUserPage',
267 'EGUG' => 'mediawiki/extensions/GlobalUserGroups',
268 'EGUS' => 'mediawiki/extensions/GlobalUsage',
269 'EGPR' => 'mediawiki/extensions/GlobalPreferences',
270 'EGNO' => 'mediawiki/extensions/GlobalNotice',
271 'EGCJ' => 'mediawiki/extensions/GlobalCssJs',
272 'EGCO' => 'mediawiki/extensions/GlobalContributions',
273 'EGBL' => 'mediawiki/extensions/GlobalBlocking',
274 'EGWE' => 'mediawiki/extensions/Gitweb',
275 'EGTP' => 'mediawiki/extensions/Git2Pages',
276 'EGST' => 'mediawiki/extensions/GettingStarted',
277 'EGGE' => 'mediawiki/extensions/GeoGebra',
278 'EGDA' => 'mediawiki/extensions/GeoData',
279 'EGCR' => 'mediawiki/extensions/GeoCrumbs',
280 'EGEN' => 'mediawiki/extensions/Genderize',
281 'EGAD' => 'mediawiki/extensions/Gadgets',
282 'EGWT' => 'mediawiki/extensions/GWToolset',
283 'EFTW' => 'mediawiki/extensions/FundraisingTranslateWorkflow',
284 'EFEU' => 'mediawiki/extensions/FundraisingEmailUnsubscribe',
285 'EFCH' => 'mediawiki/extensions/FundraisingChart',
286 'EFUL' => 'mediawiki/extensions/FundraiserLandingPage',
287 'EFOX' => 'mediawiki/extensions/Foxway',
288 'EFAP' => 'mediawiki/extensions/FormelApplet',
289 'EFON' => 'mediawiki/extensions/FormatNum',
290 'EFOD' => 'mediawiki/extensions/FormatDates',
291 'EFPP' => 'mediawiki/extensions/FormPreloadPostCache',
292 'EFOP' => 'mediawiki/extensions/ForcePreview',
293 'EFLV' => 'mediawiki/extensions/FlvHandler',
294 'EFLW' => 'mediawiki/extensions/Flow',
295 'EFLR' => 'mediawiki/extensions/FlaggedRevs',
296 'EFHT' => 'mediawiki/extensions/FixedHeaderTable',
297 'EFIR' => 'mediawiki/extensions/FirstSteps',
298 'EFLU' => 'mediawiki/extensions/FilterListUsers',
299 'EFFP' => 'mediawiki/extensions/FeedsFromPrivateWikis',
300 'EFFD' => 'mediawiki/extensions/FeaturedFeeds',
301 'EFAN' => 'mediawiki/extensions/FanBoxes',
302 'EXLL' => 'mediawiki/extensions/ExtraLanguageLink',
303 'EXDA' => 'mediawiki/extensions/ExternalData',
304 'EXAR' => 'mediawiki/extensions/ExternalArticles',
305 'EXDI' => 'mediawiki/extensions/ExtensionDistributor',
306 'EEXT' => 'mediawiki/extensions/ExtTab',
307 'EETE' => 'mediawiki/extensions/ExpandTemplates',
308 'EEVL' => 'mediawiki/extensions/EventLogging',
309 'EEPL' => 'mediawiki/extensions/EtherpadLite',
310 'EETH' => 'mediawiki/extensions/EtherEditor',
311 'EERR' => 'mediawiki/extensions/ErrorHandler',
312 'EECF' => 'mediawiki/extensions/EnhanceContactForm',
313 'EMCP' => 'mediawiki/extensions/EmailCapture',
314 'EELA' => 'mediawiki/extensions/Elastica',
315 'EEDU' => 'mediawiki/extensions/EducationProgram',
316 'EECT' => 'mediawiki/extensions/Editcount',
317 'EESP' => 'mediawiki/extensions/EditSubpages',
318 'EESI' => 'mediawiki/extensions/EditSimilar',
319 'EEPT' => 'mediawiki/extensions/EditPageTracking',
320 'ECHO' => 'mediawiki/extensions/Echo',
321 'EEEE' => 'mediawiki/extensions/E3Experiments',
322 'EDSB' => 'mediawiki/extensions/DynamicSidebar',
323 'EDPL' => 'mediawiki/extensions/DynamicPageList',
324 'EDUP' => 'mediawiki/extensions/Duplicator',
325 'EDHT' => 'mediawiki/extensions/DumpHTML',
326 'EDRA' => 'mediawiki/extensions/Drafts',
327 'EDCO' => 'mediawiki/extensions/DownloadCounter',
328 'EDWI' => 'mediawiki/extensions/DoubleWiki',
329 'EDOI' => 'mediawiki/extensions/DonationInterface',
330 'EDJA' => 'mediawiki/extensions/DjangoAnalytics',
331 'EDQT' => 'mediawiki/extensions/DisqusTag',
332 'EDSN' => 'mediawiki/extensions/DismissableSiteNotice',
333 'EDTH' => 'mediawiki/extensions/DiscussionThreading',
334 'EDIS' => 'mediawiki/extensions/Disambiguator',
335 'EDAC' => 'mediawiki/extensions/DisableAccount',
336 'EDYM' => 'mediawiki/extensions/DidYouMean',
337 'EDYK' => 'mediawiki/extensions/DidYouKnow',
338 'EDIE' => 'mediawiki/extensions/Dice',
339 'EDIA' => 'mediawiki/extensions/Diagnosis',
340 'EDML' => 'mediawiki/extensions/DeviceMapLogCapture',
341 'EDLA' => 'mediawiki/extensions/DetectLanguage',
342 'EDES' => 'mediawiki/extensions/Description2',
343 'EDOW' => 'mediawiki/extensions/DeleteOwn',
344 'EDBA' => 'mediawiki/extensions/DeleteBatch',
345 'EDBG' => 'mediawiki/extensions/DebugMode',
346 'EDTR' => 'mediawiki/extensions/DataTransfer',
347 'EDPF' => 'mediawiki/extensions/DPLforum',
348 'ECUS' => 'mediawiki/extensions/CustomUserSignup',
349 'ECUD' => 'mediawiki/extensions/CustomData',
350 'ECRK' => 'mediawiki/extensions/CryoKey',
351 'ECSO' => 'mediawiki/extensions/CreditsSource',
352 'ECTA' => 'mediawiki/extensions/CreditTab',
353 'ECRR' => 'mediawiki/extensions/CreateRedirect',
354 'ECRP' => 'mediawiki/extensions/CreatePage',
355 'ECTC' => 'mediawiki/extensions/CopyToClipboard',
356 'ECTW' => 'mediawiki/extensions/Convert2Wiki',
357 'ECOX' => 'mediawiki/extensions/ConventionExtension',
358 'ECNN' => 'mediawiki/extensions/Contributors',
359 'ECNT' => 'mediawiki/extensions/ContributionTracking',
360 'ECNS' => 'mediawiki/extensions/ContributionScores',
361 'ECNR' => 'mediawiki/extensions/ContributionReporting',
362 'ECST' => 'mediawiki/extensions/Contest',
363 'ECTX' => 'mediawiki/extensions/ContentTranslation',
364 'ECPF' => 'mediawiki/extensions/ContactPageFundraiser',
365 'ECPA' => 'mediawiki/extensions/ContactPage',
366 'ECLP' => 'mediawiki/extensions/CongressLookup',
367 'ECOE' => 'mediawiki/extensions/ConfirmEdit',
368 'ECAC' => 'mediawiki/extensions/ConfirmAccount',
369 'ECFG' => 'mediawiki/extensions/Configure',
370 'ECON' => 'mediawiki/extensions/ConditionalShowSection',
371 'ECOV' => 'mediawiki/extensions/CommunityVoice',
372 'ECOT' => 'mediawiki/extensions/CommunityTwitter',
373 'ECOH' => 'mediawiki/extensions/CommunityHiring',
374 'ECOA' => 'mediawiki/extensions/CommunityApplications',
375 'ECMD' => 'mediawiki/extensions/CommonsMetadata',
376 'ECMM' => 'mediawiki/extensions/CommonMessages',
377 'ECMT' => 'mediawiki/extensions/Comments',
378 'ECMB' => 'mediawiki/extensions/Commentbox',
379 'ECMP' => 'mediawiki/extensions/CommentPages',
380 'EOCZ' => 'mediawiki/extensions/Collection/OfflineContentGenerator/zim_renderer',
381 'EOCT' => 'mediawiki/extensions/Collection/OfflineContentGenerator/text_renderer',
382 'EOCN' => 'mediawiki/extensions/Collection/OfflineContentGenerator/node_modules',
383 'EOCL' => 'mediawiki/extensions/Collection/OfflineContentGenerator/latex_renderer',
384 'EOCH' => 'mediawiki/extensions/Collection/OfflineContentGenerator/html_renderer',
385 'EOCB' => 'mediawiki/extensions/Collection/OfflineContentGenerator/bundler',
386 'EOCS' => 'mediawiki/extensions/Collection/OfflineContentGenerator',
387 'ECOL' => 'mediawiki/extensions/Collection',
388 'ECRE' => 'mediawiki/extensions/CodeReview',
389 'ECMI' => 'mediawiki/extensions/CodeMirror',
390 'ECED' => 'mediawiki/extensions/CodeEditor',
391 'ECLW' => 'mediawiki/extensions/CloseWikis',
392 'ECLS' => 'mediawiki/extensions/ClientSide',
393 'ECLT' => 'mediawiki/extensions/ClickTracking',
394 'ECLC' => 'mediawiki/extensions/CleanChanges',
395 'ECEX' => 'mediawiki/extensions/Citoid',
396 'ECTP' => 'mediawiki/extensions/CiteThisPage',
397 'ECIT' => 'mediawiki/extensions/Cite',
398 'ECHE' => 'mediawiki/extensions/Checkpoint',
399 'ECHU' => 'mediawiki/extensions/CheckUser',
400 'ECRS' => 'mediawiki/extensions/CharRangeSpan',
401 'ECHI' => 'mediawiki/extensions/CharInsert',
402 'ECHA' => 'mediawiki/extensions/Challenge',
403 'ECNB' => 'mediawiki/extensions/CentralNotice/BannerProxy',
404 'ECNO' => 'mediawiki/extensions/CentralNotice',
405 'ECLO' => 'mediawiki/extensions/CentralLogging',
406 'ECAU' => 'mediawiki/extensions/CentralAuth',
407 'ECTR' => 'mediawiki/extensions/CategoryTree',
408 'ECTE' => 'mediawiki/extensions/CategoryTests',
409 'ECTS' => 'mediawiki/extensions/CategoryTagSorter',
410 'ECSH' => 'mediawiki/extensions/CategorySortHeaders',
411 'ECAS' => 'mediawiki/extensions/CategorySlideShow',
412 'ECAR' => 'mediawiki/extensions/Carp',
413 'ECAP' => 'mediawiki/extensions/Capiunto',
414 'ECAM' => 'mediawiki/extensions/Campaigns',
415 'ECAL' => 'mediawiki/extensions/Calendar',
416 'ECSS' => 'mediawiki/extensions/CSS',
417 'EBCS' => 'mediawiki/extensions/BreadCrumbs2',
418 'EBCR' => 'mediawiki/extensions/BreadCrumbs',
419 'EBHA' => 'mediawiki/extensions/BounceHandler',
420 'EBOO' => 'mediawiki/extensions/Bootstrap',
421 'EBMB' => 'mediawiki/extensions/BookManagerv2',
422 'EBMA' => 'mediawiki/extensions/BookManager',
423 'EBSF' => 'mediawiki/extensions/BlueSpiceFoundation',
424 'EBSE' => 'mediawiki/extensions/BlueSpiceExtensions',
425 'EBLO' => 'mediawiki/extensions/BlogPage',
426 'EBAN' => 'mediawiki/extensions/BlockAndNuke',
427 'EBLM' => 'mediawiki/extensions/BlameMaps',
428 'EBLA' => 'mediawiki/extensions/Blackout',
429 'EBPL' => 'mediawiki/extensions/BiblioPlus',
430 'EBIB' => 'mediawiki/extensions/BibManager',
431 'EBET' => 'mediawiki/extensions/BetaFeatures',
432 'EBAF' => 'mediawiki/extensions/BayesianFilter',
433 'EBUR' => 'mediawiki/extensions/BatchUserRights',
434 'EBAB' => 'mediawiki/extensions/Babel',
435 'EAZA' => 'mediawiki/extensions/AzharAuth',
436 'EAWE' => 'mediawiki/extensions/Awesomeness',
437 'EABW' => 'mediawiki/extensions/AutomaticBoardWelcome',
438 'EAPB' => 'mediawiki/extensions/AutoProxyBlock',
439 'EACP' => 'mediawiki/extensions/AutoCreateCategoryPages',
440 'EAUP' => 'mediawiki/extensions/AuthorProtect',
441 'EARU' => 'mediawiki/extensions/Auth_remoteuser',
442 'EASE' => 'mediawiki/extensions/AssertEdit',
443 'EAID' => 'mediawiki/extensions/ArticleIndex',
444 'EAFF' => 'mediawiki/extensions/ArticleFeedbackv5',
445 'EAFB' => 'mediawiki/extensions/ArticleFeedback',
446 'EACW' => 'mediawiki/extensions/ArticleCreationWorkflow',
447 'EARR' => 'mediawiki/extensions/Arrays',
448 'EARE' => 'mediawiki/extensions/ApprovedRevs',
449 'ESBX' => 'mediawiki/extensions/ApiSandbox',
450 'EASP' => 'mediawiki/extensions/ApiSVGProxy',
451 'EAPX' => 'mediawiki/extensions/ApiExplorer',
452 'EANS' => 'mediawiki/extensions/AntiSpoof',
453 'EANB' => 'mediawiki/extensions/AntiBot',
454 'EANN' => 'mediawiki/extensions/Annotator',
455 'EAHA' => 'mediawiki/extensions/AnchorHandler',
456 'EATZ' => 'mediawiki/extensions/AllTimeZones',
457 'EAKI' => 'mediawiki/extensions/AkismetKlik',
458 'EAJL' => 'mediawiki/extensions/AjaxLogin',
459 'EAGO' => 'mediawiki/extensions/Agora',
460 'EAME' => 'mediawiki/extensions/AdvancedMeta',
461 'EADS' => 'mediawiki/extensions/Ads',
462 'EADL' => 'mediawiki/extensions/AdminLinks',
463 'EADT' => 'mediawiki/extensions/AddThis',
464 'EAMS' => 'mediawiki/extensions/AddMessages',
465 'EADM' => 'mediawiki/extensions/AdManager',
466 'EACM' => 'mediawiki/extensions/ActivityMonitor',
467 'EAAB' => 'mediawiki/extensions/ActiveAbstract',
468 'EAES' => 'mediawiki/extensions/ActionEditSubmit',
469 'EAIN' => 'mediawiki/extensions/AccountInfo',
470 'EAAU' => 'mediawiki/extensions/AccountAudit',
471 'EACC' => 'mediawiki/extensions/AccessControl',
472 'EABF' => 'mediawiki/extensions/AbuseFilter',
473 'EABL' => 'mediawiki/extensions/AbsenteeLandlord',
474 'EAWK' => 'mediawiki/extensions/AWSSDK',
475 'EAWS' => 'mediawiki/extensions/AWS',
476 'ECIR' => 'mediawiki/extensions/CirrusSearch',
477 'EAPC' => 'mediawiki/extensions/APC',
478 'EAJP' => 'mediawiki/extensions/AJAXPoll',
479 'UINF' => 'USERINFO',
480 'MW' => 'mediawiki/core',
481 'EWMB' => 'mediawiki/extensions/WikimediaBadges',
482 'EQEV' => 'mediawiki/extensions/WikidataQualityExternalValidation',
483 'EWQC' => 'mediawiki/extensions/WikidataQualityConstraints',
484 'EWOR' => 'mediawiki/extensions/Wikidata.org',
485 'EBEV' => 'mediawiki/extensions/WikibaseQualityExternalValidation',
486 'EBQC' => 'mediawiki/extensions/WikibaseQualityConstraints',
487 'EBQL' => 'mediawiki/extensions/WikibaseQuality',
488 'EWSH' => 'mediawiki/extensions/WikiShare',
489 'EPNG' => 'mediawiki/extensions/WikiPinger',
490 'ETTN' => 'mediawiki/extensions/TopTenPages',
491 'ETXS' => 'mediawiki/extensions/TextScroller',
492 'ELNG' => 'mediawiki/extensions/TestLanguageNameGrammar',
493 'ESHP' => 'mediawiki/extensions/SyntaxHighlight_Pygments',
494 'ESCN' => 'mediawiki/extensions/StatCounter',
495 'ESFP' => 'mediawiki/extensions/StaffPowers',
496 'ESDT' => 'mediawiki/extensions/SpamDiffTool',
497 'ESMI' => 'mediawiki/extensions/SmiteSpam',
498 'ESHW' => 'mediawiki/extensions/ShoutWikiAPI',
499 'ESLN' => 'mediawiki/extensions/SemanticLinks',
500 'ESCI' => 'mediawiki/extensions/SemanticCite',
501 'ESNR' => 'mediawiki/extensions/SMWEnrich',
502 'EREF' => 'mediawiki/extensions/Reflect',
503 'EMCL' => 'mediawiki/extensions/MsCalendar',
504 'EWDP' => 'mediawiki/extensions/WikidataPageBanner',
505 'ESDL' => 'mediawiki/extensions/SafeDelete',
506 'ERIH' => 'mediawiki/extensions/RawImageHandler',
507 'EMSA' => 'mediawiki/extensions/MassAction',
508 'ESNT' => 'mediawiki/extensions/Sentry',
509 'ESME' => 'mediawiki/extensions/SemanticMetaTags',
510 'EPLO' => 'mediawiki/extensions/PlanOut',
511 'EPTX' => 'mediawiki/extensions/PaginateText',
512 'EWQL' => 'mediawiki/extensions/WikidataQuality',
513 'EWBV' => 'mediawiki/extensions/WikibaseView',
514 'EWBR' => 'mediawiki/extensions/WikibaseRepository',
515 'EWBJ' => 'mediawiki/extensions/WikibaseJavaScriptApi',
516 'EWHO' => 'mediawiki/extensions/WhosOnline',
517 'EVTK' => 'mediawiki/extensions/VirtualKeyboard',
518 'EVTI' => 'mediawiki/extensions/VikiTitleIcon',
519 'EVST' => 'mediawiki/extensions/VikiSemanticTitle',
520 'EVPM' => 'mediawiki/extensions/ViewportMetrics',
521 'ESAM' => 'mediawiki/extensions/SimpleSAMLphp',
522 'ESIL' => 'mediawiki/extensions/SemanticInterlanguageLinks',
523 'ESDP' => 'mediawiki/extensions/SemanticDependency',
524 'ESBL' => 'mediawiki/extensions/SemanticBreadcrumbLinks',
525 'ERVE' => 'mediawiki/extensions/RevealEmail',
526 'ERBU' => 'mediawiki/extensions/RestBaseUpdateJobs',
527 'EPLG' => 'mediawiki/extensions/PluggableAuth',
528 'EPGL' => 'mediawiki/extensions/PagesList',
529 'EIDC' => 'mediawiki/extensions/OpenIDConnect',
530 'EUIP' => 'mediawiki/extensions/OOUIPlayground',
531 'EMBP' => 'mediawiki/extensions/MultiBoilerplate',
532 'EMSE' => 'mediawiki/extensions/MsWikiEditor',
533 'EMSI' => 'mediawiki/extensions/MsInsert',
534 'EMSC' => 'mediawiki/extensions/MsCatSelect',
535 'MTID' => 'mediawiki/php/tidy',
536 'GGRD' => 'mediawiki/services/graphoid/deploy',
537 'GGRA' => 'mediawiki/services/graphoid',
538 'GZTT' => 'mediawiki/services/zotero/translators',
539 'GZTS' => 'mediawiki/services/zotero/translation-server',
540 'GTAR' => 'mediawiki/services/tardist',
541 'GSTN' => 'mediawiki/services/service-template-node',
542 'GSER' => 'mediawiki/services/service-runner',
543 'GRES' => 'mediawiki/services/restbase',
544 'GRAS' => 'mediawiki/services/rashomon',
545 'GHIE' => 'mediawiki/services/hierator',
546 'GSTR' => 'mediawiki/services/rcstream',
547 'GRBD' => 'mediawiki/services/restbase/deploy',
548 'GPAD' => 'mediawiki/services/parsoid/deploy',
549 'GPAR' => 'mediawiki/services/parsoid',
550 'GOCG' => 'mediawiki/services/ocg-collection',
551 'GMAT' => 'mediawiki/services/mathoid',
552 'GJOB' => 'mediawiki/services/jobrunner',
553 'GCXD' => 'mediawiki/services/cxserver/deploy',
554 'GCXS' => 'mediawiki/services/cxserver',
555 'GCID' => 'mediawiki/services/citoid/deploy',
556 'GCIT' => 'mediawiki/services/citoid',
557 'MSEL' => 'mediawiki/selenium',
558 'MRUB' => 'mediawiki/ruby/api',
559 'MRCS' => 'mediawiki/rcsub',
560 'MWME' => 'mediawiki/php/wmerrors',
561 'MWDJ' => 'mediawiki/php/wikidiff2',
562 'MWDI' => 'mediawiki/php/wikidiff',
563 'MNOR' => 'mediawiki/php/normal',
564 'MLUS' => 'mediawiki/php/luasandbox',
565 'MNPP' => 'mediawiki/php/NativePreprocessor',
566 'MFSS' => 'mediawiki/php/FastStringSearch',
567 'MWPI' => 'mediawiki/packages/WPI',
568 'EHIE' => 'mediawiki/extensions/wikihiero',
569 'ETLN' => 'mediawiki/extensions/timeline',
570 'EAND' => 'mediawiki/extensions/intersection',
571 'EGAN' => 'mediawiki/extensions/googleAnalytics',
572 'EXAM' => 'mediawiki/extensions/examples',
573 'ECLD' => 'mediawiki/extensions/cldr',
574 'EZRM' => 'mediawiki/extensions/ZeroRatedMobileAccess',
575 'EZPO' => 'mediawiki/extensions/ZeroPortal',
576 'EZBA' => 'mediawiki/extensions/ZeroBanner',
577 'EYTB' => 'mediawiki/extensions/YouTube',
578 'EYRE' => 'mediawiki/extensions/YotpoReviews',
579 'EYAK' => 'mediawiki/extensions/YetAnotherKeywords',
580 'EXCE' => 'mediawiki/extensions/XMLContentExtension',
581 'EXAN' => 'mediawiki/extensions/XAnalytics',
582 'EWFL' => 'mediawiki/extensions/Workflow',
583 'EWAS' => 'mediawiki/extensions/WindowsAzureStorage',
584 'EWAK' => 'mediawiki/extensions/WindowsAzureSDK',
585 'EWMY' => 'mediawiki/extensions/WikivoteMapsYandex',
586 'EWSL' => 'mediawiki/extensions/WikimediaShopLink',
587 'EWME' => 'mediawiki/extensions/WikimediaMessages',
588 'EWMA' => 'mediawiki/extensions/WikimediaMaintenance',
589 'EWMI' => 'mediawiki/extensions/WikimediaIncubator',
590 'EWMV' => 'mediawiki/extensions/WikimediaEvents',
591 'EWLG' => 'mediawiki/extensions/Wikilog',
592 'EWDE' => 'mediawiki/extensions/WikidataEntitySuggester',
593 'EWDA' => 'mediawiki/extensions/Wikidata',
594 'EWBS' => 'mediawiki/extensions/WikibaseSolr',
595 'EWBQ' => 'mediawiki/extensions/WikibaseQuery',
596 'EWBM' => 'mediawiki/extensions/WikibaseMobile',
597 'EWBL' => 'mediawiki/extensions/WikibaseLib',
598 'EWBC' => 'mediawiki/extensions/WikibaseClient',
599 'EWBE' => 'mediawiki/extensions/Wikibase/easyrdf',
600 'EWBA' => 'mediawiki/extensions/Wikibase',
601 'EWTW' => 'mediawiki/extensions/WikiTwidget',
602 'EWLI' => 'mediawiki/extensions/WikiTextLoggedInOut',
603 'EWOM' => 'mediawiki/extensions/WikiObjectModel',
604 'EWLM' => 'mediawiki/extensions/WikiLovesMonuments',
605 'EWLO' => 'mediawiki/extensions/WikiLove',
606 'EWLD' => 'mediawiki/extensions/WikiLexicalData',
607 'EWGR' => 'mediawiki/extensions/WikiGrok',
608 'EWFO' => 'mediawiki/extensions/WikiForum',
609 'EWED' => 'mediawiki/extensions/WikiEditor',
610 'EWCT' => 'mediawiki/extensions/WikiCategoryTagCloud',
611 'EWAF' => 'mediawiki/extensions/WikiArticleFeeds',
612 'EWEF' => 'mediawiki/extensions/WikEdDiff',
613 'EWID' => 'mediawiki/extensions/Widgets',
614 'EWIW' => 'mediawiki/extensions/WhoIsWatching',
615 'EWHP' => 'mediawiki/extensions/WhitelistPages',
616 'EWHI' => 'mediawiki/extensions/WhiteSpace',
617 'EWPC' => 'mediawiki/extensions/WebPlatformSearchAutocomplete',
618 'EWPA' => 'mediawiki/extensions/WebPlatformAuth',
619 'EWBF' => 'mediawiki/extensions/WebFonts',
620 'EWCH' => 'mediawiki/extensions/WebChat',
621 'EWCA' => 'mediawiki/extensions/WebCache',
622 'EWSP' => 'mediawiki/extensions/WatchSubpages',
623 'EWPN' => 'mediawiki/extensions/WantedPagesFromNS',
624 'EWYS' => 'mediawiki/extensions/WYSIWYG',
625 'EVNY' => 'mediawiki/extensions/VoteNY',
626 'EVED' => 'mediawiki/extensions/VisualEditor',
627 'EVCH' => 'mediawiki/extensions/VisualChat',
628 'EVIP' => 'mediawiki/extensions/VipsScaler',
629 'EVIN' => 'mediawiki/extensions/Vine',
630 'EVWS' => 'mediawiki/extensions/Views',
631 'EVFI' => 'mediawiki/extensions/ViewFiles',
632 'EVJS' => 'mediawiki/extensions/VideoJsPlayer',
633 'EVID' => 'mediawiki/extensions/Video',
634 'EBSA' => 'mediawiki/extensions/VectorBeta',
635 'EVEC' => 'mediawiki/extensions/Vector',
636 'EVAR' => 'mediawiki/extensions/Variables',
637 'EVVI' => 'mediawiki/extensions/ValueView',
638 'EVAL' => 'mediawiki/extensions/Validator',
639 'EVIK' => 'mediawiki/extensions/VIKI',
640 'EUTH' => 'mediawiki/extensions/UserThrottle',
641 'EUST' => 'mediawiki/extensions/UserStatus',
642 'EUPV' => 'mediawiki/extensions/UserPageViewTracker',
643 'EUOS' => 'mediawiki/extensions/UserOptionStats',
644 'EUME' => 'mediawiki/extensions/UserMerge',
645 'EUGR' => 'mediawiki/extensions/UserGroups',
646 'EUFU' => 'mediawiki/extensions/UserFunctions',
647 'EUDC' => 'mediawiki/extensions/UserDailyContribs',
648 'EUSH' => 'mediawiki/extensions/UrlShortener',
649 'EUGP' => 'mediawiki/extensions/UrlGetParameters',
650 'EUWI' => 'mediawiki/extensions/UploadWizard',
651 'EULO' => 'mediawiki/extensions/UploadLocal',
652 'EUBL' => 'mediawiki/extensions/UploadBlacklist',
653 'EUMW' => 'mediawiki/extensions/UpdateMediaWiki',
654 'EULS' => 'mediawiki/extensions/UniversalLanguageSelector',
655 'EUTE' => 'mediawiki/extensions/UnitTest',
656 'EUCO' => 'mediawiki/extensions/UnicodeConverter',
657 'EURN' => 'mediawiki/extensions/URNames',
658 'EUIF' => 'mediawiki/extensions/UIFeedback',
659 'ETFA' => 'mediawiki/extensions/TwoFactorAuthentication',
660 'ETWN' => 'mediawiki/extensions/TwnMainPage',
661 'ETWL' => 'mediawiki/extensions/TwitterLogin',
662 'ETWC' => 'mediawiki/extensions/TwitterCards',
663 'ETAN' => 'mediawiki/extensions/TweetANew',
664 'ETXF' => 'mediawiki/extensions/TrustedXFF',
665 'ETRX' => 'mediawiki/extensions/Transliterator',
666 'ETRN' => 'mediawiki/extensions/TranslationNotifications',
667 'ETRS' => 'mediawiki/extensions/TranslateSvg',
668 'ETRA' => 'mediawiki/extensions/Translate',
669 'ETOR' => 'mediawiki/extensions/TorBlock',
670 'ETTI' => 'mediawiki/extensions/Tooltip',
671 'ETTR' => 'mediawiki/extensions/TocTree',
672 'ETIK' => 'mediawiki/extensions/TitleKey',
673 'ETIC' => 'mediawiki/extensions/TitleIcon',
674 'ETBL' => 'mediawiki/extensions/TitleBlacklist',
675 'ETZS' => 'mediawiki/extensions/TimezoneSelector',
676 'ETLT' => 'mediawiki/extensions/TimelineTable',
677 'ETMH' => 'mediawiki/extensions/TimedMediaHandler',
678 'ETIM' => 'mediawiki/extensions/TimeMachine',
679 'ETHP' => 'mediawiki/extensions/ThumbParser',
680 'ETHO' => 'mediawiki/extensions/ThrottleOverride',
681 'ETHD' => 'mediawiki/extensions/ThemeDesigner',
682 'ETHM' => 'mediawiki/extensions/Theme',
683 'ETHA' => 'mediawiki/extensions/Thanks',
684 'ETEX' => 'mediawiki/extensions/TextExtracts',
685 'ETSA' => 'mediawiki/extensions/TemplateSandbox',
686 'ETIN' => 'mediawiki/extensions/TemplateInfo',
687 'ETDA' => 'mediawiki/extensions/TemplateData',
688 'ETEA' => 'mediawiki/extensions/Teahouse',
689 'ETAB' => 'mediawiki/extensions/Tabs',
690 'ETBR' => 'mediawiki/extensions/Tabber',
691 'ESHL' => 'mediawiki/extensions/SyntaxHighlighter',
692 'ESHG' => 'mediawiki/extensions/SyntaxHighlight_GeSHi',
693 'ESWM' => 'mediawiki/extensions/SwiftMailer',
694 'ESCF' => 'mediawiki/extensions/SwiftCloudFiles',
695 'ESWX' => 'mediawiki/extensions/SwarmExport',
696 'ESUV' => 'mediawiki/extensions/Survey',
697 'ESUH' => 'mediawiki/extensions/Suhosin',
698 'ESUD' => 'mediawiki/extensions/Sudo',
699 'ESSK' => 'mediawiki/extensions/SubpageSortkey',
700 'ESFN' => 'mediawiki/extensions/SubpageFun',
701 'ESPC' => 'mediawiki/extensions/SubPageList3',
702 'ESPL' => 'mediawiki/extensions/SubPageList',
703 'ESFE' => 'mediawiki/extensions/StringFunctionsEscaped',
704 'ESTR' => 'mediawiki/extensions/StrategyWiki',
705 'ESFS' => 'mediawiki/extensions/StopForumSpam',
706 'ESTT' => 'mediawiki/extensions/StickToThatLanguage',
707 'ESTW' => 'mediawiki/extensions/StarterWiki',
708 'ESTL' => 'mediawiki/extensions/StalkerLog',
709 'ESTE' => 'mediawiki/extensions/StaffEdits',
710 'ESSH' => 'mediawiki/extensions/Spreadsheet',
711 'ESPT' => 'mediawiki/extensions/SportsTeams',
712 'ESPA' => 'mediawiki/extensions/SpellingApi',
713 'ESNS' => 'mediawiki/extensions/SpecialNamespaces',
714 'ESPF' => 'mediawiki/extensions/Special404',
715 'ESPK' => 'mediawiki/extensions/Spark',
716 'ESPB' => 'mediawiki/extensions/SpamBlacklist',
717 'ESMB' => 'mediawiki/extensions/SoundManager2Button',
718 'ESOS' => 'mediawiki/extensions/SolrStore',
719 'ESLA' => 'mediawiki/extensions/Solarium',
720 'ESVN' => 'mediawiki/extensions/SoftwareVersion',
721 'ESPR' => 'mediawiki/extensions/SocialProfile',
722 'ESLI' => 'mediawiki/extensions/SocialLogin',
723 'ESMG' => 'mediawiki/extensions/SmoothGallery',
724 'ESBT' => 'mediawiki/extensions/SlimboxThumbs',
725 'ESPP' => 'mediawiki/extensions/SkinPerPage',
726 'ESPN' => 'mediawiki/extensions/SkinPerNamespace',
727 'ESJS' => 'mediawiki/extensions/SkelJS',
728 'ESET' => 'mediawiki/extensions/SiteSettings',
729 'ESCT' => 'mediawiki/extensions/SiteScout',
730 'ESMT' => 'mediawiki/extensions/SiteMetrics',
731 'ESMX' => 'mediawiki/extensions/SiteMatrix',
732 'ESIS' => 'mediawiki/extensions/SimpleSurvey',
733 'ESSC' => 'mediawiki/extensions/SimpleSecurity',
734 'ESFA' => 'mediawiki/extensions/SimpleFarm',
735 'ESCH' => 'mediawiki/extensions/SimpleChanges',
736 'ESAS' => 'mediawiki/extensions/SimpleAntiSpam',
737 'ESWP' => 'mediawiki/extensions/SignWritingMediaWikiPlugin',
738 'ESDB' => 'mediawiki/extensions/SidebarDonateBox',
739 'ESBM' => 'mediawiki/extensions/SideBarMenu',
740 'ESWA' => 'mediawiki/extensions/ShoutWikiAds',
741 'ESBO' => 'mediawiki/extensions/ShoutBox',
742 'ESUA' => 'mediawiki/extensions/ShortUrlApi',
743 'ESUR' => 'mediawiki/extensions/ShortUrl',
744 'ESCJ' => 'mediawiki/extensions/SharedCssJs',
745 'ESWB' => 'mediawiki/extensions/SemanticWebBrowser',
746 'ESWL' => 'mediawiki/extensions/SemanticWatchlist',
747 'ESUP' => 'mediawiki/extensions/SemanticUpdateOnPurge',
748 'ESTI' => 'mediawiki/extensions/SemanticTitle',
749 'ESTA' => 'mediawiki/extensions/SemanticTasks',
750 'ESSU' => 'mediawiki/extensions/SemanticSignup',
751 'ESSI' => 'mediawiki/extensions/SemanticSifter',
752 'ESRF' => 'mediawiki/extensions/SemanticResultFormats',
753 'ESRA' => 'mediawiki/extensions/SemanticRating',
754 'ESPS' => 'mediawiki/extensions/SemanticPageSeries',
755 'ESPM' => 'mediawiki/extensions/SemanticPageMaker',
756 'ESMW' => 'mediawiki/extensions/SemanticMediaWiki',
757 'ESMA' => 'mediawiki/extensions/SemanticMaps',
758 'ESIO' => 'mediawiki/extensions/SemanticInternalObjects',
759 'ESII' => 'mediawiki/extensions/SemanticImageInput',
760 'ESIA' => 'mediawiki/extensions/SemanticImageAnnotator',
761 'ESHI' => 'mediawiki/extensions/SemanticHighcharts',
762 'ESGL' => 'mediawiki/extensions/SemanticGlossary',
763 'ESGE' => 'mediawiki/extensions/SemanticGenealogy',
764 'ESFI' => 'mediawiki/extensions/SemanticFormsInputs',
765 'ESFO' => 'mediawiki/extensions/SemanticForms',
766 'ESES' => 'mediawiki/extensions/SemanticExtraSpecialProperties',
767 'ESEX' => 'mediawiki/extensions/SemanticExpressiveness',
768 'ESDE' => 'mediawiki/extensions/SemanticDummyEditor',
769 'ESDD' => 'mediawiki/extensions/SemanticDrilldown',
770 'ESCQ' => 'mediawiki/extensions/SemanticCompoundQueries',
771 'ESCO' => 'mediawiki/extensions/SemanticComments',
772 'ESBU' => 'mediawiki/extensions/SemanticBundle',
773 'ESAC' => 'mediawiki/extensions/SemanticACL',
774 'ESLT' => 'mediawiki/extensions/SelectTag',
775 'ESLC' => 'mediawiki/extensions/SelectCategory',
776 'ESSE' => 'mediawiki/extensions/SecureSessions',
777 'ESPO' => 'mediawiki/extensions/SecurePoll',
778 'ESPW' => 'mediawiki/extensions/SecurePasswords',
779 'ESHT' => 'mediawiki/extensions/SecureHTML',
780 'ESDQ' => 'mediawiki/extensions/SectionDisqus',
781 'ESRE' => 'mediawiki/extensions/SearchRealnames',
782 'ESEN' => 'mediawiki/extensions/SearchExtraNS',
783 'ELUA' => 'mediawiki/extensions/Scribunto',
784 'ESCP' => 'mediawiki/extensions/Screenplay',
785 'ESCR' => 'mediawiki/extensions/Score',
786 'ESST' => 'mediawiki/extensions/ScanSet',
787 'ESAR' => 'mediawiki/extensions/Sarcasm',
788 'ESAL' => 'mediawiki/extensions/SandboxLink',
789 'ESAT' => 'mediawiki/extensions/SacredText',
790 'ESVE' => 'mediawiki/extensions/SVGEdit',
791 'ESCA' => 'mediawiki/extensions/SSLClientAuthentication',
792 'ERIF' => 'mediawiki/extensions/RightFunctions',
793 'ERCS' => 'mediawiki/extensions/RevisionCommentSupplement',
794 'ERPT' => 'mediawiki/extensions/ReplaceText',
795 'ERPS' => 'mediawiki/extensions/ReplaceSet',
796 'ERPP' => 'mediawiki/extensions/ReorderParserPhases',
797 'EREN' => 'mediawiki/extensions/Renameuser',
798 'ERLI' => 'mediawiki/extensions/RelationLinks',
799 'ERSI' => 'mediawiki/extensions/RelatedSites',
800 'ERAR' => 'mediawiki/extensions/RelatedArticles',
801 'ERXF' => 'mediawiki/extensions/RegexFunctions',
802 'ERXU' => 'mediawiki/extensions/RegexFun',
803 'ERES' => 'mediawiki/extensions/RefreshSpecial',
804 'ERAF' => 'mediawiki/extensions/RecentActivityFeed',
805 'ERAE' => 'mediawiki/extensions/ReassignEdits',
806 'ERFE' => 'mediawiki/extensions/ReaderFeedback',
807 'ERAT' => 'mediawiki/extensions/Ratings',
808 'ERUA' => 'mediawiki/extensions/RandomUsersWithAvatars',
809 'ERRP' => 'mediawiki/extensions/RandomRootPage',
810 'ERAC' => 'mediawiki/extensions/RandomInCategory',
811 'ERIC' => 'mediawiki/extensions/RandomImageByCategory',
812 'ERIM' => 'mediawiki/extensions/RandomImage',
813 'ERGU' => 'mediawiki/extensions/RandomGameUnit',
814 'ERFU' => 'mediawiki/extensions/RandomFeaturedUser',
815 'ERQT' => 'mediawiki/extensions/RT',
816 'ERSS' => 'mediawiki/extensions/RSS',
817 'ERPE' => 'mediawiki/extensions/RPED',
818 'ERDF' => 'mediawiki/extensions/RDFIO',
819 'EQTA' => 'mediawiki/extensions/QuizTabulate',
820 'EQGA' => 'mediawiki/extensions/QuizGame',
821 'EQUI' => 'mediawiki/extensions/Quiz',
822 'EQRS' => 'mediawiki/extensions/QuickResponse',
823 'EQCS' => 'mediawiki/extensions/Quantcast',
824 'EPTW' => 'mediawiki/extensions/PushToWatch',
825 'EPUS' => 'mediawiki/extensions/Push',
826 'EPCT' => 'mediawiki/extensions/PurgeClickThrough',
827 'EPWD' => 'mediawiki/extensions/PureWikiDeletion',
828 'EPSH' => 'mediawiki/extensions/PubSubHubbub',
829 'EPLD' => 'mediawiki/extensions/ProxyListDb',
830 'EPRO' => 'mediawiki/extensions/ProtectSite',
831 'EPRP' => 'mediawiki/extensions/ProofreadPage',
832 'EPRR' => 'mediawiki/extensions/PronunciationRecording',
833 'EPRD' => 'mediawiki/extensions/PrivateDomains',
834 'EPRM' => 'mediawiki/extensions/Premoderation',
835 'EPSW' => 'mediawiki/extensions/PrefSwitch',
836 'EPST' => 'mediawiki/extensions/PrefStats',
837 'EPOS' => 'mediawiki/extensions/PostEdit',
838 'EPOP' => 'mediawiki/extensions/Popups',
839 'EPPP' => 'mediawiki/extensions/PopupPages',
840 'EPOC' => 'mediawiki/extensions/PoolCounter',
841 'EPGT' => 'mediawiki/extensions/Polyglot',
842 'EPNY' => 'mediawiki/extensions/PollNY',
843 'EPOL' => 'mediawiki/extensions/Poll',
844 'EPOE' => 'mediawiki/extensions/Poem',
845 'EPGA' => 'mediawiki/extensions/PictureGame',
846 'ETWK' => 'mediawiki/extensions/PhpTagsWiki',
847 'ETWD' => 'mediawiki/extensions/PhpTagsWidgets',
848 'ETSM' => 'mediawiki/extensions/PhpTagsSMW',
849 'ETMA' => 'mediawiki/extensions/PhpTagsMaps',
850 'ETFU' => 'mediawiki/extensions/PhpTagsFunctions',
851 'ETDE' => 'mediawiki/extensions/PhpTagsDebugger',
852 'ETAG' => 'mediawiki/extensions/PhpTags',
853 'EPHI' => 'mediawiki/extensions/PhpHighlight',
854 'EPHA' => 'mediawiki/extensions/Phalanx',
855 'EPET' => 'mediawiki/extensions/Petition',
856 'EPER' => 'mediawiki/extensions/Persona',
857 'EPPL' => 'mediawiki/extensions/PerPageLicense',
858 'EPHD' => 'mediawiki/extensions/PdfHandler',
859 'EPEX' => 'mediawiki/extensions/PdfExport',
860 'EPBO' => 'mediawiki/extensions/PdfBook',
861 'EPJS' => 'mediawiki/extensions/Parsoid/js/contrib',
862 'EPAP' => 'mediawiki/extensions/Parsoid/cpp/contrib/pugixml',
863 'EPAH' => 'mediawiki/extensions/Parsoid/cpp/contrib/libhubbub',
864 'EPAR' => 'mediawiki/extensions/Parsoid',
865 'EPHO' => 'mediawiki/extensions/ParserHooks',
866 'EPFN' => 'mediawiki/extensions/ParserFunctions',
867 'EPFU' => 'mediawiki/extensions/ParserFun',
868 'EPAN' => 'mediawiki/extensions/PanScroll',
869 'EPTH' => 'mediawiki/extensions/PagedTiffHandler',
870 'EPTR' => 'mediawiki/extensions/PageTriage',
871 'EPTO' => 'mediawiki/extensions/PageTools',
872 'EPSC' => 'mediawiki/extensions/PageSchemas',
873 'EPNO' => 'mediawiki/extensions/PageNotice',
874 'EPLA' => 'mediawiki/extensions/PageLanguage',
875 'EPIC' => 'mediawiki/extensions/PageInCat',
876 'EPIM' => 'mediawiki/extensions/PageImages',
877 'EPDQ' => 'mediawiki/extensions/PageDisqus',
878 'EPCN' => 'mediawiki/extensions/PageCreationNotif',
879 'EPBL' => 'mediawiki/extensions/PageBlock',
880 'EXCL' => 'mediawiki/extensions/PHPExcel',
881 'ETKZ' => 'mediawiki/extensions/PGFTikZ',
882 'EOVS' => 'mediawiki/extensions/Oversight',
883 'EOTS' => 'mediawiki/extensions/OracleTextSearch',
884 'EOSM' => 'mediawiki/extensions/OpenStreetMapSlippyMap',
885 'EOST' => 'mediawiki/extensions/OpenStackManager',
886 'EOSX' => 'mediawiki/extensions/OpenSearchXml',
887 'EOID' => 'mediawiki/extensions/OpenID',
888 'EOGM' => 'mediawiki/extensions/OpenGraphMeta',
889 'EOBA' => 'mediawiki/extensions/OpenBadges',
890 'EORR' => 'mediawiki/extensions/OnlyRecentRecentChanges',
891 'EOSB' => 'mediawiki/extensions/OnlineStatusBar',
892 'EOSS' => 'mediawiki/extensions/OnlineStatus',
893 'EOGG' => 'mediawiki/extensions/OggHandler',
894 'EOIL' => 'mediawiki/extensions/OfflineImportLexicon',
895 'EOFF' => 'mediawiki/extensions/Offline',
896 'EODB' => 'mediawiki/extensions/OdbcDatabase',
897 'EOAA' => 'mediawiki/extensions/OAuthAuthentication',
898 'EOAU' => 'mediawiki/extensions/OAuth',
899 'EOAT' => 'mediawiki/extensions/OATHAuth',
900 'EOAI' => 'mediawiki/extensions/OAI',
901 'ENUA' => 'mediawiki/extensions/NumerAlpha',
902 'ENUT' => 'mediawiki/extensions/Numbertext',
903 'ENOW' => 'mediawiki/extensions/NumberOfWikis',
904 'ENFM' => 'mediawiki/extensions/NumberFormat',
905 'ENUD' => 'mediawiki/extensions/NukeDPL',
906 'ENUK' => 'mediawiki/extensions/Nuke',
907 'ENOS' => 'mediawiki/extensions/Nostalgia',
908 'ENOL' => 'mediawiki/extensions/Nonlinear',
909 'ENOT' => 'mediawiki/extensions/NoTitle',
910 'ENLT' => 'mediawiki/extensions/Newsletter',
911 'ENBX' => 'mediawiki/extensions/NewsBox',
912 'ENEW' => 'mediawiki/extensions/News',
913 'ENWP' => 'mediawiki/extensions/NewestPages',
914 'ENUL' => 'mediawiki/extensions/NewUsersList',
915 'ENUN' => 'mediawiki/extensions/NewUserNotif',
916 'ENUM' => 'mediawiki/extensions/NewUserMessage',
917 'ENSU' => 'mediawiki/extensions/NewSignupPage',
918 'ENAU' => 'mediawiki/extensions/NetworkAuth',
919 'ENEG' => 'mediawiki/extensions/Negref',
920 'ENTI' => 'mediawiki/extensions/NavigationTiming',
921 'ENLL' => 'mediawiki/extensions/NaturalLanguageList',
922 'ENAR' => 'mediawiki/extensions/Narayam',
923 'ENSR' => 'mediawiki/extensions/NamespaceRelations',
924 'ENSP' => 'mediawiki/extensions/NamespacePaths',
925 'ENSH' => 'mediawiki/extensions/NamespaceHTML',
926 'ENSF' => 'mediawiki/extensions/NSFileRepo',
927 'EMYV' => 'mediawiki/extensions/MyVariables',
928 'EMES' => 'mediawiki/extensions/MwEmbedSupport',
929 'EMMV' => 'mediawiki/extensions/MultimediaViewer',
930 'EMMP' => 'mediawiki/extensions/MultimediaPlayer',
931 'EMUP' => 'mediawiki/extensions/MultiUpload',
932 'EMMA' => 'mediawiki/extensions/MultiMaps',
933 'EMSU' => 'mediawiki/extensions/MsUpload',
934 'EMSL' => 'mediawiki/extensions/MsLinks',
935 'EMPD' => 'mediawiki/extensions/Mpdf',
936 'EMDL' => 'mediawiki/extensions/Moodle',
937 'EMOO' => 'mediawiki/extensions/MoodBar',
938 'EMOL' => 'mediawiki/extensions/MolHandler',
939 'EMOD' => 'mediawiki/extensions/Model',
940 'EMFR' => 'mediawiki/extensions/MobileFrontend',
941 'EMDE' => 'mediawiki/extensions/MobileDetect',
942 'EMOB' => 'mediawiki/extensions/MobileApp',
943 'EMNS' => 'mediawiki/extensions/MixedNamespaceSearchSuggestions',
944 'EMIN' => 'mediawiki/extensions/Minifier',
945 'EMIV' => 'mediawiki/extensions/MiniInvite',
946 'EMWC' => 'mediawiki/extensions/MediaWikiChat',
947 'EMWA' => 'mediawiki/extensions/MediaWikiAuth',
948 'EMFU' => 'mediawiki/extensions/MediaFunctions',
949 'EMAS' => 'mediawiki/extensions/MathSearch',
950 'EMAT' => 'mediawiki/extensions/Math',
951 'EMAM' => 'mediawiki/extensions/MassMessage',
952 'EMER' => 'mediawiki/extensions/MassEditRegex',
953 'EMAH' => 'mediawiki/extensions/MarkAsHelpful',
954 'EMAP' => 'mediawiki/extensions/Maps',
955 'EMSO' => 'mediawiki/extensions/MapSources',
956 'EMAN' => 'mediawiki/extensions/Mantle',
957 'EMSH' => 'mediawiki/extensions/MaintenanceShell',
958 'EMAI' => 'mediawiki/extensions/Maintenance',
959 'ESPH' => 'mediawiki/extensions/SphinxSearch',
960 'SWPT' => 'mediawiki/skins/WPtouch',
961 'PHAB' => 'phabricator/phabricator',
962 'PHLB' => 'phabricator/libphutil',
963 'PHDP' => 'phabricator/deployment',
964 'WPOR' => 'wikimedia/portals',
965 'ODFW' => 'operations/debs/python-stopit',
966 'ODFV' => 'operations/debs/python-pykafka',
967 'ODFU' => 'operations/debs/python-mwtypes',
968 'ODFT' => 'operations/debs/python-mwparserfromhell',
969 'ODFS' => 'operations/debs/python-mwapi',
970 'ODFR' => 'operations/debs/python-jsonable',
971 'ODFQ' => 'operations/debs/python-etcd',
972 'ODFP' => 'operations/debs/openssl',
973 'ODFO' => 'operations/debs/linux-meta',
974 'ODFN' => 'operations/debs/linux',
975 'ODFM' => 'operations/debs/kubernetes',
976 'ODFL' => 'operations/debs/flannel',
977 'ODFK' => 'operations/debs/debdeploy',
978 'ODFJ' => 'operations/debs/contenttranslation/python-toro',
979 'ODFI' => 'operations/debs/contenttranslation/apertium-sme-nob',
980 'ODFH' => 'operations/debs/contenttranslation/apertium-mlt-ara',
981 'ODFG' => 'operations/debs/contenttranslation/apertium-isl-eng',
982 'ODFF' => 'operations/debs/contenttranslation/apertium-is-sv',
983 'ODFE' => 'operations/debs/contenttranslation/apertium-es-ro',
984 'ODFD' => 'operations/debs/contenttranslation/apertium-es-it',
985 'ODFC' => 'operations/debs/contenttranslation/apertium-eo-fr',
986 'ODFB' => 'operations/debs/contenttranslation/apertium-eo-es',
987 'ODFA' => 'operations/debs/contenttranslation/apertium-eo-ca',
988 'ODEZ' => 'operations/debs/contenttranslation/apertium-cy-en',
989 'ODEY' => 'operations/debs/contenttranslation/apertium-ca-it',
990 'ODEX' => 'operations/debs/confd',
991 'PWWB' => 'pywikibot/wikibase',
992 'PBXQ' => 'pywikibot/bots/xqbot',
993 'ARC' => 'phabricator/arcanist',
994 'SBLU' => 'mediawiki/skins/Blueprint',
995 'ODEV' => 'operations/debs/nodepool',
996 'ODEU' => 'operations/debs/jetty-runner',
997 'ODET' => 'operations/debs/contenttranslation/hfst',
998 'ODES' => 'operations/debs/contenttranslation/apertium-tat',
999 'ODER' => 'operations/debs/contenttranslation/apertium-pt-gl',
1000 'ODEQ' => 'operations/debs/contenttranslation/apertium-oc-es',
1001 'ODEP' => 'operations/debs/contenttranslation/apertium-oc-ca',
1002 'ODEO' => 'operations/debs/contenttranslation/apertium-kaz-tat',
1003 'ODEN' => 'operations/debs/contenttranslation/apertium-kaz',
1004 'ODEM' => 'operations/debs/contenttranslation/apertium-eus',
1005 'ODEL' => 'operations/debs/contenttranslation/apertium-eu-es',
1006 'ODEK' => 'operations/debs/contenttranslation/apertium-eu-en',
1007 'ODEJ' => 'operations/debs/contenttranslation/apertium-es-gl',
1008 'ODEI' => 'operations/debs/contenttranslation/apertium-es-ast',
1009 'ODEH' => 'operations/debs/contenttranslation/apertium-es-an',
1010 'ODEG' => 'operations/debs/contenttranslation/apertium-en-gl',
1011 'ODEF' => 'operations/debs/contenttranslation/apertium-dan-nor',
1012 'ODEE' => 'operations/debs/contenttranslation/apertium-dan',
1013 'ODED' => 'operations/debs/contenttranslation/apertium-af-nl',
1014 'ODEB' => 'operations/debs/statsite',
1015 'ODEA' => 'operations/debs/perf-tools',
1016 'ODDZ' => 'operations/debs/opus',
1017 'ODDY' => 'operations/debs/nutcracker',
1018 'ODDX' => 'operations/debs/gerrit',
1019 'ODDV' => 'operations/debs/contenttranslation/apertium-urd-hin',
1020 'ODDU' => 'operations/debs/contenttranslation/apertium-urd',
1021 'ODDT' => 'operations/debs/contenttranslation/apertium-nob',
1022 'ODDS' => 'operations/debs/contenttranslation/apertium-nno-nob',
1023 'ODDR' => 'operations/debs/contenttranslation/apertium-nno',
1024 'ODDQ' => 'operations/debs/contenttranslation/apertium-mk-bg',
1025 'ODDP' => 'operations/debs/contenttranslation/apertium-mk',
1026 'ODDO' => 'operations/debs/contenttranslation/apertium-id-ms',
1027 'ODDN' => 'operations/debs/contenttranslation/apertium-hin',
1028 'ODDM' => 'operations/debs/contenttranslation/apertium-hbs-slv',
1029 'ODDL' => 'operations/debs/contenttranslation/apertium-hbs-mkd',
1030 'ODDK' => 'operations/debs/contenttranslation/apertium-hbs-eng',
1031 'ODDJ' => 'operations/debs/contenttranslation/apertium-hbs',
1032 'ODDI' => 'operations/debs/contenttranslation/apertium-eo-en',
1033 'ODDH' => 'operations/debs/carbon-c-relay',
1034 'ODDG' => 'operations/debs/avconv10',
1035 'GSNL' => 'sink_nova_ldap',
1036 'GSNF' => 'sink_nova_fixed_multi',
1037 'GOSD' => 'openstack-designate',
1038 'PHTE' => 'phabricator/test',
1039 'MSRT' => 'mediawiki/tools/schroot',
1040 'MDIP' => 'mediawiki/tools/dippybird',
1041 'MCFW' => 'mediawiki/tools/Cite4Wiki',
1042 'GUTI' => 'wmf-utils',
1043 'GGTP' => 'test/gerrit-ping',
1044 'PHEX' => 'phabricator/extensions',
1045 'PHES' => 'phabricator/extensions/security',
1046 'PHBD' => 'phabricator/extensions/BurnDownCharts',
1047 'SKIN' => 'mediawiki/skins',
1048 'STEM' => 'mediawiki/skins/Tempo',
1049 'SLAT' => 'mediawiki/skins/Slate',
1050 'SEMP' => 'mediawiki/skins/Empty',
1051 'PWBM' => 'pywikibot/bots/mjbmrbot',
1052 'WEDD' => 'wikimedia/education/WikiEduDashboard',
1053 'WANR' => 'wikimedia/annualreport',
1054 'GWDG' => 'wikidata/gremlin',
1055 'GUTF' => 'utfnormal',
1056 'PWEX' => 'pywikibot/externals',
1057 'PWAP' => 'pywikiapi',
1058 'OSSU' => 'operations/software/swift-utils',
1059 'OSSD' => 'operations/software/statsdlb',
1060 'OSPX' => 'operations/software/rescue-pxe',
1061 'OSPC' => 'operations/software/puppet-compiler',
1062 'OSLA' => 'operations/software/labsdb-auditor',
1063 'OSIY' => 'operations/software/ircyall',
1064 'OSDM' => 'operations/software/dropwizard-metrics',
1065 'OSDB' => 'operations/software/dbtree',
1066 'PHSP' => 'phabricator/extensions/Sprint',
1067 'PWKT' => 'pywikibot/wiktionary',
1068 'PWSP' => 'pywikibot/spelling',
1069 'PWSE' => 'pywikibot/sf-export',
1070 'PWXC' => 'pywikibot/pycolorname',
1071 'PWXO' => 'pywikibot/opencv',
1072 'PWIN' => 'pywikibot/i18n',
1073 'PWXH' => 'pywikibot/externals/httplib2',
1074 'PWBC' => 'pywikibot/core',
1075 'PWBO' => 'pywikibot/compat',
1076 'PWRA' => 'pywikibot/bots/ragesossbot',
1077 'PWMI' => 'pywikibot/bots/misc',
1078 'PWDT' => 'pywikibot/bots/drtrigonbot',
1079 'PWCB' => 'pywikibot/bots/catbot',
1080 'PWCD' => 'pywikibot/bots/CommonsDelinker',
1081 'GXOW' => 'xowa',
1082 'GWIS' => 'winter/snowflakes',
1083 'GWIN' => 'winter',
1084 'GWAN' => 'wiktionary/anagrimes',
1085 'GWLA' => 'wikimedia/wlm-api',
1086 'WWSC' => 'wikimedia/wikimania-scholarships',
1087 'WRUP' => 'wikimedia/roadmap-updater',
1088 'WORG' => 'wikimedia/orgchart',
1089 'WLOB' => 'wikimedia/lobbypop',
1090 'WIEG' => 'wikimedia/iegreview',
1091 'WFTW' => 'wikimedia/fundraising/twig',
1092 'WFTD' => 'wikimedia/fundraising/tools/DjangoBannerStats',
1093 'WFTO' => 'wikimedia/fundraising/tools',
1094 'WFST' => 'wikimedia/fundraising/stomp',
1095 'WFSL' => 'wikimedia/fundraising/slander',
1096 'WFPM' => 'wikimedia/fundraising/phpmailer',
1097 'WFDB' => 'wikimedia/fundraising/dash/src/bower_modules',
1098 'WFDS' => 'wikimedia/fundraising/dash/src',
1099 'WFDM' => 'wikimedia/fundraising/dash/node_modules',
1100 'WFDA' => 'wikimedia/fundraising/dash',
1101 'WFCM' => 'wikimedia/fundraising/crm/vendor',
1102 'WFCL' => 'wikimedia/fundraising/crm/modules/dedupe_review',
1103 'WFCK' => 'wikimedia/fundraising/crm/modules',
1104 'WFCJ' => 'wikimedia/fundraising/crm/drush',
1105 'WFCI' => 'wikimedia/fundraising/crm/drupal',
1106 'WFCH' => 'wikimedia/fundraising/crm/civicrm',
1107 'WFCG' => 'wikimedia/fundraising/crm',
1108 'WFCF' => 'wikimedia/fundraising/civicrm-buildkit/vendor/totten/git-scan',
1109 'WFCE' => 'wikimedia/fundraising/civicrm-buildkit/vendor/totten/amp',
1110 'WFCD' => 'wikimedia/fundraising/civicrm-buildkit/vendor/totten',
1111 'WFCC' => 'wikimedia/fundraising/civicrm-buildkit/vendor',
1112 'WFCB' => 'wikimedia/fundraising/civicrm-buildkit',
1113 'WFCA' => 'wikimedia/fundraising/civicrm',
1114 'WFSV' => 'wikimedia/fundraising/SmashPig/vendor',
1115 'WFSP' => 'wikimedia/fundraising/SmashPig',
1116 'WFPL' => 'wikimedia/fundraising/PaymentsListeners',
1117 'WFLM' => 'wikimedia/fundraising/LoveMap',
1118 'WFLT' => 'wikimedia/fundraising/LanguageTag',
1119 'WFID' => 'wikimedia/fundraising/FineDiff',
1120 'WPVI' => 'wikimedia/communications/WP-Victor',
1121 'WMBL' => 'wikimedia/communications/WMBlog',
1122 'GJOU' => 'wikimedia/bots/jouncebot',
1123 'GWMI' => 'wikimedia/bots/WMIB',
1124 'GLAS' => 'wikimedia/bots/LabsAntiSpamBot',
1125 'WMST' => 'wikimedia/WikimediaShopTools',
1126 'WTRR' => 'wikimedia/TransparencyReport',
1127 'GUMT' => 'user-metrics-2',
1128 'GUJS' => 'unicodejs',
1129 'GTWN' => 'translatewiki',
1130 'GSRS' => 'search/repository-swift',
1131 'GSHI' => 'search/highlighter',
1132 'GSXT' => 'search/extra',
1133 'GSAR' => 'sartoris',
1134 'GSAN' => 'sandbox',
1135 'GQRP' => 'qrpedia',
1136 'GQAB' => 'qa/browsertests',
1137 'GPMW' => 'passport-mediawiki',
1138 'OSVH' => 'operations/software/varnish/vhtcpd',
1139 'OSVV' => 'operations/software/varnish/varnishkafka',
1140 'OSVL' => 'operations/software/varnish/libvmod-netmapper',
1141 'OSWI' => 'operations/software/swift-ring',
1142 'OSHI' => 'operations/software/shinkengen',
1143 'OSRE' => 'operations/software/redactatron',
1144 'OSOT' => 'operations/software/otrs',
1145 'OSLR' => 'operations/software/librenms',
1146 'OSKI' => 'operations/software/kibana',
1147 'OSHT' => 'operations/software/hhvm-dev/third-party',
1148 'OSHF' => 'operations/software/hhvm-dev/folly',
1149 'OSHD' => 'operations/software/hhvm-dev',
1150 'OSGR' => 'operations/software/grafana',
1151 'OSGD' => 'operations/software/gdash',
1152 'OSGA' => 'operations/software/ganglios',
1153 'OSGL' => 'operations/software/ganglia-logtailer',
1154 'OSEP' => 'operations/software/elasticsearch/plugins',
1155 'OPZK' => 'operations/puppet/zookeeper',
1156 'OPWM' => 'operations/puppet/wikimetrics',
1157 'OPVK' => 'operations/puppet/varnishkafka',
1158 'OPNG' => 'operations/puppet/nginx',
1159 'OPMD' => 'operations/puppet/mariadb',
1160 'OPKT' => 'operations/puppet/kafkatee',
1161 'OPKA' => 'operations/puppet/kafka',
1162 'OPJM' => 'operations/puppet/jmxtrans',
1163 'OPCF' => 'operations/puppet/cdh4',
1164 'OPCD' => 'operations/puppet/cdh',
1165 'ONET' => 'operations/network-diagrams',
1166 'OMWM' => 'operations/mediawiki-multiversion',
1167 'OMWC' => 'operations/mediawiki-config',
1168 'ODUT' => 'operations/dumps/test',
1169 'ODUI' => 'operations/dumps/incremental',
1170 'ODUA' => 'operations/dumps/archiving',
1171 'ODUM' => 'operations/dumps',
1172 'ODDF' => 'operations/debs/wikistats',
1173 'ODDE' => 'operations/debs/wikimedia-task-appserver',
1174 'ODDD' => 'operations/debs/wikimedia-search-qa',
1175 'ODDC' => 'operations/debs/wikimedia-lvs-realserver',
1176 'ODDB' => 'operations/debs/wikimedia-ldap-tools',
1177 'ODDA' => 'operations/debs/wikimedia-keyring',
1178 'ODCZ' => 'operations/debs/wikimedia-job-runner',
1179 'ODCY' => 'operations/debs/wikimedia-base',
1180 'ODCX' => 'operations/debs/wikibugs',
1181 'ODCW' => 'operations/debs/vips',
1182 'ODCV' => 'operations/debs/varnish',
1183 'ODCU' => 'operations/debs/utfnormal',
1184 'ODCT' => 'operations/debs/udp2log-log4j-java',
1185 'ODCR' => 'operations/debs/squid',
1186 'ODCQ' => 'operations/debs/search-qa',
1187 'ODCP' => 'operations/debs/sartoris',
1188 'ODCO' => 'operations/debs/ruby-parallel',
1189 'ODCN' => 'operations/debs/ruby-jsduck',
1190 'ODCM' => 'operations/debs/ruby-execjs',
1191 'ODCL' => 'operations/debs/ruby-dimensions',
1192 'ODCK' => 'operations/debs/rt-authen-externalauth',
1193 'ODCJ' => 'operations/debs/quickstack',
1194 'ODCH' => 'operations/debs/python-phabricator',
1195 'ODCG' => 'operations/debs/python-kafka',
1196 'ODCF' => 'operations/debs/python-jsonschema',
1197 'ODCE' => 'operations/debs/python-gear',
1198 'ODCD' => 'operations/debs/python-flask-login',
1199 'ODCC' => 'operations/debs/python-diamond',
1200 'ODCB' => 'operations/debs/pybal',
1201 'ODCA' => 'operations/debs/puppet',
1202 'ODBZ' => 'operations/debs/php-mailparse',
1203 'ODBY' => 'operations/debs/phantomjs',
1204 'ODBX' => 'operations/debs/osm2pgsql',
1205 'ODBW' => 'operations/debs/osm-mapnik-style',
1206 'ODBV' => 'operations/debs/nodejs',
1207 'ODBU' => 'operations/debs/nginx',
1208 'ODBT' => 'operations/debs/mysqlatfacebook',
1209 'ODBS' => 'operations/debs/mwbzutils',
1210 'ODBR' => 'operations/debs/mod_tile',
1211 'ODBP' => 'operations/debs/memkeys',
1212 'ODBO' => 'operations/debs/mariadb-server',
1213 'ODBN' => 'operations/debs/lucene-search-2',
1214 'ODBM' => 'operations/debs/logster',
1215 'ODBL' => 'operations/debs/logstash-gelf',
1216 'ODBK' => 'operations/debs/libvpx',
1217 'ODBJ' => 'operations/debs/librsvg',
1218 'ODBI' => 'operations/debs/libav',
1219 'ODBH' => 'operations/debs/libanon',
1220 'ODBG' => 'operations/debs/latexml',
1221 'ODBF' => 'operations/debs/kafkacat',
1222 'ODBE' => 'operations/debs/kafka',
1223 'ODBD' => 'operations/debs/jmxtrans',
1224 'ODBC' => 'operations/debs/jenkins-debian-glue',
1225 'ODBB' => 'operations/debs/ircecho',
1226 'ODBA' => 'operations/debs/ircd-ratbox',
1227 'ODAZ' => 'operations/debs/hhvm',
1228 'ODAY' => 'operations/debs/git-fat',
1229 'ODAX' => 'operations/debs/git-deploy',
1230 'ODAW' => 'operations/debs/ganglia',
1231 'ODAV' => 'operations/debs/flask-login',
1232 'ODAU' => 'operations/debs/etherpad-lite',
1233 'ODAT' => 'operations/debs/contenttranslation/lttoolbox',
1234 'ODAS' => 'operations/debs/contenttranslation/cg3',
1235 'ODAR' => 'operations/debs/contenttranslation/apertium-sv-da',
1236 'ODAQ' => 'operations/debs/contenttranslation/apertium-pt-ca',
1237 'ODAP' => 'operations/debs/contenttranslation/apertium-lex-tools',
1238 'ODAO' => 'operations/debs/contenttranslation/apertium-fr-es',
1239 'ODAN' => 'operations/debs/contenttranslation/apertium-fr-ca',
1240 'ODAM' => 'operations/debs/contenttranslation/apertium-es-pt',
1241 'ODAL' => 'operations/debs/contenttranslation/apertium-es-ca',
1242 'ODAK' => 'operations/debs/contenttranslation/apertium-en-es',
1243 'ODAJ' => 'operations/debs/contenttranslation/apertium-en-ca',
1244 'ODAI' => 'operations/debs/contenttranslation/apertium-br-fr',
1245 'ODAH' => 'operations/debs/contenttranslation/apertium-apy',
1246 'ODAG' => 'operations/debs/contenttranslation/apertium',
1247 'ODAE' => 'operations/debs/check_ganglia',
1248 'ODAD' => 'operations/debs/archiva',
1249 'ODAC' => 'operations/debs/adminbot',
1250 'ODAB' => 'operations/debs/StatsD',
1251 'ODAA' => 'operations/debs',
1252 'OAPA' => 'operations/apache-config',
1253 'GOZI' => 'openzim',
1254 'GOSW' => 'openstack-wikistatus',
1255 'GOJU' => 'oojs/ui',
1256 'GOJS' => 'oojs/core',
1257 'MWVD' => 'mediawiki/vendor',
1258 'MWVA' => 'mediawiki/vagrant',
1259 'MUPU' => 'mediawiki/tools/upload/PhotoUpload',
1260 'MUPL' => 'mediawiki/tools/upload',
1261 'MREN' => 'mediawiki/tools/releng',
1262 'MREL' => 'mediawiki/tools/release',
1263 'MWDU' => 'mediawiki/tools/mwdumper',
1264 'MMFW' => 'mediawiki/tools/missing-from-wikipedia',
1265 'MGRA' => 'mediawiki/tools/grabbers',
1266 'MFLU' => 'mediawiki/tools/fluoride',
1267 'MCHT' => 'mediawiki/tools/commonshelper2',
1268 'MCSN' => 'mediawiki/tools/codesniffer',
1269 'MCUT' => 'mediawiki/tools/code-utils',
1270 'MBUN' => 'mediawiki/tools/bundles',
1271 'ODNS' => 'operations/dns',
1272 'PHTO' => 'phabricator/tools',
1273 'OPUP' => 'operations/puppet',
1274 'SWPL' => 'mediawiki/skins/webplatform',
1275 'SPTW' => 'mediawiki/skins/p2wiki',
1276 'SSTR' => 'mediawiki/skins/mediawiki-strapping',
1277 'SERU' => 'mediawiki/skins/erudite',
1278 'SCHA' => 'mediawiki/skins/chameleon',
1279 'SAPX' => 'mediawiki/skins/apex',
1280 'SVEC' => 'mediawiki/skins/Vector',
1281 'STRU' => 'mediawiki/skins/Truglass',
1282 'STOM' => 'mediawiki/skins/Tomas',
1283 'SSYN' => 'mediawiki/skins/Synagonism',
1284 'SSPL' => 'mediawiki/skins/Splash',
1285 'SSCH' => 'mediawiki/skins/Schulenburg',
1286 'SNOS' => 'mediawiki/skins/Nostalgia',
1287 'SNIM' => 'mediawiki/skins/Nimbus',
1288 'SMNB' => 'mediawiki/skins/MonoBook',
1289 'SMOD' => 'mediawiki/skins/Modern',
1290 'SMTL' => 'mediawiki/skins/Metrolook',
1291 'SMSK' => 'mediawiki/skins/Mask',
1292 'SGRY' => 'mediawiki/skins/GreyStuff',
1293 'SGPR' => 'mediawiki/skins/Gamepress',
1294 'SEXA' => 'mediawiki/skins/Example',
1295 'SDTD' => 'mediawiki/skins/DuskToDawn',
1296 'SDUS' => 'mediawiki/skins/Dusk',
1297 'SDON' => 'mediawiki/skins/Donate',
1298 'SDMM' => 'mediawiki/skins/DeskMessMirrored',
1299 'SDAD' => 'mediawiki/skins/Daddio',
1300 'SCBL' => 'mediawiki/skins/CologneBlue',
1301 'SBOU' => 'mediawiki/skins/Bouquet',
1302 'SBSS' => 'mediawiki/skins/BlueSpiceSkin',
1303 'SBLS' => 'mediawiki/skins/BlueSky',
1304);

I haven't gone and created any repos since then really so it should be most everything minus the ~30-50 repos that haven't been imported yet. Even when new ones are added to the list these will remain unchanged.

@Spage: upstream is working on path/to/repo support in diffusion. See upstream task.

The comment https://secure.phabricator.com/T4245#135441 sounds promising:

Yeah, I'm planning to convert the "Clone As" setting to "optional, unique repository name" and use it as an identifier in URIs if it's set.

That sounds good, but then I'm confused by https://secure.phabricator.com/T7938 "Do not allow users to enter things like "/" or ".." in the "Clone/Checkout" field in repositories". Our Clone field (e.g. https://phabricator.wikimedia.org/diffusion/SEXA/) shows
git clone https://gerrit.wikimedia.org/r/p/mediawiki/skins/Example"

mmodell added a revision: Restricted Differential Revision.Nov 16 2015, 10:09 AM
mmodell added a revision: Restricted Differential Revision.Dec 1 2015, 5:24 PM

@demon: the phabricator redirection rules are now deployed on iridium, can you configure gerrit to use these url patterns? (I included the a theoretically valid gerrit config snipped in the commit log for rPHEXd724c51a4144: Add more redirection url patterns for gerrit urls)

I believe that once gerrit's config is updated this task can be closed.

Working on a patch now for Gerrit.

Actually, before we can close this we need to point git.wikimedia.org at phabricator. But for now we can tell gerrit to redirect to phabricator.wikimedia.org instead of git.wikimedia.org

Change 256262 had a related patch set uploaded (by Chad):
Gerrit: use Diffusion for repo browsing

https://gerrit.wikimedia.org/r/256262

Could these redirects be set to active on phabricator because someone has changed the links to things like https://phabricator.wikimedia.org/r/project/mediawiki/extensions/Echo even though the redirects aren't active yet. https://www.mediawiki.org/wiki/Extension:Echo

greg moved this task from In Progress to Done on the Gitblit-Deprecate board.

Change 256262 merged by Yuvipanda:
Gerrit: use Diffusion for repo browsing

https://gerrit.wikimedia.org/r/256262

Would it be possible to only replace the base url path (from /r/project to /diffusion) and the project path (project repo to callsign) and keep all other URL paths?
e.g. If want to get to the REL1_25 branch of mediawiki/core with the redirect I would be able to use https://phabricator.wikimedia.org/r/project/mediawiki/core/browse/REL1_25/ and it would be redirected to https://phabricator.wikimedia.org/diffusion/MW/browse/REL1_25/.

This would be for T101358 to preserve the file and branch features that are currently built in to {{Git file}}.

Change 256605 had a related patch set uploaded (by Hashar):
Gerrit: use Diffusion for repo browsing (again)

https://gerrit.wikimedia.org/r/256605

Can we support query parameters such as ?view=raw and ?blame=1 as well? Right now it appears the redirect strips the query parameters.

https://phabricator.wikimedia.org/r/browse/mediawiki/core;master;composer.json
https://phabricator.wikimedia.org/r/browse/mediawiki/core;master;composer.json?view=raw
https://phabricator.wikimedia.org/r/browse/mediawiki/core;master;composer.json?blame=1

That would make https://www.mediawiki.org/wiki/Template:Git_file more convenient by not maintaining call signs in two places.

Though ideally Phabricator would just allow using the dashed versions of the repo names in the url instead of requiring these awkward callsigns everywhere.

Change 256605 merged by Ori.livneh:
Gerrit: use Diffusion for repo browsing (again)

https://gerrit.wikimedia.org/r/256605

It seems that none of the links are working correctly in gerrit now. Since it is hard to find a link in gerrit that links to just browse the repo. Clicking on revision brings you to a link that does not exist. Same for clicking on branches.

I think a redirect script needs to be created for revisions and branches. I know revisions wont work if they aren't merged yet. But ones that have been merged. Other wise the updated link in gerrit is use less.

I think a redirect script needs to be created for revisions and branches.

If you looked at the redirect script you would see that it accepts both revisions and branches. Patches welcome if it's not working.

I think it is too do witht the redirection in gerrit. I will upload a patch and see if that fixes it.

I think a redirect script needs to also be created for branches. since projects are hard coded. It should either be done automatically meaning that script can be created so that it is not hard coded.

Gerrit links now work.

Just branches doin't since they use for example refs/heads/REL1_26 a redirecter script needs creating to redirect branches by removing refs/heads

Gerrit links now work.

Just branches doin't since they use for example refs/heads/REL1_26 a redirecter script needs creating to redirect branches by removing refs/heads

Right, that's the last bit that needs fixing here. When using branches we just want the bare branch name and not the fully qualified one. To be extra fancy, we could do the same for refs/tags too, it wouldn't be hard while we're there. Nothing's linking that at the moment that I can think of, but Gitblit might need such a redirect at decom.

Branches redirection link has been fixed all working now. Except from refs/meta but that's because phabricator isen't pulling from that ref.

I think this can be closed now.

All that needs to be done is to allow viewing open patches in phabricator.

Change 257523 had a related patch set uploaded (by Dzahn):
Gerrit: redirect old gitweb project urls to Diffusion instead of Gitblit

https://gerrit.wikimedia.org/r/257523

Change 257523 merged by Dzahn:
Gerrit: redirect old gitweb project urls to Diffusion instead of Gitblit

https://gerrit.wikimedia.org/r/257523

The new redirected phab url does not work as expected. I always get a 404 error.

Could I ask what does the link look like for you. Not all repos are in phabricator yet so redirects won't work if the repo Isent in phabricator

The new redirected phab url does not work as expected. I always get a 404 error.

Please provide exact steps to reproduce.

While clicking on "diffusion" button on any gerrit patchset I find a 404 Not found message on phabricator's side.
e.g. on page

https://gerrit.wikimedia.org/r/#/c/261328/

clicking on "diffusion" button of PS1 I get this link

https://phabricator.wikimedia.org/rGTWNb7c401d228acadd2862efb365eaa10622df8037d

which shows me a "404 Not found" message box

The link won't work if the patch is open. If the patch is merged then it should work.

The link won't work if the patch is open. If the patch is merged then it should work.

How senseless is that!

Where do you even see a diffusion button?

It means that if the patch is open on gerrit and not merged yet then the link will not work. If the patch is merged in gerrit then the link will probably work.

This is a know issue.

It means that if the patch is open on gerrit and not merged yet then the link will not work. If the patch is merged in gerrit then the link will probably work.

This is a know issue.

Only for the latest patch and only if the sha1 didn't change when it was closed (ie it just fast forwarded)

Anyway it is a inappropriate way of implementation of a currently senseless link which is only working when a patch was reviewed. The previous gitblit was very helpful for reviewing patches because you could see all diff of all affected file in one view whereas the remaining gerrit diff links (side-by-side and unified) shows one file only and it needs minutes to show a single page which is just horrible for a review process. Please give me gitblit back.

Hi gitblit is still there. git.wikimedia.org you just need to enter your url manually.

And they are going to start importing patches from gerrit.

Thanks a lot Paladox. That helps for the moment.

@Xgt I doint know when they will start doing that. But they said once they finished they are going to put gerrit in read only mode and so patches would need to be uploaded to diffusion once it has been turned on for every one to use.

Another reason for some of the 404s is that T616 is not done yet.

@demon does that it batches. And also from now when some requests a repo in gerrit it will also be done in phabricator and also the redirection script is also done in batches and so even if the repo exist the redirection script has to be updated.

mmodell added a revision: Restricted Differential Revision.Mar 14 2016, 1:17 AM

D139 should allow us to close this?

We'll probably yes but when repos are created in gerrit they are not automatically added to this redirection script.

That's not a problem, we just update the script :)

JanZerebecki updated the task description. (Show Details)

Reopened. "Diffusion" link still gives 404 message as long as patchset was not merged.

Yes, maybe if it fails we could redirect to git.wikimedia.org as a temp solution since we haven't migrated from gerrit yet.

Reopened. "Diffusion" link still gives 404 message as long as patchset was not merged.

Re-closing. That's T89940: Replicate open patchsets to diffusion

Since rPHEX0beee3a5fe01 , the repo name -> call sign mapping is in Phabricator. We should then get rid of the manually maintained https://www.mediawiki.org/wiki/Module:Callsigns but I am not sure which task to use for that (maybe a new one).