From 07e916f9d5d88c1ea3e5fc8c6d81ffbb5cd1ad29 Mon Sep 17 00:00:00 2001 From: Florian Levis Date: Fri, 23 Oct 2020 19:27:46 +0200 Subject: [PATCH 01/29] Fix phpdoc for model Commit (#576) --- lib/Gitlab/Model/Commit.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Gitlab/Model/Commit.php b/lib/Gitlab/Model/Commit.php index 1cc8e05e1..e77cdc63b 100644 --- a/lib/Gitlab/Model/Commit.php +++ b/lib/Gitlab/Model/Commit.php @@ -79,7 +79,7 @@ public static function fromArray(Client $client, Project $project, array $data) /** * @param Project $project - * @param int|null $id + * @param string|null $id * @param Client|null $client * * @return void From 834edc567e3c1c0a81f0714d7cc9ba4907e21c8b Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Fri, 23 Oct 2020 18:41:16 +0100 Subject: [PATCH 02/29] Upgraded static analyzers --- .github/CONTRIBUTING.md | 2 +- .github/workflows/static.yml | 2 +- Makefile | 6 +++--- psalm-baseline.xml | 7 ++++++- vendor-bin/phpstan/composer.json | 9 +++++---- vendor-bin/phpunit/composer.json | 1 + vendor-bin/psalm/composer.json | 3 ++- vendor-bin/rector/composer.json | 11 ++--------- 8 files changed, 21 insertions(+), 20 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 81c932f42..898298954 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -21,7 +21,7 @@ First, install the dependencies: $ make install ``` -Then run the test suite and static analyzer: +Then run the test suite and static analyzers: ```bash $ make test diff --git a/.github/workflows/static.yml b/.github/workflows/static.yml index 8e37ab32d..aaf4e1612 100644 --- a/.github/workflows/static.yml +++ b/.github/workflows/static.yml @@ -67,7 +67,7 @@ jobs: command: composer bin psalm update --no-interaction --no-progress - name: Execute Psalm - run: vendor/bin/psalm --no-progress --output-format=github + run: vendor/bin/psalm.phar --no-progress --output-format=github rector: name: Rector diff --git a/Makefile b/Makefile index ea8eb46ec..b116e0108 100644 --- a/Makefile +++ b/Makefile @@ -12,13 +12,13 @@ phpstan-baseline: @docker run -it -w /data -v ${PWD}:/data:delegated --entrypoint vendor/bin/phpstan --rm registry.gitlab.com/grahamcampbell/php:7.4-cli analyze --generate-baseline psalm-analyze: - @docker run -it -w /data -v ${PWD}:/data:delegated --entrypoint vendor/bin/psalm --rm registry.gitlab.com/grahamcampbell/php:7.4-cli + @docker run -it -w /data -v ${PWD}:/data:delegated --entrypoint vendor/bin/psalm.phar --rm registry.gitlab.com/grahamcampbell/php:7.4-cli psalm-baseline: - @docker run -it -w /data -v ${PWD}:/data:delegated --entrypoint vendor/bin/psalm --rm registry.gitlab.com/grahamcampbell/php:7.4-cli --set-baseline=psalm-baseline.xml + @docker run -it -w /data -v ${PWD}:/data:delegated --entrypoint vendor/bin/psalm.phar --rm registry.gitlab.com/grahamcampbell/php:7.4-cli --set-baseline=psalm-baseline.xml psalm-show-info: - @docker run -it -w /data -v ${PWD}:/data:delegated --entrypoint vendor/bin/psalm --rm registry.gitlab.com/grahamcampbell/php:7.4-cli --show-info=true + @docker run -it -w /data -v ${PWD}:/data:delegated --entrypoint vendor/bin/psalm.phar --rm registry.gitlab.com/grahamcampbell/php:7.4-cli --show-info=true rector-dry-run: @docker run -it -w /data -v ${PWD}:/data:delegated --entrypoint vendor/bin/rector --rm registry.gitlab.com/grahamcampbell/php:7.4-cli process --dry-run diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 959eb4fc3..8b9be4723 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -1,6 +1,11 @@ - + + + + doHandleRequest + + diff --git a/vendor-bin/phpstan/composer.json b/vendor-bin/phpstan/composer.json index ac9390369..03a7e5651 100644 --- a/vendor-bin/phpstan/composer.json +++ b/vendor-bin/phpstan/composer.json @@ -1,10 +1,11 @@ { "require": { - "phpstan/phpstan": "~0.12.33", + "php": "^7.2.5", + "phpstan/phpstan": "~0.12.51", "phpstan/phpstan-deprecation-rules": "~0.12.5", - "phpstan/phpstan-strict-rules": "~0.12.4", - "thecodingmachine/phpstan-strict-rules": "~0.12.0", - "ergebnis/phpstan-rules": "~0.15.0" + "phpstan/phpstan-strict-rules": "~0.12.5", + "thecodingmachine/phpstan-strict-rules": "~0.12.1", + "ergebnis/phpstan-rules": "~0.15.2" }, "config": { "preferred-install": "dist" diff --git a/vendor-bin/phpunit/composer.json b/vendor-bin/phpunit/composer.json index dc492dbac..22e7874dd 100644 --- a/vendor-bin/phpunit/composer.json +++ b/vendor-bin/phpunit/composer.json @@ -1,5 +1,6 @@ { "require": { + "php": "^5.6 || ^7.0", "phpunit/phpunit": "^5.7.27 || ^7.5.15" }, "config": { diff --git a/vendor-bin/psalm/composer.json b/vendor-bin/psalm/composer.json index 92a7feef5..ad330b999 100644 --- a/vendor-bin/psalm/composer.json +++ b/vendor-bin/psalm/composer.json @@ -1,6 +1,7 @@ { "require": { - "vimeo/psalm": "~3.12.2" + "php": "^7.3", + "psalm/phar": "~4.0.1" }, "config": { "preferred-install": "dist" diff --git a/vendor-bin/rector/composer.json b/vendor-bin/rector/composer.json index 890fbd82d..7bfda3937 100644 --- a/vendor-bin/rector/composer.json +++ b/vendor-bin/rector/composer.json @@ -1,14 +1,7 @@ { "require": { - "phpstan/phpstan": "0.12.32", - "rector/rector": "0.7.48", - "symplify/auto-bind-parameter": "8.1.13", - "symplify/autowire-array-parameter": "8.1.13", - "symplify/console-color-diff": "8.1.13", - "symplify/package-builder": "8.1.13", - "symplify/parameter-name-guard": "8.1.13", - "symplify/set-config-resolver": "8.1.13", - "symplify/smart-file-system": "8.1.13" + "php": "^7.2.5", + "rector/rector-prefixed": "0.7.61" }, "config": { "preferred-install": "dist" From b4752bf3efa416bdd333082cfff2af9ee2233fa5 Mon Sep 17 00:00:00 2001 From: Eric de Ruiter Date: Fri, 23 Oct 2020 19:41:33 +0200 Subject: [PATCH 03/29] Allow int|string for group_id parameters (#572) --- lib/Gitlab/Api/AbstractApi.php | 4 +- lib/Gitlab/Api/Groups.php | 90 +++++++++++++++++----------------- 2 files changed, 47 insertions(+), 47 deletions(-) diff --git a/lib/Gitlab/Api/AbstractApi.php b/lib/Gitlab/Api/AbstractApi.php index aa07860b0..dcd01385d 100644 --- a/lib/Gitlab/Api/AbstractApi.php +++ b/lib/Gitlab/Api/AbstractApi.php @@ -203,8 +203,8 @@ protected function getProjectPath($id, $path) } /** - * @param int $id - * @param string $path + * @param int|string $id + * @param string $path * * @return string */ diff --git a/lib/Gitlab/Api/Groups.php b/lib/Gitlab/Api/Groups.php index bc81f1b35..ed7b2598b 100644 --- a/lib/Gitlab/Api/Groups.php +++ b/lib/Gitlab/Api/Groups.php @@ -29,7 +29,7 @@ public function all(array $parameters = []) } /** - * @param int $id + * @param int|string $id * * @return mixed */ @@ -69,8 +69,8 @@ public function create($name, $path, $description = null, $visibility = 'private } /** - * @param int $id - * @param array $params + * @param int|string $id + * @param array $params * * @return mixed */ @@ -80,7 +80,7 @@ public function update($id, array $params) } /** - * @param int $group_id + * @param int|string $group_id * * @return mixed */ @@ -90,7 +90,7 @@ public function remove($group_id) } /** - * @param int $group_id + * @param int|string $group_id * @param int|string $project_id * * @return mixed @@ -101,8 +101,8 @@ public function transfer($group_id, $project_id) } /** - * @param int $group_id - * @param array $parameters + * @param int|string $group_id + * @param array $parameters * * @return mixed */ @@ -115,8 +115,8 @@ public function allMembers($group_id, array $parameters = []) } /** - * @param int $group_id - * @param array $parameters { + * @param int|string $group_id + * @param array $parameters { * * @var string $query A query string to search for members. * } @@ -132,8 +132,8 @@ public function members($group_id, array $parameters = []) } /** - * @param int $group_id - * @param int $user_id + * @param int|string $group_id + * @param int $user_id * * @return mixed */ @@ -143,9 +143,9 @@ public function member($group_id, $user_id) } /** - * @param int $group_id - * @param int $user_id - * @param int $access_level + * @param int|string $group_id + * @param int $user_id + * @param int $access_level * * @return mixed */ @@ -158,9 +158,9 @@ public function addMember($group_id, $user_id, $access_level) } /** - * @param int $group_id - * @param int $user_id - * @param int $access_level + * @param int|string $group_id + * @param int $user_id + * @param int $access_level * * @return mixed */ @@ -172,8 +172,8 @@ public function saveMember($group_id, $user_id, $access_level) } /** - * @param int $group_id - * @param int $user_id + * @param int|string $group_id + * @param int $user_id * * @return mixed */ @@ -183,8 +183,8 @@ public function removeMember($group_id, $user_id) } /** - * @param int $id - * @param array $parameters { + * @param int|string $id + * @param array $parameters { * * @var bool $archived limit by archived status * @var string $visibility limit by visibility public, internal, or private @@ -262,8 +262,8 @@ public function projects($id, array $parameters = []) } /** - * @param int $group_id - * @param array $parameters { + * @param int|string $group_id + * @param array $parameters { * * @var int[] $skip_groups skip the group IDs passes * @var bool $all_available show all the groups you have access to @@ -284,8 +284,8 @@ public function subgroups($group_id, array $parameters = []) } /** - * @param int $group_id - * @param array $parameters + * @param int|string $group_id + * @param array $parameters * * @return mixed */ @@ -297,8 +297,8 @@ public function labels($group_id, array $parameters = []) } /** - * @param int $group_id - * @param array $params + * @param int|string $group_id + * @param array $params * * @return mixed */ @@ -308,8 +308,8 @@ public function addLabel($group_id, array $params) } /** - * @param int $group_id - * @param array $params + * @param int|string $group_id + * @param array $params * * @return mixed */ @@ -319,8 +319,8 @@ public function updateLabel($group_id, array $params) } /** - * @param int $group_id - * @param string $name + * @param int|string $group_id + * @param string $name * * @return mixed */ @@ -332,8 +332,8 @@ public function removeLabel($group_id, $name) } /** - * @param int $group_id - * @param array $parameters + * @param int|string $group_id + * @param array $parameters * * @return mixed */ @@ -345,8 +345,8 @@ public function variables($group_id, array $parameters = []) } /** - * @param int $group_id - * @param string $key + * @param int|string $group_id + * @param string $key * * @return mixed */ @@ -356,10 +356,10 @@ public function variable($group_id, $key) } /** - * @param int $group_id - * @param string $key - * @param string $value - * @param bool|null $protected + * @param int|string $group_id + * @param string $key + * @param string $value + * @param bool|null $protected * * @return mixed */ @@ -378,10 +378,10 @@ public function addVariable($group_id, $key, $value, $protected = null) } /** - * @param int $group_id - * @param string $key - * @param string $value - * @param bool|null $protected + * @param int|string $group_id + * @param string $key + * @param string $value + * @param bool|null $protected * * @return mixed */ @@ -399,8 +399,8 @@ public function updateVariable($group_id, $key, $value, $protected = null) } /** - * @param int $group_id - * @param string $key + * @param int|string $group_id + * @param string $key * * @return mixed */ From 9649fc049e6eb23e405eddc37c5b904b1ed2d05f Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Fri, 23 Oct 2020 18:46:54 +0100 Subject: [PATCH 04/29] Fixed remaining group id cases --- lib/Gitlab/Api/GroupsBoards.php | 18 +++++++++--------- lib/Gitlab/Api/GroupsMilestones.php | 14 +++++++------- lib/Gitlab/Api/Issues.php | 2 +- lib/Gitlab/Api/IssuesStatistics.php | 2 +- lib/Gitlab/Api/Projects.php | 2 +- lib/Gitlab/Model/Project.php | 2 +- lib/Gitlab/Model/User.php | 4 ++-- 7 files changed, 22 insertions(+), 22 deletions(-) diff --git a/lib/Gitlab/Api/GroupsBoards.php b/lib/Gitlab/Api/GroupsBoards.php index 363c3c4f5..f2de09f36 100644 --- a/lib/Gitlab/Api/GroupsBoards.php +++ b/lib/Gitlab/Api/GroupsBoards.php @@ -20,7 +20,7 @@ public function all($group_id = null, array $parameters = []) } /** - * @param int $group_id + * @param int|string $group_id * @param int $board_id * * @return mixed @@ -31,7 +31,7 @@ public function show($group_id, $board_id) } /** - * @param int $group_id + * @param int|string $group_id * @param array $params * * @return mixed @@ -42,7 +42,7 @@ public function create($group_id, array $params) } /** - * @param int $group_id + * @param int|string $group_id * @param int $board_id * @param array $params * @@ -54,7 +54,7 @@ public function update($group_id, $board_id, array $params) } /** - * @param int $group_id + * @param int|string $group_id * @param int $board_id * * @return mixed @@ -65,7 +65,7 @@ public function remove($group_id, $board_id) } /** - * @param int $group_id + * @param int|string $group_id * @param int $board_id * * @return mixed @@ -76,7 +76,7 @@ public function allLists($group_id, $board_id) } /** - * @param int $group_id + * @param int|string $group_id * @param int $board_id * @param int $list_id * @@ -88,7 +88,7 @@ public function showList($group_id, $board_id, $list_id) } /** - * @param int $group_id + * @param int|string $group_id * @param int $board_id * @param int $label_id * @@ -104,7 +104,7 @@ public function createList($group_id, $board_id, $label_id) } /** - * @param int $group_id + * @param int|string $group_id * @param int $board_id * @param int $list_id * @param int $position @@ -121,7 +121,7 @@ public function updateList($group_id, $board_id, $list_id, $position) } /** - * @param int $group_id + * @param int|string $group_id * @param int $board_id * @param int $list_id * diff --git a/lib/Gitlab/Api/GroupsMilestones.php b/lib/Gitlab/Api/GroupsMilestones.php index 6109e9cd1..1327d9eb6 100644 --- a/lib/Gitlab/Api/GroupsMilestones.php +++ b/lib/Gitlab/Api/GroupsMilestones.php @@ -15,7 +15,7 @@ class GroupsMilestones extends AbstractApi const STATE_CLOSED = 'closed'; /** - * @param int $group_id + * @param int|string $group_id * @param array $parameters { * * @var int[] $iids return only the milestones having the given iids @@ -43,7 +43,7 @@ public function all($group_id, array $parameters = []) } /** - * @param int $group_id + * @param int|string $group_id * @param int $milestone_id * * @return mixed @@ -54,7 +54,7 @@ public function show($group_id, $milestone_id) } /** - * @param int $group_id + * @param int|string $group_id * @param array $params * * @return mixed @@ -65,7 +65,7 @@ public function create($group_id, array $params) } /** - * @param int $group_id + * @param int|string $group_id * @param int $milestone_id * @param array $params * @@ -77,7 +77,7 @@ public function update($group_id, $milestone_id, array $params) } /** - * @param int $group_id + * @param int|string $group_id * @param int $milestone_id * * @return mixed @@ -88,7 +88,7 @@ public function remove($group_id, $milestone_id) } /** - * @param int $group_id + * @param int|string $group_id * @param int $milestone_id * * @return mixed @@ -99,7 +99,7 @@ public function issues($group_id, $milestone_id) } /** - * @param int $group_id + * @param int|string $group_id * @param int $milestone_id * * @return mixed diff --git a/lib/Gitlab/Api/Issues.php b/lib/Gitlab/Api/Issues.php index 05c42287c..207509e41 100644 --- a/lib/Gitlab/Api/Issues.php +++ b/lib/Gitlab/Api/Issues.php @@ -41,7 +41,7 @@ public function all($project_id = null, array $parameters = []) } /** - * @param int $group_id + * @param int|string $group_id * @param array $parameters * * @return mixed diff --git a/lib/Gitlab/Api/IssuesStatistics.php b/lib/Gitlab/Api/IssuesStatistics.php index 9375b7b20..d3f2eeb9d 100644 --- a/lib/Gitlab/Api/IssuesStatistics.php +++ b/lib/Gitlab/Api/IssuesStatistics.php @@ -29,7 +29,7 @@ public function project($project_id, $parameters) } /** - * @param int $group_id + * @param int|string $group_id * @param array $parameters * * @return mixed diff --git a/lib/Gitlab/Api/Projects.php b/lib/Gitlab/Api/Projects.php index 0e7b3c082..0ed962a30 100644 --- a/lib/Gitlab/Api/Projects.php +++ b/lib/Gitlab/Api/Projects.php @@ -984,7 +984,7 @@ public function addShare($project_id, array $parameters = []) /** * @param int|string $project_id - * @param int $group_id + * @param int|string $group_id * * @return mixed */ diff --git a/lib/Gitlab/Model/Project.php b/lib/Gitlab/Model/Project.php index 34b32dd98..9d9ff76f6 100644 --- a/lib/Gitlab/Model/Project.php +++ b/lib/Gitlab/Model/Project.php @@ -1144,7 +1144,7 @@ public function removeSnippet($id) } /** - * @param int $group_id + * @param int|string $group_id * * @return Group */ diff --git a/lib/Gitlab/Model/User.php b/lib/Gitlab/Model/User.php index 4c8ae160e..aafeaaac5 100644 --- a/lib/Gitlab/Model/User.php +++ b/lib/Gitlab/Model/User.php @@ -215,7 +215,7 @@ public function removeKey($id) } /** - * @param int $group_id + * @param int|string $group_id * @param int $access_level * * @return User @@ -228,7 +228,7 @@ public function addToGroup($group_id, $access_level) } /** - * @param int $group_id + * @param int|string $group_id * * @return bool */ From 14e003d6606ef90e13e312669fbd0473e7038fc9 Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Fri, 23 Oct 2020 17:47:16 +0000 Subject: [PATCH 05/29] Apply fixes from StyleCI --- lib/Gitlab/Api/GroupsBoards.php | 30 ++++++++++++++--------------- lib/Gitlab/Api/GroupsMilestones.php | 16 +++++++-------- lib/Gitlab/Api/Issues.php | 2 +- lib/Gitlab/Api/IssuesStatistics.php | 2 +- lib/Gitlab/Model/User.php | 2 +- 5 files changed, 26 insertions(+), 26 deletions(-) diff --git a/lib/Gitlab/Api/GroupsBoards.php b/lib/Gitlab/Api/GroupsBoards.php index f2de09f36..fbfef2afd 100644 --- a/lib/Gitlab/Api/GroupsBoards.php +++ b/lib/Gitlab/Api/GroupsBoards.php @@ -21,7 +21,7 @@ public function all($group_id = null, array $parameters = []) /** * @param int|string $group_id - * @param int $board_id + * @param int $board_id * * @return mixed */ @@ -32,7 +32,7 @@ public function show($group_id, $board_id) /** * @param int|string $group_id - * @param array $params + * @param array $params * * @return mixed */ @@ -43,8 +43,8 @@ public function create($group_id, array $params) /** * @param int|string $group_id - * @param int $board_id - * @param array $params + * @param int $board_id + * @param array $params * * @return mixed */ @@ -55,7 +55,7 @@ public function update($group_id, $board_id, array $params) /** * @param int|string $group_id - * @param int $board_id + * @param int $board_id * * @return mixed */ @@ -66,7 +66,7 @@ public function remove($group_id, $board_id) /** * @param int|string $group_id - * @param int $board_id + * @param int $board_id * * @return mixed */ @@ -77,8 +77,8 @@ public function allLists($group_id, $board_id) /** * @param int|string $group_id - * @param int $board_id - * @param int $list_id + * @param int $board_id + * @param int $list_id * * @return mixed */ @@ -89,8 +89,8 @@ public function showList($group_id, $board_id, $list_id) /** * @param int|string $group_id - * @param int $board_id - * @param int $label_id + * @param int $board_id + * @param int $label_id * * @return mixed */ @@ -105,9 +105,9 @@ public function createList($group_id, $board_id, $label_id) /** * @param int|string $group_id - * @param int $board_id - * @param int $list_id - * @param int $position + * @param int $board_id + * @param int $list_id + * @param int $position * * @return mixed */ @@ -122,8 +122,8 @@ public function updateList($group_id, $board_id, $list_id, $position) /** * @param int|string $group_id - * @param int $board_id - * @param int $list_id + * @param int $board_id + * @param int $list_id * * @return mixed */ diff --git a/lib/Gitlab/Api/GroupsMilestones.php b/lib/Gitlab/Api/GroupsMilestones.php index 1327d9eb6..7917680b7 100644 --- a/lib/Gitlab/Api/GroupsMilestones.php +++ b/lib/Gitlab/Api/GroupsMilestones.php @@ -16,7 +16,7 @@ class GroupsMilestones extends AbstractApi /** * @param int|string $group_id - * @param array $parameters { + * @param array $parameters { * * @var int[] $iids return only the milestones having the given iids * @var string $state return only active or closed milestones @@ -44,7 +44,7 @@ public function all($group_id, array $parameters = []) /** * @param int|string $group_id - * @param int $milestone_id + * @param int $milestone_id * * @return mixed */ @@ -55,7 +55,7 @@ public function show($group_id, $milestone_id) /** * @param int|string $group_id - * @param array $params + * @param array $params * * @return mixed */ @@ -66,8 +66,8 @@ public function create($group_id, array $params) /** * @param int|string $group_id - * @param int $milestone_id - * @param array $params + * @param int $milestone_id + * @param array $params * * @return mixed */ @@ -78,7 +78,7 @@ public function update($group_id, $milestone_id, array $params) /** * @param int|string $group_id - * @param int $milestone_id + * @param int $milestone_id * * @return mixed */ @@ -89,7 +89,7 @@ public function remove($group_id, $milestone_id) /** * @param int|string $group_id - * @param int $milestone_id + * @param int $milestone_id * * @return mixed */ @@ -100,7 +100,7 @@ public function issues($group_id, $milestone_id) /** * @param int|string $group_id - * @param int $milestone_id + * @param int $milestone_id * * @return mixed */ diff --git a/lib/Gitlab/Api/Issues.php b/lib/Gitlab/Api/Issues.php index 207509e41..ffd503f48 100644 --- a/lib/Gitlab/Api/Issues.php +++ b/lib/Gitlab/Api/Issues.php @@ -42,7 +42,7 @@ public function all($project_id = null, array $parameters = []) /** * @param int|string $group_id - * @param array $parameters + * @param array $parameters * * @return mixed */ diff --git a/lib/Gitlab/Api/IssuesStatistics.php b/lib/Gitlab/Api/IssuesStatistics.php index d3f2eeb9d..6ba4cb57f 100644 --- a/lib/Gitlab/Api/IssuesStatistics.php +++ b/lib/Gitlab/Api/IssuesStatistics.php @@ -30,7 +30,7 @@ public function project($project_id, $parameters) /** * @param int|string $group_id - * @param array $parameters + * @param array $parameters * * @return mixed */ diff --git a/lib/Gitlab/Model/User.php b/lib/Gitlab/Model/User.php index aafeaaac5..3405a2d31 100644 --- a/lib/Gitlab/Model/User.php +++ b/lib/Gitlab/Model/User.php @@ -216,7 +216,7 @@ public function removeKey($id) /** * @param int|string $group_id - * @param int $access_level + * @param int $access_level * * @return User */ From 44276d1cfc9e13d8c115c9f34d39a03b69ddf1e5 Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Fri, 23 Oct 2020 18:24:54 +0000 Subject: [PATCH 06/29] Apply fixes from StyleCI --- src/Api/GroupsBoards.php | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/Api/GroupsBoards.php b/src/Api/GroupsBoards.php index 493d34416..771aee103 100644 --- a/src/Api/GroupsBoards.php +++ b/src/Api/GroupsBoards.php @@ -23,7 +23,7 @@ public function all($group_id = null, array $parameters = []) /** * @param int|string $group_id - * @param int $board_id + * @param int $board_id * * @return mixed */ @@ -34,7 +34,7 @@ public function show($group_id, int $board_id) /** * @param int|string $group_id - * @param array $params + * @param array $params * * @return mixed */ @@ -45,8 +45,8 @@ public function create($group_id, array $params) /** * @param int|string $group_id - * @param int $board_id - * @param array $params + * @param int $board_id + * @param array $params * * @return mixed */ @@ -57,7 +57,7 @@ public function update($group_id, int $board_id, array $params) /** * @param int|string $group_id - * @param int $board_id + * @param int $board_id * * @return mixed */ @@ -68,7 +68,7 @@ public function remove($group_id, int $board_id) /** * @param int|string $group_id - * @param int $board_id + * @param int $board_id * * @return mixed */ @@ -79,8 +79,8 @@ public function allLists($group_id, int $board_id) /** * @param int|string $group_id - * @param int $board_id - * @param int $list_id + * @param int $board_id + * @param int $list_id * * @return mixed */ @@ -91,8 +91,8 @@ public function showList($group_id, int $board_id, int $list_id) /** * @param int|string $group_id - * @param int $board_id - * @param int $label_id + * @param int $board_id + * @param int $label_id * * @return mixed */ @@ -107,9 +107,9 @@ public function createList($group_id, int $board_id, int $label_id) /** * @param int|string $group_id - * @param int $board_id - * @param int $list_id - * @param int $position + * @param int $board_id + * @param int $list_id + * @param int $position * * @return mixed */ @@ -124,8 +124,8 @@ public function updateList($group_id, int $board_id, int $list_id, int $position /** * @param int|string $group_id - * @param int $board_id - * @param int $list_id + * @param int $board_id + * @param int $list_id * * @return mixed */ From cad9eb8ff67e8dee128a3b48fe9ee05af2bcf94e Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Sat, 24 Oct 2020 01:51:50 +0100 Subject: [PATCH 07/29] Reverted model group id changes --- lib/Gitlab/Model/Project.php | 2 +- lib/Gitlab/Model/User.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/Gitlab/Model/Project.php b/lib/Gitlab/Model/Project.php index 9d9ff76f6..34b32dd98 100644 --- a/lib/Gitlab/Model/Project.php +++ b/lib/Gitlab/Model/Project.php @@ -1144,7 +1144,7 @@ public function removeSnippet($id) } /** - * @param int|string $group_id + * @param int $group_id * * @return Group */ diff --git a/lib/Gitlab/Model/User.php b/lib/Gitlab/Model/User.php index 3405a2d31..70e3f4cbe 100644 --- a/lib/Gitlab/Model/User.php +++ b/lib/Gitlab/Model/User.php @@ -215,7 +215,7 @@ public function removeKey($id) } /** - * @param int|string $group_id + * @param int $group_id * @param int $access_level * * @return User @@ -228,7 +228,7 @@ public function addToGroup($group_id, $access_level) } /** - * @param int|string $group_id + * @param int $group_id * * @return bool */ From d07a9ca0337f8930764b29f60a317ac7ba34f13a Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Sat, 24 Oct 2020 00:52:42 +0000 Subject: [PATCH 08/29] Apply fixes from StyleCI --- lib/Gitlab/Model/User.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Gitlab/Model/User.php b/lib/Gitlab/Model/User.php index 70e3f4cbe..4c8ae160e 100644 --- a/lib/Gitlab/Model/User.php +++ b/lib/Gitlab/Model/User.php @@ -216,7 +216,7 @@ public function removeKey($id) /** * @param int $group_id - * @param int $access_level + * @param int $access_level * * @return User */ From 2550a4d7ede11f7f6583455b216b0110644b4539 Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Sat, 24 Oct 2020 01:58:05 +0100 Subject: [PATCH 09/29] Fixed typos --- composer.json | 2 +- phpstan-baseline.neon | 2 +- src/HttpClient/Builder.php | 2 +- src/Model/Commit.php | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/composer.json b/composer.json index bcf57c25b..81208bce6 100644 --- a/composer.json +++ b/composer.json @@ -27,7 +27,7 @@ "ext-xml": "*", "php-http/cache-plugin": "^1.7", "php-http/client-common": "^2.3", - "php-http/discovery": "^1.9", + "php-http/discovery": "^1.12", "php-http/httplug": "^2.1", "php-http/multipart-stream-builder": "^1.1", "psr/cache": "^1.0", diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index c5438dd29..29c373163 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -1,7 +1,7 @@ parameters: ignoreErrors: - - message: "#^Parameter \\#1 \\$error_handler of function set_error_handler expects \\(callable\\(int, string, string, int, array\\)\\: bool\\)\\|null, Closure\\(\\)\\: void given\\.$#" + message: "#^Parameter \\#1 \\$callback of function set_error_handler expects \\(callable\\(int, string, string, int, array\\)\\: bool\\)\\|null, Closure\\(\\)\\: void given\\.$#" count: 1 path: src/Api/AbstractApi.php diff --git a/src/HttpClient/Builder.php b/src/HttpClient/Builder.php index 0c6045ca0..ff703c5a8 100644 --- a/src/HttpClient/Builder.php +++ b/src/HttpClient/Builder.php @@ -98,7 +98,7 @@ public function __construct( $this->httpClient = $httpClient ?? Psr18ClientDiscovery::find(); $this->requestFactory = $requestFactory ?? Psr17FactoryDiscovery::findRequestFactory(); $this->streamFactory = $streamFactory ?? Psr17FactoryDiscovery::findStreamFactory(); - $this->uriFactory = $uriFactory ?? Psr17FactoryDiscovery::findUrlFactory(); + $this->uriFactory = $uriFactory ?? Psr17FactoryDiscovery::findUriFactory(); } /** diff --git a/src/Model/Commit.php b/src/Model/Commit.php index b825d2dad..add89c578 100644 --- a/src/Model/Commit.php +++ b/src/Model/Commit.php @@ -84,7 +84,7 @@ public static function fromArray(Client $client, Project $project, array $data) * * @return void */ - public function __construct(Project $project, ?int $id = null, Client $client = null) + public function __construct(Project $project, ?string $id = null, Client $client = null) { $this->setClient($client); $this->setData('project', $project); From ed7636c7fc616285037b33c5f6620e6c29b2a459 Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Sat, 24 Oct 2020 01:58:24 +0100 Subject: [PATCH 10/29] Update psalm-baseline.xml --- psalm-baseline.xml | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 9290bfeb2..d60257f37 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -1,6 +1,5 @@ -<<<<<<< HEAD - + @@ -8,15 +7,5 @@ \get_debug_type($data) -======= - - - ->>>>>>> 9.19 - - - - doHandleRequest - From 963cfec011920a70a307f7da0f8aae046aae92b4 Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Sat, 24 Oct 2020 00:58:38 +0000 Subject: [PATCH 11/29] Apply fixes from StyleCI --- src/Model/User.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Model/User.php b/src/Model/User.php index 98b4d784f..8250c8f0e 100644 --- a/src/Model/User.php +++ b/src/Model/User.php @@ -216,7 +216,7 @@ public function removeKey(int $id) /** * @param int $group_id - * @param int $access_level + * @param int $access_level * * @return User */ From e1e6135fab1f26d49793ac0151b258c51b02ce63 Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Sat, 24 Oct 2020 02:05:38 +0100 Subject: [PATCH 12/29] Added missing types --- src/Model/Project.php | 2 +- src/Model/User.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Model/Project.php b/src/Model/Project.php index a12d90b63..482b4f863 100644 --- a/src/Model/Project.php +++ b/src/Model/Project.php @@ -1118,7 +1118,7 @@ public function removeSnippet(int $id) * * @return Group */ - public function transfer($group_id) + public function transfer(int $group_id) { $group = new Group($group_id, $this->getClient()); diff --git a/src/Model/User.php b/src/Model/User.php index 98b4d784f..e04b68b19 100644 --- a/src/Model/User.php +++ b/src/Model/User.php @@ -220,7 +220,7 @@ public function removeKey(int $id) * * @return User */ - public function addToGroup($group_id, int $access_level) + public function addToGroup(int $group_id, int $access_level) { $group = new Group($group_id, $this->getClient()); @@ -232,7 +232,7 @@ public function addToGroup($group_id, int $access_level) * * @return bool */ - public function removeFromGroup($group_id) + public function removeFromGroup(int $group_id) { $group = new Group($group_id, $this->getClient()); From b51430fd039d402ede3a8a2316a3023ee5a30958 Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Sat, 24 Oct 2020 02:13:04 +0100 Subject: [PATCH 13/29] Revert query builder changes --- src/HttpClient/Util/QueryStringBuilder.php | 68 ++++++++++++++++++++-- 1 file changed, 64 insertions(+), 4 deletions(-) diff --git a/src/HttpClient/Util/QueryStringBuilder.php b/src/HttpClient/Util/QueryStringBuilder.php index 4bb89ae6f..01ef73bc2 100644 --- a/src/HttpClient/Util/QueryStringBuilder.php +++ b/src/HttpClient/Util/QueryStringBuilder.php @@ -12,16 +12,76 @@ final class QueryStringBuilder /** * Encode a query as a query string according to RFC 3986. * + * Indexed arrays are encoded using empty squared brackets ([]) unlike + * `http_build_query`. + * + * @param mixed $query + * + * @return string + */ + public static function build($query) + { + if (!\is_array($query)) { + return self::rawurlencode($query); + } + + return \implode('&', \array_map(function ($value, $key) { + return self::encode($value, $key); + }, $query, \array_keys($query))); + } + + /** + * Encode a value. + * + * @param mixed $query + * @param string $prefix + * + * @return string + */ + private static function encode($query, $prefix) + { + if (!\is_array($query)) { + return self::rawurlencode($prefix).'='.self::rawurlencode($query); + } + + $isList = self::isList($query); + + return \implode('&', \array_map(function ($value, $key) use ($prefix, $isList) { + $prefix = $isList ? $prefix.'[]' : $prefix.'['.$key.']'; + + return self::encode($value, $prefix); + }, $query, \array_keys($query))); + } + + /** + * Tell if the given array is a list. + * * @param array $query * + * @return bool + */ + private static function isList(array $query) + { + if (0 === \count($query) || !isset($query[0])) { + return false; + } + + return \array_keys($query) === \range(0, \count($query) - 1); + } + + /** + * Encode a value like rawurlencode, but return "0" when false is given. + * + * @param mixed $value + * * @return string */ - public static function build(array $query) + private static function rawurlencode($value) { - if (0 === \count($query)) { - return ''; + if (false === $value) { + return '0'; } - return \sprintf('?%s', \http_build_query($query, '', '&', \PHP_QUERY_RFC3986)); + return \rawurlencode((string) $value); } } From 9479d89ad84b5c7a0cd0873556a31e7a1e09c487 Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Sat, 24 Oct 2020 14:35:16 +0100 Subject: [PATCH 14/29] Fixed typos --- src/Api/Issues.php | 2 +- src/Api/Projects.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Api/Issues.php b/src/Api/Issues.php index 17f0348e5..c7e0ffadb 100644 --- a/src/Api/Issues.php +++ b/src/Api/Issues.php @@ -399,7 +399,7 @@ public function closedByMergeRequests($project_id, int $issue_iid) */ public function relatedMergeRequests($project_id, int $issue_iid) { - return $this->get($this->getProjectPath($project_id, 'issues/'.$this::encodePath($issue_iid).'/related_merge_requests')); + return $this->get($this->getProjectPath($project_id, 'issues/'.self::encodePath($issue_iid).'/related_merge_requests')); } /** diff --git a/src/Api/Projects.php b/src/Api/Projects.php index 6f654e131..62db861c0 100644 --- a/src/Api/Projects.php +++ b/src/Api/Projects.php @@ -530,7 +530,7 @@ public function boards($project_id) */ public function getRepositoryCommitDiscussions($project_id, string $commit_id) { - return $this->get($this->getProjectPath($project_id, 'repository/commits/'.$this::encodePath($commit_id)).'/discussions'); + return $this->get($this->getProjectPath($project_id, 'repository/commits/'.self::encodePath($commit_id)).'/discussions'); } /** From 326c326082150b6c7b733ea3be9218abeb2f7c78 Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Sat, 24 Oct 2020 14:55:23 +0100 Subject: [PATCH 15/29] Convert rector config --- .gitattributes | 2 +- rector.php | 170 +++++++++++++++++++++++++++++++++++++++++++++++++ rector.yml | 97 ---------------------------- 3 files changed, 171 insertions(+), 98 deletions(-) create mode 100644 rector.php delete mode 100644 rector.yml diff --git a/.gitattributes b/.gitattributes index 7a19673b1..f79f0157f 100644 --- a/.gitattributes +++ b/.gitattributes @@ -14,4 +14,4 @@ /psalm.xml export-ignore /CHANGELOG.md export-ignore /README.md export-ignore -/rector.yml export-ignore +/rector.php export-ignore diff --git a/rector.php b/rector.php new file mode 100644 index 000000000..4588b17ea --- /dev/null +++ b/rector.php @@ -0,0 +1,170 @@ +parameters(); + $parameters->set('autoload_paths', [__DIR__ . '/vendor/autoload.php', 'vendor-bin/phpunit/vendor/autoload.php']); + $parameters->set('auto_import_names', true); + $parameters->set('import_short_classes', false); + $parameters->set('import_doc_blocks', false); + $parameters->set('php_version_features', '5.6'); + $parameters->set('paths', [__DIR__ . '/lib', __DIR__ . '/test']); + $parameters->set('sets', ['php52', 'php53', 'php54', 'php55', 'php56', 'phpunit40', 'phpunit50']); + + $services = $containerConfigurator->services(); + $services->set(ArrayKeyExistsTernaryThenValueToCoalescingRector::class); + $services->set(ArrayKeysAndInArrayToArrayKeyExistsRector::class); + $services->set(ArrayMergeOfNonArraysToSimpleArrayRector::class); + $services->set(BooleanNotIdenticalToNotIdenticalRector::class); + $services->set(ChangeArrayPushToArrayAssignRector::class); + $services->set(CombineIfRector::class); + $services->set(CombinedAssignRector::class); + $services->set(CompactToVariablesRector::class); + $services->set(CompleteDynamicPropertiesRector::class); + $services->set(ConsecutiveNullCompareReturnsToNullCoalesceQueueRector::class); + $services->set(ExplicitBoolCompareRector::class); + $services->set(ForeachToInArrayRector::class); + $services->set(InArrayAndArrayKeysToArrayKeyExistsRector::class); + $services->set(InlineIfToExplicitIfRector::class); + $services->set(IntvalToTypeCastRector::class); + $services->set(IsAWithStringWithThirdArgumentRector::class); + $services->set(RemoveAlwaysTrueConditionSetInConstructorRector::class); + $services->set(RemoveSoleValueSprintfRector::class); + $services->set(ShortenElseIfRector::class); + $services->set(SimplifyArraySearchRector::class); + $services->set(SimplifyBoolIdenticalTrueRector::class); + $services->set(SimplifyConditionsRector::class); + $services->set(SimplifyDuplicatedTernaryRector::class); + $services->set(SimplifyForeachToCoalescingRector::class); + $services->set(SimplifyIfElseToTernaryRector::class); + $services->set(SimplifyIfIssetToNullCoalescingRector::class); + $services->set(SimplifyIfNotNullReturnRector::class); + $services->set(SimplifyIfReturnBoolRector::class); + $services->set(SimplifyInArrayValuesRector::class); + $services->set(SimplifyStrposLowerRector::class); + $services->set(SimplifyTautologyTernaryRector::class); + $services->set(SimplifyUselessVariableRector::class); + $services->set(SingleInArrayToCompareRector::class); + $services->set(SplitListAssignToSeparateLineRector::class); + $services->set(StrlenZeroToIdenticalEmptyStringRector::class); + $services->set(UnnecessaryTernaryExpressionRector::class); + $services->set(UseIdenticalOverEqualWithSameTypeRector::class); + $services->set(ConsistentImplodeRector::class); + $services->set(EncapsedStringsToSprintfRector::class); + $services->set(FunctionCallToConstantRector::class); + $services->set(MakeInheritedMethodVisibilitySameAsParentRector::class); + $services->set(NullableCompareToNullRector::class); + $services->set(SimpleArrayCallableToStringRector::class); + $services->set(SplitGroupedConstantsAndPropertiesRector::class); + $services->set(VarConstantCommentRector::class); + $services->set(VersionCompareFuncCallToConstantRector::class); + $services->set(RemoveAlwaysTrueIfConditionRector::class); + $services->set(RemoveAndTrueRector::class); + $services->set(RemoveAssignOfVoidReturnFunctionRector::class); + $services->set(RemoveCodeAfterReturnRector::class); + $services->set(RemoveDeadIfForeachForRector::class); + $services->set(RemoveDeadReturnRector::class); + $services->set(RemoveDeadStmtRector::class); + $services->set(RemoveDeadTryCatchRector::class); + $services->set(RemoveDeadZeroAndOneOperationRector::class); + $services->set(RemoveDoubleAssignRector::class); + $services->set(RemoveDuplicatedArrayKeyRector::class); + $services->set(RemoveDuplicatedCaseInSwitchRector::class); + $services->set(RemoveDuplicatedIfReturnRector::class); + $services->set(RemoveDuplicatedInstanceOfRector::class); + $services->set(RemoveUnreachableStatementRector::class); + $services->set(RemoveUnusedClassConstantRector::class); + $services->set(RemoveUnusedForeachKeyRector::class); + $services->set(RemoveUnusedNonEmptyArrayBeforeForeachRector::class); + $services->set(RemoveUnusedPrivateConstantRector::class); + $services->set(RemoveUnusedPrivateMethodRector::class); + $services->set(RemoveUnusedPrivatePropertyRector::class); + $services->set(RemoveUnusedVariableAssignRector::class); + $services->set(SimplifyIfElseWithSameContentRector::class); + $services->set(SimplifyMirrorAssignRector::class); + $services->set(TernaryToBooleanOrFalseToBooleanAndRector::class); + $services->set(PreslashSimpleFunctionRector::class); + $services->set(ChangeNestedForeachIfsToEarlyContinueRector::class); + $services->set(ChangeIfElseValueAssignToEarlyReturnRector::class); + $services->set(ChangeNestedIfsToEarlyReturnRector::class); + $services->set(RemoveAlwaysElseRector::class); +}; diff --git a/rector.yml b/rector.yml deleted file mode 100644 index 79ebc806c..000000000 --- a/rector.yml +++ /dev/null @@ -1,97 +0,0 @@ -parameters: - autoload_paths: - - 'vendor/autoload.php' - - 'vendor-bin/phpunit/vendor/autoload.php' - auto_import_names: true - import_short_classes: false - import_doc_blocks: false - php_version_features: '5.6' - paths: - - 'lib' - - 'test' - sets: - - 'php52' - - 'php53' - - 'php54' - - 'php55' - - 'php56' - - 'phpunit40' - - 'phpunit50' - -services: - Rector\CodeQuality\Rector\Ternary\ArrayKeyExistsTernaryThenValueToCoalescingRector: ~ - Rector\CodeQuality\Rector\FuncCall\ArrayKeysAndInArrayToArrayKeyExistsRector: ~ - Rector\CodeQuality\Rector\FuncCall\ArrayMergeOfNonArraysToSimpleArrayRector: ~ - Rector\CodeQuality\Rector\Identical\BooleanNotIdenticalToNotIdenticalRector: ~ - Rector\CodeQuality\Rector\FuncCall\ChangeArrayPushToArrayAssignRector: ~ - Rector\CodeQuality\Rector\If_\CombineIfRector: ~ - Rector\CodeQuality\Rector\Assign\CombinedAssignRector: ~ - Rector\CodeQuality\Rector\FuncCall\CompactToVariablesRector: ~ - Rector\CodeQuality\Rector\Class_\CompleteDynamicPropertiesRector: ~ - Rector\CodeQuality\Rector\If_\ConsecutiveNullCompareReturnsToNullCoalesceQueueRector: ~ - Rector\CodeQuality\Rector\If_\ExplicitBoolCompareRector: ~ - Rector\CodeQuality\Rector\Foreach_\ForeachToInArrayRector: ~ - Rector\CodeQuality\Rector\FuncCall\InArrayAndArrayKeysToArrayKeyExistsRector: ~ - Rector\CodeQuality\Rector\BinaryOp\InlineIfToExplicitIfRector: ~ - Rector\CodeQuality\Rector\FuncCall\IntvalToTypeCastRector: ~ - Rector\CodeQuality\Rector\FuncCall\IsAWithStringWithThirdArgumentRector: ~ - Rector\CodeQuality\Rector\If_\RemoveAlwaysTrueConditionSetInConstructorRector: ~ - Rector\CodeQuality\Rector\FuncCall\RemoveSoleValueSprintfRector: ~ - Rector\CodeQuality\Rector\If_\ShortenElseIfRector: ~ - Rector\CodeQuality\Rector\Identical\SimplifyArraySearchRector: ~ - Rector\CodeQuality\Rector\Identical\SimplifyBoolIdenticalTrueRector: ~ - Rector\CodeQuality\Rector\Identical\SimplifyConditionsRector: ~ - Rector\CodeQuality\Rector\Ternary\SimplifyDuplicatedTernaryRector: ~ - Rector\CodeQuality\Rector\Foreach_\SimplifyForeachToCoalescingRector: ~ - Rector\CodeQuality\Rector\If_\SimplifyIfElseToTernaryRector: ~ - Rector\CodeQuality\Rector\If_\SimplifyIfIssetToNullCoalescingRector: ~ - Rector\CodeQuality\Rector\If_\SimplifyIfNotNullReturnRector: ~ - Rector\CodeQuality\Rector\If_\SimplifyIfReturnBoolRector: ~ - Rector\CodeQuality\Rector\FuncCall\SimplifyInArrayValuesRector: ~ - Rector\CodeQuality\Rector\FuncCall\SimplifyStrposLowerRector: ~ - Rector\CodeQuality\Rector\Ternary\SimplifyTautologyTernaryRector: ~ - Rector\CodeQuality\Rector\Return_\SimplifyUselessVariableRector: ~ - Rector\CodeQuality\Rector\FuncCall\SingleInArrayToCompareRector: ~ - Rector\CodeQuality\Rector\Assign\SplitListAssignToSeparateLineRector: ~ - Rector\CodeQuality\Rector\FuncCall\StrlenZeroToIdenticalEmptyStringRector: ~ - Rector\CodeQuality\Rector\Ternary\UnnecessaryTernaryExpressionRector: ~ - Rector\CodeQuality\Rector\Equal\UseIdenticalOverEqualWithSameTypeRector: ~ - Rector\CodingStyle\Rector\FuncCall\ConsistentImplodeRector: ~ - Rector\CodingStyle\Rector\Encapsed\EncapsedStringsToSprintfRector: ~ - Rector\CodingStyle\Rector\FuncCall\FunctionCallToConstantRector: ~ - Rector\CodingStyle\Rector\ClassMethod\MakeInheritedMethodVisibilitySameAsParentRector: ~ - Rector\CodingStyle\Rector\If_\NullableCompareToNullRector: ~ - Rector\CodingStyle\Rector\FuncCall\SimpleArrayCallableToStringRector: ~ - Rector\CodingStyle\Rector\ClassConst\SplitGroupedConstantsAndPropertiesRector: ~ - Rector\CodingStyle\Rector\ClassConst\VarConstantCommentRector: ~ - Rector\CodingStyle\Rector\FuncCall\VersionCompareFuncCallToConstantRector: ~ - Rector\DeadCode\Rector\If_\RemoveAlwaysTrueIfConditionRector: ~ - Rector\DeadCode\Rector\BooleanAnd\RemoveAndTrueRector: ~ - Rector\DeadCode\Rector\Assign\RemoveAssignOfVoidReturnFunctionRector: ~ - Rector\DeadCode\Rector\FunctionLike\RemoveCodeAfterReturnRector: ~ - Rector\DeadCode\Rector\For_\RemoveDeadIfForeachForRector: ~ - Rector\DeadCode\Rector\FunctionLike\RemoveDeadReturnRector: ~ - Rector\DeadCode\Rector\Stmt\RemoveDeadStmtRector: ~ - Rector\DeadCode\Rector\TryCatch\RemoveDeadTryCatchRector: ~ - Rector\DeadCode\Rector\Plus\RemoveDeadZeroAndOneOperationRector: ~ - Rector\DeadCode\Rector\Assign\RemoveDoubleAssignRector: ~ - Rector\DeadCode\Rector\Array_\RemoveDuplicatedArrayKeyRector: ~ - Rector\DeadCode\Rector\Switch_\RemoveDuplicatedCaseInSwitchRector: ~ - Rector\DeadCode\Rector\FunctionLike\RemoveDuplicatedIfReturnRector: ~ - Rector\DeadCode\Rector\Instanceof_\RemoveDuplicatedInstanceOfRector: ~ - Rector\DeadCode\Rector\Stmt\RemoveUnreachableStatementRector: ~ - Rector\DeadCode\Rector\ClassConst\RemoveUnusedClassConstantRector: ~ - Rector\DeadCode\Rector\Foreach_\RemoveUnusedForeachKeyRector: ~ - Rector\DeadCode\Rector\If_\RemoveUnusedNonEmptyArrayBeforeForeachRector: ~ - Rector\DeadCode\Rector\ClassConst\RemoveUnusedPrivateConstantRector: ~ - Rector\DeadCode\Rector\ClassMethod\RemoveUnusedPrivateMethodRector: ~ - Rector\DeadCode\Rector\Property\RemoveUnusedPrivatePropertyRector: ~ - Rector\DeadCode\Rector\Assign\RemoveUnusedVariableAssignRector: ~ - Rector\DeadCode\Rector\If_\SimplifyIfElseWithSameContentRector: ~ - Rector\DeadCode\Rector\Expression\SimplifyMirrorAssignRector: ~ - Rector\DeadCode\Rector\Ternary\TernaryToBooleanOrFalseToBooleanAndRector: ~ - Rector\Performance\Rector\FuncCall\PreslashSimpleFunctionRector: ~ - Rector\SOLID\Rector\Foreach_\ChangeNestedForeachIfsToEarlyContinueRector: ~ - Rector\SOLID\Rector\If_\ChangeIfElseValueAssignToEarlyReturnRector: ~ - Rector\SOLID\Rector\If_\ChangeNestedIfsToEarlyReturnRector: ~ - Rector\SOLID\Rector\If_\RemoveAlwaysElseRector: ~ From f0fe786290e7796620caf305c8eb782a39fccd2b Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Sat, 24 Oct 2020 13:55:34 +0000 Subject: [PATCH 16/29] Apply fixes from StyleCI --- rector.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rector.php b/rector.php index 4588b17ea..ca9cc7efc 100644 --- a/rector.php +++ b/rector.php @@ -82,12 +82,12 @@ return static function (ContainerConfigurator $containerConfigurator): void { $parameters = $containerConfigurator->parameters(); - $parameters->set('autoload_paths', [__DIR__ . '/vendor/autoload.php', 'vendor-bin/phpunit/vendor/autoload.php']); + $parameters->set('autoload_paths', [__DIR__.'/vendor/autoload.php', 'vendor-bin/phpunit/vendor/autoload.php']); $parameters->set('auto_import_names', true); $parameters->set('import_short_classes', false); $parameters->set('import_doc_blocks', false); $parameters->set('php_version_features', '5.6'); - $parameters->set('paths', [__DIR__ . '/lib', __DIR__ . '/test']); + $parameters->set('paths', [__DIR__.'/lib', __DIR__.'/test']); $parameters->set('sets', ['php52', 'php53', 'php54', 'php55', 'php56', 'phpunit40', 'phpunit50']); $services = $containerConfigurator->services(); From e42d9e3a11794982b377a158db3c8952585d2ccb Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Sat, 24 Oct 2020 13:57:42 +0000 Subject: [PATCH 17/29] Apply fixes from StyleCI --- rector.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rector.php b/rector.php index c3aca5b37..0857e6b09 100644 --- a/rector.php +++ b/rector.php @@ -82,12 +82,12 @@ return static function (ContainerConfigurator $containerConfigurator): void { $parameters = $containerConfigurator->parameters(); - $parameters->set('autoload_paths', [__DIR__ . '/vendor/autoload.php', __DIR__ . '/vendor-bin/phpunit/vendor/autoload.php']); + $parameters->set('autoload_paths', [__DIR__.'/vendor/autoload.php', __DIR__.'/vendor-bin/phpunit/vendor/autoload.php']); $parameters->set('auto_import_names', true); $parameters->set('import_short_classes', false); $parameters->set('import_doc_blocks', false); $parameters->set('php_version_features', '7.1'); - $parameters->set('paths', [__DIR__ . '/src', __DIR__ . '/tests']); + $parameters->set('paths', [__DIR__.'/src', __DIR__.'/tests']); $parameters->set('sets', ['php52', 'php53', 'php54', 'php55', 'php56', 'php70', 'php71', 'phpunit40', 'phpunit50', 'phpunit60', 'phpunit70', 'phpunit75']); $services = $containerConfigurator->services(); From 6cc97bbdce9a5aa461dd849b22f7039f85761f51 Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Sat, 24 Oct 2020 14:57:50 +0100 Subject: [PATCH 18/29] Revert accidental change --- composer.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/composer.json b/composer.json index a270d137e..81208bce6 100644 --- a/composer.json +++ b/composer.json @@ -41,8 +41,7 @@ "bamarni/composer-bin-plugin": "^1.4.1", "guzzlehttp/psr7": "^1.5.2", "php-http/guzzle6-adapter": "^2.0.1", - "http-interop/http-factory-guzzle": "^1.0", - "migrify/config-transformer": "0.3.50" + "http-interop/http-factory-guzzle": "^1.0" }, "autoload": { "psr-4": { From f49e9cef27cae3235e6e873beffdb37664111a03 Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Sat, 24 Oct 2020 13:58:47 +0000 Subject: [PATCH 19/29] Apply fixes from StyleCI --- rector.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rector.php b/rector.php index c3aca5b37..0857e6b09 100644 --- a/rector.php +++ b/rector.php @@ -82,12 +82,12 @@ return static function (ContainerConfigurator $containerConfigurator): void { $parameters = $containerConfigurator->parameters(); - $parameters->set('autoload_paths', [__DIR__ . '/vendor/autoload.php', __DIR__ . '/vendor-bin/phpunit/vendor/autoload.php']); + $parameters->set('autoload_paths', [__DIR__.'/vendor/autoload.php', __DIR__.'/vendor-bin/phpunit/vendor/autoload.php']); $parameters->set('auto_import_names', true); $parameters->set('import_short_classes', false); $parameters->set('import_doc_blocks', false); $parameters->set('php_version_features', '7.1'); - $parameters->set('paths', [__DIR__ . '/src', __DIR__ . '/tests']); + $parameters->set('paths', [__DIR__.'/src', __DIR__.'/tests']); $parameters->set('sets', ['php52', 'php53', 'php54', 'php55', 'php56', 'php70', 'php71', 'phpunit40', 'phpunit50', 'phpunit60', 'phpunit70', 'phpunit75']); $services = $containerConfigurator->services(); From 1ce5f47007ff1512bc54c3132305c86697ae57a3 Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Sat, 24 Oct 2020 15:07:23 +0100 Subject: [PATCH 20/29] Create QueryStringBuilderTest.php --- .../Util/QueryStringBuilderTest.php | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 tests/HttpClient/Util/QueryStringBuilderTest.php diff --git a/tests/HttpClient/Util/QueryStringBuilderTest.php b/tests/HttpClient/Util/QueryStringBuilderTest.php new file mode 100644 index 000000000..d9f12158f --- /dev/null +++ b/tests/HttpClient/Util/QueryStringBuilderTest.php @@ -0,0 +1,101 @@ +assertSame($expected, QueryStringBuilder::build($query)); + } + + public function queryStringProvider() + { + //Scalar value. + yield [ + 'a project', + 'a%20project', + ]; + + //Indexed array. + yield [ + ['iids' => [88, 86]], + //iids[]=88&iids[]=86 + 'iids%5B%5D=88&iids%5B%5D=86', + ]; + + //Non indexed array with only numeric keys. + yield [ + ['iids' => [0 => 88, 2 => 86]], + //iids[0]=88&iids[2]=86 + 'iids%5B0%5D=88&iids%5B2%5D=86', + ]; + + yield [ + [ + 'source_branch' => 'test_source', + 'target_branch' => 'test_master', + 'title' => 'test', + ], + 'source_branch=test_source&target_branch=test_master&title=test', + ]; + + //Boolean encoding + yield [ + ['push_events' => false, 'merge_requests_events' => 1], + 'push_events=0&merge_requests_events=1', + ]; + + //A deeply nested array. + yield [ + [ + 'search' => 'a project', + 'owned' => 'true', + 'iids' => [88, 86], + 'assoc' => [ + 'a' => 'b', + 'c' => [ + 'd' => 'e', + 'f' => 'g', + ], + ], + 'nested' => [ + 'a' => [ + [ + 'b' => 'c', + ], + [ + 'd' => 'e', + 'f' => [ + 'g' => 'h', + 'i' => 'j', + 'k' => [87, 89], + ], + ], + ], + ], + ], + //search=a project + //&owned=true + //&iids[]=88&iids[]=86 + //&assoc[a]=b&assoc[c][d]=e&assoc[c][f]=g + //&nested[a][][b]=c&nested[a][][d]=e + //&nested[a][][f][g]=h&nested[a][][f][i]=j + //&nested[a][][f][k][]=87&nested[a][][f][k][]=89 + 'search=a%20project&owned=true&iids%5B%5D=88&iids%5B%5D=86'. + '&assoc%5Ba%5D=b&assoc%5Bc%5D%5Bd%5D=e&assoc%5Bc%5D%5Bf%5D=g'. + '&nested%5Ba%5D%5B%5D%5Bb%5D=c&nested%5Ba%5D%5B%5D%5Bd%5D=e'. + '&nested%5Ba%5D%5B%5D%5Bf%5D%5Bg%5D=h&nested%5Ba%5D%5B%5D%5Bf%5D%5Bi%5D=j'. + '&nested%5Ba%5D%5B%5D%5Bf%5D%5Bk%5D%5B%5D=87&nested%5Ba%5D%5B%5D%5Bf%5D%5Bk%5D%5B%5D=89', + ]; + } +} From 1200027c32138a7c1068f521014743fee46d13dc Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Sat, 24 Oct 2020 15:07:36 +0100 Subject: [PATCH 21/29] Enabled declare_strict_types fixer --- .styleci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.styleci.yml b/.styleci.yml index a923f78ee..0eeb39abb 100644 --- a/.styleci.yml +++ b/.styleci.yml @@ -7,6 +7,7 @@ enabled: - alpha_ordered_imports - array_indentation - const_visibility_required + - declare_strict_types - native_constant_invocation - native_function_invocation - phpdoc_order From 75ee27497d35c28ded537139db786d8067a52398 Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Sat, 24 Oct 2020 14:07:54 +0000 Subject: [PATCH 22/29] Apply fixes from StyleCI --- tests/ClientTest.php | 2 ++ tests/HttpClient/Util/QueryStringBuilderTest.php | 4 +++- tests/IntegrationTest.php | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/ClientTest.php b/tests/ClientTest.php index 89b0bdf56..77464d56f 100644 --- a/tests/ClientTest.php +++ b/tests/ClientTest.php @@ -1,5 +1,7 @@ assertSame($expected, QueryStringBuilder::build($query)); } diff --git a/tests/IntegrationTest.php b/tests/IntegrationTest.php index bede693f8..29ce1e69c 100644 --- a/tests/IntegrationTest.php +++ b/tests/IntegrationTest.php @@ -1,5 +1,7 @@ Date: Sat, 24 Oct 2020 19:31:44 +0100 Subject: [PATCH 23/29] Release 9.19.1 --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e4e26d64..b1f85fb84 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,12 @@ CHANGE LOG ========== +## 9.19.1 (24/10/2020) + +* Fixed using the name of a group as an ID +* Fixed various phpdoc issues + + ## 9.19.0 (15/08/2020) * Added user events API From 5fca69b9793d306778f1fbdee1d69d6677ea2f22 Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Sat, 24 Oct 2020 19:34:32 +0100 Subject: [PATCH 24/29] Release 10.0.1 --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 211b9d372..8c441684b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,10 +2,11 @@ CHANGE LOG ========== -## 10.0.1 (UPCOMING) +## 10.0.1 (24/10/2020) * Fixed using the name of a group as an ID * Fixed various phpdoc issues +* Reverted query builder changes ## 10.0.0 (15/08/2020) From 9161982d7e17a3a81ef318d0ed4f2e819c37d6b3 Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Mon, 26 Oct 2020 11:09:56 +0000 Subject: [PATCH 25/29] Fixed typo --- lib/Gitlab/Api/GroupsBoards.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Gitlab/Api/GroupsBoards.php b/lib/Gitlab/Api/GroupsBoards.php index fbfef2afd..448ca70b3 100644 --- a/lib/Gitlab/Api/GroupsBoards.php +++ b/lib/Gitlab/Api/GroupsBoards.php @@ -5,8 +5,8 @@ class GroupsBoards extends AbstractApi { /** - * @param int|null $group_id - * @param array $parameters + * @param int|string|null $group_id + * @param array $parameters * * @return mixed */ From 3fa24ede100bfd2b2963daece9fa762b6ef43f0f Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Mon, 26 Oct 2020 11:31:30 +0000 Subject: [PATCH 26/29] [10.0] Partially revert bad changes to the query builder (#593) --- src/HttpClient/Util/QueryStringBuilder.php | 12 ++++-------- tests/HttpClient/Util/QueryStringBuilderTest.php | 12 +++--------- 2 files changed, 7 insertions(+), 17 deletions(-) diff --git a/src/HttpClient/Util/QueryStringBuilder.php b/src/HttpClient/Util/QueryStringBuilder.php index 01ef73bc2..efda1e655 100644 --- a/src/HttpClient/Util/QueryStringBuilder.php +++ b/src/HttpClient/Util/QueryStringBuilder.php @@ -15,19 +15,15 @@ final class QueryStringBuilder * Indexed arrays are encoded using empty squared brackets ([]) unlike * `http_build_query`. * - * @param mixed $query + * @param array $query * * @return string */ - public static function build($query) + public static function build(array $query) { - if (!\is_array($query)) { - return self::rawurlencode($query); - } - - return \implode('&', \array_map(function ($value, $key) { + return \sprintf('?%s', \implode('&', \array_map(function ($value, $key) { return self::encode($value, $key); - }, $query, \array_keys($query))); + }, $query, \array_keys($query)))); } /** diff --git a/tests/HttpClient/Util/QueryStringBuilderTest.php b/tests/HttpClient/Util/QueryStringBuilderTest.php index 48ebf9ede..bacd89aa3 100644 --- a/tests/HttpClient/Util/QueryStringBuilderTest.php +++ b/tests/HttpClient/Util/QueryStringBuilderTest.php @@ -12,22 +12,16 @@ class QueryStringBuilderTest extends TestCase /** * @dataProvider queryStringProvider * - * @param mixed $query + * @param array $query * @param string $expected */ - public function testBuild($query, string $expected): void + public function testBuild(array $query, string $expected): void { - $this->assertSame($expected, QueryStringBuilder::build($query)); + $this->assertSame(\sprintf('?%s', $expected), QueryStringBuilder::build($query)); } public function queryStringProvider() { - //Scalar value. - yield [ - 'a project', - 'a%20project', - ]; - //Indexed array. yield [ ['iids' => [88, 86]], From c224a0697d59b23d3b555b7f950fe8c0d87a7d9e Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Mon, 26 Oct 2020 11:32:42 +0000 Subject: [PATCH 27/29] Upgraded rector --- vendor-bin/rector/composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vendor-bin/rector/composer.json b/vendor-bin/rector/composer.json index 7bfda3937..25f8109ba 100644 --- a/vendor-bin/rector/composer.json +++ b/vendor-bin/rector/composer.json @@ -1,7 +1,7 @@ { "require": { "php": "^7.2.5", - "rector/rector-prefixed": "0.7.61" + "rector/rector-prefixed": "0.8.42" }, "config": { "preferred-install": "dist" From bfeaeef6c69f9f9429bf28925af1a2567f5ae773 Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Mon, 26 Oct 2020 11:35:44 +0000 Subject: [PATCH 28/29] Release 9.19.2 --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b1f85fb84..1bd7f99eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ CHANGE LOG ========== +## 9.19.2 (26/10/2020) + +* Fixed phpdoc typo + + ## 9.19.1 (24/10/2020) * Fixed using the name of a group as an ID From 9bd2b330f02e693556ff255fcac5f3c90a3e97b9 Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Mon, 26 Oct 2020 11:38:08 +0000 Subject: [PATCH 29/29] Release 10.0.2 --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c90d81f30..80ab1c17f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,9 +2,10 @@ CHANGE LOG ========== -## 10.0.2 (UPCOMING) +## 10.0.2 (26/10/2020) * Fixed phpdoc typo +* Fixed broken query builder ## 10.0.1 (24/10/2020)