Conversation
Summary of ChangesHello @swissspidy, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request primarily addresses and resolves newly reported PHPStan static analysis errors across the codebase. It involves updating a core dependency, introducing precise type definitions for global variables and HTTP responses, and refining PHPDoc comments to ensure better type inference and reduce false positives from the static analyzer. The changes aim to improve code quality and maintainability by making the code more amenable to static analysis. Highlights
Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
|
Hello! 👋 Thanks for opening this pull request! Please check out our contributing guidelines. We appreciate you taking the initiative to contribute to this project. Contributing isn't limited to just code. We encourage you to contribute in the way that best fits your abilities, by writing tutorials, giving a demo at your local meetup, helping other users with their support questions, or revising our documentation. Here are some useful Composer commands to get you started:
To run a single Behat test, you can use the following command: # Run all tests in a single file
composer behat features/some-feature.feature
# Run only a specific scenario (where 123 is the line number of the "Scenario:" title)
composer behat features/some-feature.feature:123You can find a list of all available Behat steps in our handbook. |
There was a problem hiding this comment.
Code Review
This pull request addresses several PHPStan errors by adding more specific type annotations. The changes introduce a phpstan-type for HTTP responses and add @var and @phpstan-param docblocks to clarify variable types for the static analyzer, along with some related code cleanup. These are great improvements for code quality and maintainability. I have one suggestion for improving consistency in how global variables are accessed.
There was a problem hiding this comment.
Pull request overview
This PR addresses newly reported PHPStan findings in the WP-CLI core-command package by refining type information and suppressing/clarifying a few hard-to-type WordPress globals and hook return values, and it bumps the required wp-cli/wp-cli version.
Changes:
- Adjusted PHPStan-related typing around core download caching and
$GLOBALSusage inCoreUpgrader. - Added PHPStan type aliasing / param annotations and improved typing for
$wpdb/$GLOBALS['wp_version']inCore_Command. - Updated
composer.jsonto requirewp-cli/wp-cli^2.13.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
src/WP_CLI/Core/CoreUpgrader.php |
PHPStan-related adjustments around filter return typing and $GLOBALS typing for core update locale. |
src/Core_Command.php |
Adds PHPStan type alias/annotations for HTTP responses and globals used during version checks/installs. |
composer.json |
Bumps required wp-cli/wp-cli version to ^2.13. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| * | ||
| * @package wp-cli | ||
| * | ||
| * @phpstan-type HTTP_Response array{headers: array<string, string>, body: string, response: array{code:false|int, message: false|string}, cookies: array<string, string>, http_response: mixed} |
There was a problem hiding this comment.
The HTTP_Response alias appears to be more specific than WordPress actually guarantees (e.g., cookies are typically WP_Http_Cookie[], and header values aren’t always just string). Consider loosening this alias to only the fields you read in this file (e.g., array{response: array{code:int, message:string}} & array<string, mixed>) or using array<string, mixed> to avoid encoding an incorrect contract into PHPStan types.
| * @phpstan-type HTTP_Response array{headers: array<string, string>, body: string, response: array{code:false|int, message: false|string}, cookies: array<string, string>, http_response: mixed} | |
| * @phpstan-type HTTP_Response array{response: array{code:false|int, message:false|string}} & array<string, mixed> |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
No description provided.