Page MenuHomePhabricator

Email tool maintainers about git-ssh deprecation on phabricator
Closed, InvalidPublic

Description

We should reach out to tool maintainers to ensure they have the correct documentation.

  • Gather a list of tools using differential
  • Find maintainers
  • dump list of email addresses from list of phab usernames
  • Draft an email with the new git over https documentation and send
  • Schedule time to send

Event Timeline

thcipriani added a subscriber: bd808.

Adding @bd808 as a subscriber—he may have some magic for finding a list of tool maintainers.

Adding @bd808 as a subscriber—he may have some magic for finding a list of tool maintainers.

Striker has a local database on the m5 db server. One of the things in that database is a table tracking which tools have used Striker to create differential repos. I can dump that list out and then use it to query the LDAP directory behind our Developer accounts to produce a list of Developer account names (contact via Wikitech talk pages or using sendBulkEmails.php) or raw email addresses.

Adding @bd808 as a subscriber—he may have some magic for finding a list of tool maintainers.

Another direction we could come at this from is using conduit to pull the complete list of repos and then examining the ACLs for each repo to get a list of all the Phabricator accounts to contact. Each Phab account is tied to either a SUL account or a Developer account (or both) which could then lead us back to mailing lists of either wiki usernames or raw emails.

I suppose the galaxy brain version would be to produce both lists and contact the distinct union of them.

Adding @bd808 as a subscriber—he may have some magic for finding a list of tool maintainers.

Another direction we could come at this from is using conduit to pull the complete list of repos and then examining the ACLs for each repo to get a list of all the Phabricator accounts to contact. Each Phab account is tied to either a SUL account or a Developer account (or both) which could then lead us back to mailing lists of either wiki usernames or raw emails.

I wonder if this information is available in the database somewhere. @Aklapper do you have thoughts about how easy this query would be?

For git over http one can issue a 301 redirect and avoid breaking the world. For ssh maybe we can have a ssh daemon showing a message before any authentication happens, looks like OpenSsh supports that:

sshd_config(5)

Banner
The contents of the specified file are sent to the remote user before authentication is allowed.
If the argument is none then no banner is displayed.
By default, no banner is displayed.

So potentially keep git-ssh.phabricator.wikimedia.org pointing to some idling ssh daemon that spurts out the banner and disconnect users immediately.

do you have thoughts about how easy this query would be?

Čüş, not really... Haven't played with the Differential DB scheme (and don't have permissions to access the Diffusion scheme) and no idea where ACLs are stored. Took a quick look, have only found reviewer accounts info per repo so far.

Čüş

https://en.wiktionary.org/wiki/%C4%8Dus#Etymology ;)

don't have permissions to access the Diffusion scheme)

I have access to the following users:

$fab_user, $metrics_user, $phd_user, $app_user,... I should be able to get the scheme. I'll look.

Of course privileges for you could be changed but not sure if you want that for a one-off and it's a process with DBA.

no idea where ACLs are stored.

ftr, ./modules/profile/templates/mariadb/grants/production-m3.sql.erb but don't worry about it just yet unless you want to

When I used the "metrics_user" I only got a limited set of phabricator databases but it did include phabricator_diffusion. But turns out that the repo info is not in phabricator_diffucion.

Then tried with the not-so-limited app_user and I can see all phabricator databases, including one called phabricator_repository and many others.

So after a use phabricator_repository there are tons of tables but to start with here is the list of repos that have been created by striker:

