mediawiki/extensions/DonationInterface: main (log #2093872)

sourcepatches

This run took 121 seconds.

From 82ba2a06029887687aa23b29988f71750b709e16 Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Mon, 8 Sep 2025 01:58:12 +0000
Subject: [PATCH] build: Updating mediawiki/mediawiki-codesniffer to 48.0.0

The following sniffs are failing and were disabled:
* MediaWiki.Commenting.CommentBeforeClass.SpacingAfter

Change-Id: I1d74c05ed9f207ddd715fd4b9932fadf443276a9
---
 .phpcs.xml                                    |  1 +
 adyen_gateway/adyen_checkout.adapter.php      |  1 -
 amazon_gateway/amazon_gateway.body.php        |  1 -
 braintree_gateway/braintree.adapter.php       |  1 -
 composer.json                                 |  2 +-
 dlocal_gateway/dlocal.adapter.php             |  1 -
 gateway_common/DonationData.php               |  4 +--
 gateway_common/employerSearch.api.php         |  1 -
 gateway_common/gateway.adapter.php            |  2 --
 gravy_gateway/gravy_gateway.body.php          |  4 ---
 special/FundraiserMaintenance.php             |  1 -
 .../Adapter/Adyen/AdyenFormLoadTest.php       |  1 -
 .../Adapter/Adyen/CheckoutCardTest.php        |  1 -
 .../Adapter/Adyen/CheckoutIdealTest.php       |  1 -
 tests/phpunit/Adapter/Amazon/AmazonTest.php   |  1 -
 .../Adapter/Braintree/PaypalPaymentTest.php   |  1 -
 tests/phpunit/Adapter/GatewayAdapterTest.php  |  2 --
 .../Adapter/Gravy/GravyFormLoadTest.php       |  1 -
 .../Adapter/Ingenico/IngenicoApiTest.php      |  1 -
 .../phpunit/Adapter/Ingenico/IngenicoTest.php |  1 -
 .../RealTimeBankTransferIdealTest.php         |  1 -
 .../Adapter/Ingenico/RecurringTest.php        |  1 -
 .../Adapter/PayPal/PayPalExpressTest.php      |  1 -
 tests/phpunit/DonationDataTest.php            | 28 ++-----------------
 tests/phpunit/DonationInterfaceTestCase.php   |  1 -
 tests/phpunit/LoggingTest.php                 |  1 -
 .../includes/test_gateway/test.adapter.php    |  1 -
 27 files changed, 6 insertions(+), 57 deletions(-)

diff --git a/.phpcs.xml b/.phpcs.xml
index 3e1fcdf..f6ba847 100644
--- a/.phpcs.xml
+++ b/.phpcs.xml
@@ -1,6 +1,7 @@
 <?xml version="1.0"?>
 <ruleset>
 	<rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki">
+		<exclude name="MediaWiki.Commenting.CommentBeforeClass.SpacingAfter" />
 		<exclude name="MediaWiki.Files.ClassMatchesFilename.NotMatch" />
 		<exclude name="MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName" />
 		<exclude name="MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment" />
diff --git a/adyen_gateway/adyen_checkout.adapter.php b/adyen_gateway/adyen_checkout.adapter.php
index 8a2a0fb..70098e6 100644
--- a/adyen_gateway/adyen_checkout.adapter.php
+++ b/adyen_gateway/adyen_checkout.adapter.php
@@ -440,7 +440,6 @@ class AdyenCheckoutAdapter extends GatewayAdapter implements RecurringConversion
 	 *
 	 * @param string $queue What queue to send the message to
 	 * @param bool $contactOnly If we only have the donor's contact information
-	 *
 	 */
 	protected function pushMessage( $queue, $contactOnly = false ) {
 		// Don't send recurring bank payments to the donations queue.
diff --git a/amazon_gateway/amazon_gateway.body.php b/amazon_gateway/amazon_gateway.body.php
index af6107f..8865cc5 100644
--- a/amazon_gateway/amazon_gateway.body.php
+++ b/amazon_gateway/amazon_gateway.body.php
@@ -13,7 +13,6 @@
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  * GNU General Public License for more details.
- *
  */
 
 class AmazonGateway extends GatewayPage {
diff --git a/braintree_gateway/braintree.adapter.php b/braintree_gateway/braintree.adapter.php
index 1535322..27468fa 100644
--- a/braintree_gateway/braintree.adapter.php
+++ b/braintree_gateway/braintree.adapter.php
@@ -28,7 +28,6 @@ class BraintreeAdapter extends GatewayAdapter implements RecurringConversion {
 	}
 
 	/**
-	 *
 	 * @param CreatePaymentResponse $createPaymentResult
 	 * @param PaymentProvider $provider
 	 * @return PaymentResult
diff --git a/composer.json b/composer.json
index b3b694d..c636809 100644
--- a/composer.json
+++ b/composer.json
@@ -35,7 +35,7 @@
 		"whichbrowser/parser": "^2.1"
 	},
 	"require-dev": {
-		"mediawiki/mediawiki-codesniffer": "47.0.0",
+		"mediawiki/mediawiki-codesniffer": "48.0.0",
 		"mediawiki/mediawiki-phan-config": "0.17.0",
 		"mediawiki/minus-x": "1.1.3",
 		"php-parallel-lint/php-console-highlighter": "1.0.0",
diff --git a/dlocal_gateway/dlocal.adapter.php b/dlocal_gateway/dlocal.adapter.php
index 1b99a9b..7e09615 100644
--- a/dlocal_gateway/dlocal.adapter.php
+++ b/dlocal_gateway/dlocal.adapter.php
@@ -194,7 +194,6 @@ class DlocalAdapter extends GatewayAdapter implements RecurringConversion {
 	}
 
 	/**
-	 *
 	 * @param PaymentProviderExtendedResponse $paymentDetailResponse
 	 * @param IPaymentProvider $paymentProvider
 	 * @return PaymentResult
diff --git a/gateway_common/DonationData.php b/gateway_common/DonationData.php
index 0b195f9..ddae0d8 100644
--- a/gateway_common/DonationData.php
+++ b/gateway_common/DonationData.php
@@ -37,11 +37,11 @@ class DonationData implements LogPrefixProvider {
 	 * get poked through to gateways in some form or other,
 	 * from a get or post. We handle the actual
 	 * normalization in normalize() helpers, below.
-	 * @TODO: It would be really neat if the gateways kept
+	 * @todo It would be really neat if the gateways kept
 	 * track of all the things that ***only they will ever
 	 * need***, and could interject those needs here...
 	 * Then we could really clean up.
-	 * @TODO also: Think about putting log alarms on the
+	 * @todo also: Think about putting log alarms on the
 	 * keys we want to see disappear forever, complete with
 	 * referrer for easy total destruction.
 	 * @var string[]
diff --git a/gateway_common/employerSearch.api.php b/gateway_common/employerSearch.api.php
index 67a3e03..ee28f00 100644
--- a/gateway_common/employerSearch.api.php
+++ b/gateway_common/employerSearch.api.php
@@ -12,7 +12,6 @@ use Wikimedia\ParamValidator\ParamValidator;
  * The datasource for this API is currently a CSV which contains the full
  * list of matchin gift employers available and is provided to us via a
  * third party. A separate process manages updating that datasource.
- *
  */
 class EmployerSearchAPI extends ApiBase {
 
diff --git a/gateway_common/gateway.adapter.php b/gateway_common/gateway.adapter.php
index 2a91173..25cf948 100644
--- a/gateway_common/gateway.adapter.php
+++ b/gateway_common/gateway.adapter.php
@@ -34,7 +34,6 @@ use SmashPig\PaymentData\ValidationAction;
 
 /**
  * GatewayAdapter
- *
  */
 abstract class GatewayAdapter implements GatewayType {
 	/**
@@ -1576,7 +1575,6 @@ abstract class GatewayAdapter implements GatewayType {
 	 *
 	 * @param string $queue What queue to send the message to
 	 * @param bool $contactOnly If we only have the donor's contact information
-	 *
 	 */
 	protected function pushMessage( $queue, $contactOnly = false ) {
 		$this->logger->info( "Pushing transaction to queue [$queue]" );
diff --git a/gravy_gateway/gravy_gateway.body.php b/gravy_gateway/gravy_gateway.body.php
index f80c64f..0cac2a7 100644
--- a/gravy_gateway/gravy_gateway.body.php
+++ b/gravy_gateway/gravy_gateway.body.php
@@ -143,7 +143,6 @@ class GravyGateway extends GatewayPage {
 	}
 
 	/**
-	 *
 	 * @return bool
 	 */
 	private function isCreditCard(): bool {
@@ -151,7 +150,6 @@ class GravyGateway extends GatewayPage {
 	}
 
 	/**
-	 *
 	 * @return bool
 	 */
 	private function isACH(): bool {
@@ -160,7 +158,6 @@ class GravyGateway extends GatewayPage {
 	}
 
 	/**
-	 *
 	 * @return bool
 	 */
 	private function isGooglePay(): bool {
@@ -168,7 +165,6 @@ class GravyGateway extends GatewayPage {
 	}
 
 	/**
-	 *
 	 * @return bool
 	 */
 	private function isApplePay(): bool {
diff --git a/special/FundraiserMaintenance.php b/special/FundraiserMaintenance.php
index 8af2815..7684eea 100644
--- a/special/FundraiserMaintenance.php
+++ b/special/FundraiserMaintenance.php
@@ -3,7 +3,6 @@
 use MediaWiki\SpecialPage\UnlistedSpecialPage;
 
 /**
- *
  * -- License --
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
diff --git a/tests/phpunit/Adapter/Adyen/AdyenFormLoadTest.php b/tests/phpunit/Adapter/Adyen/AdyenFormLoadTest.php
index 369f210..f51b979 100644
--- a/tests/phpunit/Adapter/Adyen/AdyenFormLoadTest.php
+++ b/tests/phpunit/Adapter/Adyen/AdyenFormLoadTest.php
@@ -20,7 +20,6 @@ use SmashPig\PaymentProviders\Adyen\CardPaymentProvider;
 use SmashPig\PaymentProviders\Responses\PaymentMethodResponse;
 
 /**
- *
  * @group Fundraising
  * @group DonationInterface
  * @group Adyen
diff --git a/tests/phpunit/Adapter/Adyen/CheckoutCardTest.php b/tests/phpunit/Adapter/Adyen/CheckoutCardTest.php
index b06357c..c936ca1 100644
--- a/tests/phpunit/Adapter/Adyen/CheckoutCardTest.php
+++ b/tests/phpunit/Adapter/Adyen/CheckoutCardTest.php
@@ -478,7 +478,6 @@ class CheckoutCardTest extends BaseAdyenCheckoutTestCase {
 	/**
 	 * Integration test to verify that the createPayment method isn't called
 	 * when user_ip is added to the deny list
-	 *
 	 */
 	public function testDoPaymentAttemptBlockedDueToIPInDenyList() {
 		$threshold = 2;
diff --git a/tests/phpunit/Adapter/Adyen/CheckoutIdealTest.php b/tests/phpunit/Adapter/Adyen/CheckoutIdealTest.php
index c362a06..dff912c 100644
--- a/tests/phpunit/Adapter/Adyen/CheckoutIdealTest.php
+++ b/tests/phpunit/Adapter/Adyen/CheckoutIdealTest.php
@@ -223,7 +223,6 @@ class CheckoutIdealTest extends BaseAdyenCheckoutTestCase {
 	/**
 	 * Integration test to verify that the createPayment method isn't called
 	 * when user_ip is added to the deny list
-	 *
 	 */
 	public function testDoPaymentIdealAttemptBlockedDueToIPInDenyList() {
 		$this->setMwGlobalsForIPVelocityFilterTest( 2 );
diff --git a/tests/phpunit/Adapter/Amazon/AmazonTest.php b/tests/phpunit/Adapter/Amazon/AmazonTest.php
index 456954f..3edfea8 100644
--- a/tests/phpunit/Adapter/Amazon/AmazonTest.php
+++ b/tests/phpunit/Adapter/Amazon/AmazonTest.php
@@ -23,7 +23,6 @@ use SmashPig\PaymentProviders\Amazon\Tests\AmazonTestConfiguration;
 use SmashPig\Tests\TestingContext;
 
 /**
- *
  * @group Fundraising
  * @group DonationInterface
  * @group Amazon
diff --git a/tests/phpunit/Adapter/Braintree/PaypalPaymentTest.php b/tests/phpunit/Adapter/Braintree/PaypalPaymentTest.php
index fafad8a..1f51be1 100644
--- a/tests/phpunit/Adapter/Braintree/PaypalPaymentTest.php
+++ b/tests/phpunit/Adapter/Braintree/PaypalPaymentTest.php
@@ -252,7 +252,6 @@ class PaypalPaymentTest extends BaseBraintreeTestCase {
 	/**
 	 * Integration test to verify that the createPayment method isn't called
 	 * when user_ip is added to the deny list
-	 *
 	 */
 	public function testDoPaymentAttemptBlockedDueToIPInDenyList() {
 		$threshold = 2;
diff --git a/tests/phpunit/Adapter/GatewayAdapterTest.php b/tests/phpunit/Adapter/GatewayAdapterTest.php
index a71e0fe..319d358 100644
--- a/tests/phpunit/Adapter/GatewayAdapterTest.php
+++ b/tests/phpunit/Adapter/GatewayAdapterTest.php
@@ -43,7 +43,6 @@ use Wikimedia\TestingAccessWrapper;
 class GatewayAdapterTest extends DonationInterfaceTestCase {
 
 	/**
-	 *
 	 * @covers GatewayAdapter::__construct
 	 * @covers GatewayAdapter::defineVarMap
 	 * @covers GatewayAdapter::defineTransactions
@@ -197,7 +196,6 @@ class GatewayAdapterTest extends DonationInterfaceTestCase {
 	}
 
 	/**
-	 *
 	 * @covers GatewayAdapter::__construct
 	 * @covers DonationData::__construct
 	 */
diff --git a/tests/phpunit/Adapter/Gravy/GravyFormLoadTest.php b/tests/phpunit/Adapter/Gravy/GravyFormLoadTest.php
index cc136aa..2ae9c4a 100644
--- a/tests/phpunit/Adapter/Gravy/GravyFormLoadTest.php
+++ b/tests/phpunit/Adapter/Gravy/GravyFormLoadTest.php
@@ -20,7 +20,6 @@ use SmashPig\PaymentProviders\Gravy\CardPaymentProvider;
 use SmashPig\PaymentProviders\Responses\CreatePaymentSessionResponse;
 
 /**
- *
  * @group Fundraising
  * @group DonationInterface
  * @group Gravy
diff --git a/tests/phpunit/Adapter/Ingenico/IngenicoApiTest.php b/tests/phpunit/Adapter/Ingenico/IngenicoApiTest.php
index c8a5122..1f6e9f7 100644
--- a/tests/phpunit/Adapter/Ingenico/IngenicoApiTest.php
+++ b/tests/phpunit/Adapter/Ingenico/IngenicoApiTest.php
@@ -318,7 +318,6 @@ class IngenicoApiTest extends DonationInterfaceApiTestCase {
 	 * GatewatAdapterApiTest suite once we get that up and running.
 	 *
 	 * @group DonationInterfaceOptionalFields
-	 *
 	 */
 	public function testOptionalFieldBehaviour(): void {
 		$this->overrideConfigValues( [
diff --git a/tests/phpunit/Adapter/Ingenico/IngenicoTest.php b/tests/phpunit/Adapter/Ingenico/IngenicoTest.php
index a01683e..85d53fb 100644
--- a/tests/phpunit/Adapter/Ingenico/IngenicoTest.php
+++ b/tests/phpunit/Adapter/Ingenico/IngenicoTest.php
@@ -27,7 +27,6 @@ use SmashPig\PaymentProviders\Responses\PaymentProviderExtendedResponse;
 use Wikimedia\TestingAccessWrapper;
 
 /**
- *
  * @group Fundraising
  * @group DonationInterface
  * @group Ingenico
diff --git a/tests/phpunit/Adapter/Ingenico/RealTimeBankTransferIdealTest.php b/tests/phpunit/Adapter/Ingenico/RealTimeBankTransferIdealTest.php
index d97601c..52b2057 100644
--- a/tests/phpunit/Adapter/Ingenico/RealTimeBankTransferIdealTest.php
+++ b/tests/phpunit/Adapter/Ingenico/RealTimeBankTransferIdealTest.php
@@ -22,7 +22,6 @@ use SmashPig\Tests\TestingContext;
 use SmashPig\Tests\TestingProviderConfiguration;
 
 /**
- *
  * @group Fundraising
  * @group DonationInterface
  * @group Ingenico
diff --git a/tests/phpunit/Adapter/Ingenico/RecurringTest.php b/tests/phpunit/Adapter/Ingenico/RecurringTest.php
index 9cb7cb8..f2aeca7 100644
--- a/tests/phpunit/Adapter/Ingenico/RecurringTest.php
+++ b/tests/phpunit/Adapter/Ingenico/RecurringTest.php
@@ -19,7 +19,6 @@
 use SmashPig\Core\DataStores\QueueWrapper;
 
 /**
- *
  * @group Fundraising
  * @group DonationInterface
  * @group Ingenico
diff --git a/tests/phpunit/Adapter/PayPal/PayPalExpressTest.php b/tests/phpunit/Adapter/PayPal/PayPalExpressTest.php
index 1f4c945..c979d94 100644
--- a/tests/phpunit/Adapter/PayPal/PayPalExpressTest.php
+++ b/tests/phpunit/Adapter/PayPal/PayPalExpressTest.php
@@ -32,7 +32,6 @@ use SmashPig\Tests\TestingContext;
 use SmashPig\Tests\TestingProviderConfiguration;
 
 /**
- *
  * @group Fundraising
  * @group DonationInterface
  * @group PayPal
diff --git a/tests/phpunit/DonationDataTest.php b/tests/phpunit/DonationDataTest.php
index 224ea12..2ec0aec 100644
--- a/tests/phpunit/DonationDataTest.php
+++ b/tests/phpunit/DonationDataTest.php
@@ -224,9 +224,6 @@ class DonationDataTest extends DonationInterfaceTestCase {
 		$this->assertNotEmpty( $matches );
 	}
 
-	/**
-	 *
-	 */
 	public function testRepopulate() {
 		$expected = $this->testData;
 
@@ -244,8 +241,8 @@ class DonationDataTest extends DonationInterfaceTestCase {
 		$returned = $ddObj->getData();
 		// unset these, because they're always new
 		$unsettable = [
-			'order_id',
-			'contribution_tracking_id'
+		'order_id',
+		'contribution_tracking_id'
 		];
 
 		foreach ( $unsettable as $thing ) {
@@ -256,9 +253,6 @@ class DonationDataTest extends DonationInterfaceTestCase {
 		$this->assertEquals( $expected, $returned, "The forced test data did not populate as expected." );
 	}
 
-	/**
-	 *
-	 */
 	public function testIsSomething() {
 		$data = $this->testData;
 		unset( $data['postal_code'] );
@@ -268,9 +262,6 @@ class DonationDataTest extends DonationInterfaceTestCase {
 		$this->assertTrue( $ddObj->isSomething( 'last_name' ), "last_name should currently be something." );
 	}
 
-	/**
-	 *
-	 */
 	public function testSetNormalizedAmount_amtGiven() {
 		$data = $this->testData;
 		$data['amount'] = 'this is not a number';
@@ -281,9 +272,6 @@ class DonationDataTest extends DonationInterfaceTestCase {
 		$this->assertArrayNotHasKey( 'amountGiven', $returned, "amountGiven should have been removed from the data" );
 	}
 
-	/**
-	 *
-	 */
 	public function testSetNormalizedAmount_amount() {
 		$data = $this->testData;
 		$data['amount'] = 88.15;
@@ -294,9 +282,6 @@ class DonationDataTest extends DonationInterfaceTestCase {
 		$this->assertArrayNotHasKey( 'amountGiven', $returned, "amountGiven should have been removed from the data" );
 	}
 
-	/**
-	 *
-	 */
 	public function testSetNormalizedAmount_negativeAmount() {
 		$data = $this->testData;
 		$data['amount'] = -1;
@@ -307,9 +292,6 @@ class DonationDataTest extends DonationInterfaceTestCase {
 		$this->assertArrayNotHasKey( 'amountOther', $returned, "amountOther should have been removed from the data" );
 	}
 
-	/**
-	 *
-	 */
 	public function testSetNormalizedAmount_noGoodAmount() {
 		$data = $this->testData;
 		$data['amount'] = 'splunge';
@@ -336,9 +318,6 @@ class DonationDataTest extends DonationInterfaceTestCase {
 		$this->assertEquals( 'USD', $returned['currency'], 'Currency code was not properly reset' );
 	}
 
-	/**
-	 *
-	 */
 	public function testSetNormalizedLanguage_uselang() {
 		$data = $this->testData;
 		unset( $data['uselang'] );
@@ -352,9 +331,6 @@ class DonationDataTest extends DonationInterfaceTestCase {
 		$this->assertArrayNotHasKey( 'uselang', $returned, "'uselang' should have been removed from the data" );
 	}
 
-	/**
-	 *
-	 */
 	public function testSetNormalizedLanguage_language() {
 		$data = $this->testData;
 		unset( $data['uselang'] );
diff --git a/tests/phpunit/DonationInterfaceTestCase.php b/tests/phpunit/DonationInterfaceTestCase.php
index 9f0c687..181599a 100644
--- a/tests/phpunit/DonationInterfaceTestCase.php
+++ b/tests/phpunit/DonationInterfaceTestCase.php
@@ -165,7 +165,6 @@ abstract class DonationInterfaceTestCase extends MediaWikiIntegrationTestCase {
 	}
 
 	/**
-	 *
 	 * @param string $country The country we want the test user to be from.
 	 * @return array Donor data to use
 	 * @throws OutOfBoundsException when there is no data available for the requested country
diff --git a/tests/phpunit/LoggingTest.php b/tests/phpunit/LoggingTest.php
index 01d99fd..39b2179 100644
--- a/tests/phpunit/LoggingTest.php
+++ b/tests/phpunit/LoggingTest.php
@@ -18,7 +18,6 @@
 use Psr\Log\LogLevel;
 
 /**
- *
  * @group Fundraising
  * @group DonationInterface
  * @coversNothing
diff --git a/tests/phpunit/includes/test_gateway/test.adapter.php b/tests/phpunit/includes/test_gateway/test.adapter.php
index 322b161..c4620d6 100644
--- a/tests/phpunit/includes/test_gateway/test.adapter.php
+++ b/tests/phpunit/includes/test_gateway/test.adapter.php
@@ -13,7 +13,6 @@
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  * GNU General Public License for more details.
- *
  */
 
 trait TTestingAdapter {
-- 
2.39.5

$ date
--- stdout ---
Mon Sep  8 01:56:20 UTC 2025

--- end ---
$ git clone file:///srv/git/mediawiki-extensions-DonationInterface.git repo --depth=1 -b master
--- stderr ---
Cloning into 'repo'...
--- stdout ---

--- end ---
$ git config user.name libraryupgrader
--- stdout ---

--- end ---
$ git config user.email tools.libraryupgrader@tools.wmflabs.org
--- stdout ---

--- end ---
$ git submodule update --init
--- stdout ---

--- end ---
$ grr init
--- stdout ---
Installed commit-msg hook.

--- end ---
$ git show-ref refs/heads/master
--- stdout ---
8caff5c5cc0e1fe7eed3fe157711bad43b54262c refs/heads/master

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "babel-core": {
      "name": "babel-core",
      "severity": "critical",
      "isDirect": true,
      "via": [
        "babel-helpers",
        "babel-register",
        "babel-template",
        "babel-traverse",
        "json5"
      ],
      "effects": [
        "babel-register"
      ],
      "range": "5.8.20 - 7.0.0-beta.3",
      "nodes": [
        "node_modules/babel-core"
      ],
      "fixAvailable": {
        "name": "babel-core",
        "version": "4.7.16",
        "isSemVerMajor": true
      }
    },
    "babel-helpers": {
      "name": "babel-helpers",
      "severity": "critical",
      "isDirect": false,
      "via": [
        "babel-template"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/babel-helpers"
      ],
      "fixAvailable": true
    },
    "babel-register": {
      "name": "babel-register",
      "severity": "high",
      "isDirect": false,
      "via": [
        "babel-core"
      ],
      "effects": [
        "babel-core"
      ],
      "range": "*",
      "nodes": [
        "node_modules/babel-register"
      ],
      "fixAvailable": {
        "name": "babel-core",
        "version": "4.7.16",
        "isSemVerMajor": true
      }
    },
    "babel-template": {
      "name": "babel-template",
      "severity": "critical",
      "isDirect": false,
      "via": [
        "babel-traverse"
      ],
      "effects": [
        "babel-helpers"
      ],
      "range": "*",
      "nodes": [
        "node_modules/babel-template"
      ],
      "fixAvailable": true
    },
    "babel-traverse": {
      "name": "babel-traverse",
      "severity": "critical",
      "isDirect": false,
      "via": [
        {
          "source": 1096879,
          "name": "babel-traverse",
          "dependency": "babel-traverse",
          "title": "Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code",
          "url": "https://github.com/advisories/GHSA-67hx-6x53-jw92",
          "severity": "critical",
          "cwe": [
            "CWE-184",
            "CWE-697"
          ],
          "cvss": {
            "score": 9.4,
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"
          },
          "range": "<7.23.2"
        }
      ],
      "effects": [
        "babel-core",
        "babel-template"
      ],
      "range": "*",
      "nodes": [
        "node_modules/babel-traverse"
      ],
      "fixAvailable": {
        "name": "babel-core",
        "version": "4.7.16",
        "isSemVerMajor": true
      }
    },
    "json5": {
      "name": "json5",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1096543,
          "name": "json5",
          "dependency": "json5",
          "title": "Prototype Pollution in JSON5 via Parse Method",
          "url": "https://github.com/advisories/GHSA-9c47-m6qq-7p4h",
          "severity": "high",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 7.1,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:H"
          },
          "range": "<1.0.2"
        }
      ],
      "effects": [
        "babel-core"
      ],
      "range": "<1.0.2",
      "nodes": [
        "node_modules/babel-core/node_modules/json5"
      ],
      "fixAvailable": {
        "name": "babel-core",
        "version": "4.7.16",
        "isSemVerMajor": true
      }
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 0,
      "moderate": 0,
      "high": 2,
      "critical": 4,
      "total": 6
    },
    "dependencies": {
      "prod": 1,
      "dev": 1112,
      "optional": 3,
      "peer": 2,
      "peerOptional": 0,
      "total": 1112
    }
  }
}

--- end ---
$ /usr/bin/composer install
--- stderr ---
No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See https://getcomposer.org/install for more information.
Loading composer repositories with package information
                                                      Updating dependencies
Lock file operations: 74 installs, 0 updates, 0 removals
  - Locking addshore/psr-6-mediawiki-bagostuff-adapter (0.1)
  - Locking amzn/login-and-pay-with-amazon-sdk-php (2.5.0)
  - Locking clio/clio (0.1.8)
  - Locking coderkungfu/php-queue (1.0.1)
  - Locking composer/ca-bundle (1.5.8)
  - Locking composer/pcre (3.3.2)
  - Locking composer/semver (3.4.3)
  - Locking composer/spdx-licenses (1.5.9)
  - Locking composer/xdebug-handler (3.0.5)
  - Locking corneltek/getoptionkit (2.7.3)
  - Locking dealerdirect/phpcodesniffer-composer-installer (v1.1.2)
  - Locking doctrine/deprecations (1.1.5)
  - Locking felixfbecker/advanced-json-rpc (v3.2.1)
  - Locking geoip2/geoip2 (v2.13.0)
  - Locking gr4vy/gr4vy-php (v0.27.0)
  - Locking guzzlehttp/guzzle (7.10.0)
  - Locking guzzlehttp/promises (2.3.0)
  - Locking guzzlehttp/psr7 (2.8.0)
  - Locking lcobucci/clock (3.3.1)
  - Locking lcobucci/jwt (4.3.0)
  - Locking maxmind-db/reader (v1.12.1)
  - Locking maxmind/minfraud (v1.23.0)
  - Locking maxmind/web-service-common (v0.9.0)
  - Locking mediawiki/mediawiki-codesniffer (v47.0.0)
  - Locking mediawiki/mediawiki-phan-config (0.17.0)
  - Locking mediawiki/minus-x (1.1.3)
  - Locking mediawiki/phan-taint-check-plugin (7.0.0)
  - Locking microsoft/tolerant-php-parser (v0.1.2)
  - Locking monolog/monolog (2.10.0)
  - Locking netresearch/jsonmapper (v4.5.0)
  - Locking phan/phan (5.5.1)
  - Locking php-parallel-lint/php-console-color (v1.0.1)
  - Locking php-parallel-lint/php-console-highlighter (v1.0.0)
  - Locking php-parallel-lint/php-parallel-lint (v1.4.0)
  - Locking phpcsstandards/phpcsextra (1.2.1)
  - Locking phpcsstandards/phpcsutils (1.0.12)
  - Locking phpdocumentor/reflection-common (2.2.0)
  - Locking phpdocumentor/reflection-docblock (5.6.3)
  - Locking phpdocumentor/type-resolver (1.10.0)
  - Locking phpmailer/phpmailer (v6.10.0)
  - Locking phpstan/phpdoc-parser (2.3.0)
  - Locking predis/predis (v1.1.10)
  - Locking psr/cache (1.0.1)
  - Locking psr/clock (1.0.0)
  - Locking psr/container (2.0.2)
  - Locking psr/http-client (1.0.3)
  - Locking psr/http-factory (1.1.0)
  - Locking psr/http-message (2.0)
  - Locking psr/log (1.1.4)
  - Locking ralouphie/getallheaders (3.0.3)
  - Locking relisten/forceutf8 (1.1.0)
  - Locking respect/stringifier (0.2.0)
  - Locking respect/validation (2.4.4)
  - Locking sabre/event (5.1.7)
  - Locking squizlabs/php_codesniffer (3.12.2)
  - Locking symfony/console (v7.3.3)
  - Locking symfony/deprecation-contracts (v3.6.0)
  - Locking symfony/http-foundation (v6.4.25)
  - Locking symfony/polyfill-ctype (v1.33.0)
  - Locking symfony/polyfill-intl-grapheme (v1.33.0)
  - Locking symfony/polyfill-intl-normalizer (v1.33.0)
  - Locking symfony/polyfill-mbstring (v1.33.0)
  - Locking symfony/polyfill-php80 (v1.33.0)
  - Locking symfony/polyfill-php83 (v1.33.0)
  - Locking symfony/service-contracts (v3.6.0)
  - Locking symfony/string (v7.3.3)
  - Locking symfony/yaml (v7.3.3)
  - Locking tysonandre/var_representation_polyfill (0.1.3)
  - Locking webmozart/assert (1.11.0)
  - Locking whichbrowser/parser (v2.1.8)
  - Locking wikimedia/remex-html (5.1.0)
  - Locking wikimedia/smash-pig (v0.9.7.12)
  - Locking wikimedia/testing-access-wrapper (3.0.0)
  - Locking wikimedia/utfnormal (4.0.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 74 installs, 0 updates, 0 removals
  - Downloading psr/cache (1.0.1)
  - Downloading addshore/psr-6-mediawiki-bagostuff-adapter (0.1)
  - Downloading clio/clio (0.1.8)
  - Downloading lcobucci/clock (3.3.1)
  - Downloading lcobucci/jwt (4.3.0)
  - Downloading maxmind/web-service-common (v0.9.0)
  - Downloading maxmind/minfraud (v1.23.0)
  - Downloading relisten/forceutf8 (1.1.0)
  - Downloading whichbrowser/parser (v2.1.8)
  - Downloading symfony/http-foundation (v6.4.25)
  - Downloading predis/predis (v1.1.10)
  - Downloading gr4vy/gr4vy-php (v0.27.0)
  - Downloading corneltek/getoptionkit (2.7.3)
  - Downloading coderkungfu/php-queue (1.0.1)
  - Syncing amzn/login-and-pay-with-amazon-sdk-php (2.5.0) into cache
  - Downloading wikimedia/smash-pig (v0.9.7.12)
  0/15 [>---------------------------]   0%
  4/15 [=======>--------------------]  26%
 11/15 [====================>-------]  73%
 14/15 [==========================>-]  93%
 15/15 [============================] 100%
  - Installing squizlabs/php_codesniffer (3.12.2): Extracting archive
  - Installing dealerdirect/phpcodesniffer-composer-installer (v1.1.2): Extracting archive
  - Installing psr/cache (1.0.1): Extracting archive
  - Installing addshore/psr-6-mediawiki-bagostuff-adapter (0.1): Extracting archive
  - Installing clio/clio (0.1.8): Extracting archive
  - Installing composer/pcre (3.3.2): Extracting archive
  - Installing symfony/deprecation-contracts (v3.6.0): Extracting archive
  - Installing psr/http-message (2.0): Extracting archive
  - Installing psr/http-client (1.0.3): Extracting archive
  - Installing ralouphie/getallheaders (3.0.3): Extracting archive
  - Installing psr/http-factory (1.1.0): Extracting archive
  - Installing guzzlehttp/psr7 (2.8.0): Extracting archive
  - Installing guzzlehttp/promises (2.3.0): Extracting archive
  - Installing guzzlehttp/guzzle (7.10.0): Extracting archive
  - Installing psr/clock (1.0.0): Extracting archive
  - Installing lcobucci/clock (3.3.1): Extracting archive
  - Installing symfony/polyfill-mbstring (v1.33.0): Extracting archive
  - Installing lcobucci/jwt (4.3.0): Extracting archive
  - Installing maxmind-db/reader (v1.12.1): Extracting archive
  - Installing respect/stringifier (0.2.0): Extracting archive
  - Installing respect/validation (2.4.4): Extracting archive
  - Installing composer/ca-bundle (1.5.8): Extracting archive
  - Installing maxmind/web-service-common (v0.9.0): Extracting archive
  - Installing geoip2/geoip2 (v2.13.0): Extracting archive
  - Installing maxmind/minfraud (v1.23.0): Extracting archive
  - Installing symfony/polyfill-php80 (v1.33.0): Extracting archive
  - Installing phpcsstandards/phpcsutils (1.0.12): Extracting archive
  - Installing phpcsstandards/phpcsextra (1.2.1): Extracting archive
  - Installing composer/spdx-licenses (1.5.9): Extracting archive
  - Installing composer/semver (3.4.3): Extracting archive
  - Installing mediawiki/mediawiki-codesniffer (v47.0.0): Extracting archive
  - Installing tysonandre/var_representation_polyfill (0.1.3): Extracting archive
  - Installing symfony/polyfill-intl-normalizer (v1.33.0): Extracting archive
  - Installing symfony/polyfill-intl-grapheme (v1.33.0): Extracting archive
  - Installing symfony/polyfill-ctype (v1.33.0): Extracting archive
  - Installing symfony/string (v7.3.3): Extracting archive
  - Installing psr/container (2.0.2): Extracting archive
  - Installing symfony/service-contracts (v3.6.0): Extracting archive
  - Installing symfony/console (v7.3.3): Extracting archive
  - Installing sabre/event (5.1.7): Extracting archive
  - Installing netresearch/jsonmapper (v4.5.0): Extracting archive
  - Installing microsoft/tolerant-php-parser (v0.1.2): Extracting archive
  - Installing webmozart/assert (1.11.0): Extracting archive
  - Installing phpstan/phpdoc-parser (2.3.0): Extracting archive
  - Installing phpdocumentor/reflection-common (2.2.0): Extracting archive
  - Installing doctrine/deprecations (1.1.5): Extracting archive
  - Installing phpdocumentor/type-resolver (1.10.0): Extracting archive
  - Installing phpdocumentor/reflection-docblock (5.6.3): Extracting archive
  - Installing felixfbecker/advanced-json-rpc (v3.2.1): Extracting archive
  - Installing psr/log (1.1.4): Extracting archive
  - Installing composer/xdebug-handler (3.0.5): Extracting archive
  - Installing phan/phan (5.5.1): Extracting archive
  - Installing mediawiki/phan-taint-check-plugin (7.0.0): Extracting archive
  - Installing mediawiki/mediawiki-phan-config (0.17.0): Extracting archive
  - Installing mediawiki/minus-x (1.1.3): Extracting archive
  - Installing monolog/monolog (2.10.0): Extracting archive
  - Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive
  - Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive
  - Installing php-parallel-lint/php-parallel-lint (v1.4.0): Extracting archive
  - Installing relisten/forceutf8 (1.1.0): Extracting archive
  - Installing symfony/polyfill-php83 (v1.33.0): Extracting archive
  - Installing whichbrowser/parser (v2.1.8): Extracting archive
  - Installing wikimedia/utfnormal (4.0.0): Extracting archive
  - Installing wikimedia/remex-html (5.1.0): Extracting archive
  - Installing symfony/yaml (v7.3.3): Extracting archive
  - Installing symfony/http-foundation (v6.4.25): Extracting archive
  - Installing predis/predis (v1.1.10): Extracting archive
  - Installing phpmailer/phpmailer (v6.10.0): Extracting archive
  - Installing gr4vy/gr4vy-php (v0.27.0): Extracting archive
  - Installing corneltek/getoptionkit (2.7.3): Extracting archive
  - Installing coderkungfu/php-queue (1.0.1): Extracting archive
  - Installing amzn/login-and-pay-with-amazon-sdk-php (2.5.0): Cloning 0c923fe992 from cache
  - Installing wikimedia/smash-pig (v0.9.7.12): Extracting archive
  - Installing wikimedia/testing-access-wrapper (3.0.0): Extracting archive
  0/71 [>---------------------------]   0%
 19/71 [=======>--------------------]  26%
 31/71 [============>---------------]  43%
 43/71 [================>-----------]  60%
 54/71 [=====================>------]  76%
 64/71 [=========================>--]  90%
 71/71 [============================] 100%
30 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating optimized autoload files
Class SmashPig\PaymentProviders\Fundraiseup\Tests\AuditTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Fundraiseup/Tests/phpunit/AuditTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\Manual\TestCreatePayment located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/manual/TestCreatePayment.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\IdealStatusProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/phpunit/IdealStatusProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\HostedCheckoutProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/phpunit/HostedCheckoutProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\ApiTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/phpunit/ApiTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\AuditTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/phpunit/AuditTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\AuthenticatorTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/phpunit/AuthenticatorTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\BankPaymentProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/phpunit/BankPaymentProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\PaymentProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/phpunit/PaymentProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\TokenizeRecurringJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/phpunit/TokenizeRecurringJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Amazon\Tests\RecordPaymentsJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Amazon/Tests/phpunit/RecordPaymentsJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Amazon\Tests\NormalizeTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Amazon/Tests/phpunit/NormalizeTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Amazon\Tests\ActionsTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Amazon/Tests/phpunit/ActionsTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Amazon\Tests\ApiTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Amazon/Tests/phpunit/ApiTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Amazon\Tests\AuditTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Amazon/Tests/phpunit/AuditTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\CaptureJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/CaptureJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\RestResponseValidatorTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/RestResponseValidatorTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\CancelRecurringActionTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/CancelRecurringActionTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\RequeueMessageTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/RequeueMessageTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Tests\PaymentCaptureActionTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/PaymentCaptureActionTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\RecurringContractActionTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/RecurringContractActionTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Tests\RefundInitiatedActionTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/RefundInitiatedActionTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\RecurringContractJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/RecurringContractJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\RecurringPaymentTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/RecurringPaymentTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Tests\ReferenceDataTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/ReferenceDataTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\ApiTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/ApiTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\AutoRescueActionTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/AutoRescueActionTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Tests\ChargebackInitiatedActionTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/ChargebackInitiatedActionTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Tests\ReportAvailableTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/ReportAvailableTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\AuditTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/AuditTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\RecordCaptureJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/RecordCaptureJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Tests\TokenizeRecurringJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/TokenizeRecurringJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Tests\CaptureResponseActionTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/CaptureResponseActionTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Gravy\phpunit\RiskScoresTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Gravy/Tests/phpunit/RiskScoresTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\dlocal\Tests\PaidMessageJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/dlocal/Tests/phpunit/PaidMessageJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\dlocal\Tests\RestResponseValidatorTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/dlocal/Tests/phpunit/RestResponseValidatorTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\dlocal\Tests\RejectedMessageJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/dlocal/Tests/phpunit/RejectedMessageJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\dlocal\Tests\SignatureCalculatorTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/dlocal/Tests/phpunit/SignatureCalculatorTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\dlocal\Tests\AuthorizedMessageJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/dlocal/Tests/phpunit/AuthorizedMessageJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\dlocal\Tests\ApiTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/dlocal/Tests/phpunit/ApiTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\dlocal\Test\AuditTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/dlocal/Tests/phpunit/AuditTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\dlocal\Tests\CardPaymentProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/dlocal/Tests/phpunit/CardPaymentProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\PayPal\Tests\CaptureIncomingMessageTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/PayPal/Tests/phpunit/CaptureIncomingMessageTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\PayPal\Tests\PaymentProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/PayPal/Tests/phpunit/PaymentProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Braintree\Tests\SignatureValidatorTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Braintree/Tests/phpunit/SignatureValidatorTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Braintree\Tests\PayPalPaymentProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Braintree/Tests/phpunit/PayPalPaymentProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Braintree\Tests\VenmoPaymentProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Braintree/Tests/phpunit/VenmoPaymentProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Braintree\Tests\ApiTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Braintree/Tests/phpunit/ApiTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Braintree\Test\AuditTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Braintree/Tests/phpunit/AuditTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Braintree\Tests\PaymentProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Braintree/Tests/phpunit/PaymentProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
29 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
--- stdout ---
PHP CodeSniffer Config installed_paths set to ../../mediawiki/mediawiki-codesniffer,../../phpcsstandards/phpcsextra,../../phpcsstandards/phpcsutils

--- end ---
Upgrading c:mediawiki/mediawiki-codesniffer from 47.0.0 -> 48.0.0
$ /usr/bin/composer update
--- stderr ---
Loading composer repositories with package information
                                                      Updating dependencies
Lock file operations: 0 installs, 5 updates, 0 removals
  - Upgrading composer/semver (3.4.3 => 3.4.4)
  - Upgrading mediawiki/mediawiki-codesniffer (v47.0.0 => v48.0.0)
  - Upgrading phpcsstandards/phpcsextra (1.2.1 => 1.4.0)
  - Upgrading phpcsstandards/phpcsutils (1.0.12 => 1.1.1)
  - Upgrading squizlabs/php_codesniffer (3.12.2 => 3.13.2)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 0 installs, 5 updates, 0 removals
    0 [>---------------------------]    0 [->--------------------------]
  - Upgrading squizlabs/php_codesniffer (3.12.2 => 3.13.2): Extracting archive
  - Upgrading phpcsstandards/phpcsutils (1.0.12 => 1.1.1): Extracting archive
  - Upgrading phpcsstandards/phpcsextra (1.2.1 => 1.4.0): Extracting archive
  - Upgrading composer/semver (3.4.3 => 3.4.4): Extracting archive
  - Upgrading mediawiki/mediawiki-codesniffer (v47.0.0 => v48.0.0): Extracting archive
 0/5 [>---------------------------]   0%
 4/5 [======================>-----]  80%
 5/5 [============================] 100%
Generating optimized autoload files
Class SmashPig\PaymentProviders\Fundraiseup\Tests\AuditTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Fundraiseup/Tests/phpunit/AuditTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\Manual\TestCreatePayment located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/manual/TestCreatePayment.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\IdealStatusProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/phpunit/IdealStatusProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\HostedCheckoutProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/phpunit/HostedCheckoutProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\ApiTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/phpunit/ApiTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\AuditTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/phpunit/AuditTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\AuthenticatorTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/phpunit/AuthenticatorTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\BankPaymentProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/phpunit/BankPaymentProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\PaymentProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/phpunit/PaymentProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\TokenizeRecurringJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/phpunit/TokenizeRecurringJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Amazon\Tests\RecordPaymentsJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Amazon/Tests/phpunit/RecordPaymentsJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Amazon\Tests\NormalizeTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Amazon/Tests/phpunit/NormalizeTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Amazon\Tests\ActionsTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Amazon/Tests/phpunit/ActionsTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Amazon\Tests\ApiTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Amazon/Tests/phpunit/ApiTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Amazon\Tests\AuditTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Amazon/Tests/phpunit/AuditTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\CaptureJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/CaptureJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\RestResponseValidatorTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/RestResponseValidatorTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\CancelRecurringActionTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/CancelRecurringActionTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\RequeueMessageTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/RequeueMessageTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Tests\PaymentCaptureActionTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/PaymentCaptureActionTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\RecurringContractActionTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/RecurringContractActionTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Tests\RefundInitiatedActionTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/RefundInitiatedActionTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\RecurringContractJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/RecurringContractJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\RecurringPaymentTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/RecurringPaymentTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Tests\ReferenceDataTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/ReferenceDataTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\ApiTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/ApiTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\AutoRescueActionTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/AutoRescueActionTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Tests\ChargebackInitiatedActionTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/ChargebackInitiatedActionTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Tests\ReportAvailableTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/ReportAvailableTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\AuditTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/AuditTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\RecordCaptureJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/RecordCaptureJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Tests\TokenizeRecurringJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/TokenizeRecurringJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Tests\CaptureResponseActionTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/CaptureResponseActionTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Gravy\phpunit\RiskScoresTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Gravy/Tests/phpunit/RiskScoresTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\dlocal\Tests\PaidMessageJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/dlocal/Tests/phpunit/PaidMessageJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\dlocal\Tests\RestResponseValidatorTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/dlocal/Tests/phpunit/RestResponseValidatorTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\dlocal\Tests\RejectedMessageJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/dlocal/Tests/phpunit/RejectedMessageJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\dlocal\Tests\SignatureCalculatorTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/dlocal/Tests/phpunit/SignatureCalculatorTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\dlocal\Tests\AuthorizedMessageJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/dlocal/Tests/phpunit/AuthorizedMessageJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\dlocal\Tests\ApiTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/dlocal/Tests/phpunit/ApiTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\dlocal\Test\AuditTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/dlocal/Tests/phpunit/AuditTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\dlocal\Tests\CardPaymentProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/dlocal/Tests/phpunit/CardPaymentProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\PayPal\Tests\CaptureIncomingMessageTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/PayPal/Tests/phpunit/CaptureIncomingMessageTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\PayPal\Tests\PaymentProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/PayPal/Tests/phpunit/PaymentProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Braintree\Tests\SignatureValidatorTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Braintree/Tests/phpunit/SignatureValidatorTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Braintree\Tests\PayPalPaymentProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Braintree/Tests/phpunit/PayPalPaymentProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Braintree\Tests\VenmoPaymentProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Braintree/Tests/phpunit/VenmoPaymentProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Braintree\Tests\ApiTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Braintree/Tests/phpunit/ApiTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Braintree\Test\AuditTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Braintree/Tests/phpunit/AuditTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Braintree\Tests\PaymentProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Braintree/Tests/phpunit/PaymentProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
29 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
No security vulnerability advisories found
--- stdout ---
PHP CodeSniffer Config installed_paths set to ../../mediawiki/mediawiki-codesniffer,../../phpcsstandards/phpcsextra,../../phpcsstandards/phpcsutils

--- end ---
Previously failing phpcs rules: {'MediaWiki.Files.ClassMatchesFilename.NotMatch', 'PSR12.Properties.ConstantVisibility.NotFound', 'Squiz.Classes.ValidClassName.NotCamelCaps', 'MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName', 'MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment'}
$ vendor/bin/phpcs --report=json
--- stdout ---
{"totals":{"errors":113,"warnings":202,"fixable":38},"files":{"\/src\/repo\/gateway_common\/LogPrefixProvider.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/paypal_ec_gateway\/paypal_express_gateway.body.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'PaypalExpressGateway' does not match filename 'paypal_express_gateway.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":3,"column":1}]},"\/src\/repo\/dlocal_gateway\/dlocal_resultswitcher.body.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'DlocalGatewayResult' does not match filename 'dlocal_resultswitcher.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":6,"column":1}]},"\/src\/repo\/dlocal_gateway\/dlocal.api.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'DlocalDonationApi' does not match filename 'dlocal.api.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":2,"column":1}]},"\/src\/repo\/dlocal_gateway\/dlocal_gateway.alias.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/Simple3DSecure.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/maintenance\/TestCrash.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/PayPalAmount.php":{"errors":1,"warnings":0,"messages":[{"message":"Method name \"is_fractional_currency\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":11,"column":19}]},"\/src\/repo\/gateway_common\/DonorLanguage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/RecurringConversion.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/FallbackLogPrefixer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/DonationLogProcessor.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/IsoDate.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/ResponseProcessingException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/braintree_gateway\/braintree_gateway.body.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'BraintreeGateway' does not match filename 'braintree_gateway.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":11,"column":1}]},"\/src\/repo\/braintree_gateway\/braintree_resultswitcher.body.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'BraintreeGatewayResult' does not match filename 'braintree_resultswitcher.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":6,"column":1}]},"\/src\/repo\/braintree_gateway\/braintree_gateway.alias.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/ReturnUrl.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/paypal_ec_gateway\/paypal_gateway.alias.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/CurrencyCountryRule.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/DonationInterface.alias.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/UnstagingHelper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/DonorLocale.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/DonationLoggerFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/ErrorState.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/StagingHelper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/amazon_gateway\/amazon.api.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'AmazonBillingApi' does not match filename 'amazon.api.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":3,"column":1}]},"\/src\/repo\/special\/SystemStatus.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/dlocal_gateway\/dlocal_gateway.body.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'DlocalGateway' does not match filename 'dlocal_gateway.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":13,"column":1}]},"\/src\/repo\/gravy_gateway\/PlaceholderPhoneNumber.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/extras\/extras.body.php":{"errors":4,"warnings":0,"messages":[{"message":"Class name 'Gateway_Extras' does not match filename 'extras.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":7,"column":10},{"message":"Class name \"Gateway_Extras\" is not in PascalCase format","source":"Squiz.Classes.ValidClassName.NotCamelCaps","severity":5,"fixable":false,"type":"ERROR","line":7,"column":16},{"message":"Method name \"generate_hash\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":59,"column":15},{"message":"Method name \"compare_hash\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":70,"column":15}]},"\/src\/repo\/gateway_common\/donation.api.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'DonationApi' does not match filename 'donation.api.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":10,"column":1}]},"\/src\/repo\/gateway_common\/DonorFullName.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/email_forms\/EmailForm.php":{"errors":0,"warnings":1,"messages":[{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":14,"column":5}]},"\/src\/repo\/modules\/CurrencyRatesModule.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/email_forms\/RequestNewChecksumLinkTrait.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/Api\/ApiClientErrorBase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/Api\/ApiRequestPauseRecurring.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/Api\/ApiRecurUpgradeClientError.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/GatewayType.php":{"errors":3,"warnings":0,"messages":[{"message":"Method name \"getData_Unstaged_Escaped\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":92,"column":12},{"message":"Method name \"session_ensure\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":198,"column":12},{"message":"Method name \"token_getSaltedSessionToken\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":240,"column":12}]},"\/src\/repo\/gateway_common\/employerSearch.api.php":{"errors":1,"warnings":4,"messages":[{"message":"Doc comments must not end with multiple empty lines","source":"MediaWiki.Commenting.ClassDocumentation.EmptyLinesEnd","severity":5,"fixable":true,"type":"WARNING","line":16,"column":2},{"message":"Class name 'EmployerSearchAPI' does not match filename 'employerSearch.api.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":17,"column":1},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":32,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":37,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":42,"column":5}]},"\/src\/repo\/gravy_gateway\/gravy_apple.api.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'GravyAppleApi' does not match filename 'gravy_apple.api.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":8,"column":1}]},"\/src\/repo\/extras\/conversion_log\/conversion_log.body.php":{"errors":3,"warnings":0,"messages":[{"message":"Class name 'Gateway_Extras_ConversionLog' does not match filename 'conversion_log.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":5,"column":1},{"message":"Class name \"Gateway_Extras_ConversionLog\" is not in PascalCase format","source":"Squiz.Classes.ValidClassName.NotCamelCaps","severity":5,"fixable":false,"type":"ERROR","line":5,"column":7},{"message":"Method name \"post_process\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":14,"column":15}]},"\/src\/repo\/amazon_gateway\/amazon_gateway.body.php":{"errors":2,"warnings":1,"messages":[{"message":"If this is a class comment, it must have no blank lines after; if it is a stray comment, it must not use \"\/**\" style comments","source":"MediaWiki.Commenting.CommentBeforeClass.SpacingAfter","severity":5,"fixable":false,"type":"ERROR","line":2,"column":1},{"message":"Doc comments must not end with multiple empty lines","source":"MediaWiki.Commenting.ClassDocumentation.EmptyLinesEnd","severity":5,"fixable":true,"type":"WARNING","line":17,"column":2},{"message":"Class name 'AmazonGateway' does not match filename 'amazon_gateway.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":19,"column":1}]},"\/src\/repo\/amazon_gateway\/amazon_gateway.alias.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/FiscalNumber.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/email_forms\/DonorPortalForm.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/WmfFramework.php":{"errors":0,"warnings":1,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":24,"column":30}]},"\/src\/repo\/gravy_gateway\/Gravy3DSecure.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gravy_gateway\/gravy_gateway.alias.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/Amount.php":{"errors":2,"warnings":0,"messages":[{"message":"Method name \"is_fractional_currency\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":156,"column":19},{"message":"Method name \"is_exponent3_currency\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":174,"column":19}]},"\/src\/repo\/gateway_common\/AmountInCents.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/IngenicoLocaleTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/Api\/ApiRequestCancelRecurring.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/includes\/test_gateway\/TestingDlocalAdapter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/RecurringConversionTrait.php":{"errors":4,"warnings":0,"messages":[{"message":"Method name \"session_getData\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":13,"column":21},{"message":"Method name \"session_resetForNewAttempt\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":19,"column":21},{"message":"Method name \"session_setDonorBackupData\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":22,"column":21},{"message":"Method name \"session_MoveDonorDataToBackupForRecurringConversion\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":108,"column":12}]},"\/src\/repo\/tests\/phpunit\/includes\/TestingDonationLogger.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/DonorPortal\/Hooks.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/extras\/FraudFilter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/ArrayHelper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/BaseAdyenCheckoutTestCase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/DonationApiBase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/ValidationHelper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/StreetNumberValidation.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/PaymentResult.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/DonorLocaleTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/StreetAddressValidation.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/Frictionless3DSecure.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_forms\/includes\/Subdivisions.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/DonationProfiler.php":{"errors":1,"warnings":0,"messages":[{"message":"If this is a class comment, it must have no blank lines after; if it is a stray comment, it must not use \"\/**\" style comments","source":"MediaWiki.Commenting.CommentBeforeClass.SpacingAfter","severity":5,"fixable":false,"type":"ERROR","line":5,"column":1}]},"\/src\/repo\/DonationInterface.class.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'DonationInterface' does not match filename 'DonationInterface.class.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":7,"column":1}]},"\/src\/repo\/tests\/phpunit\/includes\/test_gateway\/TestingGenericAdapter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/ConfigurationReader.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/Api\/ApiRequestNewChecksumLink.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/includes\/TestingGatewayPage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/PostalCodeValidation.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/Abstract3DSecure.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/ContributionTrackingPlusUnique.php":{"errors":0,"warnings":1,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":17,"column":70}]},"\/src\/repo\/ingenico_gateway\/IngenicoLocale.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/includes\/test_request\/test.request.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'TestingRequest' does not match filename 'test.request.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":27,"column":1}]},"\/src\/repo\/gateway_common\/EmployerFieldValidation.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/ResultPages.php":{"errors":0,"warnings":1,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":84,"column":18}]},"\/src\/repo\/tests\/phpunit\/DonationQueueTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gravy_gateway\/gravy_gateway.body.php":{"errors":1,"warnings":4,"messages":[{"message":"Class name 'GravyGateway' does not match filename 'gravy_gateway.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":10,"column":1},{"message":"Doc comments must not start with multiple empty lines","source":"MediaWiki.Commenting.FunctionComment.EmptyLinesStart","severity":5,"fixable":true,"type":"WARNING","line":145,"column":5},{"message":"Doc comments must not start with multiple empty lines","source":"MediaWiki.Commenting.FunctionComment.EmptyLinesStart","severity":5,"fixable":true,"type":"WARNING","line":153,"column":5},{"message":"Doc comments must not start with multiple empty lines","source":"MediaWiki.Commenting.FunctionComment.EmptyLinesStart","severity":5,"fixable":true,"type":"WARNING","line":162,"column":5},{"message":"Doc comments must not start with multiple empty lines","source":"MediaWiki.Commenting.FunctionComment.EmptyLinesStart","severity":5,"fixable":true,"type":"WARNING","line":170,"column":5}]},"\/src\/repo\/tests\/phpunit\/Adapter\/Ingenico\/RealTimeBankTransferIdealTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Doc comments must not start with multiple empty lines","source":"MediaWiki.Commenting.ClassDocumentation.EmptyLinesStart","severity":5,"fixable":true,"type":"WARNING","line":24,"column":1}]},"\/src\/repo\/braintree_gateway\/braintree.adapter.php":{"errors":1,"warnings":7,"messages":[{"message":"Class name 'BraintreeAdapter' does not match filename 'braintree.adapter.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":14,"column":1},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":17,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":18,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":19,"column":5},{"message":"Doc comments must not start with multiple empty lines","source":"MediaWiki.Commenting.FunctionComment.EmptyLinesStart","severity":5,"fixable":true,"type":"WARNING","line":30,"column":5},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":52,"column":78},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":57,"column":55},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":58,"column":74}]},"\/src\/repo\/gateway_common\/PaymentTransactionResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/Api\/ApiDonationClientError.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/ArrayHelperTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":104,"column":36}]},"\/src\/repo\/paypal_ec_gateway\/paypal_express.adapter.php":{"errors":1,"warnings":3,"messages":[{"message":"Class name 'PaypalExpressAdapter' does not match filename 'paypal_express.adapter.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":24,"column":1},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":25,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":26,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":27,"column":5}]},"\/src\/repo\/gateway_common\/RecurringConversion.api.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'RecurringConversionApi' does not match filename 'RecurringConversion.api.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":5,"column":1}]},"\/src\/repo\/paypal_ec_gateway\/PayPalCountry.php":{"errors":0,"warnings":2,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":7,"column":23},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":8,"column":23}]},"\/src\/repo\/extras\/custom_filters\/custom_filters.body.php":{"errors":2,"warnings":3,"messages":[{"message":"Class name 'Gateway_Extras_CustomFilters' does not match filename 'custom_filters.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":5,"column":1},{"message":"Class name \"Gateway_Extras_CustomFilters\" is not in PascalCase format","source":"Squiz.Classes.ValidClassName.NotCamelCaps","severity":5,"fixable":false,"type":"ERROR","line":5,"column":7},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":8,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":11,"column":5},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":40,"column":50}]},"\/src\/repo\/paypal_ec_gateway\/paypal_express_resultswitcher.body.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'PaypalExpressGatewayResult' does not match filename 'paypal_express_resultswitcher.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":3,"column":1}]},"\/src\/repo\/adyen_gateway\/adyen_apple.api.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'AdyenAppleApi' does not match filename 'adyen_apple.api.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":8,"column":1}]},"\/src\/repo\/braintree_gateway\/braintree.api.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'BraintreeDonationApi' does not match filename 'braintree.api.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":2,"column":1}]},"\/src\/repo\/ingenico_gateway\/ingenico_gateway.body.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'IngenicoGateway' does not match filename 'ingenico_gateway.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":24,"column":1}]},"\/src\/repo\/adyen_gateway\/adyen.api.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'AdyenDonationApi' does not match filename 'adyen.api.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":2,"column":1}]},"\/src\/repo\/tests\/phpunit\/IntegrationTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/paypal_ec_gateway\/PaypalExpressReturnUrl.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/LocalClusterPsr6Cache.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/ingenico_gateway\/IngenicoFormVariant.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/special\/DonorPortal.php":{"errors":0,"warnings":1,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":83,"column":28}]},"\/src\/repo\/tests\/phpunit\/DonationMessageTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/adyen_gateway\/BlankAddressFields.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_forms\/MustacheHelper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/ingenico_gateway\/Ingenico3DSecure.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/extras\/custom_filters\/filters\/source\/source.body.php":{"errors":2,"warnings":0,"messages":[{"message":"Class name 'Gateway_Extras_CustomFilters_Source' does not match filename 'source.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":3,"column":1},{"message":"Class name \"Gateway_Extras_CustomFilters_Source\" is not in PascalCase format","source":"Squiz.Classes.ValidClassName.NotCamelCaps","severity":5,"fixable":false,"type":"ERROR","line":3,"column":7}]},"\/src\/repo\/dlocal_gateway\/dlocal.adapter.php":{"errors":1,"warnings":4,"messages":[{"message":"Class name 'DlocalAdapter' does not match filename 'dlocal.adapter.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":17,"column":1},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":23,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":28,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":33,"column":5},{"message":"Doc comments must not start with multiple empty lines","source":"MediaWiki.Commenting.FunctionComment.EmptyLinesStart","severity":5,"fixable":true,"type":"WARNING","line":196,"column":5}]},"\/src\/repo\/extras\/civiproxy\/CiviproxyConnect.php":{"errors":0,"warnings":2,"messages":[{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":10,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":11,"column":5}]},"\/src\/repo\/tests\/phpunit\/Adapter\/Adyen\/AdyenFormLoadTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Doc comments must not start with multiple empty lines","source":"MediaWiki.Commenting.ClassDocumentation.EmptyLinesStart","severity":5,"fixable":true,"type":"WARNING","line":22,"column":1}]},"\/src\/repo\/tests\/phpunit\/BaseIngenicoTestCase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/Ingenico\/RecurringTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Doc comments must not start with multiple empty lines","source":"MediaWiki.Commenting.ClassDocumentation.EmptyLinesStart","severity":5,"fixable":true,"type":"WARNING","line":21,"column":1}]},"\/src\/repo\/tests\/phpunit\/GatewayValidationTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/ingenico_gateway\/ingenico.adapter.php":{"errors":1,"warnings":3,"messages":[{"message":"Class name 'IngenicoAdapter' does not match filename 'ingenico.adapter.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":16,"column":1},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":19,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":20,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":21,"column":5}]},"\/src\/repo\/special\/RecurUpgrade.php":{"errors":0,"warnings":5,"messages":[{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":13,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":14,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":15,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":17,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":20,"column":5}]},"\/src\/repo\/gateway_forms\/MustacheErrorForm.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/ingenico_gateway\/IngenicoReturnUrlHelper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/ingenico_gateway\/ingenico_resultswitcher.body.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'IngenicoGatewayResult' does not match filename 'ingenico_resultswitcher.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":3,"column":1}]},"\/src\/repo\/adyen_gateway\/adyen_get_payment_methods.api.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'AdyenGetPaymentMethodsApi' does not match filename 'adyen_get_payment_methods.api.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":6,"column":1}]},"\/src\/repo\/ingenico_gateway\/ingenico_gateway.alias.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/DataValidatorTest.php":{"errors":0,"warnings":7,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":115,"column":34},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":116,"column":33},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":117,"column":39},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":119,"column":47},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":120,"column":51},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":131,"column":46},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":137,"column":33}]},"\/src\/repo\/gateway_common\/PaymentMethod.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/adyen_gateway\/adyen_checkout_resultswitcher.body.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'AdyenCheckoutGatewayResult' does not match filename 'adyen_checkout_resultswitcher.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":6,"column":1}]},"\/src\/repo\/special\/FundraiserMaintenance.php":{"errors":0,"warnings":1,"messages":[{"message":"Doc comments must not start with multiple empty lines","source":"MediaWiki.Commenting.ClassDocumentation.EmptyLinesStart","severity":5,"fixable":true,"type":"WARNING","line":5,"column":1}]},"\/src\/repo\/tests\/phpunit\/includes\/test_gateway\/TestingPaypalExpressAdapter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/GatewayPageTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/Gravy\/PaypalTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/Amazon\/AmazonApiTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/special\/PaymentSettings.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/includes\/test_gateway\/test.adapter.php":{"errors":2,"warnings":1,"messages":[{"message":"If this is a class comment, it must have no blank lines after; if it is a stray comment, it must not use \"\/**\" style comments","source":"MediaWiki.Commenting.CommentBeforeClass.SpacingAfter","severity":5,"fixable":false,"type":"ERROR","line":2,"column":1},{"message":"Doc comments must not end with multiple empty lines","source":"MediaWiki.Commenting.ClassDocumentation.EmptyLinesEnd","severity":5,"fixable":true,"type":"WARNING","line":17,"column":2},{"message":"Class name 'TTestingAdapter' does not match filename 'test.adapter.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":19,"column":1}]},"\/src\/repo\/gravy_gateway\/gravy_resultswitcher.body.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'GravyGatewayResult' does not match filename 'gravy_resultswitcher.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":6,"column":1}]},"\/src\/repo\/includes\/RecurUpgrade\/Validator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gravy_gateway\/gravy.api.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'GravyDonationApi' does not match filename 'gravy.api.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":2,"column":1}]},"\/src\/repo\/adyen_gateway\/adyen_checkout_gateway.body.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'AdyenCheckoutGateway' does not match filename 'adyen_checkout_gateway.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":12,"column":1}]},"\/src\/repo\/gateway_common\/DataValidator.php":{"errors":16,"warnings":6,"messages":[{"message":"Method name \"validate_email\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":275,"column":22},{"message":"Method name \"validate_currency_code\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":281,"column":22},{"message":"Method name \"validate_credit_card\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":295,"column":22},{"message":"Method name \"validate_boolean\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":309,"column":22},{"message":"Method name \"validate_numeric\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":329,"column":22},{"message":"Method name \"validate_gateway\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":344,"column":22},{"message":"Method name \"validate_not_empty\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":358,"column":22},{"message":"Method name \"validate_alphanumeric\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":371,"column":22},{"message":"Method name \"validate_not_just_punctuation\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":383,"column":19},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":384,"column":48},{"message":"Method name \"validate_name\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":399,"column":19},{"message":"Method name \"validate_address\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":409,"column":19},{"message":"Method name \"special_characters_in_wrong_locations\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":427,"column":19},{"message":"Method name \"cc_number_exists_in_str\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":450,"column":19},{"message":"Method name \"luhn_check\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":513,"column":19},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":541,"column":64},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":543,"column":71},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":545,"column":78},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":547,"column":83},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":549,"column":18},{"message":"Method name \"ip_is_listed\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":606,"column":19},{"message":"Method name \"value_appears_in\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":628,"column":19}]},"\/src\/repo\/gateway_common\/ClientSideValidationHelper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/extras\/custom_filters\/filters\/minfraud\/minfraud.body.php":{"errors":2,"warnings":3,"messages":[{"message":"Class name 'Gateway_Extras_CustomFilters_MinFraud' does not match filename 'minfraud.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":44,"column":1},{"message":"Class name \"Gateway_Extras_CustomFilters_MinFraud\" is not in PascalCase format","source":"Squiz.Classes.ValidClassName.NotCamelCaps","severity":5,"fixable":false,"type":"ERROR","line":44,"column":7},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":272,"column":47},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":280,"column":16},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":288,"column":50}]},"\/src\/repo\/tests\/phpunit\/LoggingTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Doc comments must not start with multiple empty lines","source":"MediaWiki.Commenting.ClassDocumentation.EmptyLinesStart","severity":5,"fixable":true,"type":"WARNING","line":20,"column":1}]},"\/src\/repo\/tests\/phpunit\/MustacheFormTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/EndowmentHooks.php":{"errors":0,"warnings":1,"messages":[{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":7,"column":5}]},"\/src\/repo\/amazon_gateway\/amazon.adapter.php":{"errors":1,"warnings":8,"messages":[{"message":"Class name 'AmazonAdapter' does not match filename 'amazon.adapter.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":34,"column":1},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":36,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":37,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":38,"column":5},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":227,"column":73},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":312,"column":36},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":314,"column":41},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":366,"column":36},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":370,"column":41}]},"\/src\/repo\/tests\/phpunit\/FraudFiltersTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/CountryValidation.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/extras\/custom_filters\/filters\/functions\/functions.body.php":{"errors":2,"warnings":1,"messages":[{"message":"Class name 'Gateway_Extras_CustomFilters_Functions' does not match filename 'functions.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":3,"column":1},{"message":"Class name \"Gateway_Extras_CustomFilters_Functions\" is not in PascalCase format","source":"Squiz.Classes.ValidClassName.NotCamelCaps","severity":5,"fixable":false,"type":"ERROR","line":3,"column":7},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":53,"column":29}]},"\/src\/repo\/tests\/phpunit\/Adapter\/Gravy\/SecureFieldsCardTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/EmailPreferencesTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/extras\/custom_filters\/filters\/ip_velocity\/ip_velocity.body.php":{"errors":2,"warnings":1,"messages":[{"message":"Class name 'Gateway_Extras_CustomFilters_IP_Velocity' does not match filename 'ip_velocity.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":5,"column":1},{"message":"Class name \"Gateway_Extras_CustomFilters_IP_Velocity\" is not in PascalCase format","source":"Squiz.Classes.ValidClassName.NotCamelCaps","severity":5,"fixable":false,"type":"ERROR","line":5,"column":7},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":94,"column":66}]},"\/src\/repo\/special\/GatewayChooser.php":{"errors":0,"warnings":1,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":151,"column":41}]},"\/src\/repo\/gateway_common\/GatewayPage.php":{"errors":0,"warnings":1,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":374,"column":18}]},"\/src\/repo\/tests\/phpunit\/LintYaml.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/PlaceholderFiscalNumber.php":{"errors":0,"warnings":2,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":13,"column":31},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":14,"column":31}]},"\/src\/repo\/gateway_common\/messages\/MessagesEs_419.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/extras\/custom_filters\/filters\/referrer\/referrer.body.php":{"errors":2,"warnings":0,"messages":[{"message":"Class name 'Gateway_Extras_CustomFilters_Referrer' does not match filename 'referrer.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":3,"column":1},{"message":"Class name \"Gateway_Extras_CustomFilters_Referrer\" is not in PascalCase format","source":"Squiz.Classes.ValidClassName.NotCamelCaps","severity":5,"fixable":false,"type":"ERROR","line":3,"column":7}]},"\/src\/repo\/adyen_gateway\/adyen_submit_payment.api.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'AdyenSubmitPaymentApi' does not match filename 'adyen_submit_payment.api.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":9,"column":1}]},"\/src\/repo\/adyen_gateway\/adyen_gateway.alias.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/ResultSwitcher.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/adyen_gateway\/EncryptedCardParameters.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/DonationDataTest.php":{"errors":0,"warnings":19,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":85,"column":91},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":145,"column":59},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":193,"column":91},{"message":"Doc comment must not be empty","source":"MediaWiki.Commenting.FunctionComment.EmptyComment","severity":5,"fixable":true,"type":"WARNING","line":227,"column":5},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":243,"column":102},{"message":"Doc comment must not be empty","source":"MediaWiki.Commenting.FunctionComment.EmptyComment","severity":5,"fixable":true,"type":"WARNING","line":259,"column":5},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":266,"column":98},{"message":"Doc comment must not be empty","source":"MediaWiki.Commenting.FunctionComment.EmptyComment","severity":5,"fixable":true,"type":"WARNING","line":271,"column":5},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":278,"column":98},{"message":"Doc comment must not be empty","source":"MediaWiki.Commenting.FunctionComment.EmptyComment","severity":5,"fixable":true,"type":"WARNING","line":284,"column":5},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":291,"column":98},{"message":"Doc comment must not be empty","source":"MediaWiki.Commenting.FunctionComment.EmptyComment","severity":5,"fixable":true,"type":"WARNING","line":297,"column":5},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":304,"column":98},{"message":"Doc comment must not be empty","source":"MediaWiki.Commenting.FunctionComment.EmptyComment","severity":5,"fixable":true,"type":"WARNING","line":310,"column":5},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":318,"column":98},{"message":"Doc comment must not be empty","source":"MediaWiki.Commenting.FunctionComment.EmptyComment","severity":5,"fixable":true,"type":"WARNING","line":339,"column":5},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":349,"column":98},{"message":"Doc comment must not be empty","source":"MediaWiki.Commenting.FunctionComment.EmptyComment","severity":5,"fixable":true,"type":"WARNING","line":355,"column":5},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":365,"column":98}]},"\/src\/repo\/gateway_common\/StreetAddress.php":{"errors":2,"warnings":2,"messages":[{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":6,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":7,"column":5},{"message":"Method name \"stage_street\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":26,"column":15},{"message":"Method name \"stage_postal_code\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":48,"column":15}]},"\/src\/repo\/tests\/phpunit\/BaseGravyTestCase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/Gravy\/ApplePayTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/Dlocal\/CardPaymentTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/unit\/RecurUpgrade\/ValidatorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/Adyen\/CheckoutIdealTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Doc comments must not end with multiple empty lines","source":"MediaWiki.Commenting.FunctionComment.EmptyLinesEnd","severity":5,"fixable":true,"type":"WARNING","line":227,"column":6}]},"\/src\/repo\/tests\/phpunit\/Adapter\/Amazon\/AmazonTest.php":{"errors":0,"warnings":6,"messages":[{"message":"Doc comments must not start with multiple empty lines","source":"MediaWiki.Commenting.ClassDocumentation.EmptyLinesStart","severity":5,"fixable":true,"type":"WARNING","line":25,"column":1},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":135,"column":63},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":165,"column":63},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":192,"column":63},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":217,"column":63},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":246,"column":63}]},"\/src\/repo\/tests\/phpunit\/TestConfiguration.php":{"errors":0,"warnings":2,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":160,"column":34},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":161,"column":57}]},"\/src\/repo\/gravy_gateway\/gravy.adapter.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'GravyAdapter' does not match filename 'gravy.adapter.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":19,"column":1}]},"\/src\/repo\/gateway_forms\/Mustache.php":{"errors":2,"warnings":1,"messages":[{"message":"Class name 'Gateway_Form_Mustache' does not match filename 'Mustache.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":12,"column":1},{"message":"Class name \"Gateway_Form_Mustache\" is not in PascalCase format","source":"Squiz.Classes.ValidClassName.NotCamelCaps","severity":5,"fixable":false,"type":"ERROR","line":12,"column":7},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":14,"column":5}]},"\/src\/repo\/adyen_gateway\/adyen_checkout.adapter.php":{"errors":1,"warnings":1,"messages":[{"message":"Class name 'AdyenCheckoutAdapter' does not match filename 'adyen_checkout.adapter.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":13,"column":1},{"message":"Doc comments must not end with multiple empty lines","source":"MediaWiki.Commenting.FunctionComment.EmptyLinesEnd","severity":5,"fixable":true,"type":"WARNING","line":444,"column":6}]},"\/src\/repo\/extras\/session_velocity\/session_velocity.body.php":{"errors":3,"warnings":5,"messages":[{"message":"If this is a class comment, it must have no blank lines after; if it is a stray comment, it must not use \"\/**\" style comments","source":"MediaWiki.Commenting.CommentBeforeClass.SpacingAfter","severity":5,"fixable":false,"type":"ERROR","line":5,"column":1},{"message":"Class name 'Gateway_Extras_SessionVelocityFilter' does not match filename 'session_velocity.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":19,"column":1},{"message":"Class name \"Gateway_Extras_SessionVelocityFilter\" is not in PascalCase format","source":"Squiz.Classes.ValidClassName.NotCamelCaps","severity":5,"fixable":false,"type":"ERROR","line":19,"column":7},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":34,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":35,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":36,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":37,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":38,"column":5}]},"\/src\/repo\/.phan\/config.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/GatewayAdapterTest.php":{"errors":1,"warnings":7,"messages":[{"message":"Doc comments must not start with multiple empty lines","source":"MediaWiki.Commenting.FunctionComment.EmptyLinesStart","severity":5,"fixable":true,"type":"WARNING","line":45,"column":5},{"message":"Doc comments must not start with multiple empty lines","source":"MediaWiki.Commenting.FunctionComment.EmptyLinesStart","severity":5,"fixable":true,"type":"WARNING","line":199,"column":5},{"message":"Method name \"TestSetValidationAction\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":504,"column":12},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":532,"column":39},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":566,"column":39},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":582,"column":65},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":600,"column":39},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":631,"column":39}]},"\/src\/repo\/tests\/phpunit\/Adapter\/Gravy\/GravyFormLoadTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Doc comments must not start with multiple empty lines","source":"MediaWiki.Commenting.ClassDocumentation.EmptyLinesStart","severity":5,"fixable":true,"type":"WARNING","line":22,"column":1}]},"\/src\/repo\/tests\/phpunit\/Adapter\/Dlocal\/CashPaymentTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/BaseBraintreeTestCase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/special\/EmailPreferences.php":{"errors":0,"warnings":5,"messages":[{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":12,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":13,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":14,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":17,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":19,"column":5}]},"\/src\/repo\/gateway_forms\/Form.php":{"errors":2,"warnings":0,"messages":[{"message":"Class name 'Gateway_Form' does not match filename 'Form.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":5,"column":10},{"message":"Class name \"Gateway_Form\" is not in PascalCase format","source":"Squiz.Classes.ValidClassName.NotCamelCaps","severity":5,"fixable":false,"type":"ERROR","line":5,"column":16}]},"\/src\/repo\/tests\/phpunit\/Adapter\/Adyen\/AdyenSubmitApiTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/IPVelocityTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/DonationData.php":{"errors":0,"warnings":24,"messages":[{"message":"Use @todo annotation instead of @TODO:","source":"MediaWiki.Commenting.PropertyAnnotations.NonNormalizedAnnotation","severity":5,"fixable":true,"type":"WARNING","line":40,"column":8},{"message":"Use @todo annotation instead of @TODO","source":"MediaWiki.Commenting.PropertyAnnotations.NonNormalizedAnnotation","severity":5,"fixable":true,"type":"WARNING","line":44,"column":8},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":58,"column":30},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":66,"column":24},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":67,"column":24},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":69,"column":24},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":76,"column":24},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":81,"column":24},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":84,"column":21},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":101,"column":31},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":105,"column":25},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":120,"column":29},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":123,"column":26},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":124,"column":25},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":128,"column":26},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":131,"column":29},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":136,"column":22},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":364,"column":41},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":392,"column":72},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":397,"column":50},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":403,"column":34},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":404,"column":39},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":521,"column":45},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":585,"column":28}]},"\/src\/repo\/tests\/phpunit\/Adapter\/Gravy\/GooglePayTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/AmountTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/MediaWikiLogHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/DonorEmail.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/EmployerSearchApiTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":114,"column":49}]},"\/src\/repo\/tests\/phpunit\/Adapter\/Gravy\/RedirectFormTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/MessageUtils.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/GatewayChooserTest.php":{"errors":0,"warnings":5,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":234,"column":131},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":235,"column":131},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":236,"column":135},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":512,"column":76},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":545,"column":67}]},"\/src\/repo\/tests\/phpunit\/DonationInterfaceApiTestCase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/PayPal\/PayPalExpressTest.php":{"errors":0,"warnings":7,"messages":[{"message":"Doc comments must not start with multiple empty lines","source":"MediaWiki.Commenting.ClassDocumentation.EmptyLinesStart","severity":5,"fixable":true,"type":"WARNING","line":34,"column":1},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":121,"column":33},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":211,"column":33},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":356,"column":33},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":966,"column":45},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":1029,"column":45},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":1065,"column":45}]},"\/src\/repo\/tests\/phpunit\/BaseDlocalTestCase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/CiviproxyConnectTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/PayPal\/PayPalApiTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/Ingenico\/IngenicoTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Doc comments must not start with multiple empty lines","source":"MediaWiki.Commenting.ClassDocumentation.EmptyLinesStart","severity":5,"fixable":true,"type":"WARNING","line":29,"column":1}]},"\/src\/repo\/tests\/phpunit\/DonationInterfaceTestCase.php":{"errors":0,"warnings":3,"messages":[{"message":"Doc comments must not start with multiple empty lines","source":"MediaWiki.Commenting.FunctionComment.EmptyLinesStart","severity":5,"fixable":true,"type":"WARNING","line":167,"column":5},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":175,"column":23},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":686,"column":51}]},"\/src\/repo\/tests\/phpunit\/Adapter\/Adyen\/CheckoutCardTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Doc comments must not end with multiple empty lines","source":"MediaWiki.Commenting.FunctionComment.EmptyLinesEnd","severity":5,"fixable":true,"type":"WARNING","line":482,"column":6}]},"\/src\/repo\/tests\/phpunit\/Adapter\/Adyen\/AdyenRecurringTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/Braintree\/PaypalPaymentTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Doc comments must not end with multiple empty lines","source":"MediaWiki.Commenting.FunctionComment.EmptyLinesEnd","severity":5,"fixable":true,"type":"WARNING","line":256,"column":6}]},"\/src\/repo\/tests\/phpunit\/Adapter\/Adyen\/AdyenGetPaymentMethodsApiTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/Braintree\/VenmoPaymentTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/Ingenico\/IngenicoApiTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Doc comments must not end with multiple empty lines","source":"MediaWiki.Commenting.FunctionComment.EmptyLinesEnd","severity":5,"fixable":true,"type":"WARNING","line":322,"column":6}]},"\/src\/repo\/tests\/phpunit\/Adapter\/Ingenico\/ResultSwitcherTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":59,"column":33}]},"\/src\/repo\/gateway_common\/gateway.adapter.php":{"errors":20,"warnings":26,"messages":[{"message":"Doc comments must not end with multiple empty lines","source":"MediaWiki.Commenting.ClassDocumentation.EmptyLinesEnd","severity":5,"fixable":true,"type":"WARNING","line":38,"column":2},{"message":"Class name 'GatewayAdapter' does not match filename 'gateway.adapter.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":39,"column":10},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":43,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":44,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":183,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":184,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":185,"column":5},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":185,"column":48},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":186,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":187,"column":5},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":225,"column":41},{"message":"Method name \"getData_Staged\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":489,"column":15},{"message":"Method name \"getData_Unstaged_Escaped\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":582,"column":12},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":1122,"column":25},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":1499,"column":61},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":1520,"column":59},{"message":"Doc comments must not end with multiple empty lines","source":"MediaWiki.Commenting.FunctionComment.EmptyLinesEnd","severity":5,"fixable":true,"type":"WARNING","line":1580,"column":6},{"message":"Method name \"transaction_option\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":1608,"column":15},{"message":"Method name \"session_ensure\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2160,"column":12},{"message":"Method name \"session_getData\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2171,"column":12},{"message":"Method name \"session_hasDonorData\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2192,"column":12},{"message":"Method name \"session_setDonorBackupData\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2201,"column":12},{"message":"Method name \"session_unsetDonorData\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2210,"column":12},{"message":"Method name \"session_addDonorData\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2220,"column":12},{"message":"Method name \"session_killAllEverything\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2238,"column":12},{"message":"Method name \"session_unsetAllData\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2250,"column":12},{"message":"Method name \"session_resetForNewAttempt\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2266,"column":12},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":2283,"column":33},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":2287,"column":28},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":2295,"column":40},{"message":"Method name \"session_resetOnSwitch\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2330,"column":15},{"message":"Method name \"token_applyMD5AndSalt\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2398,"column":22},{"message":"Method name \"token_generateToken\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2416,"column":19},{"message":"Method name \"token_getSaltedSessionToken\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2421,"column":12},{"message":"Method name \"token_refreshAllTokenEverything\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2443,"column":15},{"message":"Method name \"token_matchEditToken\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2463,"column":15},{"message":"Method name \"token_checkTokens\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2488,"column":15},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":2489,"column":31},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":2528,"column":64},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":2626,"column":106},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":2684,"column":39},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":2698,"column":59},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":2751,"column":45},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":2752,"column":39},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":2893,"column":27},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":2906,"column":27}]}}}

