62% lewe-jira-connector

Code Review | Lewe Jira Connector

WordPress plugin Lewe Jira Connector scored62%from 54 tests.

About plugin

  • Plugin page: lewe-jira-connector
  • Plugin version: 2.7.2
  • PHP compatiblity: 7.2+
  • PHP version: 7.4.16
  • WordPress compatibility: 5.2-6.2
  • WordPress version: 6.3.1
  • First release: Nov 3, 2021
  • Latest release: Apr 12, 2023
  • Number of updates: 20
  • Update frequency: every 26.3 days
  • Top authors: glewe (100%)

Code review

54 tests

User reviews

1 review

Install metrics

20+ active /1,007 total downloads

Benchmarks

Plugin footprint 83% from 16 tests

Installer Passed 1 test

🔺 Critical test (weight: 50) | Verifying that this plugin installs correctly without errors
Install script ran successfully

Server metrics [RAM: ▲0.46MB] [CPU: ▲1.22ms] Passed 4 tests

Analyzing server-side resources used by Lewe Jira Connector
No issues were detected with server-side resource usage
PageMemory (MB)CPU Time (ms)
Home /3.95 ▲0.4943.32 ▲0.47
Dashboard /wp-admin3.79 ▲0.4952.11 ▲1.05
Posts /wp-admin/edit.php3.84 ▲0.4952.72 ▲0.12
Add New Post /wp-admin/post-new.php6.33 ▲0.45106.56 ▲19.40
Media Library /wp-admin/upload.php3.65 ▲0.4238.23 ▲3.24
Categories /wp-admin/edit-tags.php?taxonomy=category&post_type=jira_host3.6542.75
Options /wp-admin/admin.php?page=lewe-jira-connector/admin/partials/lewe-jira-connector-admin-options.php3.9750.65
Add New /wp-admin/post-new.php?post_type=jira_host3.7248.79
Tags /wp-admin/edit-tags.php?taxonomy=post_tag&post_type=jira_host3.6538.22
License /wp-admin/admin.php?page=lewe-jira-connector/admin/partials/lewe-jira-connector-admin-license.php3.6836.35
Jira Hosts /wp-admin/edit.php?post_type=jira_host3.7743.95

Server storage [IO: ▲4.23MB] [DB: ▲0.00MB] Passed 3 tests

Input-output and database impact of this plugin
No storage issues were detected
Filesystem: 69 new files
Database: no new tables, 7 new options
New WordPress options
widget_recent-posts
can_compress_scripts
widget_recent-comments
theysaidso_admin_options
category_children
db_upgraded
widget_theysaidso_widget

Browser metrics Passed 4 tests

Lewe Jira Connector: an overview of browser usage
Minimal impact on browser resources
PageNodesMemory (MB)Script (ms)Layout (ms)
Home /2,976 ▲21513.38 ▼1.337.50 ▲5.6342.45 ▼3.51
Dashboard /wp-admin2,267 ▲905.57 ▼0.1092.77 ▼8.2879.26 ▲34.58
Posts /wp-admin/edit.php2,175 ▲721.98 ▲0.0136.83 ▼0.0433.10 ▼5.67
Add New Post /wp-admin/post-new.php1,591 ▲6222.82 ▼0.11708.38 ▲67.0454.86 ▼2.18
Media Library /wp-admin/upload.php1,472 ▲724.18 ▼0.10100.22 ▼3.8973.01 ▲27.65
Categories /wp-admin/edit-tags.php?taxonomy=category&post_type=jira_host1,5272.2826.2935.97
Options /wp-admin/admin.php?page=lewe-jira-connector/admin/partials/lewe-jira-connector-admin-options.php1,7462.0124.2376.00
Add New /wp-admin/post-new.php?post_type=jira_host1,8012.7354.9668.13
Tags /wp-admin/edit-tags.php?taxonomy=post_tag&post_type=jira_host1,3882.1327.3135.33
License /wp-admin/admin.php?page=lewe-jira-connector/admin/partials/lewe-jira-connector-admin-license.php9381.9925.8949.21
Jira Hosts /wp-admin/edit.php?post_type=jira_host1,2201.9432.3630.57

Uninstaller [IO: ▲0.00MB] [DB: ▲0.00MB] 75% from 4 tests