1MariaDB [phabricator_repository]> select id,phid,name,versionControlSystem from repository where name like 'tool-%' limit 1000;
2+------+--------------------------------+------------------------------------+----------------------+
3| id | phid | name | versionControlSystem |
4+------+--------------------------------+------------------------------------+----------------------+
5| 2828 | PHID-REPO-pmcdu3ffzglihu65fsha | tool-adamant | git |
6| 2621 | PHID-REPO-dpszrkczscjmzrom6hjd | tool-add-text | git |
7| 2912 | PHID-REPO-pqt5jolqk7s4g7y4gtjt | tool-adhs-wde | git |
8| 1922 | PHID-REPO-7bjxcfc7dp3hebrxj5qc | tool-admin-web | git |
9| 2441 | PHID-REPO-b2zjkgoksnmye36grnuy | tool-afrobot | git |
10| 2798 | PHID-REPO-cl56gjmnxjo5rexwabpp | tool-air7538tools | git |
11| 2743 | PHID-REPO-4kjdgugjyzktei2yurzu | tool-alberobot | git |
12| 3053 | PHID-REPO-7jujkjagexpaecc4ig4c | tool-alertlive | git |
13| 2878 | PHID-REPO-uphqyufx2aysjg5beawg | tool-alex-wiki | git |
14| 3059 | PHID-REPO-uc3rofeqgdqzhphucfes | tool-algo-accountability | git |
15| 2280 | PHID-REPO-g3ublaxv6gwll6pv63tb | tool-alvaro | git |
16| 2639 | PHID-REPO-vb4ldjniswujprjme6dw | tool-am | git |
17| 2992 | PHID-REPO-zabb3hk6phnpwp3ymp2z | tool-ameisenbot | git |
18| 2638 | PHID-REPO-cxjiosz45y3my2ov5y7c | tool-amstats | git |
19| 2696 | PHID-REPO-jjhhzoce6znvgb2dvesx | tool-analytics | git |
20| 2492 | PHID-REPO-ctysiuyrb2rzlsiwxy4n | tool-android-maven-repo | git |
21| 2728 | PHID-REPO-fq6xv3womv2ve4o33gux | tool-aneun-sandbox-django | git |
22| 2891 | PHID-REPO-vmap7i7feraimf3wbvmz | tool-aneun-sandbox-java-webapp | git |
23| 2328 | PHID-REPO-l6eoll53cahy74qloy2i | tool-apt-browser | git |
24| 2589 | PHID-REPO-zavuymjlpakra743owwr | tool-ascal | git |
25| 3123 | PHID-REPO-k3xpaiupt24smnvo4ewo | tool-ashleybot-purgecache | git |
26| 2602 | PHID-REPO-kmrq2z2hlgy47ri2uej7 | tool-ashotbot | git |
27| 2588 | PHID-REPO-yvxmgo4ju56wehkwknsa | tool-assamesetool.master | git |
28| 2684 | PHID-REPO-v77r43iutzt3pvrks4jo | tool-atiro | git |
29| 3132 | PHID-REPO-a4yw2qtrf32ztmrcvmhr | tool-autoformat-enwikt | git |
30| 2607 | PHID-REPO-fy3z7d2rjyxipgmrg7da | tool-axel | git |
31| 1959 | PHID-REPO-jn4oy3jaqlxjbh6qrsjb | tool-bash | git |
32| 2423 | PHID-REPO-75as6it5xvoz5mzlr3hb | tool-basyounybot-test | git |
33| 2424 | PHID-REPO-es7uedkdl772x3valffi | tool-basyounybot-test1 | git |
34| 2687 | PHID-REPO-s37dntunzyjddd6qf5rw | tool-bays | git |
35| 2720 | PHID-REPO-vhzqy77akvqd6zg6arvg | tool-bcxfu75kbot | git |
36| 2255 | PHID-REPO-bfpk3oiv3tl24472yxa3 | tool-bd808-pywikibot | git |
37| 2772 | PHID-REPO-bd5jyvtpayyhzz3u2q3m | tool-bd808-ruby | git |
38| 2154 | PHID-REPO-6bwe6gq6yawnocjnwqfp | tool-bd808-test | git |
39| 2570 | PHID-REPO-zdstflvci4rpsu6zqn6p | tool-beleg-test-14568913402-repo01 | git |
40| 3143 | PHID-REPO-bptn6tajl6tupqhkngot | tool-bluehillbotb | git |
41| 2265 | PHID-REPO-wihvu2hfsmubn6zlqbql | tool-books-for-binding | git |
42| 2358 | PHID-REPO-wndyckb2a7fhy5ubuopm | tool-borracho-main | git |
43| 2721 | PHID-REPO-26kcwr3qbvdahn66n6er | tool-botleo-main | git |
44| 2987 | PHID-REPO-ye3rdvt2srjuvk75x3vo | tool-botmahmood-main | git |
45| 2901 | PHID-REPO-s352idclb2vn6loqzfup | tool-botutor | git |
46| 2314 | PHID-REPO-2mr65hc64af7wvhp3l66 | tool-botvegas | git |
47| 3117 | PHID-REPO-b3igftpetx36q56k5pte | tool-boxybotCreator | git |
48| 2700 | PHID-REPO-s3kvrdkawgpa3bh3exrv | tool-brandonstools | git |
49| 2595 | PHID-REPO-cwz27b6xauemvuplah6l | tool-bub2 | git |
50| 2705 | PHID-REPO-bsbglxrt73racbzzsatt | tool-bunykbot | git |
51| 3096 | PHID-REPO-smui2iqtrjhadlz75bcz | tool-cabalbot | git |
52| 2650 | PHID-REPO-ic3ooawzh27cqpcdnr6g | tool-catlive | git |
53| 2011 | PHID-REPO-lxytmfdbp4thgwhv6x56 | tool-cbench | git |
54| 2839 | PHID-REPO-tkom4qtwvaig32d6g4v5 | tool-cd | git |
55| 2474 | PHID-REPO-crampzha6puijcwrmyb3 | tool-centralnotice-bannergenerator | git |
56| 2879 | PHID-REPO-femxq7ntruity3zna56r | tool-certify | git |
57| 2060 | PHID-REPO-aua6twf5ecde3z5hlcmk | tool-checker | git |
58| 2387 | PHID-REPO-gaxdwhogey6wssvnb322 | tool-checkpersondata | git |
59| 2107 | PHID-REPO-clrkcp6dwdsqnguxttod | tool-ci | git |
60| 2835 | PHID-REPO-knpwrr24v2rofzclrtsr | tool-cinema-projects | git |
61| 2136 | PHID-REPO-ufglzqwg34l2xmlolv5x | tool-cobain | git |
62| 2364 | PHID-REPO-pgnckiiersid4izcs2xi | tool-commons-android-app | git |
63| 3122 | PHID-REPO-hfwqofpprpc7cxe6ubq7 | tool-commons-delinquent | git |
64| 2824 | PHID-REPO-hayppl65mlruuyk36atf | tool-commonsapi | git |
65| 1946 | PHID-REPO-ol4ueeyqb6grp5lf4qqc | tool-contentcontributor | git |
66| 2587 | PHID-REPO-ypnuc5tkveqltl6n4pwr | tool-contraband | git |
67| 2633 | PHID-REPO-6ovjdtz3n3mewbz757cb | tool-contrabandapp | git |
68| 2701 | PHID-REPO-5tn5pgocu2y5qix67hmf | tool-copyclear | git |
69| 2355 | PHID-REPO-pxadoufacybplnlg3x2k | tool-coverme | git |
70| 2764 | PHID-REPO-55efb27iteuafl2ztp7f | tool-covid | git |
71| 3048 | PHID-REPO-bsdvjaye27khmtjjseex | tool-cr-grants-team-metasync | git |
72| 3064 | PHID-REPO-wwkg6x5ij5jscylm6jf4 | tool-crawlerbot | git |
73| 2259 | PHID-REPO-bftoi2i47zitw5x3a2oo | tool-csfd | git |
74| 2301 | PHID-REPO-3pcgi6nj7n45jch43j74 | tool-csp-report | git |
75| 2852 | PHID-REPO-cf2r6gi4ifoq6qajf35w | tool-cycling-init-bot | git |
76| 3152 | PHID-REPO-4f6jancxoqgxfxu6y7mh | tool-datacompletewiki | git |
77| 2631 | PHID-REPO-d4ms52bjp2agorj3a23x | tool-datacon-schedule-app-core | git |
78| 2632 | PHID-REPO-urqntacx2qhwfksbxno2 | tool-datacon-schedule-app-parser | git |
79| 2649 | PHID-REPO-suvfdhapxe5s4azcl7co | tool-datacon-schedule-app-refactor | git |
80| 2673 | PHID-REPO-gmzsny2c643h7dzpvwzp | tool-datacon-schedule-app-xml | git |
81| 2189 | PHID-REPO-y2dzsjtohqpgg75qjzqy | tool-dawiki | git |
82| 2061 | PHID-REPO-rd46wjaq2o6wcdmivgst | tool-dbreps | git |
83| 2303 | PHID-REPO-ikwqj5rpqn3mbjx7jhcg | tool-ddescriptions | git |
84| 1971 | PHID-REPO-vcml2vqxap7nx7dmpjqn | tool-demo-unicorn | git |
85| 3131 | PHID-REPO-vzuqqjlmseoibciq5j23 | tool-depictassist | git |
86| 2156 | PHID-REPO-ounbujek5kaprpevjhgq | tool-devyasha | git |
87| 1957 | PHID-REPO-yhyki4wd4n74fj3oaoty | tool-dexbot | git |
88| 2105 | PHID-REPO-zuxdn622on4ooxdy7vef | tool-dexibotnet-bot | git |
89| 2104 | PHID-REPO-7g4iwse2wjbxpsc5m73k | tool-dexibotnet-webapp | git |
90| 2578 | PHID-REPO-stdwh3spjd7gwu5iv6vn | tool-dibyadutta.book | git |
91| 2791 | PHID-REPO-qcd3bept56k3lewb5suy | tool-dijkstrasproject | git |
92| 2690 | PHID-REPO-5fkppoe7uukp5gxxnswn | tool-dimastbkbot | git |
93| 2997 | PHID-REPO-spcnepkauha2ucjfixzq | tool-diri | git |
94| 2599 | PHID-REPO-lpdcnlkb5t4yc7c2bxfo | tool-discord-irc | git |
95| 2653 | PHID-REPO-nbojbi4zv3qiacps4qns | tool-discordwiki | git |
96| 2522 | PHID-REPO-llgee5jscngz772sa6bd | tool-draft-uncategorize-script | git |
97| 2643 | PHID-REPO-uso6hqnlbwwilwufyhh3 | tool-draftifyhistory | git |
98| 2815 | PHID-REPO-37egt7atju3nlenqqftc | tool-droog-test | git |
99| 2037 | PHID-REPO-hp6yoc24qgxok23up23o | tool-dump-torrents | git |
100| 2783 | PHID-REPO-4lb32tp7zis7cnxbhg6f | tool-dumpcattree | git |
101| 2691 | PHID-REPO-dgsnqw6kwybe7rcftvhd | tool-dutchbot | git |
102| 1967 | PHID-REPO-hml2r2zaasfbatbji54l | tool-dynbot-srv2 | git |
103| 2057 | PHID-REPO-kug2i2rnjhqu7cyesaps | tool-eagerbot | git |
104| 2822 | PHID-REPO-n5fcl2jx6soaag2iug2t | tool-ederporto-dev | git |
105| 2064 | PHID-REPO-2zoy3e2dgsiy2lkz7qz2 | tool-editathonstat | git |
106| 2120 | PHID-REPO-6xlmx3du3eu77sifuyae | tool-editcount-fr | git |
107| 3091 | PHID-REPO-od7z5olsb3mpaufosivs | tool-editor-contribution | git |
108| 3094 | PHID-REPO-oph3tbwgodlyuj6pduww | tool-editor-contribution-dashboard | git |
109| 2590 | PHID-REPO-ytwbcsuxny2mn7umsrac | tool-editor-retention-dashboard-1 | git |
110| 2591 | PHID-REPO-cb2y5les6lxerjuktyff | tool-editor-retention-dashboard-2 | git |
111| 2944 | PHID-REPO-xuwv75s64rlk3mvzgdvh | tool-eizenchan | git |
112| 3092 | PHID-REPO-uw63jmhok6wzgjzywtwh | tool-emojiwiki-test-test1 | git |
113| 2797 | PHID-REPO-y3qygi4eg4b3jslgvpdv | tool-emoociev | git |
114| 2431 | PHID-REPO-xapdgxvowqmxrxmr4jrw | tool-enett | git |
115| 2160 | PHID-REPO-klf5spyiqy6kwfeykpaq | tool-enwiki-user-edits | git |
116| 2976 | PHID-REPO-vrhum363s7ywy5cxgxyk | tool-erinnermich | git |
117| 2049 | PHID-REPO-kxbm6ifgduesopwymfug | tool-esbackup | git |
118| 2961 | PHID-REPO-7bud5frml4fogrihwmgx | tool-essai | git |
119| 2630 | PHID-REPO-ttwhsplxu46dlljzthbo | tool-event-live-session-core | git |
120| 2872 | PHID-REPO-272yeano66qsje6nwaim | tool-events | git |
121| 2657 | PHID-REPO-fvv663g4mukb765dhyyx | tool-exambot | git |
122| 3023 | PHID-REPO-xnmsepsgpxx7kbgwmtei | tool-excel2wiki-upload | git |
123| 2568 | PHID-REPO-gnedfasztlwoa4ccyxgs | tool-externalitemsuggester | git |
124| 2373 | PHID-REPO-37lnqogu7j7rckmppndw | tool-facebook-messenger-chatbot | git |
125| 2097 | PHID-REPO-emr4ozhelzmskhe6hxis | tool-fatameh | git |
126| 2321 | PHID-REPO-2bgrxiryplfu3p5ow6i3 | tool-filesearch | git |
127| 2361 | PHID-REPO-rvzs6qugadzqjpowc4w5 | tool-firmenbuch | git |
128| 3054 | PHID-REPO-bjjiwd66tmauyjblxb25 | tool-fixexternallinks | git |
129| 2338 | PHID-REPO-ua6rygyfhinovx7axntv | tool-flaky-ci | git |
130| 2118 | PHID-REPO-jvrwipdnakmwihbdkwit | tool-fontcdn | git |
131| 2688 | PHID-REPO-v27gqwba67dodpkfxwig | tool-fourohfour | git |
132| 2819 | PHID-REPO-yzwml2hfhzghpb3vit6t | tool-fredrikas-lupp | git |
133| 2569 | PHID-REPO-46dg4b4w4y33rmlvlisp | tool-fscbot | git |
134| 2708 | PHID-REPO-jdgn3l7ieylf7hsbawkq | tool-fundraising-tools | git |
135| 2853 | PHID-REPO-jbu35egahjktlm6qersj | tool-g8-patrol | git |
136| 2763 | PHID-REPO-uibserzd7rwcm2a77cme | tool-gallery | git |
137| 2960 | PHID-REPO-24hakaoj2tvwvapny7gr | tool-gawa | git |
138| 2654 | PHID-REPO-sy3t2xvfus6jlhm37qcz | tool-germancon-mobile-core | git |
139| 2655 | PHID-REPO-v5lyfge6j47lcrg6ykto | tool-germancon-mobile-parser | git |
140| 2656 | PHID-REPO-ny6yitgark3ak5tnypj2 | tool-germancon-mobile-refactor | git |
141| 2672 | PHID-REPO-ejrhw6qaeot3fe7dcq6g | tool-germancon-mobile-xml | git |
142| 2062 | PHID-REPO-ahvm2uti3kt2esklghmv | tool-gerrit-patch-uploader | git |
143| 2759 | PHID-REPO-br6vgnbfueil3axtag6p | tool-github-pr-closer | git |
144| 2647 | PHID-REPO-fjezxp2qtop5if35ho56 | tool-githubstats | git |
145| 2706 | PHID-REPO-545ufj5fc3zql4drflk4 | tool-glamingest | git |
146| 2612 | PHID-REPO-4crc3giilnt33j6dfev3 | tool-glamorous-maintenance | git |
147| 2063 | PHID-REPO-63a2fwidjqmytcsgf34h | tool-globalprefs | git |
148| 2256 | PHID-REPO-5gon2rd7cvm5xgpqy7s4 | tool-gmt | git |
149| 2699 | PHID-REPO-dxmaozcrpjp2jpr5dmn3 | tool-goodarticle | git |
150| 2714 | PHID-REPO-7fdk3h73ele6p6tmrbbo | tool-goodarticlebot | git |
151| 2080 | PHID-REPO-xu347y4tuztnhzhh7mii | tool-grid-jobs | git |
152| 1921 | PHID-REPO-3ip76ryqfnvnw4isgf4l | tool-gridengine-status | git |
153| 2860 | PHID-REPO-7gqnhp54nisqu2xuq3gr | tool-growthtasks | git |
154| 2814 | PHID-REPO-jyh65jnnxpkfe4xmm22w | tool-gun-wd | git |
155| 2455 | PHID-REPO-54giydfm7em3ueas2o23 | tool-gyan-home | git |
156| 1945 | PHID-REPO-fap5f7ofz6dr34nhw2lq | tool-hall-of-fame | git |
157| 2510 | PHID-REPO-nil2pxbqz56zaeel4lmc | tool-hamishbot | git |
158| 3029 | PHID-REPO-trqjxcfhdh22bfq3ruot | tool-hangor | git |
159| 1963 | PHID-REPO-i46nwulmdylwnjltyudl | tool-hatjitsu | git |
160| 3130 | PHID-REPO-f4n6lofpm6kcdh4qvps6 | tool-healthchecks | git |
161| 2429 | PHID-REPO-ajgidbdfhitult2hozwv | tool-hennalabs | git |
162| 2562 | PHID-REPO-lj7er7atwuiwjlc4bpfm | tool-hirise | git |
163| 3060 | PHID-REPO-yfedinzhpi3sm6rfvbxx | tool-hub-wiki-project | git |
164| 3115 | PHID-REPO-gebygezhdjszmerrhxvm | tool-hunsbot | git |
165| 2658 | PHID-REPO-obmjveo73s6ld467d4ct | tool-iepcbm-bot-2 | git |
166| 2339 | PHID-REPO-jugabb52wi4crut5i4tz | tool-iepcbm-bot1 | git |
167| 2489 | PHID-REPO-pdbsbenkokasvoscbrd4 | tool-igl | git |
168| 2094 | PHID-REPO-axtkli5hndee7juhftse | tool-iluvatarbot | git |
169| 2946 | PHID-REPO-g4bsgm6ky752ttykvvjr | tool-image-content-filtration | git |
170| 2904 | PHID-REPO-5gbrmzct2gtcmxk5pwdk | tool-infogeek244-grammabot | git |
171| 2402 | PHID-REPO-fs632sosof6esbqhcw6w | tool-inkpen | git |
172| 2566 | PHID-REPO-if4uendqp6xrf3giql27 | tool-integraality | git |
173| 2199 | PHID-REPO-d2d6f4t5ltksf2tbmsmq | tool-interaction-timeline | git |
174| 2369 | PHID-REPO-qvbv3bj5wrupjiwujx7n | tool-interactoa | git |
175| 2983 | PHID-REPO-vk2az7w62b7uc4kzssk3 | tool-ip | git |
176| 2279 | PHID-REPO-6jsrvhwwdg5ylevnrhkc | tool-ipa-speaker | git |
177| 3025 | PHID-REPO-hbifpyta6nnv27iozd62 | tool-ipbe | git |
178| 2480 | PHID-REPO-4kiqd7l4v5c2uyekrjvc | tool-ipchanges | git |
179| 2263 | PHID-REPO-y7thizao4jykefbsiiv3 | tool-ipcheck | git |
180| 2926 | PHID-REPO-abt3emsa43ftbwoxuytg | tool-isbn-bot | git |
181| 2158 | PHID-REPO-4roxqvcof6dxzobowphi | tool-joaquinito01 | git |
182| 1973 | PHID-REPO-bfqw554gt5jnzmzr5vgz | tool-jogobot-charts | git |
183| 2715 | PHID-REPO-w6zrl6ar7bwdqkfcqdgj | tool-k8s-status | git |
184| 2675 | PHID-REPO-2dpfyysa7v6ezwkjueov | tool-kaleem-bot | git |
185| 2842 | PHID-REPO-cmc4ldbiaa2zfbsibjcg | tool-kanzattool1 | git |
186| 2813 | PHID-REPO-cvkw6dgxnn2d5g2ekhd6 | tool-karsilayici | git |
187| 2811 | PHID-REPO-snrft5p4c2udhrx6a3ry | tool-ket-bot | git |
188| 2812 | PHID-REPO-bxqomtpkyghwexh7ivps | tool-ket-bot-v3 | git |
189| 2073 | PHID-REPO-m7mah2cbpi34b7tg3seu | tool-keystone-browser | git |
190| 2709 | PHID-REPO-twhoixbntrkgawtt4vkf | tool-khanomalumat | git |
191| 2257 | PHID-REPO-qg7dfgzvul7wh7xa2dr5 | tool-khebi | git |
192| 3081 | PHID-REPO-z5slwgpsfrmnvfupcjip | tool-kiranbot2fnr | git |
193| 3082 | PHID-REPO-sh4byz7k7ux7ysnjahep | tool-kiranbot3sample | git |
194| 3111 | PHID-REPO-wzxqgko3ic7wqlvnvgm2 | tool-klaxon | git |
195| 2975 | PHID-REPO-yovjfb5wqwnl2d4tfevy | tool-klexiboxen | git |
196| 2112 | PHID-REPO-tlappax3ygdyfjsi6bvs | tool-klossebot | git |
197| 2138 | PHID-REPO-7zzysyxu6dfvfbtcrh7p | tool-kolbert | git |
198| 3136 | PHID-REPO-dg3k52z53jcjstav2qco | tool-kuwikibot | git |
199| 2046 | PHID-REPO-4juxyntesy4brxmcjpmf | tool-ldap | git |
200| 3084 | PHID-REPO-zpov5sdpqqlweaqgn4eb | tool-leekbot | git |
201| 2927 | PHID-REPO-mo2ixicrejumhxjziast | tool-lekhaki | git |
202| 2977 | PHID-REPO-dfds4lkw2s5qvxoig4vk | tool-leksem-indonesia | git |
203| 2362 | PHID-REPO-t7tkjzuxhxldm4y5hwc5 | tool-lexeme-forms | git |
204| 2145 | PHID-REPO-yzq6ot5z4ovwl2guhdoc | tool-libraryupgrader | git |
205| 2966 | PHID-REPO-kugkvdpspjkxiybc32ul | tool-likwal | git |
206| 2486 | PHID-REPO-pfvbbu2zsrqmszoyhlrx | tool-linksearch | git |
207| 1951 | PHID-REPO-vye64dimvjdfvtd6tdt4 | tool-linkstranslator | git |
208| 2509 | PHID-REPO-avdp77lem6ml7kuyame4 | tool-listunpatrolledpages-bot | git |
209| 2297 | PHID-REPO-5rlltuu3hwugbb32qjk4 | tool-lkftools-rep1 | git |
210| 3086 | PHID-REPO-za2ht3nyhuc4qgftkpiz | tool-localtestw | git |
211| 2972 | PHID-REPO-kntigz5gwarkecs5vzen | tool-lokasbot | git |
212| 1982 | PHID-REPO-3wtbrdyoc52w6miy2buj | tool-lolrrit-wm | git |
213| 2113 | PHID-REPO-v34lyspjv2kbp5hjq7h5 | tool-lrbot | git |
214| 2201 | PHID-REPO-43iuqww5wfnnhc5yot2t | tool-lrtools | git |
215| 2392 | PHID-REPO-3cahp76wv7wtaeyhevzg | tool-mabot | git |
216| 2266 | PHID-REPO-f2cc4wkchfchpsedzgqq | tool-macfanbot | git |
217| 2634 | PHID-REPO-pyeszi2n36j44mqgbldg | tool-maintun | git |
218| 2689 | PHID-REPO-dl6ngkzpe6juu7qp52jc | tool-majavah-bot | git |
219| 3085 | PHID-REPO-vdxaaszn4umqztokbdpx | tool-majavah-test | git |
220| 2751 | PHID-REPO-4xrimgof3qgrk2cpqglk | tool-map | git |
221| 2308 | PHID-REPO-6pb2wz5r5t3vwcgv6z2c | tool-mapycz | git |
222| 2292 | PHID-REPO-7dcfim5tdrm7vbykv5x3 | tool-maria | git |
223| 2293 | PHID-REPO-an4is3yr4markni4rhgv | tool-maria-test | git |
224| 2294 | PHID-REPO-tb36ymk7eevjyreyb3bc | tool-massmailer | git |
225| 2329 | PHID-REPO-7qcz35wbc5edysch47lg | tool-mathqa | git |
226| 2693 | PHID-REPO-b3jeorachqdkcurd5uu6 | tool-matthobot | git |
227| 2287 | PHID-REPO-54indzs5mtdu7pywytkl | tool-mbrt1 | git |
228| 3044 | PHID-REPO-h4vahtpdprynyregyjq2 | tool-mcdc-election-compass | git |
229| 2727 | PHID-REPO-q7pil3bktshnzbsxrijd | tool-mdanielsbot | git |
230| 1949 | PHID-REPO-74lau3vobb57ep75ypgy | tool-mediawiki-feeds | git |
231| 2611 | PHID-REPO-y6d37fnbtxtj54je2akb | tool-medusatest | git |
232| 2372 | PHID-REPO-yoq6iuq3pmsi2kxzqfbt | tool-messenger-chatbot | git |
233| 2986 | PHID-REPO-fl226xaw3jshmodeklcb | tool-meteofrancetoclimat | git |
234| 2950 | PHID-REPO-c4rotjvqkvt3a2bjuxz2 | tool-mikasa-bot | git |
235| 2959 | PHID-REPO-lupisjdpfv2setp45k4n | tool-mikasa-bot-1 | git |
236| 2516 | PHID-REPO-jdmlv6x33e7bl3eu6a6y | tool-milhistbot | git |
237| 2601 | PHID-REPO-ugjkz662ghejcgmjhhxu | tool-mirusbot | git |
238| 2311 | PHID-REPO-vonvta4gv2vizip4vobj | tool-missingpages | git |
239| 2499 | PHID-REPO-rvetoinzbsldcn5iic33 | tool-mjlbot | git |
240| 2498 | PHID-REPO-koo2hmcepfzav63h77ga | tool-mjlbot.base | git |
241| 2803 | PHID-REPO-lois63zn6uqga2v677o4 | tool-mlwikidbupdate | git |
242| 2760 | PHID-REPO-b2v55cwolaxddfo67evv | tool-mohammedbot | git |
243| 2464 | PHID-REPO-guk72xor7sfbphxbvuqz | tool-mohib-refcopy | git |
244| 2463 | PHID-REPO-nc3rfdgvpljzf32vcbf5 | tool-mohib.refcopy | git |
245| 2465 | PHID-REPO-nct5qglnqac2rgcuqkb2 | tool-mohiburdu | git |
246| 2312 | PHID-REPO-2bp4qvkgdo5kz3byssuu | tool-mostlinkedmissing | git |
247| 2771 | PHID-REPO-suiebxyrzcx6xnd5us7b | tool-mrakinsey | git |
248| 2722 | PHID-REPO-yinzlxrnkquv4m3icqsp | tool-mwp | git |
249| 2140 | PHID-REPO-hyaufx5kxcgh4d2kcqfh | tool-mwpackages | git |
250| 2697 | PHID-REPO-hbvful47n6okvzgi4dkb | tool-mwversion | git |
251| 2048 | PHID-REPO-ceq2gx6toytij4vg36xw | tool-my-first-flask-oauth-tool | git |
252| 2117 | PHID-REPO-ygxjrytuegse6jes5o34 | tool-mysql-php-session-test | git |
253| 2866 | PHID-REPO-ccfqgtijduyozqtiml4w | tool-name-to-q | git |
254| 3031 | PHID-REPO-4mdpjtt62nzco3bcqgdq | tool-namkoron | git |
255| 2050 | PHID-REPO-qbtyhwkjwuwqc5bvuvrm | tool-newusers | git |
256| 2053 | PHID-REPO-j2i5fhcvzmtm7o7qxo4r | tool-ninthcircuit | git |
257| 3058 | PHID-REPO-4dlf3un47dx7tkgjk6f6 | tool-nlwiki-bronlinks | git |
258| 2416 | PHID-REPO-tsag4hi7zipe7l3alqar | tool-nominatim | git |
259| 2541 | PHID-REPO-jmc5agcuz65hfnqn33k5 | tool-octrabot | git |
260| 2172 | PHID-REPO-5xhcmoubl3wxqmoboj5w | tool-olympics | git |
261| 2481 | PHID-REPO-qmcl4ht5s6covu7idr5i | tool-ooui-debug | git |
262| 3030 | PHID-REPO-eey4avsild7a5jlecwfp | tool-orthohin | git |
263| 2644 | PHID-REPO-jmqzujaqhq3yz4wcmib7 | tool-os-deprecation | git |
264| 2164 | PHID-REPO-ftbmoq36mvlnribenvh3 | tool-outreachy-hiteshpr | git |
265| 2168 | PHID-REPO-ytmt35niv2mtm6rkasu2 | tool-outreachy-recent-edits-tool | git |
266| 2170 | PHID-REPO-5sh2ymzw54lfftf6f6n2 | tool-outreachy-sayani-tool | git |
267| 2169 | PHID-REPO-rztdhi2sz5vijjcrkfqn | tool-outreachy-shipra | git |
268| 2159 | PHID-REPO-4lgvjrahgg3q32kirpt5 | tool-outreachy-useredits | git |
269| 2629 | PHID-REPO-6eefgmwlimpndzfqhvto | tool-pagepile-visual-filter | git |
270| 2100 | PHID-REPO-wvroxxpugmob52nkf4ul | tool-panderine | git |
271| 2786 | PHID-REPO-utmpx465r4t7jss6omei | tool-pathbot-test-1mlwiki | git |
272| 2598 | PHID-REPO-otebf3xxcwurnowjt7pi | tool-pathway-viewer | git |
273| 3072 | PHID-REPO-i425fdca2jlhwfmtplg7 | tool-patrol-daily-stats | git |
274| 2845 | PHID-REPO-mdwxxccx6ux4dqxqetm4 | tool-patsabot | git |
275| 1998 | PHID-REPO-pel2ip3zoncnr2ggld37 | tool-perflogbot | git |
276| 2269 | PHID-REPO-qmsopbyx4ysyhomiy2fd | tool-periodibot | git |
277| 1977 | PHID-REPO-2xomsi2w4d5roqt77tfp | tool-pg2ws | git |
278| 2371 | PHID-REPO-p233vvuugye7vpc7uiia | tool-phab-ban | git |
279| 2790 | PHID-REPO-pymt5lcxz4sjomhldycv | tool-phabsearchemail | git |
280| 2271 | PHID-REPO-tuog4ldaxvzgn6xoucuj | tool-phabulous | git |
281| 2744 | PHID-REPO-jkayverjhb3pgcoqbkxb | tool-phoenix9 | git |
282| 2354 | PHID-REPO-5ll3b4xt3plub74wczuu | tool-phpcs | git |
283| 2755 | PHID-REPO-ii4qfijnooks2s7tljfw | tool-pibot | git |
284| 3024 | PHID-REPO-wuo64xded4zf2kaddjj7 | tool-pickme | git |
285| 2476 | PHID-REPO-yeuiyzyw73n7l4pl7scw | tool-plantel2wiki | git |
286| 2817 | PHID-REPO-rru7bg7nwy6fb2zghcxx | tool-plasmahelp | git |
287| 2761 | PHID-REPO-ugc2sch7sdjbf4ibnftf | tool-povoconta | git |
288| 2043 | PHID-REPO-7qq7f72uinhftyjpxnlm | tool-precise-tools | git |
289| 2142 | PHID-REPO-ew3gzh45pbk4psuui7p3 | tool-prism | git |
290| 2967 | PHID-REPO-ybqs4fcw7yw52c4lperx | tool-privacy-budget | git |
291| 2389 | PHID-REPO-akipvi3mslf2ogwozjmc | tool-proxies | git |
292| 1948 | PHID-REPO-6fp57jim6pwkb4mkk5gs | tool-ptwikis | git |
293| 2913 | PHID-REPO-hprotqu6lbxiy4qormoe | tool-pygments | git |
294| 3062 | PHID-REPO-7jitrwza4ar634imczxx | tool-pythonix | git |
295| 2937 | PHID-REPO-hfcpzealo7erujlv24g2 | tool-qrank | git |
296| 2034 | PHID-REPO-pqi4urnha3edvxa2kb7n | tool-quarrybot-enwiki | git |
297| 2494 | PHID-REPO-g5gvifc6fumauo5da3qg | tool-quickcategories | git |
298| 2010 | PHID-REPO-ncbhn3suttniursyuk4j | tool-quickstatements | git |
299| 2090 | PHID-REPO-qcl7n5q4rxvensxe5aet | tool-r96340-bot | git |
300| 2091 | PHID-REPO-opey4z2u25cmqrzxxju2 | tool-r96340-bot-1 | git |
301| 2443 | PHID-REPO-3nzycq4luikkwtn6uf2v | tool-rangeblockfinder | git |
302| 2909 | PHID-REPO-mwnofxa2ewfnkwsw626q | tool-ranker | git |
303| 3142 | PHID-REPO-uy54k4utwcmcr6fx7yl5 | tool-rc-discord | git |
304| 2178 | PHID-REPO-zdemhk76docpphaxdvsg | tool-recoin-sample | git |
305| 2882 | PHID-REPO-szm7iwe7buuaye3ymtsy | tool-redirtalkdeleter | git |
306| 2736 | PHID-REPO-v4cc775hitgv5htluuyb | tool-redpanda | git |
307| 2157 | PHID-REPO-swzkz34sgkya6i4kmot4 | tool-remarkup2wikitext | git |
308| 1944 | PHID-REPO-boqff3xeun4gplmxhwjq | tool-replag | git |
309| 2394 | PHID-REPO-2smugmtxrsvydwrbb6an | tool-revi-kowikibots | git |
310| 2581 | PHID-REPO-tvqbipz6r5egwnj6xvmb | tool-reviewer | git |
311| 2719 | PHID-REPO-yysytcizj3kkfpmvj6uw | tool-reviewers | git |
312| 2089 | PHID-REPO-s3fwn4lyriafoo6djhxp | tool-rfahelpereditcounter | git |
313| 2519 | PHID-REPO-4szwpybwd4qjloczzfuu | tool-rhinosf1-afdclose | git |
314| 2740 | PHID-REPO-goamhjhxzvudqmtuls4r | tool-saami | git |
315| 1964 | PHID-REPO-2tvfofgkopwy6r23t62m | tool-sal | git |
316| 3065 | PHID-REPO-zkv2iztv5porhdl4isen | tool-sawtpedia | git |
317| 3045 | PHID-REPO-2zoebcyuzu57imetfnp7 | tool-sbdjwhsh | git |
318| 3046 | PHID-REPO-qkgodnfmstvxjjoe6t5d | tool-sbdjwhsh111 | git |
319| 3047 | PHID-REPO-4nefq5zljmtdcxghrywz | tool-sbdjwhsh111ejzhs | git |
320| 2442 | PHID-REPO-og4rbrb6ynkawv33qjft | tool-scotus-recordings | git |
321| 2368 | PHID-REPO-bradfyqpxz7dn6uhlsdi | tool-scrotbot | git |
322| 2330 | PHID-REPO-g4zkdpdxaequcawyyxm3 | tool-serobot | git |
323| 3090 | PHID-REPO-6foheuvwl3lgpd224fks | tool-sha | git |
324| 2739 | PHID-REPO-2k3bytjmtpt3hk5eahmk | tool-shex-author | git |
325| 2694 | PHID-REPO-5ohfmc6lm6pro3ahlueg | tool-shexia | git |
326| 2119 | PHID-REPO-pwbxbz2pvxrs2k4iotxr | tool-signature-manquante-bot | git |
327| 2844 | PHID-REPO-rkpv275ao2uk2thblwst | tool-smallem | git |
328| 2905 | PHID-REPO-dv4rgsp2lwvsyrr42kew | tool-socks | git |
329| 2513 | PHID-REPO-cffqrymbqitfzz2ifvb2 | tool-sonarqubebot | git |
330| 2840 | PHID-REPO-s6ghgpzvxwfrqpvfquro | tool-sourceror | git |
331| 1952 | PHID-REPO-b2q22oeod35hjcmfhxxo | tool-southparkfan | git |
332| 2385 | PHID-REPO-sgunfnz65tzisxisozhw | tool-soweego | git |
333| 2462 | PHID-REPO-qhuirqdlrafqxa7lolty | tool-sp1 | git |
334| 2610 | PHID-REPO-226jzo243vfn5aalqb5b | tool-spacemedia | git |
335| 2495 | PHID-REPO-bayb4xnxwumtslsk3zvb | tool-spamforbreakfast | git |
336| 2469 | PHID-REPO-zukfay5gfjdb6u3cz4pc | tool-speedpatrolling | git |
337| 2723 | PHID-REPO-k7m4vdm276tk62myisfp | tool-spi-tools | git |
338| 2884 | PHID-REPO-uc7xdrfzfifuh2jip5st | tool-sqlchecker | git |
339| 2724 | PHID-REPO-a65iy6rw3vnlyzv3y63w | tool-squirrelnest-upf | git |
340| 2173 | PHID-REPO-tylixhhx3e23lgoaidgu | tool-srish | git |
341| 2103 | PHID-REPO-7zadl435zhlg5oafkpku | tool-stang | git |
342| 1962 | PHID-REPO-5q6xygxsvy2yqpcomycp | tool-stashbot | git |
343| 1683 | PHID-REPO-lmtmzjtffjuxcy3dvulo | tool-stewardbots | git |
344| 2857 | PHID-REPO-s5jw5um6sz446cq2ocrl | tool-suggestbotbn | git |
345| 2322 | PHID-REPO-pgpp57fj5nkrxnt22tbb | tool-suyash-sandarbh | git |
346| 2388 | PHID-REPO-ef5kmttwepkzthkt2yxq | tool-swedishforsamling | git |
347| 2652 | PHID-REPO-sjzreg7vfk65ae5766i3 | tool-swviewer | git |
348| 2166 | PHID-REPO-abs5cn4y57uiljecf3af | tool-t1943bot | git |
349| 3019 | PHID-REPO-h5dnngogjji7bggpzfs7 | tool-technischewuensche | git |
350| 2793 | PHID-REPO-jok5onufmfcxc2q7r2me | tool-telegram-wikilinksbot | git |
351| 2258 | PHID-REPO-g5mfn2lr3xanodglxsu2 | tool-tenst | git |
352| 3121 | PHID-REPO-fepvlvyy4uxejsa3jctm | tool-terabot | git |
353| 3018 | PHID-REPO-orzvrvn5dzeqfg2phf7q | tool-test-stats | git |
354| 2802 | PHID-REPO-t2ygb2tq6sami5hxq33e | tool-test999 | git |
355| 2343 | PHID-REPO-sc3ffpyaiz3iebhn4oxu | tool-texbot | git |
356| 1947 | PHID-REPO-vvvq7x6hkhdw7ge4mdlm | tool-tfaprotbot | git |
357| 2357 | PHID-REPO-4mi6ezglcbpvnp7z4y4c | tool-thedavetools-referals | git |
358| 3051 | PHID-REPO-o3lb6szzkb25h4ig5w4i | tool-tnt | git |
359| 2289 | PHID-REPO-vh2hagodkpwaaksa272f | tool-tombot3 | git |
360| 2155 | PHID-REPO-rd24gs3ay2buzyp3h7as | tool-tool-db-usage | git |
361| 2123 | PHID-REPO-zez2wwdxrd23edicq4nx | tool-toolforge-static | git |
362| 3021 | PHID-REPO-isg55rrzq3ucketoxh4l | tool-toolhub-gadget-demo | git |
363| 3035 | PHID-REPO-gxwg6hzaygwdrieb6msy | tool-toolinfo-scraper | git |
364| 2367 | PHID-REPO-6szfzevvzwbcocttyl5z | tool-toolpilot | git |
365| 2333 | PHID-REPO-n4eljal3oazj37k2w7jc | tool-toolviews | git |
366| 2738 | PHID-REPO-k5lx4gd3hdeuzwzwkkuq | tool-top500importer | git |
367| 2597 | PHID-REPO-fkhypvbpdmuut6bk23i7 | tool-topic-finder | git |
368| 2221 | PHID-REPO-bohbkfnoxb4u2okycrzs | tool-tptools | git |
369| 2757 | PHID-REPO-wme6dm2nlfn5lpupkhtn | tool-train-blockers | git |
370| 3022 | PHID-REPO-alq2whm7g2ujswrezv4r | tool-trans | git |
371| 2988 | PHID-REPO-vzkdk2rcxef232omfxcj | tool-translate-link | git |
372| 2818 | PHID-REPO-vdzics66wvji242pkhfg | tool-trwikisignaturebot | git |
373| 2651 | PHID-REPO-qvjebnfnr4oyj4ggectv | tool-ttt | git |
374| 3011 | PHID-REPO-piexpu27raujstsmlxyu | tool-tutorial-examples | git |
375| 2762 | PHID-REPO-5zuei5k2eupc33lwxkh3 | tool-tweep | git |
376| 2605 | PHID-REPO-fk5kdwtow46j7ubmi7qv | tool-twitter-to-commons | git |
377| 2953 | PHID-REPO-ykp6h6jnal46hxwxvlkr | tool-twofivesixlex | git |
378| 2404 | PHID-REPO-lh66gffy2gpyq3r4aqbt | tool-typo-categorizer | git |
379| 2433 | PHID-REPO-qpzusog43e4ykwyc7ud4 | tool-unpaywall-importer | git |
380| 2563 | PHID-REPO-jge375xlc2nipovbdgdq | tool-us | git |
381| 2747 | PHID-REPO-kqwyrfmtka7cblkipk47 | tool-user-id | git |
382| 2281 | PHID-REPO-bi6os2wodszeusau4ban | tool-user-stats | git |
383| 2200 | PHID-REPO-y3ov3jpqwfjpbedac2q5 | tool-userrank | git |
384| 2947 | PHID-REPO-6gvilwgpwlllhlej7nts | tool-ust1 | git |
385| 2508 | PHID-REPO-llsd7zkzpv3bqmdix64n | tool-valhallasw-testing-tool | git |
386| 2620 | PHID-REPO-iwskmi2qov23g2vdxow5 | tool-vector-dark | git |
387| 2471 | PHID-REPO-6elzzyg6z7o6qibi3auh | tool-vendor | git |
388| 1958 | PHID-REPO-7vfxkc35l2zyjyld7gya | tool-versions | git |
389| 2574 | PHID-REPO-3vjtdaq2dwe77mi5klyz | tool-video-cut-tool-back-end | git |
390| 2567 | PHID-REPO-oaqpx3hf32n4b7pktdow | tool-video-cut-tool-front-end | git |
391| 2021 | PHID-REPO-ahxf7vruxudq4cmlc4cx | tool-video2commons | git |
392| 2645 | PHID-REPO-2mghinobzjdurqjcpvcn | tool-videoconvertion | git |
393| 2608 | PHID-REPO-txyjmowoukpfh5shhuok | tool-vip-space-media | git |
394| 2514 | PHID-REPO-v23msra5nl7a3ubtqndq | tool-vipbot | git |
395| 2580 | PHID-REPO-zq2wo7prne42olsz7xox | tool-vizbot | git |
396| 2624 | PHID-REPO-lmnjoqrwryutc2sgsshl | tool-vizbot-archivebot | git |
397| 2435 | PHID-REPO-3o5t4bka5samchr6fwys | tool-vizbot-test | git |
398| 2286 | PHID-REPO-foqhy3epcqhpb7fowrpr | tool-wd-constraints-precheck | git |
399| 2422 | PHID-REPO-n7vn4kxdt6hxyovc3427 | tool-wd-image-positions | git |
400| 2925 | PHID-REPO-wrfzv32gatfkcjshj7ah | tool-wdcmtqlinking | git |
401| 2307 | PHID-REPO-4fsyfgrwsmhqbhauqpwt | tool-wdmm | git |
402| 2288 | PHID-REPO-4rkql6vfmluvhx7mjq46 | tool-wdprop-repository | git |
403| 2152 | PHID-REPO-6d2cgsywg35epbq5f6om | tool-wdq_checker | git |
404| 3004 | PHID-REPO-qxcmzuliptgvfmvdofbm | tool-wdwsbot | git |
405| 2518 | PHID-REPO-augqvs3lzc2ikslawwir | tool-wiki-as-git | git |
406| 2851 | PHID-REPO-m3mq6yrurcscjfb7t3lz | tool-wiki-importer | git |
407| 2671 | PHID-REPO-rxotxw66y7o2ckrplaex | tool-wiki-osm-markers | git |
408| 2749 | PHID-REPO-uay5gqdow3pdx6okxecm | tool-wiki-tennis | git |
409| 2310 | PHID-REPO-mqyhq63tomqilnhcymvr | tool-wiki2email | git |
410| 2932 | PHID-REPO-7vofjygonabjkfyepvnj | tool-wikiauthbot-discordbot | git |
411| 2576 | PHID-REPO-y3rmh4u5w66jol6qok7q | tool-wikibookassamese | git |
412| 2577 | PHID-REPO-handhhcvjdewl7cgu6ho | tool-wikibookassamese-book.php | git |
413| 2635 | PHID-REPO-6vx4oghbs325jamkwlr7 | tool-wikicontrib | git |
414| 2320 | PHID-REPO-knuh3vratj47q6u4ny4a | tool-wikidata-analysis | git |
415| 2344 | PHID-REPO-ljdzd4hx3mwqvlrx5zrk | tool-wikiintent | git |
416| 1969 | PHID-REPO-g44qq37hxyki3ilj77y7 | tool-wikiloves | git |
417| 2618 | PHID-REPO-fvigiwwuiujf5p66hkjg | tool-wikipathways2wiki | git |
418| 2695 | PHID-REPO-ed6jfm4t5swptayzhzwd | tool-wikishield | git |
419| 1960 | PHID-REPO-qsbujphsamohrn2suveq | tool-wikishootme | git |
420| 2001 | PHID-REPO-m2nzii7c5qkk24fj6fml | tool-wikisource-api | git |
421| 2022 | PHID-REPO-6gekeegc7rxb3253jalk | tool-wikisource-penguin-classics | git |
422| 2044 | PHID-REPO-7rydss44hnqcf7c4og5n | tool-wikitext-deprecation | git |
423| 2784 | PHID-REPO-hslgtk6aox5kszg5xq6y | tool-wikitree | git |
424| 2345 | PHID-REPO-ufx2jtrsrrd7mwqd7wtl | tool-wikivoyage | git |
425| 2380 | PHID-REPO-iid7gonkz5mkrkakpq46 | tool-wikyrillomat | git |
426| 2661 | PHID-REPO-balmz77e7plaf7cc7p2n | tool-wlmitaly2019 | git |
427| 2352 | PHID-REPO-lprx65prqrfs5hncruso | tool-wm-commons-emoji-bot | git |
428| 1968 | PHID-REPO-ld3zr3dg7mhv4lgddf74 | tool-wm-metrics | git |
429| 2124 | PHID-REPO-3asmhbpmnaauckkrfwtk | tool-wmcsbot | git |
430| 2075 | PHID-REPO-sg4yjbi3f6df6m266a3w | tool-wmopbot | git |
431| 3010 | PHID-REPO-ngypgvpd2soun3j5tmtk | tool-ws-songbird | git |
432| 2134 | PHID-REPO-rlwtilbjouzgzikczhny | tool-wscontest | git |
433| 2177 | PHID-REPO-hpw62x3cpdhbg6elyz7c | tool-www-portal-builder | git |
434| 2267 | PHID-REPO-swbjxzhfx3ymfxluzbz7 | tool-www-portal-staging | git |
435| 1978 | PHID-REPO-lb4bw7nrqajx737gamxf | tool-xtools | git |
436| 2114 | PHID-REPO-nplwtxqnnitxxidlxhfl | tool-xtools-legacy | git |
437| 1979 | PHID-REPO-3egv3cg4a4bo7nzl6odw | tool-xtools-rebirth | git |
438| 2031 | PHID-REPO-exyqsnzawfoz4eu2tnfs | tool-xtools-rebirth-matthew | git |
439| 2737 | PHID-REPO-gyhrc2ebjov56m7v4eom | tool-yashe | git |
440| 2415 | PHID-REPO-w3vz35ed2sau2adqbj6c | tool-yemen-uu | git |
441| 2414 | PHID-REPO-z42rwfbeqrcfqbxv7euf | tool-yemen.u | git |
442| 2457 | PHID-REPO-pjsyuvqcjritpt2jb7fk | tool-yjsw | git |
443| 2349 | PHID-REPO-re3cdjnxxgxduhafqgio | tool-youtube-channel | git |
444| 2295 | PHID-REPO-oat5joth2ikil43e5yiu | tool-ytcleaner | git |
445| 3001 | PHID-REPO-sh4t4c4w2tcyyjd75bpv | tool-zhwp-afc-bot | git |
446| 2969 | PHID-REPO-pyzujxz2hgxixhv4ngia | tool-zhwpvg-article-list | git |
447| 2218 | PHID-REPO-jabkai4fzgwt3d2cdlyn | tool-zimmerbot | git |
448| 2302 | PHID-REPO-ypiymy7eyjylakttjuag | tool-zoranzoki21bot | git |
449| 2459 | PHID-REPO-4ynrsdea2gj4ruy3bxhj | tool-zoranzoki21wiki | git |
450+------+--------------------------------+------------------------------------+----------------------+
451445 rows in set (0.003 sec)