--- end ---
PHPCS run failed
$ vendor/bin/phpcbf
--- stdout ---

PHPCBF RESULT SUMMARY
--------------------------------------------------------------------------------
FILE                                                            FIXED  REMAINING
--------------------------------------------------------------------------------
/src/repo/amazon_gateway/amazon_gateway.body.php                1      2
.../phpunit/Adapter/Ingenico/RealTimeBankTransferIdealTest.php  1      0
/src/repo/gateway_common/employerSearch.api.php                 1      4
/src/repo/tests/phpunit/includes/test_gateway/test.adapter.php  1      2
/src/repo/special/FundraiserMaintenance.php                     1      0
/src/repo/gravy_gateway/gravy_gateway.body.php                  4      1
/src/repo/tests/phpunit/LoggingTest.php                         1      0
/src/repo/tests/phpunit/Adapter/Ingenico/RecurringTest.php      1      0
/src/repo/tests/phpunit/Adapter/Adyen/AdyenFormLoadTest.php     1      0
/src/repo/braintree_gateway/braintree.adapter.php               1      7
/src/repo/dlocal_gateway/dlocal.adapter.php                     1      4
/src/repo/adyen_gateway/adyen_checkout.adapter.php              1      1
/src/repo/tests/phpunit/Adapter/Amazon/AmazonTest.php           1      5
/src/repo/tests/phpunit/Adapter/Adyen/CheckoutIdealTest.php     1      0
/src/repo/tests/phpunit/Adapter/GatewayAdapterTest.php          2      6
/src/repo/tests/phpunit/Adapter/Gravy/GravyFormLoadTest.php     1      0
/src/repo/gateway_common/DonationData.php                       2      22
/src/repo/tests/phpunit/DonationDataTest.php                    8      11
/src/repo/tests/phpunit/Adapter/PayPal/PayPalExpressTest.php    1      6
/src/repo/tests/phpunit/Adapter/Adyen/CheckoutCardTest.php      1      0
/src/repo/tests/phpunit/Adapter/Ingenico/IngenicoTest.php       1      0
.../repo/tests/phpunit/Adapter/Braintree/PaypalPaymentTest.php  1      0
/src/repo/tests/phpunit/Adapter/Ingenico/IngenicoApiTest.php    1      0
/src/repo/tests/phpunit/DonationInterfaceTestCase.php           1      2
/src/repo/gateway_common/gateway.adapter.php                    2      44
--------------------------------------------------------------------------------
A TOTAL OF 38 ERRORS WERE FIXED IN 25 FILES
--------------------------------------------------------------------------------

