[14:19:12] AndyRussG: sorry I missed your message friday. it got lost in the eyener join/leave spaghetti :) [14:19:26] sure we can talk through the -1 on https://gerrit.wikimedia.org/r/c/wikimedia/fundraising/crm/+/743467 [14:19:57] jgleeson fr-tech hiiiii! [14:20:37] howdy [14:20:39] ! [14:21:39] jgleeson :) Thx! I'm getting an early-ish start today and could do so in maybe 20 minutes or so if u like [14:22:56] I've got the school pickup run in 10 minutes but I'll be back about :20m on the next hour if that works [14:23:09] I need to pick up some groceries on the way back [14:23:23] I'll ping you once back AndyRussG if that works [14:24:01] jgleeson: sure sounds great, thx! [15:16:26] (03CR) 10Ejegg: Pending resolver: fraud db integration (031 comment) [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/743467 (https://phabricator.wikimedia.org/T291223) (owner: 10Damilare Adedoyin) [16:02:07] AndyRussG: just replying to ejegg then we can talk more on that if you like still [16:02:30] Also just realised I'd deleted my local smashpig :( [16:10:39] (03CR) 10Jgleeson: [C: 04-1] Pending resolver: fraud db integration (031 comment) [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/743467 (https://phabricator.wikimedia.org/T291223) (owner: 10Damilare Adedoyin) [16:21:22] (03CR) 10Jgleeson: [C: 03+1] "Thanks for updates and the extra test! Looks +2able for me. I'll hang back until @AndyRussG is happy also." [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/739669 (https://phabricator.wikimedia.org/T291226) (owner: 10Ejegg) [16:22:27] hi jgleeson sorry just saw ur ping now! if you'd like to +2 pls don't hesitate also [16:26:14] thanks AndyRussG. I added some follow-on info to the -1 on the other patch you wanted to discuss, in response to ejegg's comment which you might be interested in https://gerrit.wikimedia.org/r/c/wikimedia/fundraising/crm/+/743467 [16:26:52] -1 feels heavy btw. I guess I just wanted to flag a potentially undesirable behaviour IF the scenario arises [16:29:23] (03CR) 10Jgleeson: [C: 03+2] "@AndyRussG is happy for this to be +2ed. Nice work!" [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/739669 (https://phabricator.wikimedia.org/T291226) (owner: 10Ejegg) [16:30:14] ah all good, thx jgleeson! [16:39:37] (03CR) 10Jgleeson: [C: 04-1] "My bad! It looks like 125 is the reject threshold so 'R' would not trigger a reject alone. https://github.com/wikimedia/wikimedia-fundrais" [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/743467 (https://phabricator.wikimedia.org/T291223) (owner: 10Damilare Adedoyin) [17:17:25] * greg-g waves [17:21:55] hi greg-g ! [17:23:21] howdy greg-g :) [17:27:23] hey greg-g!! :) btw if you feel you'd enjoy multiple group-directed pings per day, you could possibly add "fr-tech" to your IRC ping words... that's our "ping the whole team" magic constant :) [17:28:54] hi fr-tech AndyRussG jgleeson ejegg greg-g [17:29:05] :) :) [17:29:29] howdy. [17:31:06] 10Fundraising Sprint Xenomorph Petting Zoo, 10Fundraising-Backlog, 10fundraising sprint Wireless Zipline: Documentation: Create a place for text source for UML diagrams, and put existing diagrams there - https://phabricator.wikimedia.org/T296344 (10jgleeson) @AndyRussG, I was looking at our existing repos an... [17:32:07] howdy cstone fr-tech! [17:49:23] dstrine: can we add careless whisper to the stand-up sax playlist for next year :) ?!?! [17:49:41] my teacher refuses to teach me that song lol [17:49:45] ha! [17:49:46] I might have to do that on my own [17:50:08] that was ace [17:50:21] 10Fundraising Sprint Xenomorph Petting Zoo, 10Fundraising-Backlog, 10fundraising sprint Wireless Zipline: Documentation: Create a place for text source for UML diagrams, and put existing diagrams there - https://phabricator.wikimedia.org/T296344 (10AndyRussG) >>! In T296344#7580807, @jgleeson wrote: > @AndyR... [17:50:59] awe thanks. I started practicing on Saturday. I had a sore throat all last week so I wasn't able to work on it [17:51:36] dstrine fantastic stuff, way to go!!!!!!!! [17:51:56] you nailed it haha [17:52:28] dstrine can be the new trombone cat and bring us joy. [17:52:33] LOL [17:52:34] lol [17:55:57] 10Fundraising Sprint Xenomorph Petting Zoo, 10Fundraising-Backlog, 10fundraising sprint Wireless Zipline: Documentation: Create a place for text source for UML diagrams, and put existing diagrams there - https://phabricator.wikimedia.org/T296344 (10jgleeson) Perfect! and thanks for the tip on gitlab. I did n... [18:34:43] (03CR) 10Ejegg: Pending resolver: fraud db integration (032 comments) [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/743467 (https://phabricator.wikimedia.org/T291223) (owner: 10Damilare Adedoyin) [18:34:46] jgleeson: ok, so to get that antifraud patch merged, we just compare and log the new CVV/AVS scores if different, and rename that test? [18:36:52] do we not wanna overwrite newer scores if they come in ejegg ? [18:37:07] particularly in the Retry result code scenarip [18:37:07] sure, we can compare, log, and overwrite [18:37:10] scanrio [18:37:17] grr [18:37:23] scenario* [18:37:25] jgleeson: 'retry' in this case i think means to send the donor back to fill out the form again [18:37:51] i don't think Ingenico automatically keeps retrying sending the code to the bank to get better data that we can just pick up later [18:37:51] https://support.direct.ingenico.com/best-practices/service/avs [18:38:06] 'R' [18:38:36] So we would have to deal with that in the front end and send the donor back to the form [18:38:43] in order to actually retry [18:39:20] i think Ingenico will give us the same 'R' result every time we ask them without sending the donor back to fill the form out again [18:39:37] ah I asee [18:40:52] so the most likely reason for different scores will probably be that our settings don't match between front end and back end [18:41:09] ejegg: whilst we're on the subject. Should we be treating '0' and 'R' the same? [18:41:36] I guess maybe? They seem to represent the same lack of data [18:42:13] yeah pretty much [18:43:03] ok wrt this patch. If you're happy to log this case and then maybe we could search for it after a period to gauge frequency that makes sense to me. Also yeah the test renaming would be great thanks! [18:44:11] cool cool [18:45:36] I was just gonna add a test to https://github.com/wikimedia/mediawiki-extensions-DonationInterface/blob/b517adf1b736ce68fe501305dcc7a54367bf50ad/tests/phpunit/EmployerSearchApiTest.php#L12-L11 to confirm the MAX_RESULTS const gets used but as the traffic increase seems to be frontend related it's probably unnecessary [18:46:12] jgleeson: yeah, looks like it's pretty clearly the JS load that's bigger, not the API response [19:04:59] ejegg: once we +2 that patch i *think* we're ready to deploy right? [19:05:19] also a little bit of work in p-c [19:05:49] yes! [19:05:55] awesome [19:15:48] (03PS20) 10Ejegg: Pending resolver: fraud db integration [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/743467 (https://phabricator.wikimedia.org/T291223) (owner: 10Damilare Adedoyin) [19:16:03] ok jgleeson, want to take a look at that PS ^^ ? [19:17:08] 10Wikimedia-Fundraising-Banners, 10Wikipedia-iOS-App-Backlog, 10Patch-For-Review, 10iOS-app-v6.8.2: 2021 English fundraising messages in iOS app - https://phabricator.wikimedia.org/T294996 (10JMinor) 05Open→03Resolved a:03JMinor [19:19:15] 10Fundraising Sprint Vagranty McVagrantface, 10Fundraising Sprint We all meet again, 10Fundraising-Backlog, 10SRE, and 6 others: Deal with donatewiki Thank You page launching in apps - https://phabricator.wikimedia.org/T259312 (10JMinor) 05Open→03Resolved Ok, I think we finally nailed this one down. Th... [19:20:27] looking ejegg [19:32:48] ah, jgleeson, we also need this patch: https://gerrit.wikimedia.org/r/c/wikimedia/fundraising/SmashPig/+/741727 [19:33:59] hi eileen ! I see there's a new PS to review at https://gerrit.wikimedia.org/r/c/wikimedia/fundraising/crm/+/747984 [19:34:02] will take a look [19:35:49] eileen: is there some reason you stopped marking an EOY email failed when the $mailer->send call returns false? [19:37:18] ejegg: hmm no - let me look [19:38:14] I have a feeling I might have lost that when fixing a merged conflict [19:38:36] ah yeah, lots of merges with that tall stack of changes [19:40:22] ejegg: I think it's still there https://gerrit.wikimedia.org/r/c/wikimedia/fundraising/crm/+/747984/10/drupal/sites/default/civicrm/extensions/wmf-thankyou/Civi/Api4/Action/EOYEmail/Send.php#116 [19:40:37] only on parse failures - but I could add to send failures too [19:41:17] The previous patch set $success = $mailer->send($email, []); [19:41:27] so it would mark a failure on send failure [19:41:34] err, rather the pre-patch code [19:42:15] and then also marks fail on exception, which you still do [19:42:39] ah right [19:42:55] after the patch it's setting status to 'sent' and recording the activities no matter what ->send returns [19:43:45] oh boy, Boston's requiring vaccine proof for gyms/restaurants/museums, etc [19:44:02] starting Jan 15 [19:46:26] ejegg: here's hoping it goes as smooth as it did here. [19:46:55] probably! we've already got a pretty high vaccination rate [19:49:35] (03PS11) 10Eileen: Switch up flow - render, email & save per row [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/747984 [19:50:15] looking [19:51:03] (03PS12) 10Eileen: Switch up flow - render, email & save per row [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/747984 [19:51:23] ejegg: ok I see [19:51:39] cool, PS12 looks like it does the trick [19:54:27] ejegg: yeah I hadn't spotted what you meant at first [19:54:42] eileen: oops, though I think it will now bail out after the first parse_failure [19:55:08] oh no, it won't [19:55:10] sorry [19:55:27] phew [19:55:47] I'm gonna go back in & do some more checks around quotes in the emails but that is the last thing on my 'fix list' [19:56:35] & I think I'll document the language fall back on wikitech [19:58:45] (03CR) 10Jgleeson: [C: 03+2] "Thanks for the updates! let's get this thing out into the wild :)" [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/743467 (https://phabricator.wikimedia.org/T291223) (owner: 10Damilare Adedoyin) [20:03:20] yay! [20:07:52] (03CR) 10Ejegg: [C: 03+2] "Looks good! Still shows some artifacts of the gradual rebuild (vs redo from scratch) like that loop over at-most-singular $emails but noth" [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/747984 (owner: 10Eileen) [20:08:30] jgleeson: did you see this one other patch we'll want to deploy? https://gerrit.wikimedia.org/r/c/wikimedia/fundraising/SmashPig/+/741727 [20:09:00] ejegg: if you have any further tidy up thoughts feel free to push up a patch with them & I'll review / merge [20:09:42] I'm just working on a test for the quotes in names [20:09:50] cool cool [20:10:18] looking ejegg [20:10:51] (03Merged) 10jenkins-bot: Pending resolver: fraud db integration [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/743467 (https://phabricator.wikimedia.org/T291223) (owner: 10Damilare Adedoyin) [20:11:13] (03PS4) 10Ejegg: Fixes for Resolve tests [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/747992 [20:11:18] (03PS8) 10Ejegg: Add donor matching to pending txn resolver [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/739669 (https://phabricator.wikimedia.org/T291226) [20:19:45] ejegg: that SP update looks good. Any reason that method is static? [20:19:49] (03Merged) 10jenkins-bot: Switch up flow - render, email & save per row [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/747984 (owner: 10Eileen) [20:20:05] hmm, i forget [20:22:38] actually it looks like it's just checking params on the input so probably doesn't need the overhead of the parent constructor setting up the db connection [20:22:53] ah yeah, that makes sense [20:23:26] right, because we do use it in at least one situation (queue consumption) where we don't need to set up that db connection [20:23:49] cool [20:24:22] (03CR) 10Jgleeson: [C: 03+2] "LGTM :)" [wikimedia/fundraising/SmashPig] - 10https://gerrit.wikimedia.org/r/741727 (https://phabricator.wikimedia.org/T291228) (owner: 10Ejegg) [20:24:42] (03PS5) 10Ejegg: Fixes for Resolve tests [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/747992 [20:24:50] (03PS9) 10Ejegg: Add donor matching to pending txn resolver [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/739669 (https://phabricator.wikimedia.org/T291226) [20:25:44] ok, I think we can start setting up the P-C jobs [20:25:49] (03Merged) 10jenkins-bot: Leave FAILED/REJECT rows for Ingenico [wikimedia/fundraising/SmashPig] - 10https://gerrit.wikimedia.org/r/741727 (https://phabricator.wikimedia.org/T291228) (owner: 10Ejegg) [20:25:53] or, one P-C job [20:26:08] ah, and SmashPig will need another patch version tagged [20:26:58] I've been running your latest patches through https://github.com/rectorphp/rector to see what it thought. Some minor but decent suggestions actually. I've been running it against my own stuff also to catch any of my bad habits! [20:29:16] https://phabricator.wikimedia.org/P18247 [20:29:55] negation hurts my eyes sometimes tho [20:30:29] (03CR) 10AndyRussG: Fixes for Resolve tests (031 comment) [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/747992 (owner: 10Ejegg) [20:31:22] ok cool jgleeson [20:56:36] (03CR) 10AndyRussG: [C: 03+2] "resubmit" [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/739669 (https://phabricator.wikimedia.org/T291226) (owner: 10Ejegg) [21:06:12] 10Fundraising Sprint Visual C Saw, 10Fundraising Sprint Xenomorph Petting Zoo, 10Fundraising-Backlog, 10fundraising sprint Universal Cereal Bus, and 4 others: Civi: EOY Auto Thank You Email Receipt - New content is ready for coding - https://phabricator.wikimedia.org/T290253 (10DStrine) 05Open→03Resolved [21:06:31] (03PS1) 10Dwisehaupt: Shift to ip-allowlist from ip-whitelist [wikimedia/fundraising/SmashPig] - 10https://gerrit.wikimedia.org/r/748806 (https://phabricator.wikimedia.org/T279576) [21:08:50] (03Merged) 10jenkins-bot: Fixes for Resolve tests [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/747992 (owner: 10Ejegg) [21:08:52] (03Merged) 10jenkins-bot: Add donor matching to pending txn resolver [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/739669 (https://phabricator.wikimedia.org/T291226) (owner: 10Ejegg) [21:10:05] jgleeson: do you want to write the p-c job while I tag the new SmashPig patch version and update it under CRM? [21:10:14] sure thing [21:10:19] thanks! [21:12:23] jgleeson: ah damn [21:12:57] oh nvm [21:12:59] .. [21:13:10] i thought i was going to have to tag a new donationinterface version too [21:13:15] with the new version requirements [21:13:21] I just manually marked my patch to active, then it's not wip [21:13:24] we did that right? [21:13:49] jgleeson: yeah, i thought the new donationinterface was locked to smash-pig 0.7.8 [21:14:17] but under crm composer just allowed me to update smash-pig to 0.7.8.1 without changing donation-interface [21:14:21] so that's good [21:14:28] maybe because it's only a patch-version change? [21:14:46] oh I see what you mean [21:15:31] (03PS1) 10Ejegg: Update SmashPig lib to 0.7.8.1 [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/748808 [21:15:35] (03CR) 10Ejegg: [C: 03+2] Update SmashPig lib to 0.7.8.1 [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/748808 (owner: 10Ejegg) [21:16:24] should we switch DI over to using explicit versions of smashpig also? [21:23:07] ejegg: pending_transaction_resolver.yaml or pending_table_consumer.yaml ? [21:23:16] I'm favouring the former [21:23:31] although we're technically doing the latter [21:23:33] :( [21:26:43] I guess we're just running this for ingenico too so that'll have to feature in the name [21:26:43] (03Merged) 10jenkins-bot: Update SmashPig lib to 0.7.8.1 [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/748808 (owner: 10Ejegg) [21:29:28] let's do pending_transaction_resolver.yaml jgleeson [21:29:38] ohh right [21:29:47] ingenico_pending_transaction_resolve.yaml ? [21:30:06] or ingenico_pending_resolver.yaml ? [21:30:21] yeah let's drop trxn [21:30:25] eileen: with 600-800 thru or very nearly so I can definitely finally get to some Civi review btw [21:30:39] I only see two outstanding patches now, both marked "merge conflict" [21:31:05] (03Abandoned) 10Eileen: Handle quotes in tokens [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/747638 (https://phabricator.wikimedia.org/T297159) (owner: 10Eileen) [21:31:16] (03PS6) 10Eileen: Fix error message spacing [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/747988 [21:31:29] AndyRussG: and now only 1 [21:31:41] AndyRussG: if you're still have orphan-y stuff top of mind you could try testing https://gerrit.wikimedia.org/r/c/mediawiki/extensions/DonationInterface/+/747648 [21:32:01] eileen: ah cool! [21:32:03] ejegg: ah cool! [21:33:07] so for paypal it might be harder to use the fraud filters to get an orphan [21:33:09] ejegg: so that would be by testing out a paypal transaction? [21:33:13] yep yep [21:33:41] ah oki [21:34:03] ejegg: I was also thinking of adding to the doc about orphans following your explanations about testing [21:34:56] you could just put a die() at the top of paypal_express.adapter.php's processDonorReturn [21:35:25] so that patch is not supposed to change how anything works at payments-wiki, only when run under the orphan slayer [21:35:36] that's why it check for isBatchMode() [21:35:41] *checks [21:36:55] ejegg: should I merge a deploy or are you still getting stuff merged to master? [21:37:01] eileen: I'm prepping a deploy [21:37:07] cool [21:37:08] thanks! [21:37:29] ejegg: oki got it, will do! thx! [21:37:54] AndyRussG: so to test that, you'll have to manually pull it into the donation-interface dir under crm/vendor [21:38:27] right [21:39:01] ahh, right, that kind of orphan should actually be easy to prep, the PaymentActionNotInitiated status means you don' [21:39:10] t even enter your details at the paypal site [21:39:31] so no need to hack the processDonorReturn [21:40:13] (03PS1) 10Ejegg: Update smash-pig to 0.7.8.1 [wikimedia/fundraising/crm/vendor] - 10https://gerrit.wikimedia.org/r/748819 [21:40:17] (03CR) 10Ejegg: [C: 03+2] Update smash-pig to 0.7.8.1 [wikimedia/fundraising/crm/vendor] - 10https://gerrit.wikimedia.org/r/748819 (owner: 10Ejegg) [21:40:17] ejegg: so in the state where we sent the donor to paypal and they did nothing there? [21:40:24] AndyRussG: yep, exactly [21:40:32] the current code doesn't check for that state [21:40:39] ejegg: cool beans got it [21:40:43] and just tries to go ahead and approve the payment [21:40:45] but it doesn' [21:40:53] t have all the necessary info [21:41:16] so the paypal slayer log is full of 'missing payerID' errors [21:41:35] ejegg: I've pushed up a patch to process-control with the new job [21:41:39] and also, the slayer wastes lots of time making those extra API calls, which is why it runs for 42 hrs [21:41:44] thanks jgleeson, i'll take a look [21:41:58] ejegg: will I have to consume any queues other than the pending one? [21:42:07] that must have been a lot of api calls! [21:42:20] AndyRussG: I think just pending is OK here [21:42:32] oki [21:48:50] jgleeson: shall we put some explicit values for batch and timeLimit on the p-c command line for the regular version? [21:49:04] I don't think we have a fallback to config values here, do we? [21:49:15] maybe just a timeLimit [21:50:05] so it gets a fresh db connection every half hr or so [21:50:57] 25 minutes? [21:51:03] sounds good [21:51:07] will do [21:52:24] (03Merged) 10jenkins-bot: Update smash-pig to 0.7.8.1 [wikimedia/fundraising/crm/vendor] - 10https://gerrit.wikimedia.org/r/748819 (owner: 10Ejegg) [21:52:52] (03PS1) 10Ejegg: Merge branch 'master' into deployment [wikimedia/fundraising/crm] (deployment) - 10https://gerrit.wikimedia.org/r/748821 [21:52:54] (03CR) 10Ejegg: [C: 03+2] Merge branch 'master' into deployment [wikimedia/fundraising/crm] (deployment) - 10https://gerrit.wikimedia.org/r/748821 (owner: 10Ejegg) [21:57:13] oh right, still no automerge for CRM/deploy branch [21:58:09] (03PS1) 10Ejegg: Merge branch 'master' into deployment [wikimedia/fundraising/SmashPig] (deployment) - 10https://gerrit.wikimedia.org/r/748822 [21:58:55] (03CR) 10Ejegg: [C: 03+2] Merge branch 'master' into deployment [wikimedia/fundraising/SmashPig] (deployment) - 10https://gerrit.wikimedia.org/r/748822 (owner: 10Ejegg) [21:59:23] (03Merged) 10jenkins-bot: Merge branch 'master' into deployment [wikimedia/fundraising/SmashPig] (deployment) - 10https://gerrit.wikimedia.org/r/748822 (owner: 10Ejegg) [22:00:02] ah looks like I can't git amend my commit so I'll push a follow-on [22:00:16] I met vimdiff for the first time today also [22:00:29] trying to escape 3 windows was fun [22:02:17] ejegg: that update is pushed [22:13:05] thanks jgleeson|brb [22:36:28] (03PS1) 10Eileen: Add unit test for single quote in name [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/748833 [22:37:49] (03PS1) 10Eileen: Handle single quote in name [wikimedia/fundraising/crm/civicrm] - 10https://gerrit.wikimedia.org/r/748834 [22:39:26] (03PS2) 10Eileen: Handle single quote in name [wikimedia/fundraising/crm/civicrm] - 10https://gerrit.wikimedia.org/r/748834 (https://phabricator.wikimedia.org/T297159) [22:40:24] (03PS2) 10Eileen: Add unit test for single quote in name [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/748833 (https://phabricator.wikimedia.org/T297159) [22:40:49] ejegg: OK - I have a fix for the single quotes ^^ [22:52:15] (03CR) 10jerkins-bot: [V: 04-1] Add unit test for single quote in name [wikimedia/fundraising/crm] - 10https://gerrit.wikimedia.org/r/748833 (https://phabricator.wikimedia.org/T297159) (owner: 10Eileen) [23:06:23] that test ^^ is meant to fail (until the other is merged) [23:21:12] nice, you got it at the token level [23:23:10] !log updated SmashPig standalone (IPN listener) from 235a261b to 5a7d0c2c [23:23:13] Logged the message at https://wikitech.wikimedia.org/wiki/Server_Admin_Log [23:27:13] !log updated fundraising CiviCRM from 07efd9fb to 2826afc3 [23:27:16] Logged the message at https://wikitech.wikimedia.org/wiki/Server_Admin_Log