Now in this table there are also "viewPolicy", "editPolicy" and "pushPolicy" fields. they all are just IDs, names of policies.

There is no obvious "repo owner" field or something like that. I therefore assume what we really want is the list of people who can push, or both edit and push.

Going back to the Phabricator web UI for a moment.. you can just go to https://phabricator.wikimedia.org/diffusion/query/ias.VEMtSCGU/ to get the list of locally hosted repos as well.

If I click through to a random repo from there, for example https://phabricator.wikimedia.org/source/tool-datacompletewiki/ you can see some never had commits / are disabled etc..but some are not.

Actually it looks like a large percentage of them has 0 commits. But let's pick one with commits, like https://phabricator.wikimedia.org/source/tool-nlwiki-bronlinks/

If I go to Manage -> Policies here I can see "Pushable By Custom Policy ".. Then clicking on Custom Policy you get to something like this:

Allow members of any project acl*repository-admins
Allow users valhallasw

So yea.. that's where I will stop for right now but this would mean having to get all the policy IDs and then look into the policies themselves and from there try to find the user names.

total git repos starting with tool- : 445

repos without commits, starting with tool-: 225

I got this via the Phabricator web UI, with search options, sorting by "size"..then some manual formatting., not directly from the database.

https://phabricator.wikimedia.org/diffusion/query/gPlI0Z9TBWkj/