Time: 4.77 secs; Memory: 8MB



--- end ---
$ vendor/bin/phpcs --report=json
--- stdout ---
{"totals":{"errors":113,"warnings":164,"fixable":0},"files":{"\/src\/repo\/gateway_common\/FallbackLogPrefixer.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/dlocal_gateway\/dlocal.api.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'DlocalDonationApi' does not match filename 'dlocal.api.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":2,"column":1}]},"\/src\/repo\/gateway_common\/LogPrefixProvider.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/paypal_ec_gateway\/paypal_express_gateway.body.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'PaypalExpressGateway' does not match filename 'paypal_express_gateway.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":3,"column":1}]},"\/src\/repo\/dlocal_gateway\/dlocal_resultswitcher.body.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'DlocalGatewayResult' does not match filename 'dlocal_resultswitcher.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":6,"column":1}]},"\/src\/repo\/dlocal_gateway\/dlocal_gateway.alias.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/Simple3DSecure.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/maintenance\/TestCrash.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/PayPalAmount.php":{"errors":1,"warnings":0,"messages":[{"message":"Method name \"is_fractional_currency\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":11,"column":19}]},"\/src\/repo\/gateway_common\/DonorLanguage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/RecurringConversion.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/braintree_gateway\/braintree_gateway.body.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'BraintreeGateway' does not match filename 'braintree_gateway.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":11,"column":1}]},"\/src\/repo\/braintree_gateway\/braintree_resultswitcher.body.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'BraintreeGatewayResult' does not match filename 'braintree_resultswitcher.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":6,"column":1}]},"\/src\/repo\/braintree_gateway\/braintree_gateway.alias.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/IsoDate.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/ResponseProcessingException.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/paypal_ec_gateway\/paypal_gateway.alias.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/CurrencyCountryRule.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/DonationLogProcessor.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/ReturnUrl.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/DonationInterface.alias.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/UnstagingHelper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/DonorLocale.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/extras\/extras.body.php":{"errors":4,"warnings":0,"messages":[{"message":"Class name 'Gateway_Extras' does not match filename 'extras.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":7,"column":10},{"message":"Class name \"Gateway_Extras\" is not in PascalCase format","source":"Squiz.Classes.ValidClassName.NotCamelCaps","severity":5,"fixable":false,"type":"ERROR","line":7,"column":16},{"message":"Method name \"generate_hash\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":59,"column":15},{"message":"Method name \"compare_hash\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":70,"column":15}]},"\/src\/repo\/dlocal_gateway\/dlocal_gateway.body.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'DlocalGateway' does not match filename 'dlocal_gateway.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":13,"column":1}]},"\/src\/repo\/gateway_common\/DonationLoggerFactory.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/special\/SystemStatus.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/StagingHelper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/amazon_gateway\/amazon.api.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'AmazonBillingApi' does not match filename 'amazon.api.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":3,"column":1}]},"\/src\/repo\/extras\/conversion_log\/conversion_log.body.php":{"errors":3,"warnings":0,"messages":[{"message":"Class name 'Gateway_Extras_ConversionLog' does not match filename 'conversion_log.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":5,"column":1},{"message":"Class name \"Gateway_Extras_ConversionLog\" is not in PascalCase format","source":"Squiz.Classes.ValidClassName.NotCamelCaps","severity":5,"fixable":false,"type":"ERROR","line":5,"column":7},{"message":"Method name \"post_process\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":14,"column":15}]},"\/src\/repo\/gateway_common\/ErrorState.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/FiscalNumber.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/email_forms\/EmailForm.php":{"errors":0,"warnings":1,"messages":[{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":14,"column":5}]},"\/src\/repo\/gravy_gateway\/gravy_apple.api.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'GravyAppleApi' does not match filename 'gravy_apple.api.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":8,"column":1}]},"\/src\/repo\/gateway_common\/GatewayType.php":{"errors":3,"warnings":0,"messages":[{"message":"Method name \"getData_Unstaged_Escaped\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":92,"column":12},{"message":"Method name \"session_ensure\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":198,"column":12},{"message":"Method name \"token_getSaltedSessionToken\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":240,"column":12}]},"\/src\/repo\/modules\/CurrencyRatesModule.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/Api\/ApiClientErrorBase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gravy_gateway\/PlaceholderPhoneNumber.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/WmfFramework.php":{"errors":0,"warnings":1,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":24,"column":30}]},"\/src\/repo\/includes\/Api\/ApiRequestPauseRecurring.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/Api\/ApiRecurUpgradeClientError.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/amazon_gateway\/amazon_gateway.body.php":{"errors":2,"warnings":0,"messages":[{"message":"If this is a class comment, it must have no blank lines after; if it is a stray comment, it must not use \"\/**\" style comments","source":"MediaWiki.Commenting.CommentBeforeClass.SpacingAfter","severity":5,"fixable":false,"type":"ERROR","line":2,"column":1},{"message":"Class name 'AmazonGateway' does not match filename 'amazon_gateway.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":18,"column":1}]},"\/src\/repo\/extras\/FraudFilter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/amazon_gateway\/amazon_gateway.alias.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/email_forms\/RequestNewChecksumLinkTrait.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/donation.api.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'DonationApi' does not match filename 'donation.api.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":10,"column":1}]},"\/src\/repo\/gateway_common\/DonorFullName.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gravy_gateway\/Gravy3DSecure.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gravy_gateway\/gravy_gateway.alias.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/DonationApiBase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/ValidationHelper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/employerSearch.api.php":{"errors":1,"warnings":3,"messages":[{"message":"Class name 'EmployerSearchAPI' does not match filename 'employerSearch.api.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":16,"column":1},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":31,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":36,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":41,"column":5}]},"\/src\/repo\/email_forms\/DonorPortalForm.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/ArrayHelper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/includes\/test_gateway\/TestingDlocalAdapter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/DonorPortal\/Hooks.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/IngenicoLocaleTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/Api\/ApiRequestCancelRecurring.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/Frictionless3DSecure.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/DonorLocaleTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/Amount.php":{"errors":2,"warnings":0,"messages":[{"message":"Method name \"is_fractional_currency\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":156,"column":19},{"message":"Method name \"is_exponent3_currency\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":174,"column":19}]},"\/src\/repo\/tests\/phpunit\/BaseAdyenCheckoutTestCase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/includes\/TestingDonationLogger.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/AmountInCents.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/DonationProfiler.php":{"errors":1,"warnings":0,"messages":[{"message":"If this is a class comment, it must have no blank lines after; if it is a stray comment, it must not use \"\/**\" style comments","source":"MediaWiki.Commenting.CommentBeforeClass.SpacingAfter","severity":5,"fixable":false,"type":"ERROR","line":5,"column":1}]},"\/src\/repo\/gateway_forms\/includes\/Subdivisions.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/DonationInterface.class.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'DonationInterface' does not match filename 'DonationInterface.class.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":7,"column":1}]},"\/src\/repo\/tests\/phpunit\/includes\/test_gateway\/TestingGenericAdapter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/includes\/TestingGatewayPage.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/ResultPages.php":{"errors":0,"warnings":1,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":84,"column":18}]},"\/src\/repo\/gateway_common\/EmployerFieldValidation.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/Api\/ApiRequestNewChecksumLink.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/StreetAddressValidation.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/ArrayHelperTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":104,"column":36}]},"\/src\/repo\/gateway_common\/PaymentResult.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/RecurringConversionTrait.php":{"errors":4,"warnings":0,"messages":[{"message":"Method name \"session_getData\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":13,"column":21},{"message":"Method name \"session_resetForNewAttempt\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":19,"column":21},{"message":"Method name \"session_setDonorBackupData\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":22,"column":21},{"message":"Method name \"session_MoveDonorDataToBackupForRecurringConversion\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":108,"column":12}]},"\/src\/repo\/gateway_common\/PaymentTransactionResponse.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/LocalClusterPsr6Cache.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/StreetNumberValidation.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/Ingenico\/RealTimeBankTransferIdealTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/DonationQueueTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/RecurringConversion.api.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'RecurringConversionApi' does not match filename 'RecurringConversion.api.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":5,"column":1}]},"\/src\/repo\/gateway_common\/ConfigurationReader.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/includes\/test_request\/test.request.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'TestingRequest' does not match filename 'test.request.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":27,"column":1}]},"\/src\/repo\/adyen_gateway\/adyen.api.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'AdyenDonationApi' does not match filename 'adyen.api.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":2,"column":1}]},"\/src\/repo\/includes\/Api\/ApiDonationClientError.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/Abstract3DSecure.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/adyen_gateway\/adyen_apple.api.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'AdyenAppleApi' does not match filename 'adyen_apple.api.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":8,"column":1}]},"\/src\/repo\/adyen_gateway\/BlankAddressFields.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gravy_gateway\/gravy_gateway.body.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'GravyGateway' does not match filename 'gravy_gateway.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":10,"column":1}]},"\/src\/repo\/extras\/custom_filters\/custom_filters.body.php":{"errors":2,"warnings":3,"messages":[{"message":"Class name 'Gateway_Extras_CustomFilters' does not match filename 'custom_filters.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":5,"column":1},{"message":"Class name \"Gateway_Extras_CustomFilters\" is not in PascalCase format","source":"Squiz.Classes.ValidClassName.NotCamelCaps","severity":5,"fixable":false,"type":"ERROR","line":5,"column":7},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":8,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":11,"column":5},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":40,"column":50}]},"\/src\/repo\/gateway_common\/PostalCodeValidation.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/extras\/civiproxy\/CiviproxyConnect.php":{"errors":0,"warnings":2,"messages":[{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":10,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":11,"column":5}]},"\/src\/repo\/ingenico_gateway\/IngenicoLocale.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/special\/DonorPortal.php":{"errors":0,"warnings":1,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":83,"column":28}]},"\/src\/repo\/gateway_common\/ContributionTrackingPlusUnique.php":{"errors":0,"warnings":1,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":17,"column":70}]},"\/src\/repo\/braintree_gateway\/braintree.adapter.php":{"errors":1,"warnings":6,"messages":[{"message":"Class name 'BraintreeAdapter' does not match filename 'braintree.adapter.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":14,"column":1},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":17,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":18,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":19,"column":5},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":51,"column":78},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":56,"column":55},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":57,"column":74}]},"\/src\/repo\/tests\/phpunit\/IntegrationTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/paypal_ec_gateway\/paypal_express.adapter.php":{"errors":1,"warnings":3,"messages":[{"message":"Class name 'PaypalExpressAdapter' does not match filename 'paypal_express.adapter.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":24,"column":1},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":25,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":26,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":27,"column":5}]},"\/src\/repo\/ingenico_gateway\/ingenico_gateway.body.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'IngenicoGateway' does not match filename 'ingenico_gateway.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":24,"column":1}]},"\/src\/repo\/tests\/phpunit\/DonationMessageTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/paypal_ec_gateway\/PayPalCountry.php":{"errors":0,"warnings":2,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":7,"column":23},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":8,"column":23}]},"\/src\/repo\/paypal_ec_gateway\/paypal_express_resultswitcher.body.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'PaypalExpressGatewayResult' does not match filename 'paypal_express_resultswitcher.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":3,"column":1}]},"\/src\/repo\/ingenico_gateway\/ingenico.adapter.php":{"errors":1,"warnings":3,"messages":[{"message":"Class name 'IngenicoAdapter' does not match filename 'ingenico.adapter.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":16,"column":1},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":19,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":20,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":21,"column":5}]},"\/src\/repo\/tests\/phpunit\/BaseIngenicoTestCase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/Ingenico\/RecurringTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/braintree_gateway\/braintree.api.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'BraintreeDonationApi' does not match filename 'braintree.api.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":2,"column":1}]},"\/src\/repo\/ingenico_gateway\/IngenicoFormVariant.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/ingenico_gateway\/IngenicoReturnUrlHelper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_forms\/MustacheHelper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/extras\/custom_filters\/filters\/source\/source.body.php":{"errors":2,"warnings":0,"messages":[{"message":"Class name 'Gateway_Extras_CustomFilters_Source' does not match filename 'source.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":3,"column":1},{"message":"Class name \"Gateway_Extras_CustomFilters_Source\" is not in PascalCase format","source":"Squiz.Classes.ValidClassName.NotCamelCaps","severity":5,"fixable":false,"type":"ERROR","line":3,"column":7}]},"\/src\/repo\/ingenico_gateway\/ingenico_resultswitcher.body.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'IngenicoGatewayResult' does not match filename 'ingenico_resultswitcher.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":3,"column":1}]},"\/src\/repo\/ingenico_gateway\/ingenico_gateway.alias.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/paypal_ec_gateway\/PaypalExpressReturnUrl.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/ingenico_gateway\/Ingenico3DSecure.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/PaymentMethod.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/GatewayValidationTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/Adyen\/AdyenFormLoadTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/adyen_gateway\/adyen_get_payment_methods.api.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'AdyenGetPaymentMethodsApi' does not match filename 'adyen_get_payment_methods.api.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":6,"column":1}]},"\/src\/repo\/tests\/phpunit\/Adapter\/Amazon\/AmazonApiTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/adyen_gateway\/adyen_checkout_resultswitcher.body.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'AdyenCheckoutGatewayResult' does not match filename 'adyen_checkout_resultswitcher.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":6,"column":1}]},"\/src\/repo\/tests\/phpunit\/Adapter\/Gravy\/PaypalTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/includes\/RecurUpgrade\/Validator.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/dlocal_gateway\/dlocal.adapter.php":{"errors":1,"warnings":3,"messages":[{"message":"Class name 'DlocalAdapter' does not match filename 'dlocal.adapter.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":17,"column":1},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":23,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":28,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":33,"column":5}]},"\/src\/repo\/tests\/phpunit\/GatewayPageTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/special\/RecurUpgrade.php":{"errors":0,"warnings":5,"messages":[{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":13,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":14,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":15,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":17,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":20,"column":5}]},"\/src\/repo\/tests\/phpunit\/DataValidatorTest.php":{"errors":0,"warnings":7,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":115,"column":34},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":116,"column":33},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":117,"column":39},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":119,"column":47},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":120,"column":51},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":131,"column":46},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":137,"column":33}]},"\/src\/repo\/tests\/phpunit\/includes\/test_gateway\/TestingPaypalExpressAdapter.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_forms\/MustacheErrorForm.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/special\/FundraiserMaintenance.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/special\/PaymentSettings.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/includes\/test_gateway\/test.adapter.php":{"errors":2,"warnings":0,"messages":[{"message":"If this is a class comment, it must have no blank lines after; if it is a stray comment, it must not use \"\/**\" style comments","source":"MediaWiki.Commenting.CommentBeforeClass.SpacingAfter","severity":5,"fixable":false,"type":"ERROR","line":2,"column":1},{"message":"Class name 'TTestingAdapter' does not match filename 'test.adapter.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":18,"column":1}]},"\/src\/repo\/gravy_gateway\/gravy_resultswitcher.body.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'GravyGatewayResult' does not match filename 'gravy_resultswitcher.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":6,"column":1}]},"\/src\/repo\/extras\/custom_filters\/filters\/minfraud\/minfraud.body.php":{"errors":2,"warnings":3,"messages":[{"message":"Class name 'Gateway_Extras_CustomFilters_MinFraud' does not match filename 'minfraud.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":44,"column":1},{"message":"Class name \"Gateway_Extras_CustomFilters_MinFraud\" is not in PascalCase format","source":"Squiz.Classes.ValidClassName.NotCamelCaps","severity":5,"fixable":false,"type":"ERROR","line":44,"column":7},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":272,"column":47},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":280,"column":16},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":288,"column":50}]},"\/src\/repo\/gravy_gateway\/gravy.api.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'GravyDonationApi' does not match filename 'gravy.api.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":2,"column":1}]},"\/src\/repo\/adyen_gateway\/adyen_checkout_gateway.body.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'AdyenCheckoutGateway' does not match filename 'adyen_checkout_gateway.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":12,"column":1}]},"\/src\/repo\/tests\/phpunit\/MustacheFormTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/special\/GatewayChooser.php":{"errors":0,"warnings":1,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":151,"column":41}]},"\/src\/repo\/tests\/phpunit\/LoggingTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/DataValidator.php":{"errors":16,"warnings":6,"messages":[{"message":"Method name \"validate_email\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":275,"column":22},{"message":"Method name \"validate_currency_code\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":281,"column":22},{"message":"Method name \"validate_credit_card\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":295,"column":22},{"message":"Method name \"validate_boolean\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":309,"column":22},{"message":"Method name \"validate_numeric\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":329,"column":22},{"message":"Method name \"validate_gateway\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":344,"column":22},{"message":"Method name \"validate_not_empty\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":358,"column":22},{"message":"Method name \"validate_alphanumeric\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":371,"column":22},{"message":"Method name \"validate_not_just_punctuation\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":383,"column":19},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":384,"column":48},{"message":"Method name \"validate_name\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":399,"column":19},{"message":"Method name \"validate_address\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":409,"column":19},{"message":"Method name \"special_characters_in_wrong_locations\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":427,"column":19},{"message":"Method name \"cc_number_exists_in_str\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":450,"column":19},{"message":"Method name \"luhn_check\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":513,"column":19},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":541,"column":64},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":543,"column":71},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":545,"column":78},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":547,"column":83},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":549,"column":18},{"message":"Method name \"ip_is_listed\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":606,"column":19},{"message":"Method name \"value_appears_in\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":628,"column":19}]},"\/src\/repo\/gateway_common\/ClientSideValidationHelper.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/CountryValidation.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/amazon_gateway\/amazon.adapter.php":{"errors":1,"warnings":8,"messages":[{"message":"Class name 'AmazonAdapter' does not match filename 'amazon.adapter.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":34,"column":1},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":36,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":37,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":38,"column":5},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":227,"column":73},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":312,"column":36},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":314,"column":41},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":366,"column":36},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":370,"column":41}]},"\/src\/repo\/gateway_common\/EndowmentHooks.php":{"errors":0,"warnings":1,"messages":[{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":7,"column":5}]},"\/src\/repo\/extras\/custom_filters\/filters\/functions\/functions.body.php":{"errors":2,"warnings":1,"messages":[{"message":"Class name 'Gateway_Extras_CustomFilters_Functions' does not match filename 'functions.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":3,"column":1},{"message":"Class name \"Gateway_Extras_CustomFilters_Functions\" is not in PascalCase format","source":"Squiz.Classes.ValidClassName.NotCamelCaps","severity":5,"fixable":false,"type":"ERROR","line":3,"column":7},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":53,"column":29}]},"\/src\/repo\/tests\/phpunit\/EmailPreferencesTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/extras\/custom_filters\/filters\/ip_velocity\/ip_velocity.body.php":{"errors":2,"warnings":1,"messages":[{"message":"Class name 'Gateway_Extras_CustomFilters_IP_Velocity' does not match filename 'ip_velocity.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":5,"column":1},{"message":"Class name \"Gateway_Extras_CustomFilters_IP_Velocity\" is not in PascalCase format","source":"Squiz.Classes.ValidClassName.NotCamelCaps","severity":5,"fixable":false,"type":"ERROR","line":5,"column":7},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":94,"column":66}]},"\/src\/repo\/tests\/phpunit\/Adapter\/Gravy\/SecureFieldsCardTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/FraudFiltersTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/extras\/custom_filters\/filters\/referrer\/referrer.body.php":{"errors":2,"warnings":0,"messages":[{"message":"Class name 'Gateway_Extras_CustomFilters_Referrer' does not match filename 'referrer.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":3,"column":1},{"message":"Class name \"Gateway_Extras_CustomFilters_Referrer\" is not in PascalCase format","source":"Squiz.Classes.ValidClassName.NotCamelCaps","severity":5,"fixable":false,"type":"ERROR","line":3,"column":7}]},"\/src\/repo\/adyen_gateway\/adyen_submit_payment.api.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'AdyenSubmitPaymentApi' does not match filename 'adyen_submit_payment.api.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":9,"column":1}]},"\/src\/repo\/gateway_common\/GatewayPage.php":{"errors":0,"warnings":1,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":374,"column":18}]},"\/src\/repo\/gateway_common\/PlaceholderFiscalNumber.php":{"errors":0,"warnings":2,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":13,"column":31},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":14,"column":31}]},"\/src\/repo\/gateway_common\/messages\/MessagesEs_419.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/adyen_gateway\/adyen_gateway.alias.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/LintYaml.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/adyen_gateway\/EncryptedCardParameters.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/adyen_gateway\/adyen_checkout.adapter.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'AdyenCheckoutAdapter' does not match filename 'adyen_checkout.adapter.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":13,"column":1}]},"\/src\/repo\/tests\/phpunit\/Adapter\/Dlocal\/CardPaymentTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/ResultSwitcher.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/StreetAddress.php":{"errors":2,"warnings":2,"messages":[{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":6,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":7,"column":5},{"message":"Method name \"stage_street\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":26,"column":15},{"message":"Method name \"stage_postal_code\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":48,"column":15}]},"\/src\/repo\/gravy_gateway\/gravy.adapter.php":{"errors":1,"warnings":0,"messages":[{"message":"Class name 'GravyAdapter' does not match filename 'gravy.adapter.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":19,"column":1}]},"\/src\/repo\/tests\/phpunit\/Adapter\/Gravy\/ApplePayTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/unit\/RecurUpgrade\/ValidatorTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/Amazon\/AmazonTest.php":{"errors":0,"warnings":5,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":134,"column":63},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":164,"column":63},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":191,"column":63},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":216,"column":63},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":245,"column":63}]},"\/src\/repo\/.phan\/config.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/DonationDataTest.php":{"errors":0,"warnings":11,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":85,"column":91},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":145,"column":59},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":193,"column":91},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":240,"column":102},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":260,"column":98},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":269,"column":98},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":279,"column":98},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":289,"column":98},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":300,"column":98},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":328,"column":98},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":341,"column":98}]},"\/src\/repo\/extras\/session_velocity\/session_velocity.body.php":{"errors":3,"warnings":5,"messages":[{"message":"If this is a class comment, it must have no blank lines after; if it is a stray comment, it must not use \"\/**\" style comments","source":"MediaWiki.Commenting.CommentBeforeClass.SpacingAfter","severity":5,"fixable":false,"type":"ERROR","line":5,"column":1},{"message":"Class name 'Gateway_Extras_SessionVelocityFilter' does not match filename 'session_velocity.body.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":19,"column":1},{"message":"Class name \"Gateway_Extras_SessionVelocityFilter\" is not in PascalCase format","source":"Squiz.Classes.ValidClassName.NotCamelCaps","severity":5,"fixable":false,"type":"ERROR","line":19,"column":7},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":34,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":35,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":36,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":37,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":38,"column":5}]},"\/src\/repo\/tests\/phpunit\/BaseGravyTestCase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/TestConfiguration.php":{"errors":0,"warnings":2,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":160,"column":34},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":161,"column":57}]},"\/src\/repo\/gateway_forms\/Mustache.php":{"errors":2,"warnings":1,"messages":[{"message":"Class name 'Gateway_Form_Mustache' does not match filename 'Mustache.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":12,"column":1},{"message":"Class name \"Gateway_Form_Mustache\" is not in PascalCase format","source":"Squiz.Classes.ValidClassName.NotCamelCaps","severity":5,"fixable":false,"type":"ERROR","line":12,"column":7},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":14,"column":5}]},"\/src\/repo\/tests\/phpunit\/Adapter\/Adyen\/CheckoutIdealTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/Gravy\/GravyFormLoadTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/GatewayAdapterTest.php":{"errors":1,"warnings":5,"messages":[{"message":"Method name \"TestSetValidationAction\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":502,"column":12},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":530,"column":39},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":564,"column":39},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":580,"column":65},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":598,"column":39},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":629,"column":39}]},"\/src\/repo\/special\/EmailPreferences.php":{"errors":0,"warnings":5,"messages":[{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":12,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":13,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":14,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":17,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":19,"column":5}]},"\/src\/repo\/gateway_forms\/Form.php":{"errors":2,"warnings":0,"messages":[{"message":"Class name 'Gateway_Form' does not match filename 'Form.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":5,"column":10},{"message":"Class name \"Gateway_Form\" is not in PascalCase format","source":"Squiz.Classes.ValidClassName.NotCamelCaps","severity":5,"fixable":false,"type":"ERROR","line":5,"column":16}]},"\/src\/repo\/tests\/phpunit\/Adapter\/Adyen\/AdyenSubmitApiTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/DonationData.php":{"errors":0,"warnings":22,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":58,"column":30},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":66,"column":24},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":67,"column":24},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":69,"column":24},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":76,"column":24},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":81,"column":24},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":84,"column":21},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":101,"column":31},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":105,"column":25},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":120,"column":29},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":123,"column":26},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":124,"column":25},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":128,"column":26},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":131,"column":29},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":136,"column":22},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":364,"column":41},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":392,"column":72},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":397,"column":50},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":403,"column":34},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":404,"column":39},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":521,"column":45},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":585,"column":28}]},"\/src\/repo\/gateway_common\/MediaWikiLogHandler.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/Dlocal\/CashPaymentTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/DonorEmail.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/Gravy\/GooglePayTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/AmountTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/BaseBraintreeTestCase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/MessageUtils.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/Gravy\/RedirectFormTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/GatewayChooserTest.php":{"errors":0,"warnings":5,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":234,"column":131},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":235,"column":131},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":236,"column":135},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":512,"column":76},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":545,"column":67}]},"\/src\/repo\/tests\/phpunit\/DonationInterfaceApiTestCase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/IPVelocityTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/BaseDlocalTestCase.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/EmployerSearchApiTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":114,"column":49}]},"\/src\/repo\/tests\/phpunit\/CiviproxyConnectTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/PayPal\/PayPalExpressTest.php":{"errors":0,"warnings":6,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":120,"column":33},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":210,"column":33},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":355,"column":33},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":965,"column":45},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":1028,"column":45},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":1064,"column":45}]},"\/src\/repo\/tests\/phpunit\/Adapter\/Ingenico\/IngenicoTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/Adyen\/CheckoutCardTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/Adyen\/AdyenRecurringTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/PayPal\/PayPalApiTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/Adyen\/AdyenGetPaymentMethodsApiTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/Ingenico\/IngenicoApiTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/DonationInterfaceTestCase.php":{"errors":0,"warnings":2,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":174,"column":23},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":685,"column":51}]},"\/src\/repo\/tests\/phpunit\/Adapter\/Ingenico\/ResultSwitcherTest.php":{"errors":0,"warnings":1,"messages":[{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":59,"column":33}]},"\/src\/repo\/tests\/phpunit\/Adapter\/Braintree\/PaypalPaymentTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/tests\/phpunit\/Adapter\/Braintree\/VenmoPaymentTest.php":{"errors":0,"warnings":0,"messages":[]},"\/src\/repo\/gateway_common\/gateway.adapter.php":{"errors":20,"warnings":24,"messages":[{"message":"Class name 'GatewayAdapter' does not match filename 'gateway.adapter.php'","source":"MediaWiki.Files.ClassMatchesFilename.NotMatch","severity":5,"fixable":false,"type":"ERROR","line":38,"column":10},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":42,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":43,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":182,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":183,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":184,"column":5},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":184,"column":48},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":185,"column":5},{"message":"Visibility must be declared on all constants if your project supports PHP 7.1 or later","source":"PSR12.Properties.ConstantVisibility.NotFound","severity":5,"fixable":false,"type":"WARNING","line":186,"column":5},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":224,"column":41},{"message":"Method name \"getData_Staged\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":488,"column":15},{"message":"Method name \"getData_Unstaged_Escaped\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":581,"column":12},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":1121,"column":25},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":1498,"column":61},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":1519,"column":59},{"message":"Method name \"transaction_option\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":1606,"column":15},{"message":"Method name \"session_ensure\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2158,"column":12},{"message":"Method name \"session_getData\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2169,"column":12},{"message":"Method name \"session_hasDonorData\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2190,"column":12},{"message":"Method name \"session_setDonorBackupData\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2199,"column":12},{"message":"Method name \"session_unsetDonorData\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2208,"column":12},{"message":"Method name \"session_addDonorData\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2218,"column":12},{"message":"Method name \"session_killAllEverything\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2236,"column":12},{"message":"Method name \"session_unsetAllData\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2248,"column":12},{"message":"Method name \"session_resetForNewAttempt\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2264,"column":12},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":2281,"column":33},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":2285,"column":28},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":2293,"column":40},{"message":"Method name \"session_resetOnSwitch\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2328,"column":15},{"message":"Method name \"token_applyMD5AndSalt\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2396,"column":22},{"message":"Method name \"token_generateToken\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2414,"column":19},{"message":"Method name \"token_getSaltedSessionToken\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2419,"column":12},{"message":"Method name \"token_refreshAllTokenEverything\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2441,"column":15},{"message":"Method name \"token_matchEditToken\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2461,"column":15},{"message":"Method name \"token_checkTokens\" should use lower camel case.","source":"MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName","severity":5,"fixable":false,"type":"ERROR","line":2486,"column":15},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":2487,"column":31},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":2526,"column":64},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":2624,"column":106},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":2682,"column":39},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":2696,"column":59},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":2749,"column":45},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":2750,"column":39},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":2891,"column":27},{"message":"Comments should start on new line.","source":"MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment","severity":5,"fixable":false,"type":"WARNING","line":2904,"column":27}]}}}

