diff options
author | Christoph Wurst <ChristophWurst@users.noreply.github.com> | 2021-01-07 16:17:09 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-07 16:17:09 +0300 |
commit | 11a01568b052129fb6fc56a9c767cded92bde578 (patch) | |
tree | d5cb37050fc958a3a68bc47beead05fcb426e034 | |
parent | 1794e6744e0719d127e29d2c68df32ebdead9410 (diff) | |
parent | a2ef40fd8e8a0c9bec3c18d8f8300b3f6563238e (diff) |
Merge pull request #823 from nextcloud/enh/add/psalmv21.0.0beta5
Add pslam
-rw-r--r-- | .github/workflows/static-analysis.yml | 26 | ||||
-rw-r--r-- | composer.json | 11 | ||||
-rw-r--r-- | composer.lock | 33 | ||||
-rw-r--r-- | psalm.xml | 37 | ||||
-rw-r--r-- | tests/psalm-baseline.xml | 92 |
5 files changed, 194 insertions, 5 deletions
diff --git a/.github/workflows/static-analysis.yml b/.github/workflows/static-analysis.yml new file mode 100644 index 0000000..4f40268 --- /dev/null +++ b/.github/workflows/static-analysis.yml @@ -0,0 +1,26 @@ +name: Static analysis + +on: [pull_request] + +jobs: + static-psalm-analysis: + runs-on: ubuntu-latest + strategy: + matrix: + ocp-version: [ 'dev-master' ] + name: Nextcloud ${{ matrix.ocp-version }} + steps: + - name: Checkout + uses: actions/checkout@master + - name: Set up php + uses: shivammathur/setup-php@master + with: + php-version: 7.4 + tools: composer:v1 + coverage: none + - name: Install dependencies + run: composer i + - name: Install dependencies + run: composer require --dev christophwurst/nextcloud:${{ matrix.ocp-version }} + - name: Run coding standards check + run: composer run psalm diff --git a/composer.json b/composer.json index 223d7d5..67a266f 100644 --- a/composer.json +++ b/composer.json @@ -2,21 +2,24 @@ "name": "nextcloud/notifications", "description": "notifications", "license": "AGPL", - "require": {}, + "require": { + }, "require-dev": { "phpunit/phpunit": "^8.5", - "nextcloud/coding-standard": "^0.3.0" + "nextcloud/coding-standard": "^0.3.0", + "psalm/phar": "^4.3" }, "config": { "optimize-autoloader": true, "classmap-authoritative": true, "platform": { - "php": "7.2" + "php": "7.3" } }, "scripts": { "lint": "find . -name \\*.php -not -path './vendor/*' -not -path './build/*' -print0 | xargs -0 -n1 php -l", "cs:check": "php-cs-fixer fix --dry-run --diff", - "cs:fix": "php-cs-fixer fix" + "cs:fix": "php-cs-fixer fix", + "psalm": "psalm.phar" } } diff --git a/composer.lock b/composer.lock index ca4aa00..5508f6d 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "ff852300cf09d0acae1f3c2866605367", + "content-hash": "e3537c3628e10b6e06c2bb95b2d2786f", "packages": [], "packages-dev": [ { @@ -1318,6 +1318,37 @@ "time": "2020-12-01T04:53:52+00:00" }, { + "name": "psalm/phar", + "version": "4.3.1", + "source": { + "type": "git", + "url": "https://github.com/psalm/phar.git", + "reference": "f61d8f0eaaf5f7c26f1269ddeaf1fbe29dff1bee" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/psalm/phar/zipball/f61d8f0eaaf5f7c26f1269ddeaf1fbe29dff1bee", + "reference": "f61d8f0eaaf5f7c26f1269ddeaf1fbe29dff1bee", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "vimeo/psalm": "*" + }, + "bin": [ + "psalm.phar" + ], + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Composer-based Psalm Phar", + "time": "2020-12-03T21:44:12+00:00" + }, + { "name": "psr/container", "version": "1.0.0", "source": { diff --git a/psalm.xml b/psalm.xml new file mode 100644 index 0000000..8f37a4d --- /dev/null +++ b/psalm.xml @@ -0,0 +1,37 @@ +<?xml version="1.0"?> +<psalm + errorLevel="4" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns="https://getpsalm.org/schema/config" + xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd" + errorBaseline="tests/psalm-baseline.xml" +> + <projectFiles> + <directory name="lib" /> + <ignoreFiles> + <directory name="vendor" /> + </ignoreFiles> + </projectFiles> + <extraFiles> + <directory name="vendor" /> + <ignoreFiles> + <directory name="vendor/phpunit/php-code-coverage" /> + </ignoreFiles> + </extraFiles> + <issueHandlers> + <UndefinedClass> + <errorLevel type="suppress"> + <referencedClass name="OC" /> + <referencedClass name="Doctrine\DBAL\Types\Types" /> + </errorLevel> + </UndefinedClass> + <UndefinedDocblockClass> + <errorLevel type="suppress"> + <referencedClass name="Doctrine\DBAL\Schema\Schema" /> + <referencedClass name="Doctrine\DBAL\Schema\SchemaException" /> + <referencedClass name="Doctrine\DBAL\Driver\Statement" /> + <referencedClass name="Doctrine\DBAL\Schema\Table" /> + </errorLevel> + </UndefinedDocblockClass> + </issueHandlers> +</psalm> diff --git a/tests/psalm-baseline.xml b/tests/psalm-baseline.xml new file mode 100644 index 0000000..0453e0c --- /dev/null +++ b/tests/psalm-baseline.xml @@ -0,0 +1,92 @@ +<?xml version="1.0" encoding="UTF-8"?> +<files psalm-version="4.3.1@2feba22a005a18bf31d4c7b9bdb9252c73897476"> + <file src="lib/AppInfo/Application.php"> + <UndefinedClass occurrences="2"> + <code>IProvider</code> + <code>IProvider</code> + </UndefinedClass> + </file> + <file src="lib/Controller/APIController.php"> + <NullArgument occurrences="4"> + <code>null</code> + <code>null</code> + <code>null</code> + <code>null</code> + </NullArgument> + </file> + <file src="lib/Controller/EndpointController.php"> + <NullArgument occurrences="8"> + <code>null</code> + <code>null</code> + <code>null</code> + <code>null</code> + <code>null</code> + <code>null</code> + <code>null</code> + <code>null</code> + </NullArgument> + </file> + <file src="lib/Controller/PushController.php"> + <UndefinedClass occurrences="8"> + <code>IProvider</code> + <code>IToken</code> + <code>IToken</code> + <code>IToken</code> + <code>IToken</code> + <code>InvalidTokenException</code> + <code>InvalidTokenException</code> + <code>Manager</code> + </UndefinedClass> + <UndefinedDocblockClass occurrences="4"> + <code>$this->tokenProvider</code> + <code>$this->tokenProvider</code> + <code>IProvider</code> + <code>Manager</code> + </UndefinedDocblockClass> + </file> + <file src="lib/Migration/Version2004Date20190107135757.php"> + <UndefinedClass occurrences="21"> + <code>Type</code> + <code>Type</code> + <code>Type</code> + <code>Type</code> + <code>Type</code> + <code>Type</code> + <code>Type</code> + <code>Type</code> + <code>Type</code> + <code>Type</code> + <code>Type</code> + <code>Type</code> + <code>Type</code> + <code>Type</code> + <code>Type</code> + <code>Type</code> + <code>Type</code> + <code>Type</code> + <code>Type</code> + <code>Type</code> + <code>Type</code> + </UndefinedClass> + </file> + <file src="lib/Push.php"> + <UndefinedClass occurrences="9"> + <code>$e</code> + <code>$e</code> + <code>ClientException</code> + <code>IProvider</code> + <code>InvalidTokenException</code> + <code>Key</code> + <code>Key</code> + <code>Manager</code> + <code>ServerException</code> + </UndefinedClass> + <UndefinedDocblockClass occurrences="5"> + <code>$this->keyManager</code> + <code>$this->keyManager</code> + <code>$this->tokenProvider</code> + <code>IProvider</code> + <code>Manager</code> + </UndefinedDocblockClass> + </file> +</files> |