I suggest we first remove the 225 and then get down to 200.

1tool-adamant
2tool-add-text
3tool-air7538tools
4tool-alberobot
5tool-alertlive
6tool-algo-accountability
7tool-am
8tool-amstats
9tool-analytics
10tool-android-maven-repo
11tool-aneun-sandbox-java-webapp
12tool-ashleybot-purgecache
13tool-ashotbot
14tool-assamesetool.master
15tool-autoformat-enwikt
16tool-axel
17tool-basyounybot-test1
18tool-bays
19tool-bd808-pywikibot
20tool-bd808-ruby
21tool-bd808-test
22tool-beleg-test-14568913402-repo01
23tool-bluehillbotb
24tool-books-for-binding
25tool-borracho-main
26tool-botleo-main
27tool-botmahmood-main
28tool-botvegas
29tool-boxybotCreator
30tool-brandonstools
31tool-bub2
32tool-bunykbot
33tool-cabalbot
34tool-catlive
35tool-cbench
36tool-cd
37tool-centralnotice-bannergenerator
38tool-checkpersondata
39tool-cinema-projects
40tool-contraband
41tool-contrabandapp
42tool-covid
43tool-crawlerbot
44tool-csfd
45tool-datacompletewiki
46tool-demo-unicorn
47tool-devyasha
48tool-dexibotnet-bot
49tool-dibyadutta.book
50tool-dijkstrasproject
51tool-discord-irc
52tool-draftifyhistory
53tool-draft-uncategorize-script
54tool-droog-test
55tool-eagerbot
56tool-ederporto-dev
57tool-editor-contribution
58tool-editor-contribution-dashboard
59tool-editor-retention-dashboard-1
60tool-editor-retention-dashboard-2
61tool-eizenchan
62tool-emojiwiki-test-test1
63tool-emoociev
64tool-enett
65tool-enwiki-user-edits
66tool-essai
67tool-event-live-session-core
68tool-exambot
69tool-externalitemsuggester
70tool-firmenbuch
71tool-fixexternallinks
72tool-fscbot
73tool-fundraising-tools
74tool-gawa
75tool-githubstats
76tool-glamingest
77tool-glamorous-maintenance
78tool-gmt
79tool-goodarticle
80tool-goodarticlebot
81tool-growthtasks
82tool-gun-wd
83tool-gyan-home
84tool-hall-of-fame
85tool-hamishbot
86tool-healthchecks
87tool-hennalabs
88tool-hirise
89tool-hub-wiki-project
90tool-hunsbot
91tool-iepcbm-bot1
92tool-igl
93tool-iluvatarbot
94tool-image-content-filtration
95tool-infogeek244-grammabot
96tool-inkpen
97tool-interaction-timeline
98tool-ip
99tool-ipa-speaker
100tool-ipbe
101tool-ipcheck
102tool-isbn-bot
103tool-jogobot-charts
104tool-kaleem-bot
105tool-kanzattool1
106tool-karsilayici
107tool-khanomalumat
108tool-khebi
109tool-klossebot
110tool-kolbert
111tool-kuwikibot
112tool-leekbot
113tool-leksem-indonesia
114tool-likwal
115tool-listunpatrolledpages-bot
116tool-lkftools-rep1
117tool-localtestw
118tool-lokasbot
119tool-lrbot
120tool-maintun
121tool-maria-test
122tool-mathqa
123tool-matthobot
124tool-mbrt1
125tool-mcdc-election-compass
126tool-mdanielsbot
127tool-mediawiki-feeds
128tool-medusatest
129tool-mikasa-bot-1
130tool-mirusbot
131tool-mjlbot
132tool-mjlbot.base
133tool-mlwikidbupdate
134tool-mohammedbot
135tool-mohib-refcopy
136tool-mohib.refcopy
137tool-mohiburdu
138tool-mrakinsey
139tool-mwp
140tool-octrabot
141tool-ooui-debug
142tool-outreachy-hiteshpr
143tool-outreachy-recent-edits-tool
144tool-outreachy-sayani-tool
145tool-outreachy-shipra
146tool-outreachy-useredits
147tool-pathbot-test-1mlwiki
148tool-patrol-daily-stats
149tool-patsabot
150tool-periodibot
151tool-phoenix9
152tool-pickme
153tool-plantel2wiki
154tool-plasmahelp
155tool-povoconta
156tool-privacy-budget
157tool-pythonix
158tool-qrank
159tool-r96340-bot
160tool-r96340-bot-1
161tool-redirtalkdeleter
162tool-remarkup2wikitext
163tool-reviewer
164tool-rfahelpereditcounter
165tool-rhinosf1-afdclose
166tool-sawtpedia
167tool-sbdjwhsh
168tool-sbdjwhsh111
169tool-sbdjwhsh111ejzhs
170tool-scrotbot
171tool-sha
172tool-signature-manquante-bot
173tool-smallem
174tool-southparkfan
175tool-soweego
176tool-sp1
177tool-spamforbreakfast
178tool-srish
179tool-suggestbotbn
180tool-suyash-sandarbh
181tool-swedishforsamling
182tool-telegram-wikilinksbot
183tool-test999
184tool-test-stats
185tool-thedavetools-referals
186tool-toolpilot
187tool-top500importer
188tool-topic-finder
189tool-trans
190tool-trwikisignaturebot
191tool-ttt
192tool-tutorial-examples
193tool-tweep
194tool-twitter-to-commons
195tool-typo-categorizer
196tool-unpaywall-importer
197tool-us
198tool-userrank
199tool-user-stats
200tool-ust1
201tool-valhallasw-testing-tool
202tool-videoconvertion
203tool-video-cut-tool-front-end
204tool-vipbot
205tool-vizbot
206tool-vizbot-archivebot
207tool-vizbot-test
208tool-wdprop-repository
209tool-wdq_checker
210tool-wdwsbot
211tool-wiki-as-git
212tool-wikiauthbot-discordbot
213tool-wikibookassamese
214tool-wikibookassamese-book.php
215tool-wikicontrib
216tool-wikidata-analysis
217tool-wikitree
218tool-wikyrillomat
219tool-wlmitaly2019
220tool-wm-commons-emoji-bot
221tool-wscontest
222tool-yjsw
223tool-youtube-channel
224tool-zhwpvg-article-list
225tool-zimmerbot