--- end ---
 * sniff MediaWiki.Commenting.CommentBeforeClass.SpacingAfter is now failing
$ git checkout .phpcs.xml
--- stderr ---
Updated 1 path from the index
--- stdout ---

--- end ---
$ /usr/bin/composer install
--- stderr ---
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Nothing to install, update or remove
Generating optimized autoload files
Class SmashPig\PaymentProviders\Fundraiseup\Tests\AuditTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Fundraiseup/Tests/phpunit/AuditTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\Manual\TestCreatePayment located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/manual/TestCreatePayment.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\IdealStatusProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/phpunit/IdealStatusProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\HostedCheckoutProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/phpunit/HostedCheckoutProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\ApiTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/phpunit/ApiTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\AuditTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/phpunit/AuditTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\AuthenticatorTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/phpunit/AuthenticatorTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\BankPaymentProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/phpunit/BankPaymentProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\PaymentProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/phpunit/PaymentProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Ingenico\Tests\TokenizeRecurringJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Ingenico/Tests/phpunit/TokenizeRecurringJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Amazon\Tests\RecordPaymentsJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Amazon/Tests/phpunit/RecordPaymentsJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Amazon\Tests\NormalizeTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Amazon/Tests/phpunit/NormalizeTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Amazon\Tests\ActionsTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Amazon/Tests/phpunit/ActionsTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Amazon\Tests\ApiTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Amazon/Tests/phpunit/ApiTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Amazon\Tests\AuditTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Amazon/Tests/phpunit/AuditTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\CaptureJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/CaptureJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\RestResponseValidatorTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/RestResponseValidatorTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\CancelRecurringActionTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/CancelRecurringActionTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\RequeueMessageTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/RequeueMessageTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Tests\PaymentCaptureActionTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/PaymentCaptureActionTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\RecurringContractActionTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/RecurringContractActionTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Tests\RefundInitiatedActionTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/RefundInitiatedActionTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\RecurringContractJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/RecurringContractJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\RecurringPaymentTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/RecurringPaymentTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Tests\ReferenceDataTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/ReferenceDataTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\ApiTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/ApiTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\AutoRescueActionTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/AutoRescueActionTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Tests\ChargebackInitiatedActionTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/ChargebackInitiatedActionTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Tests\ReportAvailableTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/ReportAvailableTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\AuditTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/AuditTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Test\RecordCaptureJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/RecordCaptureJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Tests\TokenizeRecurringJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/TokenizeRecurringJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Adyen\Tests\CaptureResponseActionTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Adyen/Tests/phpunit/CaptureResponseActionTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Gravy\phpunit\RiskScoresTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Gravy/Tests/phpunit/RiskScoresTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\dlocal\Tests\PaidMessageJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/dlocal/Tests/phpunit/PaidMessageJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\dlocal\Tests\RestResponseValidatorTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/dlocal/Tests/phpunit/RestResponseValidatorTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\dlocal\Tests\RejectedMessageJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/dlocal/Tests/phpunit/RejectedMessageJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\dlocal\Tests\SignatureCalculatorTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/dlocal/Tests/phpunit/SignatureCalculatorTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\dlocal\Tests\AuthorizedMessageJobTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/dlocal/Tests/phpunit/AuthorizedMessageJobTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\dlocal\Tests\ApiTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/dlocal/Tests/phpunit/ApiTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\dlocal\Test\AuditTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/dlocal/Tests/phpunit/AuditTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\dlocal\Tests\CardPaymentProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/dlocal/Tests/phpunit/CardPaymentProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\PayPal\Tests\CaptureIncomingMessageTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/PayPal/Tests/phpunit/CaptureIncomingMessageTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\PayPal\Tests\PaymentProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/PayPal/Tests/phpunit/PaymentProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Braintree\Tests\SignatureValidatorTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Braintree/Tests/phpunit/SignatureValidatorTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Braintree\Tests\PayPalPaymentProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Braintree/Tests/phpunit/PayPalPaymentProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Braintree\Tests\VenmoPaymentProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Braintree/Tests/phpunit/VenmoPaymentProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Braintree\Tests\ApiTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Braintree/Tests/phpunit/ApiTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Braintree\Test\AuditTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Braintree/Tests/phpunit/AuditTest.php does not comply with psr-4 autoloading standard. Skipping.
Class SmashPig\PaymentProviders\Braintree\Tests\PaymentProviderTest located in ./vendor/wikimedia/smash-pig/PaymentProviders/Braintree/Tests/phpunit/PaymentProviderTest.php does not comply with psr-4 autoloading standard. Skipping.
29 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
--- stdout ---