🔸 Tests weight: 35 | The uninstall procedure must remove all plugin files and extra database tables
The following items require your attention
  • The uninstall procedure has failed, leaving 7 options in the database
    • category_children
    • widget_theysaidso_widget
    • widget_recent-posts
    • db_upgraded
    • can_compress_scripts
    • theysaidso_admin_options
    • widget_recent-comments

Smoke tests 25% from 4 tests

Server-side errors 0% from 1 test

🔹 Test weight: 20 | Just a short smoke test targeting errors on the server (in the Apache logs)
These server-side errors were triggered
    • > GET request to /wp-admin/post-new.php?post_type=jira_host
    • > Notice in wp-content/plugins/lewe-jira-connector/admin/partials/lewe-jira-connector-jira-host-meta-box.php+44
    Undefined variable: display

SRP 0% from 2 tests

🔹 Tests weight: 20 | A shallow check of the single-responsibility principle; PHP files should perform no action - including output of placeholder text - and trigger no errors when accessed directly
Please take a closer look at the following
  • 1× PHP files perform the task of outputting text when accessed with GET requests:
    • > /wp-content/plugins/lewe-jira-connector/public/partials/public-display.php
  • 1× GET requests to PHP files have triggered server-side errors or warnings:
    • > PHP Fatal error
      Uncaught Error: Call to undefined function sanitize_text_field() in wp-content/plugins/lewe-jira-connector/admin/partials/lewe-jira-connector-admin-test-jira-login.php:16

User-side errors Passed 1 test

🔹 Test weight: 20 | Just a short smoke test targeting errors on the browser (console and network errors and warnings)
No browser errors were detected

Optimizations

Plugin configuration 93% from 29 tests

readme.txt Passed 16 tests

It's important to format your readme.txt file correctly as it is parsed for the public listing of your plugin
1 plugin tags: lewe jira connector interface issue ticket

lewe-jira-connector/lewe-jira-connector.php 85% from 13 tests

The main PHP script in "Lewe Jira Connector" version 2.7.2 is automatically included on every request by WordPress
Please make the necessary changes and fix the following:
  • Description: Keep the plugin description shorter than 140 characters (currently 145 characters long)
  • Requires at least: The required version number did not match the one declared in readme.txt ("4.0" instead of "5.2")

Code Analysis 5% from 3 tests

File types 0% from 1 test

🔸 Test weight: 35 | This is a short overview of programming languages used in this plugin, detecting executable files
Almost there! Just fix the following issues
  • You should never include executable (binary) or otherwise dangerous files in your plugin
    • .cmd - Command Script in Windows
      • wp-content/plugins/lewe-jira-connector/makepot.cmd
19,697 lines of code in 30 files:
LanguageFilesBlank linesComment linesLines of code
SVG3009,546
CSS42,0931167,428
PHP194091,5812,631
JavaScript35613891
DOS Batch1001

PHP code Passed 2 tests

Cyclomatic complexity and code structure are the fingerprint of this plugin
This plugin has no cyclomatic complexity problems
Cyclomatic complexity
Average complexity per logical line of code0.32
Average class complexity26.00
▷ Minimum class complexity1.00
▷ Maximum class complexity188.00
Average method complexity4.42
▷ Minimum method complexity1.00
▷ Maximum method complexity94.00
Code structure
Namespaces0
Interfaces0
Traits0
Classes11
▷ Abstract classes00.00%
▷ Concrete classes11100.00%
▷ Final classes00.00%
Methods81
▷ Static methods22.47%
▷ Public methods7390.12%
▷ Protected methods00.00%
▷ Private methods89.88%
Functions4
▷ Named functions4100.00%
▷ Anonymous functions00.00%
Constants14
▷ Global constants14100.00%
▷ Class constants00.00%
▷ Public constants00.00%

Plugin size 50% from 2 tests

Image compression 50% from 2 tests

All PNG images should be compressed to minimize bandwidth usage for end users
15 PNG files occupy 0.97MB with 0.63MB in potential savings
Potential savings
Compression of 5 random PNG files using pngquant
FileSize - originalSize - compressedSavings
global/images/screenshot-3.png97.37KB31.96KB▼ 67.18%
global/images/screenshot-1.png103.63KB35.39KB▼ 65.85%
global/images/screenshot-5.png82.92KB29.36KB▼ 64.59%
global/images/banner-772x250.png101.90KB40.15KB▼ 60.60%
global/images/screenshot-4.png80.60KB27.69KB▼ 65.64%