Phabricator keeps an history of push actions which can be seen at https://phabricator.wikimedia.org/diffusion/pushlog/ It has the protocol, repo and username among others.

The push logs is kept up to two months, we thus have the history since May 22.

The data can be exported to csv, I have filtered out actions made over https and I end up with 1 bot and 8 users:

@Alexander_Misel
@bd808
@Dsavuljesku
@L10n-bot
@LucasWerkmeister
@Mahir256
@Stang
@Szczot3k
@taavi

There is certainly a lot more users doing pushes, but they are done over https and are thus not concerned by the git-ssh phase out.

I have quickly made a script to generate the list of all for the etherpad. It's running now. I've found at least 1 repo with no users with explicit push perms. That's rPHTO phabricator-Tools

rPHTO is for Phabricator https://phabricator.wikimedia.org/diffusion/PHTO/manage/policies/ says it is pushable by Diffusion-Repository-Administrators . I can't remember the discussion we had in Release-Engineering-Team but I think the idea is to move the Phabricator deployment repository out of Differential toward either Gerrit or Gitlab. Anyway, that repository would in practice only be pushed to by releng people.

Thank you very much to @RhinosF1 for https://www.irccloud.com/pastebin/Rrnxda31/script.py and https://www.irccloud.com/pastebin/zNsHMnJB/