--- end ---
$ /usr/bin/composer test
--- stderr ---
> parallel-lint . --exclude vendor --exclude node_modules
> phpcs -p -s --cache
> php tests/phpunit/LintYaml.php
> minus-x check .
--- stdout ---
PHP 8.2.28 | 10 parallel jobs
............................................................  60/204 ( 29%)
............................................................ 120/204 ( 58%)
............................................................ 180/204 ( 88%)
........................                                     204/204 (100%)


Checked 204 files in 0.8 seconds
No syntax error found
................................................... 51 / 51 (100%)


Time: 373ms; Memory: 18MB

MinusX
======
Processing /src/repo...
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
.............................................................
....................................
All good!

--- end ---
$ /usr/bin/npm audit --json
--- stdout ---
{
  "auditReportVersion": 2,
  "vulnerabilities": {
    "babel-core": {
      "name": "babel-core",
      "severity": "critical",
      "isDirect": true,
      "via": [
        "babel-helpers",
        "babel-register",
        "babel-template",
        "babel-traverse",
        "json5"
      ],
      "effects": [
        "babel-register"
      ],
      "range": "5.8.20 - 7.0.0-beta.3",
      "nodes": [
        "node_modules/babel-core"
      ],
      "fixAvailable": {
        "name": "babel-core",
        "version": "4.7.16",
        "isSemVerMajor": true
      }
    },
    "babel-helpers": {
      "name": "babel-helpers",
      "severity": "critical",
      "isDirect": false,
      "via": [
        "babel-template"
      ],
      "effects": [],
      "range": "*",
      "nodes": [
        "node_modules/babel-helpers"
      ],
      "fixAvailable": true
    },
    "babel-register": {
      "name": "babel-register",
      "severity": "high",
      "isDirect": false,
      "via": [
        "babel-core"
      ],
      "effects": [
        "babel-core"
      ],
      "range": "*",
      "nodes": [
        "node_modules/babel-register"
      ],
      "fixAvailable": {
        "name": "babel-core",
        "version": "4.7.16",
        "isSemVerMajor": true
      }
    },
    "babel-template": {
      "name": "babel-template",
      "severity": "critical",
      "isDirect": false,
      "via": [
        "babel-traverse"
      ],
      "effects": [
        "babel-helpers"
      ],
      "range": "*",
      "nodes": [
        "node_modules/babel-template"
      ],
      "fixAvailable": true
    },
    "babel-traverse": {
      "name": "babel-traverse",
      "severity": "critical",
      "isDirect": false,
      "via": [
        {
          "source": 1096879,
          "name": "babel-traverse",
          "dependency": "babel-traverse",
          "title": "Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code",
          "url": "https://github.com/advisories/GHSA-67hx-6x53-jw92",
          "severity": "critical",
          "cwe": [
            "CWE-184",
            "CWE-697"
          ],
          "cvss": {
            "score": 9.4,
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"
          },
          "range": "<7.23.2"
        }
      ],
      "effects": [
        "babel-core",
        "babel-template"
      ],
      "range": "*",
      "nodes": [
        "node_modules/babel-traverse"
      ],
      "fixAvailable": {
        "name": "babel-core",
        "version": "4.7.16",
        "isSemVerMajor": true
      }
    },
    "json5": {
      "name": "json5",
      "severity": "high",
      "isDirect": false,
      "via": [
        {
          "source": 1096543,
          "name": "json5",
          "dependency": "json5",
          "title": "Prototype Pollution in JSON5 via Parse Method",
          "url": "https://github.com/advisories/GHSA-9c47-m6qq-7p4h",
          "severity": "high",
          "cwe": [
            "CWE-1321"
          ],
          "cvss": {
            "score": 7.1,
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:H"
          },
          "range": "<1.0.2"
        }
      ],
      "effects": [
        "babel-core"
      ],
      "range": "<1.0.2",
      "nodes": [
        "node_modules/babel-core/node_modules/json5"
      ],
      "fixAvailable": {
        "name": "babel-core",
        "version": "4.7.16",
        "isSemVerMajor": true
      }
    }
  },
  "metadata": {
    "vulnerabilities": {
      "info": 0,
      "low": 0,
      "moderate": 0,
      "high": 2,
      "critical": 4,
      "total": 6
    },
    "dependencies": {
      "prod": 1,
      "dev": 1112,
      "optional": 3,
      "peer": 2,
      "peerOptional": 0,
      "total": 1112
    }
  }
}