@thcipriani See links above. Now we already have all the Phab user names and all we need is to get the email addresses for them which should be easy.

Someone can start writing the actual email content.

Email draft:

---
Subject: Phabricator's git over ssh will fail after $DATE
---

As of $DATE you will no longer be able to use ssh to interact with git repos
on https://phabricator.wikimedia.org.

You will still be able to use phabricator's git hosting via https[0].

The proposal to use phabricator to host code review was declined in 2018[1].

We're migrating phabricator to new hardware on $DATE. And maintaining ssh access
to repositories requires an ongoing maintenance burden, so we've decided to shut
it down.

You will still be able to use phabricator for git hosting over https. But we
encourage you to consider migration to GitLab[2] in the future.

Thank you!
– Wikimedia Phabricator Maintainers


[0]: <https://wikitech.wikimedia.org/wiki/Phabricator/pushing_over_https>
[1]: <https://phabricator.wikimedia.org/T119908>
[2]: <https://www.mediawiki.org/wiki/GitLab/Hosting_a_project_on_GitLab>

Thoughts?

@thcipriani Sounds good to me. It links to the docs how to push over https, how to move to gitlab and to the reason why Phabricator is not for hosting repos. I like that. Technically we could also untie the 2 $DATES (when phab is switching and when git-ssh is going down) but only if we want to or see an advantage in it.