--- end ---
Attempting to npm audit fix
$ /usr/bin/npm audit fix --dry-run --only=dev --json
--- stderr ---
npm WARN invalid config only="dev" set in command line options
npm WARN invalid config Must be one of: null, prod, production
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@2.3.1',
npm WARN EBADENGINE   required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-icons@2.3.1',
npm WARN EBADENGINE   required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
--- stdout ---
{
  "added": 1112,
  "removed": 0,
  "changed": 0,
  "audited": 1113,
  "funding": 152,
  "audit": {
    "auditReportVersion": 2,
    "vulnerabilities": {
      "babel-core": {
        "name": "babel-core",
        "severity": "critical",
        "isDirect": true,
        "via": [
          "babel-helpers",
          "babel-register",
          "babel-template",
          "babel-traverse",
          "json5"
        ],
        "effects": [
          "babel-register"
        ],
        "range": "5.8.20 - 7.0.0-beta.3",
        "nodes": [
          "node_modules/babel-core"
        ],
        "fixAvailable": {
          "name": "babel-core",
          "version": "4.7.16",
          "isSemVerMajor": true
        }
      },
      "babel-helpers": {
        "name": "babel-helpers",
        "severity": "critical",
        "isDirect": false,
        "via": [
          "babel-template"
        ],
        "effects": [],
        "range": "*",
        "nodes": [
          "node_modules/babel-helpers"
        ],
        "fixAvailable": true
      },
      "babel-register": {
        "name": "babel-register",
        "severity": "high",
        "isDirect": false,
        "via": [
          "babel-core"
        ],
        "effects": [
          "babel-core"
        ],
        "range": "*",
        "nodes": [
          "node_modules/babel-register"
        ],
        "fixAvailable": {
          "name": "babel-core",
          "version": "4.7.16",
          "isSemVerMajor": true
        }
      },
      "babel-template": {
        "name": "babel-template",
        "severity": "critical",
        "isDirect": false,
        "via": [
          "babel-traverse"
        ],
        "effects": [
          "babel-helpers"
        ],
        "range": "*",
        "nodes": [
          "node_modules/babel-template"
        ],
        "fixAvailable": true
      },
      "babel-traverse": {
        "name": "babel-traverse",
        "severity": "critical",
        "isDirect": false,
        "via": [
          {
            "source": 1096879,
            "name": "babel-traverse",
            "dependency": "babel-traverse",
            "title": "Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code",
            "url": "https://github.com/advisories/GHSA-67hx-6x53-jw92",
            "severity": "critical",
            "cwe": [
              "CWE-184",
              "CWE-697"
            ],
            "cvss": {
              "score": 9.4,
              "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"
            },
            "range": "<7.23.2"
          }
        ],
        "effects": [
          "babel-core",
          "babel-template"
        ],
        "range": "*",
        "nodes": [
          "node_modules/babel-traverse"
        ],
        "fixAvailable": {
          "name": "babel-core",
          "version": "4.7.16",
          "isSemVerMajor": true
        }
      },
      "json5": {
        "name": "json5",
        "severity": "high",
        "isDirect": false,
        "via": [
          {
            "source": 1096543,
            "name": "json5",
            "dependency": "json5",
            "title": "Prototype Pollution in JSON5 via Parse Method",
            "url": "https://github.com/advisories/GHSA-9c47-m6qq-7p4h",
            "severity": "high",
            "cwe": [
              "CWE-1321"
            ],
            "cvss": {
              "score": 7.1,
              "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:H"
            },
            "range": "<1.0.2"
          }
        ],
        "effects": [
          "babel-core"
        ],
        "range": "<1.0.2",
        "nodes": [
          "node_modules/babel-core/node_modules/json5"
        ],
        "fixAvailable": {
          "name": "babel-core",
          "version": "4.7.16",
          "isSemVerMajor": true
        }
      }
    },
    "metadata": {
      "vulnerabilities": {
        "info": 0,
        "low": 0,
        "moderate": 0,
        "high": 2,
        "critical": 4,
        "total": 6
      },
      "dependencies": {
        "prod": 1,
        "dev": 1112,
        "optional": 3,
        "peer": 2,
        "peerOptional": 0,
        "total": 1112
      }
    }
  }
}

--- end ---
{"added": 1112, "removed": 0, "changed": 0, "audited": 1113, "funding": 152, "audit": {"auditReportVersion": 2, "vulnerabilities": {"babel-core": {"name": "babel-core", "severity": "critical", "isDirect": true, "via": ["babel-helpers", "babel-register", "babel-template", "babel-traverse", "json5"], "effects": ["babel-register"], "range": "5.8.20 - 7.0.0-beta.3", "nodes": ["node_modules/babel-core"], "fixAvailable": {"name": "babel-core", "version": "4.7.16", "isSemVerMajor": true}}, "babel-helpers": {"name": "babel-helpers", "severity": "critical", "isDirect": false, "via": ["babel-template"], "effects": [], "range": "*", "nodes": ["node_modules/babel-helpers"], "fixAvailable": true}, "babel-register": {"name": "babel-register", "severity": "high", "isDirect": false, "via": ["babel-core"], "effects": ["babel-core"], "range": "*", "nodes": ["node_modules/babel-register"], "fixAvailable": {"name": "babel-core", "version": "4.7.16", "isSemVerMajor": true}}, "babel-template": {"name": "babel-template", "severity": "critical", "isDirect": false, "via": ["babel-traverse"], "effects": ["babel-helpers"], "range": "*", "nodes": ["node_modules/babel-template"], "fixAvailable": true}, "babel-traverse": {"name": "babel-traverse", "severity": "critical", "isDirect": false, "via": [{"source": 1096879, "name": "babel-traverse", "dependency": "babel-traverse", "title": "Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code", "url": "https://github.com/advisories/GHSA-67hx-6x53-jw92", "severity": "critical", "cwe": ["CWE-184", "CWE-697"], "cvss": {"score": 9.4, "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H"}, "range": "<7.23.2"}], "effects": ["babel-core", "babel-template"], "range": "*", "nodes": ["node_modules/babel-traverse"], "fixAvailable": {"name": "babel-core", "version": "4.7.16", "isSemVerMajor": true}}, "json5": {"name": "json5", "severity": "high", "isDirect": false, "via": [{"source": 1096543, "name": "json5", "dependency": "json5", "title": "Prototype Pollution in JSON5 via Parse Method", "url": "https://github.com/advisories/GHSA-9c47-m6qq-7p4h", "severity": "high", "cwe": ["CWE-1321"], "cvss": {"score": 7.1, "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:H"}, "range": "<1.0.2"}], "effects": ["babel-core"], "range": "<1.0.2", "nodes": ["node_modules/babel-core/node_modules/json5"], "fixAvailable": {"name": "babel-core", "version": "4.7.16", "isSemVerMajor": true}}}, "metadata": {"vulnerabilities": {"info": 0, "low": 0, "moderate": 0, "high": 2, "critical": 4, "total": 6}, "dependencies": {"prod": 1, "dev": 1112, "optional": 3, "peer": 2, "peerOptional": 0, "total": 1112}}}}
$ /usr/bin/npm audit fix --only=dev
--- stderr ---
npm WARN invalid config only="dev" set in command line options
npm WARN invalid config Must be one of: null, prod, production
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@2.3.1',
npm WARN EBADENGINE   required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-icons@2.3.1',
npm WARN EBADENGINE   required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated osenv@0.1.5: This package is no longer supported.
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated glob@7.1.7: Glob versions prior to v9 are no longer supported
npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
npm WARN deprecated core-js@2.6.12: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
--- stdout ---

added 1111 packages, and audited 1112 packages in 12s

152 packages are looking for funding
  run `npm fund` for details

# npm audit report

babel-traverse  *
Severity: critical
Babel vulnerable to arbitrary code execution when compiling specifically crafted malicious code - https://github.com/advisories/GHSA-67hx-6x53-jw92
fix available via `npm audit fix --force`
Will install babel-core@4.7.16, which is a breaking change
node_modules/babel-traverse
  babel-core  5.8.20 - 7.0.0-beta.3
  Depends on vulnerable versions of babel-helpers
  Depends on vulnerable versions of babel-register
  Depends on vulnerable versions of babel-template
  Depends on vulnerable versions of babel-traverse
  Depends on vulnerable versions of json5
  node_modules/babel-core
    babel-register  *
    Depends on vulnerable versions of babel-core
    node_modules/babel-register
  babel-template  *
  Depends on vulnerable versions of babel-traverse
  node_modules/babel-template
    babel-helpers  *
    Depends on vulnerable versions of babel-template
    node_modules/babel-helpers

json5  <1.0.2
Severity: high
Prototype Pollution in JSON5 via Parse Method - https://github.com/advisories/GHSA-9c47-m6qq-7p4h
fix available via `npm audit fix --force`
Will install babel-core@4.7.16, which is a breaking change
node_modules/babel-core/node_modules/json5

6 vulnerabilities (2 high, 4 critical)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

--- end ---
Verifying that tests still pass
$ /usr/bin/npm ci
--- stderr ---
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex@2.3.1',
npm WARN EBADENGINE   required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE   package: '@wikimedia/codex-icons@2.3.1',
npm WARN EBADENGINE   required: { node: '>=20.19.1', npm: '>=10.8.2' },
npm WARN EBADENGINE   current: { node: 'v18.19.0', npm: '9.2.0' }
npm WARN EBADENGINE }
npm WARN deprecated osenv@0.1.5: This package is no longer supported.
npm WARN deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm WARN deprecated @humanwhocodes/config-array@0.13.0: Use @eslint/config-array instead
npm WARN deprecated rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
npm WARN deprecated abab@2.0.6: Use your platform's native atob() and btoa() methods instead
npm WARN deprecated @humanwhocodes/object-schema@2.0.3: Use @eslint/object-schema instead
npm WARN deprecated glob@7.1.7: Glob versions prior to v9 are no longer supported
npm WARN deprecated domexception@4.0.0: Use your platform's native DOMException instead
npm WARN deprecated eslint@8.57.1: This version is no longer supported. Please see https://eslint.org/version-support for other options.
npm WARN deprecated core-js@2.6.12: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
--- stdout ---

added 1111 packages, and audited 1112 packages in 23s

152 packages are looking for funding
  run `npm fund` for details

6 vulnerabilities (2 high, 4 critical)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.

--- end ---
$ /usr/bin/npm test
--- stderr ---
PASS tests/jest/views/login.test.js
PASS tests/jest/views/pause-donations.test.js
PASS tests/jest/components/recurring-cancel-confirmation.test.js
PASS tests/jest/views/cancel-donations.test.js
PASS tests/jest/components/donations_history.test.js
PASS tests/jest/views/home.test.js
PASS tests/jest/components/recurring-cancel-form.test.js
PASS tests/jest/components/donations_list_table.test.js
PASS tests/jest/components/recurring_contribution_summary.test.js
PASS tests/jest/components/recurring-pause-form.test.js
PASS tests/jest/components/inactive_recurring_contribution.test.js
PASS tests/jest/components/active_recurring_contribution.test.js
PASS tests/jest/components/app.test.js
PASS tests/jest/components/header.test.js
PASS tests/jest/routes/router.test.js
PASS tests/jest/components/recurring-cancel-success.test.js
PASS tests/jest/components/contact_details.test.js
PASS tests/jest/components/onetime_contribution.test.js
PASS tests/jest/components/recurring-cancel-option-container.test.js
PASS tests/jest/components/recurring-pause-success.test.js
PASS tests/jest/components/greeting_component.test.js
PASS tests/jest/components/error-component.test.js

Test Suites: 22 passed, 22 total
Tests:       49 passed, 49 total
Snapshots:   0 total
Time:        9.227 s
Ran all test suites.
--- stdout ---

> test
> grunt test && npm run test:unit

Running "eslint:all" (eslint) task

/src/repo/Gruntfile.js
  37:11  warning  ES2015 'Object.assign' method is forbidden  es-x/no-object-assign

/src/repo/adyen_gateway/forms/adyen.js
    1:26  warning  'Promise' is already defined as a built-in global variable           no-redeclare
    5:3   warning  'configFromServer' is never reassigned. Use 'const' instead          prefer-const
    6:3   warning  'payment_method' is never reassigned. Use 'const' instead            prefer-const
    8:3   warning  'country' is never reassigned. Use 'const' instead                   prefer-const
    9:3   warning  'language' is never reassigned. Use 'const' instead                  prefer-const
   17:3   warning  'GOOGLEPAY_COMPONENT_TYPE' is never reassigned. Use 'const' instead  prefer-const
   18:3   warning  'ACH_GET_DONOR_ADDRESS' is never reassigned. Use 'const' instead     prefer-const
   25:1   warning  Missing JSDoc @return type                                           jsdoc/require-returns-type
   65:5   warning  Unexpected var, use let or const instead                             no-var
   81:23  warning  ES2015 'Promise' class is forbidden                                  es-x/no-promise
   83:11  warning  'bContact' is never reassigned. Use 'const' instead                  prefer-const
   84:8   warning  'sContact' is never reassigned. Use 'const' instead                  prefer-const
  132:5   warning  Unexpected var, use let or const instead                             no-var
  163:23  warning  ES2015 'Promise' class is forbidden                                  es-x/no-promise
  223:34  warning  ES2015 'Promise' class is forbidden                                  es-x/no-promise
  227:14  warning  ES2015 'Promise' class is forbidden                                  es-x/no-promise
  311:2   warning  'submitPromise' is never reassigned. Use 'const' instead             prefer-const
  311:22  warning  ES2015 'Promise' class is forbidden                                  es-x/no-promise
  399:6   warning  ES2015 'Object.assign' method is forbidden                           es-x/no-object-assign
  538:4   warning  ES2015 'Object.assign' method is forbidden                           es-x/no-object-assign
  548:4   warning  'containerName' is never reassigned. Use 'const' instead             prefer-const
  552:3   warning  'component_type' is never reassigned. Use 'const' instead            prefer-const
  571:3   warning  'oldShowErrors' is never reassigned. Use 'const' instead             prefer-const
  593:3   warning  'config' is never reassigned. Use 'const' instead                    prefer-const
  601:3   warning  'checkoutPromise' is never reassigned. Use 'const' instead           prefer-const
  625:4   warning  ES2015 'Promise' class is forbidden                                  es-x/no-promise
  652:4   warning  ES2015 'Promise' class is forbidden                                  es-x/no-promise

/src/repo/amazon_gateway/amazon.js
    3:6   warning  'clientId' is never reassigned. Use 'const' instead                   prefer-const
    4:3   warning  'sellerId' is never reassigned. Use 'const' instead                   prefer-const
    5:3   warning  'sandbox' is never reassigned. Use 'const' instead                    prefer-const
    6:3   warning  'returnUrl' is never reassigned. Use 'const' instead                  prefer-const
    7:3   warning  'widgetScript' is never reassigned. Use 'const' instead               prefer-const
    8:3   warning  'loginScript' is never reassigned. Use 'const' instead                prefer-const
    9:3   warning  'failPage' is never reassigned. Use 'const' instead                   prefer-const
   10:3   warning  'isRecurring' is never reassigned. Use 'const' instead                prefer-const
   14:3   warning  'validTokenPattern' is never reassigned. Use 'const' instead          prefer-const
   14:23  warning  Use a regular expression literal instead of the 'RegExp' constructor  prefer-regex-literals
   22:3   warning  'CARD_SELECT_DELAY' is never reassigned. Use 'const' instead          prefer-const
   98:2   warning  'accessToken' is never reassigned. Use 'const' instead                prefer-const
   99:2   warning  'loginError' is never reassigned. Use 'const' instead                 prefer-const
  268:8   warning  Selector extensions are not allowed                                   no-jquery/no-sizzle

/src/repo/braintree_gateway/forms/braintree.js
  10:6  warning  'di' is never reassigned. Use 'const' instead              prefer-const
  12:3  warning  'payment_method' is never reassigned. Use 'const' instead  prefer-const

/src/repo/dlocal_gateway/forms/dlocal.js
  27:7  warning  'dlocalInstance' is never reassigned. Use 'const' instead   prefer-const
  28:4  warning  'fields' is never reassigned. Use 'const' instead           prefer-const
  33:4  warning  'commonStyle' is never reassigned. Use 'const' instead      prefer-const
  49:3  warning  'cardField' is never reassigned. Use 'const' instead        prefer-const
  55:3  warning  'expirationField' is never reassigned. Use 'const' instead  prefer-const
  61:3  warning  'cvvField' is never reassigned. Use 'const' instead         prefer-const

/src/repo/gravy_gateway/forms/gravy.js
   11:2   warning  'extraData' is never reassigned. Use 'const' instead                                 prefer-const
   12:2   warning  'configFromServer' is never reassigned. Use 'const' instead                          prefer-const
   13:2   warning  'sessionId' is never reassigned. Use 'const' instead                                 prefer-const
   14:2   warning  'environment' is never reassigned. Use 'const' instead                               prefer-const
   15:2   warning  'gravyId' is never reassigned. Use 'const' instead                                   prefer-const
   16:2   warning  'redirectPaypal' is never reassigned. Use 'const' instead                            prefer-const
   17:2   warning  'showRedirectText' is never reassigned. Use 'const' instead                          prefer-const
   18:2   warning  'googlePaymentClient' is never reassigned. Use 'const' instead                       prefer-const
   20:2   warning  'language' is never reassigned. Use 'const' instead                                  prefer-const
   21:2   warning  'country' is never reassigned. Use 'const' instead                                   prefer-const
   22:2   warning  'isIndia' is never reassigned. Use 'const' instead                                   prefer-const
   23:2   warning  'applePayPaySessionVersionNumber' is never reassigned. Use 'const' instead           prefer-const
  122:25  warning  All possible message keys should be documented. See https://w.wiki/4r9a for details  mediawiki/msg-doc
  122:49  warning  All possible message keys should be documented. See https://w.wiki/4r9a for details  mediawiki/msg-doc
  260:8   warning  'extraData' is already declared in the upper scope on line 11 column 2               no-shadow
  410:43  warning  'appleSession' is already declared in the upper scope on line 19 column 2            no-shadow
  456:8   warning  'extraData' is already declared in the upper scope on line 11 column 2               no-shadow

/src/repo/modules/ext.donationInterface.donorPortal/components/ActiveRecurringContribution.vue
  16:7  warning  'v-html' directive can lead to XSS attack  vue/no-v-html

/src/repo/modules/ext.donationInterface.donorPortal/components/DonationsListTable.vue
  33:8  warning  Attribute ":class" should go before "@click"  vue/attributes-order

/src/repo/modules/ext.donationInterface.donorPortal/views/LoginView.vue
  30:7   warning  'v-html' directive can lead to XSS attack  vue/no-v-html
  57:17  warning  'v-html' directive can lead to XSS attack  vue/no-v-html

/src/repo/modules/iframe.liberator.js
  1:10  warning  'self' is already defined as a built-in global variable  no-redeclare

/src/repo/modules/js/ext.donationInterface.applePayHelper.js
   4:1  warning  Missing JSDoc @param "$" type                jsdoc/require-param-type
   5:1  warning  Missing JSDoc @param "mw" type               jsdoc/require-param-type
  15:1  warning  Missing JSDoc @param "extraData" type        jsdoc/require-param-type
  16:1  warning  Missing JSDoc @param "billingContact" type   jsdoc/require-param-type
  17:1  warning  Missing JSDoc @param "shippingContact" type  jsdoc/require-param-type

/src/repo/modules/js/ext.donationInterface.employerAutoComplete.js
  28:21  warning  Prefer .then to .done  no-jquery/no-done-fail

/src/repo/modules/js/ext.donationInterface.errorLog.js
  16:3  warning  'postdata' is never reassigned. Use 'const' instead  prefer-const

/src/repo/modules/js/ext.donationInterface.forms.js
    4:1   warning  Missing JSDoc @param "$" type                        jsdoc/require-param-type
    5:1   warning  Missing JSDoc @param "mw" type                       jsdoc/require-param-type
   74:27  warning  Selector extensions are not allowed                  no-jquery/no-sizzle
   90:12  warning  '$element' is never reassigned. Use 'const' instead  prefer-const
  105:1   warning  The type 'result' is undefined                       jsdoc/no-undefined-types
  127:3   warning  'sendData' is never reassigned. Use 'const' instead  prefer-const
  163:4   warning  ES2015 'Object.assign' method is forbidden           es-x/no-object-assign
  263:8   warning  Selector extensions are not allowed                  no-jquery/no-sizzle

/src/repo/modules/js/ext.donationInterface.jaVariant02.js
  8:1  warning  Missing JSDoc @param "mw" type  jsdoc/require-param-type
  9:1  warning  Missing JSDoc @param "$" type   jsdoc/require-param-type

/src/repo/modules/js/ext.donationInterface.monthlyConvert.js
    2:6   warning  'mc' is never reassigned. Use 'const' instead                         prefer-const
    6:3   warning  'tyUrl' is never reassigned. Use 'const' instead                      prefer-const
    9:3   warning  'convertAmounts' is never reassigned. Use 'const' instead             prefer-const
   17:3   warning  'numAmounts' is never reassigned. Use 'const' instead                 prefer-const
   26:49  warning  'currency' is already declared in the upper scope on line 3 column 3  no-shadow
   34:39  warning  'currency' is already declared in the upper scope on line 3 column 3  no-shadow
  103:51  warning  'currency' is already declared in the upper scope on line 3 column 3  no-shadow
  104:7   warning  'rates' is never reassigned. Use 'const' instead                      prefer-const
  105:4   warning  'amountRules' is never reassigned. Use 'const' instead                prefer-const
  107:4   warning  '$smallAmountMessage' is never reassigned. Use 'const' instead        prefer-const
  117:3   warning  'formattedMin' is never reassigned. Use 'const' instead               prefer-const
  133:4   warning  'locale' is never reassigned. Use 'const' instead                     prefer-const
  136:3   warning  'presetAmount' is never reassigned. Use 'const' instead               prefer-const

/src/repo/modules/js/ext.donationInterface.monthlyConvertAnnual.js
   3:7   warning  'mc' is never reassigned. Use 'const' instead                        prefer-const
   3:31  warning  'originalGetSendData' is never reassigned. Use 'const' instead       prefer-const
   4:4   warning  'originalAmount' is never reassigned. Use 'const' instead            prefer-const
   5:4   warning  '$otherAmountMonthlyInput' is never reassigned. Use 'const' instead  prefer-const
   5:62  warning  '$otherAmountAnnualInput' is never reassigned. Use 'const' instead   prefer-const
   6:4   warning  '$otherMonthlySubmit' is never reassigned. Use 'const' instead       prefer-const
   6:60  warning  '$otherAnnualSubmit' is never reassigned. Use 'const' instead        prefer-const
   7:4   warning  '$smallAmountMessage' is never reassigned. Use 'const' instead       prefer-const
  15:3   warning  'originalAmountFormatted' is never reassigned. Use 'const' instead   prefer-const

/src/repo/modules/js/ext.donationInterface.monthlyConvertMultiplier.js
  3:7  warning  'mc' is never reassigned. Use 'const' instead              prefer-const
  4:3  warning  'originalAmount' is never reassigned. Use 'const' instead  prefer-const

/src/repo/modules/js/ext.donationInterface.monthlyConvert_011.js
  3:7  warning  'mc' is never reassigned. Use 'const' instead              prefer-const
  4:4  warning  'locale' is never reassigned. Use 'const' instead          prefer-const
  5:3  warning  'originalAmount' is never reassigned. Use 'const' instead  prefer-const
  6:3  warning  'currency' is never reassigned. Use 'const' instead        prefer-const
  7:3  warning  'presetAmount' is never reassigned. Use 'const' instead    prefer-const
  8:3  warning  'formattedAsk' is never reassigned. Use 'const' instead    prefer-const

/src/repo/modules/js/ext.donationInterface.recurUpgrade.js
   3:7  warning  '$submitButton' is never reassigned. Use 'const' instead      prefer-const
   4:4  warning  '$amountField' is never reassigned. Use 'const' instead       prefer-const
   5:4  warning  '$otherAmountField' is never reassigned. Use 'const' instead  prefer-const
   6:4  warning  '$totalMessage' is never reassigned. Use 'const' instead      prefer-const
   7:4  warning  '$newTotalAmount' is never reassigned. Use 'const' instead    prefer-const
   8:4  warning  '$form' is never reassigned. Use 'const' instead              prefer-const
   9:4  warning  'originalAmount' is never reassigned. Use 'const' instead     prefer-const
  10:4  warning  'currency' is never reassigned. Use 'const' instead           prefer-const
  11:4  warning  'maximum' is never reassigned. Use 'const' instead            prefer-const
  12:4  warning  'nextDateFormatted' is never reassigned. Use 'const' instead  prefer-const
  14:4  warning  'preSelectAmount' is never reassigned. Use 'const' instead    prefer-const
  38:4  warning  'valueIsValid' is never reassigned. Use 'const' instead       prefer-const

/src/repo/modules/js/ext.donationInterface.validation.js
   7:1   warning  Missing JSDoc @param "$" type                                      jsdoc/require-param-type
   8:1   warning  Missing JSDoc @param "mw" type                                     jsdoc/require-param-type
  11:6   warning  'di' is never reassigned. Use 'const' instead                      prefer-const
  13:3   warning  'mcDomains' is never reassigned. Use 'const' instead               prefer-const
  33:3   warning  'multiCountrySubdomains' is never reassigned. Use 'const' instead  prefer-const
  34:3   warning  'countryTlds' is never reassigned. Use 'const' instead             prefer-const
  40:26  warning  'i' is already declared in the upper scope on line 39 column 36    no-shadow

/src/repo/modules/validate_input.js
    1:1   warning  Missing JSDoc @return declaration                                                    jsdoc/require-returns
    9:3   warning  'rates' is never reassigned. Use 'const' instead                                     prefer-const
   10:3   warning  'amountRules' is never reassigned. Use 'const' instead                               prefer-const
   14:3   warning  '$amountMsg' is never reassigned. Use 'const' instead                                prefer-const
   15:3   warning  'threeDecimalCurrencies' is never reassigned. Use 'const' instead                    prefer-const
   86:3   warning  'invalids' is never reassigned. Use 'const' instead                                  prefer-const
   87:3   warning  'rules' is never reassigned. Use 'const' instead                                     prefer-const
  105:27  warning  'value' is already declared in the upper scope on line 82 column 6                   no-shadow
  107:14  warning  All possible message keys should be documented. See https://w.wiki/4r9a for details  mediawiki/msg-doc
  113:23  warning  'i' is already declared in the upper scope on line 85 column 3                       no-shadow
  145:2   warning  'countryField' is never reassigned. Use 'const' instead                              prefer-const
  168:2   warning  'emailAdd' is never reassigned. Use 'const' instead                                  prefer-const

/src/repo/paypal_ec_gateway/forms/js/paypal.js
  2:6  warning  'di' is never reassigned. Use 'const' instead     prefer-const
  3:3  warning  'rules' is never reassigned. Use 'const' instead  prefer-const

/src/repo/tests/jest/components/inactive_recurring_contribution.test.js
  28:31  warning  ES2015 'Object.assign' method is forbidden  es-x/no-object-assign

/src/repo/tests/jest/views/cancel-donations.test.js
  5:34  warning  ES2015 'Object.assign' method is forbidden  es-x/no-object-assign

/src/repo/tests/jest/views/pause-donations.test.js
  5:34  warning  ES2015 'Object.assign' method is forbidden  es-x/no-object-assign

✖ 155 problems (0 errors, 155 warnings)
  0 errors and 1 warning potentially fixable with the `--fix` option.


Running "stylelint:all" (stylelint) task
>> Linted 17 files without errors

Running "banana:DonationInterface" (banana) task
>> 10 message directories checked.

Done.

> test:unit
> jest

----------------------------------------------------|---------|----------|---------|---------|-------------------
File                                                | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
----------------------------------------------------|---------|----------|---------|---------|-------------------
All files                                           |   96.31 |    92.45 |   91.09 |    96.3 |                   
 ext.donationInterface.donorPortal                  |   93.75 |    83.33 |     100 |   93.75 |                   
  router.js                                         |   93.75 |    83.33 |     100 |   93.75 | 34                
 ext.donationInterface.donorPortal/components       |   96.25 |     97.5 |   88.65 |   96.25 |                   
  ActiveRecurringContribution.vue                   |     100 |      100 |     100 |     100 |                   
  App.vue                                           |     100 |      100 |     100 |     100 |                   
  DonationsHistory.vue                              |   93.54 |      100 |      75 |   93.54 | 14-21             
  DonationsListTable.vue                            |   88.46 |    93.75 |      80 |   88.46 | 22,72,85          
  DonorContactDetails.vue                           |     100 |      100 |     100 |     100 |                   
  ErrorComponent.vue                                |     100 |      100 |     100 |     100 |                   
  GreetingComponent.vue                             |     100 |      100 |     100 |     100 |                   
  Header.vue                                        |     100 |      100 |     100 |     100 |                   
  InactiveRecurringContribution.vue                 |     100 |      100 |     100 |     100 |                   
  OnetimeContribution.vue                           |     100 |      100 |     100 |     100 |                   
  RadioButtonInput.vue                              |   93.75 |      100 |      75 |   93.75 | 57                
  RecurringContributionCancelAltOptionContainer.vue |     100 |      100 |     100 |     100 |                   
  RecurringContributionCancelConfirmation.vue       |   97.14 |      100 |   91.66 |   97.14 | 22                
  RecurringContributionCancelForm.vue               |   92.68 |      100 |      85 |   92.68 | 23,51,54          
  RecurringContributionCancelSuccess.vue            |   94.11 |       50 |     100 |   94.11 | 21                
  RecurringContributionPauseForm.vue                |   96.42 |      100 |    87.5 |   96.42 | 22                
  RecurringContributionPauseSuccess.vue             |   92.85 |      100 |      75 |   92.85 | 17                
  RecurringContributionSummary.vue                  |     100 |      100 |     100 |     100 |                   
 ext.donationInterface.donorPortal/views            |   96.61 |    87.67 |   95.83 |   96.58 |                   
  AmountDowngrade.vue                               |    87.5 |      100 |       0 |    87.5 | 15                
  AnnualConversion.vue                              |    87.5 |      100 |       0 |    87.5 | 15                
  CancelDonations.vue                               |   98.36 |    85.71 |     100 |   98.33 | 31                
  Home.vue                                          |   97.22 |    90.32 |     100 |   97.22 | 43                
  LoginView.vue                                     |   96.15 |       90 |     100 |   96.15 | 56,64             
  PauseDonations.vue                                |   97.61 |       75 |     100 |   97.56 | 26                
----------------------------------------------------|---------|----------|---------|---------|-------------------

--- end ---
{}
{}
$ package-lock-lint package-lock.json
--- stdout ---
Checking package-lock.json

--- end ---
build: Updating mediawiki/mediawiki-codesniffer to 48.0.0

The following sniffs are failing and were disabled:
* MediaWiki.Commenting.CommentBeforeClass.SpacingAfter

$ git add .
--- stdout ---

--- end ---
$ git commit -F /tmp/tmp5s1mahi5
--- stdout ---
[master 82ba2a0] build: Updating mediawiki/mediawiki-codesniffer to 48.0.0
 27 files changed, 6 insertions(+), 57 deletions(-)

--- end ---
$ git format-patch HEAD~1 --stdout
--- stdout ---
From 82ba2a06029887687aa23b29988f71750b709e16 Mon Sep 17 00:00:00 2001
From: libraryupgrader <tools.libraryupgrader@tools.wmflabs.org>
Date: Mon, 8 Sep 2025 01:58:12 +0000
Subject: [PATCH] build: Updating mediawiki/mediawiki-codesniffer to 48.0.0

The following sniffs are failing and were disabled:
* MediaWiki.Commenting.CommentBeforeClass.SpacingAfter