You will still be able to use phabricator for git hosting over https. But we encourage you to consider migration to GitLab[2] in the future.

@thcipriani: Regarding expectation (or disappointment) management, does the first sentence imply "for many years", or "for a while, but not forever"?
Maybe "strongly encourage"? How long is "in the future"?
I guess I'd prefer a stronger message that having at least four code repository locations (GitLab, Git/Gerrit, Diffusion, GitHub) isn't great for anyone's workflows.

Thank you very much to @RhinosF1 for https://www.irccloud.com/pastebin/Rrnxda31/script.py and https://www.irccloud.com/pastebin/zNsHMnJB/

@thcipriani See links above. Now we already have all the Phab user names and all we need is to get the email addresses for them which should be easy.

"easy" 😅

Email doesn't seem to be exposed via any conduit API, so I had to query the database directly.

For reference I used the following query with the list of people provided by @RhinosF1:

SELECT address FROM phabricator_user.user_email ue
    JOIN phabricator_user.user u ON u.phid = ue.userPHID
    WHERE u.userName = "<whatever>";

This netted 347 unique emails for 262 users.


You will still be able to use phabricator for git hosting over https. But we encourage you to consider migration to GitLab[2] in the future.

@thcipriani: Regarding expectation (or disappointment) management, does the first sentence imply "for many years", or "for a while, but not forever"?
Maybe "strongly encourage"? How long is "in the future"?
I guess I'd prefer a stronger message that having at least four code repository locations (GitLab, Git/Gerrit, Diffusion, GitHub) isn't great for anyone's workflows.

I'm in favor of "encourage" → "strongly encourage." And s/consider//. So:

For now, you will still be able to use phabricator for git hosting over https. But we strongly encourage you to migrate to GitLab[2].

There are no other plans for diffusion at present. It's close to "for a while, but not forever (probably)"


Now when do I send this thing? :)

@thcipriani I think you can send it right now. It seems just about the value for $DATE in your template. We can just define that as whatever we feel is enough warning time. (2 weeks?) and then turn off git-ssh at that time. The day we shut down git-ssh does not have to correlate much with other migration steps.

Emailing all tool maintainers about diffusion seems a little moot given they're all magically migrated to GitLab now 🎉 per: https://lists.wikimedia.org/hyperkitty/list/cloud-announce@lists.wikimedia.org/thread/LSUIQGQ4DCHNDDIT54XMQ2FHK4E4DW3W/

If there are still folks I should be emailing, happy to do so, but it seems like the migration invalidates this task, afaict.

Yea, true. I think it did. the few users that were not striker repos but were still using repos on Phabricator I had emailed in the past already.

There is still T308061 about subversion repos, fwiw.

@thcipriani I think it also means I can just shutdown git-ssh and it should not affect anyone. We could stop it before switching servers.. just to proof nobody complains. It doesn't have to be bundled with the server switch but it can be.

@thcipriani I think it also means I can just shutdown git-ssh and it should not affect anyone. We could stop it before switching servers.. just to proof nobody complains. It doesn't have to be bundled with the server switch but it can be.

I think that's true. And, yes, stopping it before we switch might give us some extra confidence.