Change-Id: I1d74c05ed9f207ddd715fd4b9932fadf443276a9
---
 .phpcs.xml                                    |  1 +
 adyen_gateway/adyen_checkout.adapter.php      |  1 -
 amazon_gateway/amazon_gateway.body.php        |  1 -
 braintree_gateway/braintree.adapter.php       |  1 -
 composer.json                                 |  2 +-
 dlocal_gateway/dlocal.adapter.php             |  1 -
 gateway_common/DonationData.php               |  4 +--
 gateway_common/employerSearch.api.php         |  1 -
 gateway_common/gateway.adapter.php            |  2 --
 gravy_gateway/gravy_gateway.body.php          |  4 ---
 special/FundraiserMaintenance.php             |  1 -
 .../Adapter/Adyen/AdyenFormLoadTest.php       |  1 -
 .../Adapter/Adyen/CheckoutCardTest.php        |  1 -
 .../Adapter/Adyen/CheckoutIdealTest.php       |  1 -
 tests/phpunit/Adapter/Amazon/AmazonTest.php   |  1 -
 .../Adapter/Braintree/PaypalPaymentTest.php   |  1 -
 tests/phpunit/Adapter/GatewayAdapterTest.php  |  2 --
 .../Adapter/Gravy/GravyFormLoadTest.php       |  1 -
 .../Adapter/Ingenico/IngenicoApiTest.php      |  1 -
 .../phpunit/Adapter/Ingenico/IngenicoTest.php |  1 -
 .../RealTimeBankTransferIdealTest.php         |  1 -
 .../Adapter/Ingenico/RecurringTest.php        |  1 -
 .../Adapter/PayPal/PayPalExpressTest.php      |  1 -
 tests/phpunit/DonationDataTest.php            | 28 ++-----------------
 tests/phpunit/DonationInterfaceTestCase.php   |  1 -
 tests/phpunit/LoggingTest.php                 |  1 -
 .../includes/test_gateway/test.adapter.php    |  1 -
 27 files changed, 6 insertions(+), 57 deletions(-)

diff --git a/.phpcs.xml b/.phpcs.xml
index 3e1fcdf..f6ba847 100644
--- a/.phpcs.xml
+++ b/.phpcs.xml
@@ -1,6 +1,7 @@
 <?xml version="1.0"?>
 <ruleset>
 	<rule ref="./vendor/mediawiki/mediawiki-codesniffer/MediaWiki">
+		<exclude name="MediaWiki.Commenting.CommentBeforeClass.SpacingAfter" />
 		<exclude name="MediaWiki.Files.ClassMatchesFilename.NotMatch" />
 		<exclude name="MediaWiki.NamingConventions.LowerCamelFunctionsName.FunctionName" />
 		<exclude name="MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment" />
diff --git a/adyen_gateway/adyen_checkout.adapter.php b/adyen_gateway/adyen_checkout.adapter.php
index 8a2a0fb..70098e6 100644
--- a/adyen_gateway/adyen_checkout.adapter.php
+++ b/adyen_gateway/adyen_checkout.adapter.php
@@ -440,7 +440,6 @@ class AdyenCheckoutAdapter extends GatewayAdapter implements RecurringConversion
 	 *
 	 * @param string $queue What queue to send the message to
 	 * @param bool $contactOnly If we only have the donor's contact information
-	 *
 	 */
 	protected function pushMessage( $queue, $contactOnly = false ) {
 		// Don't send recurring bank payments to the donations queue.
diff --git a/amazon_gateway/amazon_gateway.body.php b/amazon_gateway/amazon_gateway.body.php
index af6107f..8865cc5 100644
--- a/amazon_gateway/amazon_gateway.body.php
+++ b/amazon_gateway/amazon_gateway.body.php
@@ -13,7 +13,6 @@
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  * GNU General Public License for more details.
- *
  */
 
 class AmazonGateway extends GatewayPage {
diff --git a/braintree_gateway/braintree.adapter.php b/braintree_gateway/braintree.adapter.php
index 1535322..27468fa 100644
--- a/braintree_gateway/braintree.adapter.php
+++ b/braintree_gateway/braintree.adapter.php
@@ -28,7 +28,6 @@ class BraintreeAdapter extends GatewayAdapter implements RecurringConversion {
 	}
 
 	/**
-	 *
 	 * @param CreatePaymentResponse $createPaymentResult
 	 * @param PaymentProvider $provider
 	 * @return PaymentResult
diff --git a/composer.json b/composer.json
index b3b694d..c636809 100644
--- a/composer.json
+++ b/composer.json
@@ -35,7 +35,7 @@
 		"whichbrowser/parser": "^2.1"
 	},
 	"require-dev": {
-		"mediawiki/mediawiki-codesniffer": "47.0.0",
+		"mediawiki/mediawiki-codesniffer": "48.0.0",
 		"mediawiki/mediawiki-phan-config": "0.17.0",
 		"mediawiki/minus-x": "1.1.3",
 		"php-parallel-lint/php-console-highlighter": "1.0.0",
diff --git a/dlocal_gateway/dlocal.adapter.php b/dlocal_gateway/dlocal.adapter.php
index 1b99a9b..7e09615 100644
--- a/dlocal_gateway/dlocal.adapter.php
+++ b/dlocal_gateway/dlocal.adapter.php
@@ -194,7 +194,6 @@ class DlocalAdapter extends GatewayAdapter implements RecurringConversion {
 	}
 
 	/**
-	 *
 	 * @param PaymentProviderExtendedResponse $paymentDetailResponse
 	 * @param IPaymentProvider $paymentProvider
 	 * @return PaymentResult
diff --git a/gateway_common/DonationData.php b/gateway_common/DonationData.php
index 0b195f9..ddae0d8 100644
--- a/gateway_common/DonationData.php
+++ b/gateway_common/DonationData.php
@@ -37,11 +37,11 @@ class DonationData implements LogPrefixProvider {
 	 * get poked through to gateways in some form or other,
 	 * from a get or post. We handle the actual
 	 * normalization in normalize() helpers, below.
-	 * @TODO: It would be really neat if the gateways kept
+	 * @todo It would be really neat if the gateways kept
 	 * track of all the things that ***only they will ever
 	 * need***, and could interject those needs here...
 	 * Then we could really clean up.
-	 * @TODO also: Think about putting log alarms on the
+	 * @todo also: Think about putting log alarms on the
 	 * keys we want to see disappear forever, complete with
 	 * referrer for easy total destruction.
 	 * @var string[]
diff --git a/gateway_common/employerSearch.api.php b/gateway_common/employerSearch.api.php
index 67a3e03..ee28f00 100644
--- a/gateway_common/employerSearch.api.php
+++ b/gateway_common/employerSearch.api.php
@@ -12,7 +12,6 @@ use Wikimedia\ParamValidator\ParamValidator;
  * The datasource for this API is currently a CSV which contains the full
  * list of matchin gift employers available and is provided to us via a
  * third party. A separate process manages updating that datasource.
- *
  */
 class EmployerSearchAPI extends ApiBase {
 
diff --git a/gateway_common/gateway.adapter.php b/gateway_common/gateway.adapter.php
index 2a91173..25cf948 100644
--- a/gateway_common/gateway.adapter.php
+++ b/gateway_common/gateway.adapter.php
@@ -34,7 +34,6 @@ use SmashPig\PaymentData\ValidationAction;
 
 /**
  * GatewayAdapter
- *
  */
 abstract class GatewayAdapter implements GatewayType {
 	/**
@@ -1576,7 +1575,6 @@ abstract class GatewayAdapter implements GatewayType {
 	 *
 	 * @param string $queue What queue to send the message to
 	 * @param bool $contactOnly If we only have the donor's contact information
-	 *
 	 */
 	protected function pushMessage( $queue, $contactOnly = false ) {
 		$this->logger->info( "Pushing transaction to queue [$queue]" );
diff --git a/gravy_gateway/gravy_gateway.body.php b/gravy_gateway/gravy_gateway.body.php
index f80c64f..0cac2a7 100644
--- a/gravy_gateway/gravy_gateway.body.php
+++ b/gravy_gateway/gravy_gateway.body.php
@@ -143,7 +143,6 @@ class GravyGateway extends GatewayPage {
 	}
 
 	/**
-	 *
 	 * @return bool
 	 */
 	private function isCreditCard(): bool {
@@ -151,7 +150,6 @@ class GravyGateway extends GatewayPage {
 	}
 
 	/**
-	 *
 	 * @return bool
 	 */
 	private function isACH(): bool {
@@ -160,7 +158,6 @@ class GravyGateway extends GatewayPage {
 	}
 
 	/**
-	 *
 	 * @return bool
 	 */
 	private function isGooglePay(): bool {
@@ -168,7 +165,6 @@ class GravyGateway extends GatewayPage {
 	}
 
 	/**
-	 *
 	 * @return bool
 	 */
 	private function isApplePay(): bool {
diff --git a/special/FundraiserMaintenance.php b/special/FundraiserMaintenance.php
index 8af2815..7684eea 100644
--- a/special/FundraiserMaintenance.php
+++ b/special/FundraiserMaintenance.php
@@ -3,7 +3,6 @@
 use MediaWiki\SpecialPage\UnlistedSpecialPage;
 
 /**
- *
  * -- License --
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
diff --git a/tests/phpunit/Adapter/Adyen/AdyenFormLoadTest.php b/tests/phpunit/Adapter/Adyen/AdyenFormLoadTest.php
index 369f210..f51b979 100644
--- a/tests/phpunit/Adapter/Adyen/AdyenFormLoadTest.php
+++ b/tests/phpunit/Adapter/Adyen/AdyenFormLoadTest.php
@@ -20,7 +20,6 @@ use SmashPig\PaymentProviders\Adyen\CardPaymentProvider;
 use SmashPig\PaymentProviders\Responses\PaymentMethodResponse;
 
 /**
- *
  * @group Fundraising
  * @group DonationInterface
  * @group Adyen
diff --git a/tests/phpunit/Adapter/Adyen/CheckoutCardTest.php b/tests/phpunit/Adapter/Adyen/CheckoutCardTest.php
index b06357c..c936ca1 100644
--- a/tests/phpunit/Adapter/Adyen/CheckoutCardTest.php
+++ b/tests/phpunit/Adapter/Adyen/CheckoutCardTest.php
@@ -478,7 +478,6 @@ class CheckoutCardTest extends BaseAdyenCheckoutTestCase {
 	/**
 	 * Integration test to verify that the createPayment method isn't called
 	 * when user_ip is added to the deny list
-	 *
 	 */
 	public function testDoPaymentAttemptBlockedDueToIPInDenyList() {
 		$threshold = 2;
diff --git a/tests/phpunit/Adapter/Adyen/CheckoutIdealTest.php b/tests/phpunit/Adapter/Adyen/CheckoutIdealTest.php
index c362a06..dff912c 100644
--- a/tests/phpunit/Adapter/Adyen/CheckoutIdealTest.php
+++ b/tests/phpunit/Adapter/Adyen/CheckoutIdealTest.php
@@ -223,7 +223,6 @@ class CheckoutIdealTest extends BaseAdyenCheckoutTestCase {
 	/**
 	 * Integration test to verify that the createPayment method isn't called
 	 * when user_ip is added to the deny list
-	 *
 	 */
 	public function testDoPaymentIdealAttemptBlockedDueToIPInDenyList() {
 		$this->setMwGlobalsForIPVelocityFilterTest( 2 );
diff --git a/tests/phpunit/Adapter/Amazon/AmazonTest.php b/tests/phpunit/Adapter/Amazon/AmazonTest.php
index 456954f..3edfea8 100644
--- a/tests/phpunit/Adapter/Amazon/AmazonTest.php
+++ b/tests/phpunit/Adapter/Amazon/AmazonTest.php
@@ -23,7 +23,6 @@ use SmashPig\PaymentProviders\Amazon\Tests\AmazonTestConfiguration;
 use SmashPig\Tests\TestingContext;
 
 /**
- *
  * @group Fundraising
  * @group DonationInterface
  * @group Amazon
diff --git a/tests/phpunit/Adapter/Braintree/PaypalPaymentTest.php b/tests/phpunit/Adapter/Braintree/PaypalPaymentTest.php
index fafad8a..1f51be1 100644
--- a/tests/phpunit/Adapter/Braintree/PaypalPaymentTest.php
+++ b/tests/phpunit/Adapter/Braintree/PaypalPaymentTest.php
@@ -252,7 +252,6 @@ class PaypalPaymentTest extends BaseBraintreeTestCase {
 	/**
 	 * Integration test to verify that the createPayment method isn't called
 	 * when user_ip is added to the deny list
-	 *
 	 */
 	public function testDoPaymentAttemptBlockedDueToIPInDenyList() {
 		$threshold = 2;
diff --git a/tests/phpunit/Adapter/GatewayAdapterTest.php b/tests/phpunit/Adapter/GatewayAdapterTest.php
index a71e0fe..319d358 100644
--- a/tests/phpunit/Adapter/GatewayAdapterTest.php
+++ b/tests/phpunit/Adapter/GatewayAdapterTest.php
@@ -43,7 +43,6 @@ use Wikimedia\TestingAccessWrapper;
 class GatewayAdapterTest extends DonationInterfaceTestCase {
 
 	/**
-	 *
 	 * @covers GatewayAdapter::__construct
 	 * @covers GatewayAdapter::defineVarMap
 	 * @covers GatewayAdapter::defineTransactions
@@ -197,7 +196,6 @@ class GatewayAdapterTest extends DonationInterfaceTestCase {
 	}
 
 	/**
-	 *
 	 * @covers GatewayAdapter::__construct
 	 * @covers DonationData::__construct
 	 */
diff --git a/tests/phpunit/Adapter/Gravy/GravyFormLoadTest.php b/tests/phpunit/Adapter/Gravy/GravyFormLoadTest.php
index cc136aa..2ae9c4a 100644
--- a/tests/phpunit/Adapter/Gravy/GravyFormLoadTest.php
+++ b/tests/phpunit/Adapter/Gravy/GravyFormLoadTest.php
@@ -20,7 +20,6 @@ use SmashPig\PaymentProviders\Gravy\CardPaymentProvider;
 use SmashPig\PaymentProviders\Responses\CreatePaymentSessionResponse;
 
 /**
- *
  * @group Fundraising
  * @group DonationInterface
  * @group Gravy
diff --git a/tests/phpunit/Adapter/Ingenico/IngenicoApiTest.php b/tests/phpunit/Adapter/Ingenico/IngenicoApiTest.php
index c8a5122..1f6e9f7 100644
--- a/tests/phpunit/Adapter/Ingenico/IngenicoApiTest.php
+++ b/tests/phpunit/Adapter/Ingenico/IngenicoApiTest.php
@@ -318,7 +318,6 @@ class IngenicoApiTest extends DonationInterfaceApiTestCase {
 	 * GatewatAdapterApiTest suite once we get that up and running.
 	 *
 	 * @group DonationInterfaceOptionalFields
-	 *
 	 */
 	public function testOptionalFieldBehaviour(): void {
 		$this->overrideConfigValues( [
diff --git a/tests/phpunit/Adapter/Ingenico/IngenicoTest.php b/tests/phpunit/Adapter/Ingenico/IngenicoTest.php
index a01683e..85d53fb 100644
--- a/tests/phpunit/Adapter/Ingenico/IngenicoTest.php
+++ b/tests/phpunit/Adapter/Ingenico/IngenicoTest.php
@@ -27,7 +27,6 @@ use SmashPig\PaymentProviders\Responses\PaymentProviderExtendedResponse;
 use Wikimedia\TestingAccessWrapper;
 
 /**
- *
  * @group Fundraising
  * @group DonationInterface
  * @group Ingenico
diff --git a/tests/phpunit/Adapter/Ingenico/RealTimeBankTransferIdealTest.php b/tests/phpunit/Adapter/Ingenico/RealTimeBankTransferIdealTest.php
index d97601c..52b2057 100644
--- a/tests/phpunit/Adapter/Ingenico/RealTimeBankTransferIdealTest.php
+++ b/tests/phpunit/Adapter/Ingenico/RealTimeBankTransferIdealTest.php
@@ -22,7 +22,6 @@ use SmashPig\Tests\TestingContext;
 use SmashPig\Tests\TestingProviderConfiguration;
 
 /**
- *
  * @group Fundraising
  * @group DonationInterface
  * @group Ingenico
diff --git a/tests/phpunit/Adapter/Ingenico/RecurringTest.php b/tests/phpunit/Adapter/Ingenico/RecurringTest.php
index 9cb7cb8..f2aeca7 100644
--- a/tests/phpunit/Adapter/Ingenico/RecurringTest.php
+++ b/tests/phpunit/Adapter/Ingenico/RecurringTest.php
@@ -19,7 +19,6 @@
 use SmashPig\Core\DataStores\QueueWrapper;
 
 /**
- *
  * @group Fundraising
  * @group DonationInterface
  * @group Ingenico
diff --git a/tests/phpunit/Adapter/PayPal/PayPalExpressTest.php b/tests/phpunit/Adapter/PayPal/PayPalExpressTest.php
index 1f4c945..c979d94 100644
--- a/tests/phpunit/Adapter/PayPal/PayPalExpressTest.php
+++ b/tests/phpunit/Adapter/PayPal/PayPalExpressTest.php
@@ -32,7 +32,6 @@ use SmashPig\Tests\TestingContext;
 use SmashPig\Tests\TestingProviderConfiguration;
 
 /**
- *
  * @group Fundraising
  * @group DonationInterface
  * @group PayPal
diff --git a/tests/phpunit/DonationDataTest.php b/tests/phpunit/DonationDataTest.php
index 224ea12..2ec0aec 100644
--- a/tests/phpunit/DonationDataTest.php
+++ b/tests/phpunit/DonationDataTest.php
@@ -224,9 +224,6 @@ class DonationDataTest extends DonationInterfaceTestCase {
 		$this->assertNotEmpty( $matches );
 	}
 
-	/**
-	 *
-	 */
 	public function testRepopulate() {
 		$expected = $this->testData;
 
@@ -244,8 +241,8 @@ class DonationDataTest extends DonationInterfaceTestCase {
 		$returned = $ddObj->getData();
 		// unset these, because they're always new
 		$unsettable = [
-			'order_id',
-			'contribution_tracking_id'
+		'order_id',
+		'contribution_tracking_id'
 		];
 
 		foreach ( $unsettable as $thing ) {
@@ -256,9 +253,6 @@ class DonationDataTest extends DonationInterfaceTestCase {
 		$this->assertEquals( $expected, $returned, "The forced test data did not populate as expected." );
 	}
 
-	/**
-	 *
-	 */
 	public function testIsSomething() {
 		$data = $this->testData;
 		unset( $data['postal_code'] );
@@ -268,9 +262,6 @@ class DonationDataTest extends DonationInterfaceTestCase {
 		$this->assertTrue( $ddObj->isSomething( 'last_name' ), "last_name should currently be something." );
 	}
 
-	/**
-	 *
-	 */
 	public function testSetNormalizedAmount_amtGiven() {
 		$data = $this->testData;
 		$data['amount'] = 'this is not a number';
@@ -281,9 +272,6 @@ class DonationDataTest extends DonationInterfaceTestCase {
 		$this->assertArrayNotHasKey( 'amountGiven', $returned, "amountGiven should have been removed from the data" );
 	}
 
-	/**
-	 *
-	 */
 	public function testSetNormalizedAmount_amount() {
 		$data = $this->testData;
 		$data['amount'] = 88.15;
@@ -294,9 +282,6 @@ class DonationDataTest extends DonationInterfaceTestCase {
 		$this->assertArrayNotHasKey( 'amountGiven', $returned, "amountGiven should have been removed from the data" );
 	}
 
-	/**
-	 *
-	 */
 	public function testSetNormalizedAmount_negativeAmount() {
 		$data = $this->testData;
 		$data['amount'] = -1;
@@ -307,9 +292,6 @@ class DonationDataTest extends DonationInterfaceTestCase {
 		$this->assertArrayNotHasKey( 'amountOther', $returned, "amountOther should have been removed from the data" );
 	}
 
-	/**
-	 *
-	 */
 	public function testSetNormalizedAmount_noGoodAmount() {
 		$data = $this->testData;
 		$data['amount'] = 'splunge';
@@ -336,9 +318,6 @@ class DonationDataTest extends DonationInterfaceTestCase {
 		$this->assertEquals( 'USD', $returned['currency'], 'Currency code was not properly reset' );
 	}
 
-	/**
-	 *
-	 */
 	public function testSetNormalizedLanguage_uselang() {
 		$data = $this->testData;
 		unset( $data['uselang'] );
@@ -352,9 +331,6 @@ class DonationDataTest extends DonationInterfaceTestCase {
 		$this->assertArrayNotHasKey( 'uselang', $returned, "'uselang' should have been removed from the data" );
 	}
 
-	/**
-	 *
-	 */
 	public function testSetNormalizedLanguage_language() {
 		$data = $this->testData;
 		unset( $data['uselang'] );
diff --git a/tests/phpunit/DonationInterfaceTestCase.php b/tests/phpunit/DonationInterfaceTestCase.php
index 9f0c687..181599a 100644
--- a/tests/phpunit/DonationInterfaceTestCase.php
+++ b/tests/phpunit/DonationInterfaceTestCase.php
@@ -165,7 +165,6 @@ abstract class DonationInterfaceTestCase extends MediaWikiIntegrationTestCase {
 	}
 
 	/**
-	 *
 	 * @param string $country The country we want the test user to be from.
 	 * @return array Donor data to use
 	 * @throws OutOfBoundsException when there is no data available for the requested country
diff --git a/tests/phpunit/LoggingTest.php b/tests/phpunit/LoggingTest.php
index 01d99fd..39b2179 100644
--- a/tests/phpunit/LoggingTest.php
+++ b/tests/phpunit/LoggingTest.php
@@ -18,7 +18,6 @@
 use Psr\Log\LogLevel;
 
 /**
- *
  * @group Fundraising
  * @group DonationInterface
  * @coversNothing
diff --git a/tests/phpunit/includes/test_gateway/test.adapter.php b/tests/phpunit/includes/test_gateway/test.adapter.php
index 322b161..c4620d6 100644
--- a/tests/phpunit/includes/test_gateway/test.adapter.php
+++ b/tests/phpunit/includes/test_gateway/test.adapter.php
@@ -13,7 +13,6 @@
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  * GNU General Public License for more details.
- *
  */
 
 trait TTestingAdapter {
-- 
2.39.5


--- end ---
Source code is licensed under the AGPL.