From 1b99c886b515441e0c8a61c32aa8902b137c97d5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 2 Nov 2025 17:14:13 +0000 Subject: [PATCH 1/7] Initial plan From 19513366addd08c7b67d1f8da6fbd677735fab5e Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 2 Nov 2025 17:22:20 +0000 Subject: [PATCH 2/7] Add cryptographic verification documentation for WP-CLI downloads Co-authored-by: swissspidy <841956+swissspidy@users.noreply.github.com> --- bin/handbook-manifest.json | 338 +++++++++++++++++----------------- guides/installing.md | 14 ++ guides/verifying-downloads.md | 202 ++++++++++++++++++++ 3 files changed, 388 insertions(+), 166 deletions(-) create mode 100644 guides/verifying-downloads.md diff --git a/bin/handbook-manifest.json b/bin/handbook-manifest.json index 02f1c1a2..81ef014f 100644 --- a/bin/handbook-manifest.json +++ b/bin/handbook-manifest.json @@ -2,817 +2,823 @@ "behat-steps": { "title": "Behat Steps", "slug": "behat-steps", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps.md", "parent": "references" }, "bug-reports": { "title": "Bug Reports", "slug": "bug-reports", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions\/bug-reports.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions/bug-reports.md", "parent": "contributions" }, "code-review": { "title": "Code Review", "slug": "code-review", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions\/code-review.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions/code-review.md", "parent": "contributions" }, "commands-cookbook": { "title": "Commands Cookbook", "slug": "commands-cookbook", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/commands-cookbook.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/commands-cookbook.md", "parent": "guides" }, "committers-credo": { "title": "Committers Credo", "slug": "committers-credo", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions\/committers-credo.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions/committers-credo.md", "parent": "contributions" }, "common-issues": { "title": "Common Issues", "slug": "common-issues", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/common-issues.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/common-issues.md", "parent": "guides" }, "config": { "title": "Config", "slug": "config", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/config.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/config.md", "parent": "references" }, "contributing": { "title": "Contributing", "slug": "contributing", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions\/contributing.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions/contributing.md", "parent": "contributions" }, "contributions": { "title": "Contributions", "slug": "contributions", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions.md", "parent": null }, "contributor-day": { "title": "WordCamp Contributor Day", "slug": "contributor-day", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions\/contributor-day.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions/contributor-day.md", "parent": "contributions" }, "doctor": { "title": "Doctor Guides", "slug": "doctor", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/doctor.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/doctor.md", "parent": "guides" }, "doctor-check-constant-value": { "title": "Write a check for asserting the value of a given constant", "slug": "doctor-check-constant-value", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/doctor\/doctor-check-constant-value.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/doctor/doctor-check-constant-value.md", "parent": "doctor" }, "doctor-check-file-contents": { "title": "Write a check for verifying contents of WordPress files", "slug": "doctor-check-file-contents", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/doctor\/doctor-check-file-contents.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/doctor/doctor-check-file-contents.md", "parent": "doctor" }, "doctor-check-option-value": { "title": "Write a check for asserting the value of a given option", "slug": "doctor-check-option-value", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/doctor\/doctor-check-option-value.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/doctor/doctor-check-option-value.md", "parent": "doctor" }, "doctor-check-plugin-status": { "title": "Check status of a given plugin", "slug": "doctor-check-plugin-status", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/doctor\/doctor-check-plugin-status.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/doctor/doctor-check-plugin-status.md", "parent": "doctor" }, "doctor-customize-config": { "title": "Customize doctor diagnostic checks", "slug": "doctor-customize-config", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/doctor\/doctor-customize-config.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/doctor/doctor-customize-config.md", "parent": "doctor" }, "doctor-default-checks": { "title": "Default doctor diagnostic checks", "slug": "doctor-default-checks", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/doctor\/doctor-default-checks.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/doctor/doctor-default-checks.md", "parent": "doctor" }, "doctor-write-custom-check": { "title": "Write a custom check to perform an arbitrary assertion", "slug": "doctor-write-custom-check", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/doctor\/doctor-write-custom-check.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/doctor/doctor-write-custom-check.md", "parent": "doctor" }, "documentation-standards": { "title": "Documentation Standards", "slug": "documentation-standards", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/documentation-standards.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/documentation-standards.md", "parent": "references" }, "external-resources": { "title": "External Resources", "slug": "external-resources", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/external-resources.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/external-resources.md", "parent": "guides" }, "force-output-specific-locale": { "title": "Force output to a specific locale", "slug": "force-output-specific-locale", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/force-output-specific-locale.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/force-output-specific-locale.md", "parent": "guides" }, "given-a-custom-wp-content-directory": { "title": "Given a custom wp-content directory", "slug": "given-a-custom-wp-content-directory", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-a-custom-wp-content-directory.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-a-custom-wp-content-directory.md", "parent": "behat-steps" }, "given-a-database": { "title": "Given a database", "slug": "given-a-database", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-a-database.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-a-database.md", "parent": "behat-steps" }, "given-a-dependency-on-current-wp-cli": { "title": "Given a dependency on current wp-cli", "slug": "given-a-dependency-on-current-wp-cli", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-a-dependency-on-current-wp-cli.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-a-dependency-on-current-wp-cli.md", "parent": "behat-steps" }, "given-a-downloaded-phar-with-the-same-version-version": { - "title": "Given \/^a downloaded Phar with (?:the same version|version "([^"]+)")$\/", + "title": "Given /^a downloaded Phar with (?:the same version|version "([^"]+)")$/", "slug": "given-a-downloaded-phar-with-the-same-version-version", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-a-downloaded-phar-with-the-same-version-version.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-a-downloaded-phar-with-the-same-version-version.md", "parent": "behat-steps" }, "given-a-misconfigured-wp-content-dir-constant-directory": { "title": "Given a misconfigured WP_CONTENT_DIR constant directory", "slug": "given-a-misconfigured-wp-content-dir-constant-directory", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-a-misconfigured-wp-content-dir-constant-directory.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-a-misconfigured-wp-content-dir-constant-directory.md", "parent": "behat-steps" }, "given-a-new-phar-with-the-same-version-version": { - "title": "Given \/^a new Phar with (?:the same version|version "([^"]+)")$\/", + "title": "Given /^a new Phar with (?:the same version|version "([^"]+)")$/", "slug": "given-a-new-phar-with-the-same-version-version", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-a-new-phar-with-the-same-version-version.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-a-new-phar-with-the-same-version-version.md", "parent": "behat-steps" }, "given-a-php-built-in-web-server": { "title": "Given a PHP built-in web server", "slug": "given-a-php-built-in-web-server", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-a-php-built-in-web-server.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-a-php-built-in-web-server.md", "parent": "behat-steps" }, "given-a-php-built-in-web-server-to-serve-subdir": { "title": "Given a PHP built-in web server to serve :subdir", "slug": "given-a-php-built-in-web-server-to-serve-subdir", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-a-php-built-in-web-server-to-serve-subdir.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-a-php-built-in-web-server-to-serve-subdir.md", "parent": "behat-steps" }, "given-a-wp-installation": { "title": "Given a WP install(ation)", "slug": "given-a-wp-installation", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-a-wp-installation.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-a-wp-installation.md", "parent": "behat-steps" }, "given-a-wp-installation-in-subdir": { "title": "Given a WP install(ation) in :subdir", "slug": "given-a-wp-installation-in-subdir", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-a-wp-installation-in-subdir.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-a-wp-installation-in-subdir.md", "parent": "behat-steps" }, "given-a-wp-installation-with-composer": { "title": "Given a WP install(ation) with Composer", "slug": "given-a-wp-installation-with-composer", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-a-wp-installation-with-composer.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-a-wp-installation-with-composer.md", "parent": "behat-steps" }, "given-a-wp-installation-with-composer-and-a-custom-vendor-directory-vendor-directory": { "title": "Given a WP install(ation) with Composer and a custom vendor directory :vendor_directory", "slug": "given-a-wp-installation-with-composer-and-a-custom-vendor-directory-vendor-directory", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-a-wp-installation-with-composer-and-a-custom-vendor-directory-vendor-directory.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-a-wp-installation-with-composer-and-a-custom-vendor-directory-vendor-directory.md", "parent": "behat-steps" }, "given-a-wp-multisite-subdirectory-subdomaininstall-installation": { - "title": "Given \/^a WP multisite (subdirectory|subdomain)?\\s?(install|installation)$\/", + "title": "Given /^a WP multisite (subdirectory|subdomain)?\\s?(install|installation)$/", "slug": "given-a-wp-multisite-subdirectory-subdomaininstall-installation", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-a-wp-multisite-subdirectory-subdomaininstall-installation.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-a-wp-multisite-subdirectory-subdomaininstall-installation.md", "parent": "behat-steps" }, "given-an-empty-cache": { "title": "Given an empty cache", "slug": "given-an-empty-cache", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-an-empty-cache.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-an-empty-cache.md", "parent": "behat-steps" }, "given-an-empty-directory": { "title": "Given an empty directory", "slug": "given-an-empty-directory", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-an-empty-directory.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-an-empty-directory.md", "parent": "behat-steps" }, "given-an-empty-non-existent-directory": { - "title": "Given \/^an? (empty|non-existent) ([^\\s]+) directory$\/", + "title": "Given /^an? (empty|non-existent) ([^\\s]+) directory$/", "slug": "given-an-empty-non-existent-directory", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-an-empty-non-existent-directory.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-an-empty-non-existent-directory.md", "parent": "behat-steps" }, "given-an-file-cache-file": { - "title": "Given \/^an? ([^\\s]+) (file|cache file):$\/", + "title": "Given /^an? ([^\\s]+) (file|cache file):$/", "slug": "given-an-file-cache-file", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-an-file-cache-file.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-an-file-cache-file.md", "parent": "behat-steps" }, "given-download": { "title": "Given download:", "slug": "given-download", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-download.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-download.md", "parent": "behat-steps" }, "given-replaced-with-in-the-file": { - "title": "Given \/^"([^"]+)" replaced with "([^"]+)" in the ([^\\s]+) file$\/", + "title": "Given /^"([^"]+)" replaced with "([^"]+)" in the ([^\\s]+) file$/", "slug": "given-replaced-with-in-the-file", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-replaced-with-in-the-file.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-replaced-with-in-the-file.md", "parent": "behat-steps" }, "given-save-stdout-stderr-as": { - "title": "Given \/^save (STDOUT|STDERR) ([\\'].+[^\\'])?\\s?as \\{(\\w+)\\}$\/", + "title": "Given /^save (STDOUT|STDERR) ([\\'].+[^\\'])?\\s?as \\{(\\w+)\\}$/", "slug": "given-save-stdout-stderr-as", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-save-stdout-stderr-as.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-save-stdout-stderr-as.md", "parent": "behat-steps" }, "given-save-the-file-as": { - "title": "Given \/^save the (.+) file ([\\'].+[^\\'])?as \\{(\\w+)\\}$\/", + "title": "Given /^save the (.+) file ([\\'].+[^\\'])?as \\{(\\w+)\\}$/", "slug": "given-save-the-file-as", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-save-the-file-as.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-save-the-file-as.md", "parent": "behat-steps" }, "given-that-http-requests-to-will-respond-with": { - "title": "Given \/^that HTTP requests to (.*?) will respond with:$\/", + "title": "Given /^that HTTP requests to (.*?) will respond with:$/", "slug": "given-that-http-requests-to-will-respond-with", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-that-http-requests-to-will-respond-with.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-that-http-requests-to-will-respond-with.md", "parent": "behat-steps" }, "given-these-installed-and-active-plugins": { "title": "Given these installed and active plugins:", "slug": "given-these-installed-and-active-plugins", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-these-installed-and-active-plugins.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-these-installed-and-active-plugins.md", "parent": "behat-steps" }, "given-wp-config-php": { "title": "Given wp-config.php", "slug": "given-wp-config-php", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-wp-config-php.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-wp-config-php.md", "parent": "behat-steps" }, "given-wp-files": { "title": "Given WP files", "slug": "given-wp-files", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-wp-files.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-wp-files.md", "parent": "behat-steps" }, "governance": { "title": "Governance", "slug": "governance", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions\/governance.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions/governance.md", "parent": "contributions" }, "guides": { "title": "Guides", "slug": "guides", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides.md", "parent": null }, "hack-day": { "title": "WP-CLI Hack Day", "slug": "hack-day", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions\/hack-day.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions/hack-day.md", "parent": "contributions" }, "hosting-companies": { "title": "Hosting Companies", "slug": "hosting-companies", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/hosting-companies.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/hosting-companies.md", "parent": "references" }, "how-to": { "title": "How to WP-CLI", "slug": "how-to", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/how-to.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/how-to.md", "parent": null }, "how-to-create-custom-plugins": { "title": "How to create a custom plugin", "slug": "how-to-create-custom-plugins", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/how-to\/how-to-create-custom-plugins.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/how-to/how-to-create-custom-plugins.md", "parent": "how-to" }, "how-to-install": { "title": "How to install WordPress", "slug": "how-to-install", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/how-to\/how-to-install.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/how-to/how-to-install.md", "parent": "how-to" }, "how-to-maintenance-mode": { "title": "How to put the site in maintenance mode", "slug": "how-to-maintenance-mode", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/how-to\/how-to-maintenance-mode.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/how-to/how-to-maintenance-mode.md", "parent": "how-to" }, "how-to-start-webserver": { "title": "How to start the webserver", "slug": "how-to-start-webserver", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/how-to\/how-to-start-webserver.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/how-to/how-to-start-webserver.md", "parent": "how-to" }, "identify-plugin-theme-conflict": { "title": "Identify a Plugin or Theme Conflict", "slug": "identify-plugin-theme-conflict", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/how-to\/identify-plugin-theme-conflict.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/how-to/identify-plugin-theme-conflict.md", "parent": "how-to" }, "implementation-details": { "title": "Implementation Details", "slug": "implementation-details", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions\/implementation-details.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions/implementation-details.md", "parent": "contributions" }, "index": { "title": "Handbook", "slug": "handbook", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/index.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/index.md", "parent": null }, "installing": { "title": "Installing", "slug": "installing", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/installing.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/installing.md", "parent": "guides" }, "internal-api": { "title": "Internal API", "slug": "internal-api", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api.md", "parent": "references" }, "philosophy": { "title": "Philosophy", "slug": "philosophy", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions\/philosophy.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions/philosophy.md", "parent": "contributions" }, "plugin-unit-tests": { "title": "Plugin Integration Tests", "slug": "plugin-unit-tests", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/how-to\/plugin-unit-tests.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/how-to/plugin-unit-tests.md", "parent": "how-to" }, "pull-requests": { "title": "Pull Requests", "slug": "pull-requests", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions\/pull-requests.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions/pull-requests.md", "parent": "contributions" }, "quick-start": { "title": "Quick Start", "slug": "quick-start", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/quick-start.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/quick-start.md", "parent": "guides" }, "references": { "title": "References", "slug": "references", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references.md", "parent": null }, "release-checklist": { "title": "Release Checklist", "slug": "release-checklist", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions\/release-checklist.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions/release-checklist.md", "parent": "contributions" }, "repository-management": { "title": "Repository Management", "slug": "repository-management", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions\/repository-management.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions/repository-management.md", "parent": "contributions" }, "roadmap": { "title": "Roadmap", "slug": "roadmap", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions\/roadmap.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions/roadmap.md", "parent": "contributions" }, "running-commands-remotely": { "title": "Running Commands Remotely", "slug": "running-commands-remotely", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/running-commands-remotely.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/running-commands-remotely.md", "parent": "guides" }, "sharing-wp-cli-packages": { "title": "Sharing WP-CLI Packages", "slug": "sharing-wp-cli-packages", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/sharing-wp-cli-packages.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/sharing-wp-cli-packages.md", "parent": "guides" }, "shell-friends": { "title": "Shell Friends", "slug": "shell-friends", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/shell-friends.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/shell-friends.md", "parent": "references" }, "then-an-email-should-be-sent-not-be-sent": { - "title": "Then \/^an email should (be sent|not be sent)$\/", + "title": "Then /^an email should (be sent|not be sent)$/", "slug": "then-an-email-should-be-sent-not-be-sent", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-an-email-should-be-sent-not-be-sent.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-an-email-should-be-sent-not-be-sent.md", "parent": "behat-steps" }, "then-stdout-should-be-a-json-array-containing": { - "title": "Then \/^STDOUT should be a JSON array containing:$\/", + "title": "Then /^STDOUT should be a JSON array containing:$/", "slug": "then-stdout-should-be-a-json-array-containing", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-stdout-should-be-a-json-array-containing.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-stdout-should-be-a-json-array-containing.md", "parent": "behat-steps" }, "then-stdout-should-be-a-table-containing-rows": { - "title": "Then \/^STDOUT should be a table containing rows:$\/", + "title": "Then /^STDOUT should be a table containing rows:$/", "slug": "then-stdout-should-be-a-table-containing-rows", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-stdout-should-be-a-table-containing-rows.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-stdout-should-be-a-table-containing-rows.md", "parent": "behat-steps" }, "then-stdout-should-be-csv-containing": { - "title": "Then \/^STDOUT should be CSV containing:$\/", + "title": "Then /^STDOUT should be CSV containing:$/", "slug": "then-stdout-should-be-csv-containing", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-stdout-should-be-csv-containing.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-stdout-should-be-csv-containing.md", "parent": "behat-steps" }, "then-stdout-should-be-json-containing": { - "title": "Then \/^STDOUT should be JSON containing:$\/", + "title": "Then /^STDOUT should be JSON containing:$/", "slug": "then-stdout-should-be-json-containing", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-stdout-should-be-json-containing.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-stdout-should-be-json-containing.md", "parent": "behat-steps" }, "then-stdout-should-be-yaml-containing": { - "title": "Then \/^STDOUT should be YAML containing:$\/", + "title": "Then /^STDOUT should be YAML containing:$/", "slug": "then-stdout-should-be-yaml-containing", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-stdout-should-be-yaml-containing.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-stdout-should-be-yaml-containing.md", "parent": "behat-steps" }, "then-stdout-should-end-with-a-table-containing-rows": { - "title": "Then \/^STDOUT should end with a table containing rows:$\/", + "title": "Then /^STDOUT should end with a table containing rows:$/", "slug": "then-stdout-should-end-with-a-table-containing-rows", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-stdout-should-end-with-a-table-containing-rows.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-stdout-should-end-with-a-table-containing-rows.md", "parent": "behat-steps" }, "then-stdout-stderr-should-be-a-number": { - "title": "Then \/^(STDOUT|STDERR) should be a number$\/", + "title": "Then /^(STDOUT|STDERR) should be a number$/", "slug": "then-stdout-stderr-should-be-a-number", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-stdout-stderr-should-be-a-number.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-stdout-stderr-should-be-a-number.md", "parent": "behat-steps" }, "then-stdout-stderr-should-be-a-version-string-w": { - "title": "Then \/^(STDOUT|STDERR) should be a version string (<|<=|>|>=|==|=|!=|<>) ([+\\w.{}-]+)$\/", + "title": "Then /^(STDOUT|STDERR) should be a version string (<|<=|>|>=|==|=|!=|<>) ([+\\w.{}-]+)$/", "slug": "then-stdout-stderr-should-be-a-version-string-w", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-stdout-stderr-should-be-a-version-string-w.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-stdout-stderr-should-be-a-version-string-w.md", "parent": "behat-steps" }, "then-stdout-stderr-should-be-empty": { - "title": "Then \/^(STDOUT|STDERR) should be empty$\/", + "title": "Then /^(STDOUT|STDERR) should be empty$/", "slug": "then-stdout-stderr-should-be-empty", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-stdout-stderr-should-be-empty.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-stdout-stderr-should-be-empty.md", "parent": "behat-steps" }, "then-stdout-stderr-should-not-be-a-number": { - "title": "Then \/^(STDOUT|STDERR) should not be a number$\/", + "title": "Then /^(STDOUT|STDERR) should not be a number$/", "slug": "then-stdout-stderr-should-not-be-a-number", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-stdout-stderr-should-not-be-a-number.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-stdout-stderr-should-not-be-a-number.md", "parent": "behat-steps" }, "then-stdout-stderr-should-not-be-empty": { - "title": "Then \/^(STDOUT|STDERR) should not be empty$\/", + "title": "Then /^(STDOUT|STDERR) should not be empty$/", "slug": "then-stdout-stderr-should-not-be-empty", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-stdout-stderr-should-not-be-empty.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-stdout-stderr-should-not-be-empty.md", "parent": "behat-steps" }, "then-stdout-stderr-should-not-match": { - "title": "Then \/^(STDOUT|STDERR) should( not)? match (((\\\/.+\\\/)|(#.+#))([a-z]+)?)$\/", + "title": "Then /^(STDOUT|STDERR) should( not)? match (((\\/.+\\/)|(#.+#))([a-z]+)?)$/", "slug": "then-stdout-stderr-should-not-match", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-stdout-stderr-should-not-match.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-stdout-stderr-should-not-match.md", "parent": "behat-steps" }, "then-stdout-stderr-should-strictly-be-contain-not-contain": { - "title": "Then \/^(STDOUT|STDERR) should( strictly)? (be|contain|not contain):$\/", + "title": "Then /^(STDOUT|STDERR) should( strictly)? (be|contain|not contain):$/", "slug": "then-stdout-stderr-should-strictly-be-contain-not-contain", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-stdout-stderr-should-strictly-be-contain-not-contain.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-stdout-stderr-should-strictly-be-contain-not-contain.md", "parent": "behat-steps" }, "then-the-contents-of-the-file-should-not-match": { - "title": "Then \/^the contents of the (.+) file should( not)? match (((\\\/.+\\\/)|(#.+#))([a-z]+)?)$\/", + "title": "Then /^the contents of the (.+) file should( not)? match (((\\/.+\\/)|(#.+#))([a-z]+)?)$/", "slug": "then-the-contents-of-the-file-should-not-match", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-the-contents-of-the-file-should-not-match.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-the-contents-of-the-file-should-not-match.md", "parent": "behat-steps" }, "then-the-file-directory-should-strictly-exist-not-exist-be-contain-not-contain": { - "title": "Then \/^the (.+) (file|directory) should( strictly)? (exist|not exist|be:|contain:|not contain:)$\/", + "title": "Then /^the (.+) (file|directory) should( strictly)? (exist|not exist|be:|contain:|not contain:)$/", "slug": "then-the-file-directory-should-strictly-exist-not-exist-be-contain-not-contain", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-the-file-directory-should-strictly-exist-not-exist-be-contain-not-contain.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-the-file-directory-should-strictly-exist-not-exist-be-contain-not-contain.md", "parent": "behat-steps" }, "then-the-http-status-code-should-be-code": { "title": "Then the HTTP status code should be :code", "slug": "then-the-http-status-code-should-be-code", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-the-http-status-code-should-be-code.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-the-http-status-code-should-be-code.md", "parent": "behat-steps" }, "then-the-return-code-should-not-be": { - "title": "Then \/^the return code should( not)? be (\\d+)$\/", + "title": "Then /^the return code should( not)? be (\\d+)$/", "slug": "then-the-return-code-should-not-be", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-the-return-code-should-not-be.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-the-return-code-should-not-be.md", "parent": "behat-steps" }, "tools": { "title": "Tools", "slug": "tools", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/tools.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/tools.md", "parent": "references" }, "troubleshooting": { "title": "Troubleshooting Guide", "slug": "troubleshooting", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/troubleshooting.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/troubleshooting.md", "parent": "guides" }, "when-i-launch-in-the-background": { - "title": "When \/^I launch in the background `([^`]+)`$\/", + "title": "When /^I launch in the background `([^`]+)`$/", "slug": "when-i-launch-in-the-background", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/when-i-launch-in-the-background.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/when-i-launch-in-the-background.md", "parent": "behat-steps" }, "when-i-run-try": { - "title": "When \/^I (run|try) `([^`]+)`$\/", + "title": "When /^I (run|try) `([^`]+)`$/", "slug": "when-i-run-try", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/when-i-run-try.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/when-i-run-try.md", "parent": "behat-steps" }, "when-i-run-try-from": { - "title": "When \/^I (run|try) `([^`]+)` from '([^\\s]+)'$\/", + "title": "When /^I (run|try) `([^`]+)` from '([^\\s]+)'$/", "slug": "when-i-run-try-from", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/when-i-run-try-from.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/when-i-run-try-from.md", "parent": "behat-steps" }, "when-i-run-try-the-previous-command-again": { - "title": "When \/^I (run|try) the previous command again$\/", + "title": "When /^I (run|try) the previous command again$/", "slug": "when-i-run-try-the-previous-command-again", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/when-i-run-try-the-previous-command-again.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/when-i-run-try-the-previous-command-again.md", "parent": "behat-steps" }, "wp-cli-add-command": { "title": "WP_CLI::add_command()", "slug": "wp-cli-add-command", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-add-command.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-add-command.md", "parent": "internal-api" }, "wp-cli-add-hook": { "title": "WP_CLI::add_hook()", "slug": "wp-cli-add-hook", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-add-hook.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-add-hook.md", "parent": "internal-api" }, "wp-cli-add-wp-hook": { "title": "WP_CLI::add_wp_hook()", "slug": "wp-cli-add-wp-hook", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-add-wp-hook.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-add-wp-hook.md", "parent": "internal-api" }, "wp-cli-colorize": { "title": "WP_CLI::colorize()", "slug": "wp-cli-colorize", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-colorize.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-colorize.md", "parent": "internal-api" }, "wp-cli-confirm": { "title": "WP_CLI::confirm()", "slug": "wp-cli-confirm", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-confirm.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-confirm.md", "parent": "internal-api" }, "wp-cli-debug": { "title": "WP_CLI::debug()", "slug": "wp-cli-debug", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-debug.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-debug.md", "parent": "internal-api" }, "wp-cli-do-hook": { "title": "WP_CLI::do_hook()", "slug": "wp-cli-do-hook", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-do-hook.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-do-hook.md", "parent": "internal-api" }, "wp-cli-error": { "title": "WP_CLI::error()", "slug": "wp-cli-error", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-error.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-error.md", "parent": "internal-api" }, "wp-cli-error-multi-line": { "title": "WP_CLI::error_multi_line()", "slug": "wp-cli-error-multi-line", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-error-multi-line.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-error-multi-line.md", "parent": "internal-api" }, "wp-cli-get-config": { "title": "WP_CLI::get_config()", "slug": "wp-cli-get-config", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-get-config.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-get-config.md", "parent": "internal-api" }, "wp-cli-get-php-binary": { "title": "WP_CLI::get_php_binary()", "slug": "wp-cli-get-php-binary", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-get-php-binary.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-get-php-binary.md", "parent": "internal-api" }, "wp-cli-halt": { "title": "WP_CLI::halt()", "slug": "wp-cli-halt", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-halt.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-halt.md", "parent": "internal-api" }, "wp-cli-has-config": { "title": "WP_CLI::has_config()", "slug": "wp-cli-has-config", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-has-config.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-has-config.md", "parent": "internal-api" }, "wp-cli-launch": { "title": "WP_CLI::launch()", "slug": "wp-cli-launch", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-launch.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-launch.md", "parent": "internal-api" }, "wp-cli-launch-self": { "title": "WP_CLI::launch_self()", "slug": "wp-cli-launch-self", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-launch-self.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-launch-self.md", "parent": "internal-api" }, "wp-cli-line": { "title": "WP_CLI::line()", "slug": "wp-cli-line", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-line.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-line.md", "parent": "internal-api" }, "wp-cli-log": { "title": "WP_CLI::log()", "slug": "wp-cli-log", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-log.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-log.md", "parent": "internal-api" }, "wp-cli-read-value": { "title": "WP_CLI::read_value()", "slug": "wp-cli-read-value", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-read-value.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-read-value.md", "parent": "internal-api" }, "wp-cli-run-command": { "title": "WP_CLI::run_command()", "slug": "wp-cli-run-command", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-run-command.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-run-command.md", "parent": "internal-api" }, "wp-cli-runcommand": { "title": "WP_CLI::runcommand()", "slug": "wp-cli-runcommand", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-runcommand.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-runcommand.md", "parent": "internal-api" }, "wp-cli-success": { "title": "WP_CLI::success()", "slug": "wp-cli-success", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-success.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-success.md", "parent": "internal-api" }, "wp-cli-utils-basename": { "title": "WP_CLI\\Utils\\basename()", "slug": "wp-cli-utils-basename", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-basename.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-basename.md", "parent": "internal-api" }, "wp-cli-utils-esc-like": { "title": "WP_CLI\\Utils\\esc_like()", "slug": "wp-cli-utils-esc-like", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-esc-like.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-esc-like.md", "parent": "internal-api" }, "wp-cli-utils-format-items": { "title": "WP_CLI\\Utils\\format_items()", "slug": "wp-cli-utils-format-items", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-format-items.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-format-items.md", "parent": "internal-api" }, "wp-cli-utils-get-flag-value": { "title": "WP_CLI\\Utils\\get_flag_value()", "slug": "wp-cli-utils-get-flag-value", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-get-flag-value.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-get-flag-value.md", "parent": "internal-api" }, "wp-cli-utils-get-home-dir": { "title": "WP_CLI\\Utils\\get_home_dir()", "slug": "wp-cli-utils-get-home-dir", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-get-home-dir.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-get-home-dir.md", "parent": "internal-api" }, "wp-cli-utils-get-named-sem-ver": { "title": "WP_CLI\\Utils\\get_named_sem_ver()", "slug": "wp-cli-utils-get-named-sem-ver", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-get-named-sem-ver.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-get-named-sem-ver.md", "parent": "internal-api" }, "wp-cli-utils-get-php-binary": { "title": "WP_CLI\\Utils\\get_php_binary()", "slug": "wp-cli-utils-get-php-binary", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-get-php-binary.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-get-php-binary.md", "parent": "internal-api" }, "wp-cli-utils-get-temp-dir": { "title": "WP_CLI\\Utils\\get_temp_dir()", "slug": "wp-cli-utils-get-temp-dir", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-get-temp-dir.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-get-temp-dir.md", "parent": "internal-api" }, "wp-cli-utils-http-request": { "title": "WP_CLI\\Utils\\http_request()", "slug": "wp-cli-utils-http-request", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-http-request.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-http-request.md", "parent": "internal-api" }, "wp-cli-utils-ispiped": { "title": "WP_CLI\\Utils\\isPiped()", "slug": "wp-cli-utils-ispiped", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-ispiped.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-ispiped.md", "parent": "internal-api" }, "wp-cli-utils-launch-editor-for-input": { "title": "WP_CLI\\Utils\\launch_editor_for_input()", "slug": "wp-cli-utils-launch-editor-for-input", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-launch-editor-for-input.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-launch-editor-for-input.md", "parent": "internal-api" }, "wp-cli-utils-make-progress-bar": { "title": "WP_CLI\\Utils\\make_progress_bar()", "slug": "wp-cli-utils-make-progress-bar", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-make-progress-bar.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-make-progress-bar.md", "parent": "internal-api" }, "wp-cli-utils-normalize-path": { "title": "WP_CLI\\Utils\\normalize_path()", "slug": "wp-cli-utils-normalize-path", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-normalize-path.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-normalize-path.md", "parent": "internal-api" }, "wp-cli-utils-parse-ssh-url": { "title": "WP_CLI\\Utils\\parse_ssh_url()", "slug": "wp-cli-utils-parse-ssh-url", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-parse-ssh-url.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-parse-ssh-url.md", "parent": "internal-api" }, "wp-cli-utils-parse-str-to-argv": { "title": "WP_CLI\\Utils\\parse_str_to_argv()", "slug": "wp-cli-utils-parse-str-to-argv", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-parse-str-to-argv.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-parse-str-to-argv.md", "parent": "internal-api" }, "wp-cli-utils-proc-open-compat": { "title": "WP_CLI\\Utils\\proc_open_compat()", "slug": "wp-cli-utils-proc-open-compat", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-proc-open-compat.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-proc-open-compat.md", "parent": "internal-api" }, "wp-cli-utils-report-batch-operation-results": { "title": "WP_CLI\\Utils\\report_batch_operation_results()", "slug": "wp-cli-utils-report-batch-operation-results", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-report-batch-operation-results.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-report-batch-operation-results.md", "parent": "internal-api" }, "wp-cli-utils-trailingslashit": { "title": "WP_CLI\\Utils\\trailingslashit()", "slug": "wp-cli-utils-trailingslashit", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-trailingslashit.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-trailingslashit.md", "parent": "internal-api" }, "wp-cli-utils-write-csv": { "title": "WP_CLI\\Utils\\write_csv()", "slug": "wp-cli-utils-write-csv", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-write-csv.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-write-csv.md", "parent": "internal-api" }, "wp-cli-warning": { "title": "WP_CLI::warning()", "slug": "wp-cli-warning", - "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-warning.md", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-warning.md", "parent": "internal-api" + }, + "verifying-downloads": { + "title": "Verifying Downloads", + "slug": "verifying-downloads", + "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/verifying-downloads.md", + "parent": "guides" } } \ No newline at end of file diff --git a/guides/installing.md b/guides/installing.md index 3a38ed0f..3b2e5577 100644 --- a/guides/installing.md +++ b/guides/installing.md @@ -10,6 +10,18 @@ First, download [wp-cli.phar](https://raw.githubusercontent.com/wp-cli/builds/gh curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar ``` +### Verifying the download (optional but recommended) + +Before using the downloaded file, you can verify its authenticity and integrity. See our [guide to verifying WP-CLI downloads](https://make.wordpress.org/cli/handbook/guides/verifying-downloads/) for detailed instructions on using GPG signatures or checksums to ensure the file hasn't been tampered with. + +Quick verification using GPG: + +``` +curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar.asc +curl -L https://raw.githubusercontent.com/wp-cli/builds/gh-pages/wp-cli.pgp | gpg --import +gpg --verify wp-cli.phar.asc wp-cli.phar +``` + Then, check if it works: ``` @@ -114,6 +126,8 @@ Open Alfred and try searching for a specific command. For example, this gives yo ## Alternative installation methods +**Note:** For all Phar-based installation methods below, you can verify the downloaded file's authenticity and integrity. See the [guide to verifying WP-CLI downloads](https://make.wordpress.org/cli/handbook/guides/verifying-downloads/) for instructions. + ### Installing via Git If you intend to work on WP-CLI itself, see the [Setting up](https://make.wordpress.org/cli/handbook/pull-requests/#setting-up) section in [Pull Requests](https://make.wordpress.org/cli/handbook/pull-requests/). diff --git a/guides/verifying-downloads.md b/guides/verifying-downloads.md new file mode 100644 index 00000000..d2e037b0 --- /dev/null +++ b/guides/verifying-downloads.md @@ -0,0 +1,202 @@ +# Verifying WP-CLI Downloads + +This guide explains how to cryptographically verify the authenticity and integrity of WP-CLI releases after downloading them from the Internet and before installing them on your system. + +## Why verify downloads? + +Verifying downloads ensures: +- **Authenticity**: The file was created and signed by the WP-CLI maintainers +- **Integrity**: The file has not been corrupted or tampered with during download + +## Quick verification guide + +After downloading `wp-cli.phar`, you can verify it using either GPG signatures or checksums. + +### Method 1: Verify using GPG signature (Recommended) + +This method provides the strongest security as it verifies both the integrity and authenticity of the download. + +#### Step 1: Download the signature file + +```bash +curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar.asc +``` + +For a specific version release (e.g., v2.12.0), download from GitHub releases: + +```bash +curl -LO https://github.com/wp-cli/wp-cli/releases/download/v2.12.0/wp-cli-2.12.0.phar +curl -LO https://github.com/wp-cli/wp-cli/releases/download/v2.12.0/wp-cli-2.12.0.phar.asc +``` + +#### Step 2: Import the WP-CLI release signing key + +WP-CLI releases are signed with the WP-CLI release signing key. Import the public key: + +```bash +curl -L https://raw.githubusercontent.com/wp-cli/builds/gh-pages/wp-cli.pgp | gpg --import +``` + +The key fingerprint is: +``` +63AF 7AA1 5067 C056 16FD DD88 A3A2 E8F2 26F0 BC06 +``` + +You can verify the key fingerprint after importing: + +```bash +gpg --list-keys --with-fingerprint releases@wp-cli.org +``` + +The output should include: +``` +pub rsa2048 2016-01-29 [SC] + 63AF 7AA1 5067 C056 16FD DD88 A3A2 E8F2 26F0 BC06 +uid [ unknown] WP-CLI Releases +sub rsa2048 2016-01-29 [E] +``` + +**Note:** Releases prior to v1.5.1 (July 2016) were signed with a different key (fingerprint: `3B91 91CD 3CF1 B5C5 10EE FAF6 AFAA E4A2 85E0 40A8`). If you need to verify older releases, import that key from the [builds repository README](https://github.com/wp-cli/builds/blob/gh-pages/README.md). + +#### Step 3: Verify the signature + +For the latest stable release: + +```bash +gpg --verify wp-cli.phar.asc wp-cli.phar +``` + +For a specific version: + +```bash +gpg --verify wp-cli-2.12.0.phar.asc wp-cli-2.12.0.phar +``` + +If the signature is valid, you'll see output like: + +``` +gpg: Signature made Wed May 7 02:26:41 2025 UTC +gpg: using RSA key 63AF7AA15067C05616FDDD88A3A2E8F226F0BC06 +gpg: Good signature from "WP-CLI Releases " [unknown] +``` + +You may see a warning about the key not being trusted: +``` +gpg: WARNING: This key is not certified with a trusted signature! +gpg: There is no indication that the signature belongs to the owner. +``` + +This is expected if you haven't personally verified and signed the WP-CLI key. The important part is seeing "Good signature" which confirms the file was signed by this key and hasn't been modified. + +### Method 2: Verify using checksums + +If GPG is not available, you can verify the integrity (but not authenticity) using SHA-512 or SHA-256 checksums. + +#### Using SHA-512 + +Download the SHA-512 checksum file: + +```bash +curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar.sha512 +``` + +Or for a specific release: + +```bash +curl -LO https://github.com/wp-cli/wp-cli/releases/download/v2.12.0/wp-cli-2.12.0.phar.sha512 +``` + +Verify the checksum on Linux/macOS: + +```bash +sha512sum -c wp-cli.phar.sha512 +``` + +Or manually compare: + +```bash +sha512sum wp-cli.phar +cat wp-cli.phar.sha512 +``` + +#### Using SHA-256 + +Download the SHA-256 checksum file: + +```bash +curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar.sha256 +``` + +Or for a specific release: + +```bash +curl -LO https://github.com/wp-cli/wp-cli/releases/download/v2.12.0/wp-cli-2.12.0.phar.sha256 +``` + +Verify the checksum: + +```bash +sha256sum -c wp-cli.phar.sha256 +``` + +**Note:** Checksum verification only confirms the file matches the published checksum. It does not verify that the file was created by the WP-CLI maintainers. For complete security, use GPG signature verification. + +## Where to find verification files + +### Latest stable and nightly builds + +Verification files for the latest stable and nightly builds are available at: +- + +Available files: +- `wp-cli.phar.asc` - GPG signature for latest stable +- `wp-cli.phar.sha512` - SHA-512 checksum for latest stable +- `wp-cli.phar.md5` - MD5 checksum (not recommended for security) +- `wp-cli-nightly.phar.asc` - GPG signature for nightly +- `wp-cli-nightly.phar.sha512` - SHA-512 checksum for nightly + +### Specific version releases + +For a specific version, verification files are available on the [GitHub releases page](https://github.com/wp-cli/wp-cli/releases): + +Each release includes: +- `wp-cli-X.X.X.phar` - The WP-CLI phar file +- `wp-cli-X.X.X.phar.asc` - Detached GPG signature +- `wp-cli-X.X.X.phar.gpg` - Inline GPG signature +- `wp-cli-X.X.X.phar.sha512` - SHA-512 checksum +- `wp-cli-X.X.X.phar.sha256` - SHA-256 checksum +- `wp-cli-X.X.X.phar.md5` - MD5 checksum (not recommended for security) + +## Complete installation example with verification + +Here's a complete example of downloading, verifying, and installing WP-CLI: + +```bash +# Download WP-CLI +curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar + +# Download signature +curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar.asc + +# Import signing key (first time only) +curl -L https://raw.githubusercontent.com/wp-cli/builds/gh-pages/wp-cli.pgp | gpg --import + +# Verify signature +gpg --verify wp-cli.phar.asc wp-cli.phar + +# If verification succeeds, test it works +php wp-cli.phar --info + +# Make executable and move to PATH +chmod +x wp-cli.phar +sudo mv wp-cli.phar /usr/local/bin/wp + +# Verify installation +wp --info +``` + +## Additional resources + +- [WP-CLI Builds Repository](https://github.com/wp-cli/builds) - Contains signing keys and latest builds +- [GitHub Releases](https://github.com/wp-cli/wp-cli/releases) - All version releases with verification files +- [GNU Privacy Guard](https://gnupg.org/) - Learn more about GPG From c3a7dd0f15a9d1fdaca1cffa50c51acc7ee49ba0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 2 Nov 2025 17:25:49 +0000 Subject: [PATCH 3/7] Fix checksum verification instructions to match actual file format Co-authored-by: swissspidy <841956+swissspidy@users.noreply.github.com> --- guides/verifying-downloads.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/guides/verifying-downloads.md b/guides/verifying-downloads.md index d2e037b0..463cea59 100644 --- a/guides/verifying-downloads.md +++ b/guides/verifying-downloads.md @@ -106,19 +106,15 @@ Or for a specific release: curl -LO https://github.com/wp-cli/wp-cli/releases/download/v2.12.0/wp-cli-2.12.0.phar.sha512 ``` -Verify the checksum on Linux/macOS: - -```bash -sha512sum -c wp-cli.phar.sha512 -``` - -Or manually compare: +Verify the checksum by comparing the output: ```bash sha512sum wp-cli.phar cat wp-cli.phar.sha512 ``` +The two hashes should match exactly. + #### Using SHA-256 Download the SHA-256 checksum file: @@ -133,12 +129,15 @@ Or for a specific release: curl -LO https://github.com/wp-cli/wp-cli/releases/download/v2.12.0/wp-cli-2.12.0.phar.sha256 ``` -Verify the checksum: +Verify the checksum by comparing the output: ```bash -sha256sum -c wp-cli.phar.sha256 +sha256sum wp-cli.phar +cat wp-cli.phar.sha256 ``` +The two hashes should match exactly. + **Note:** Checksum verification only confirms the file matches the published checksum. It does not verify that the file was created by the WP-CLI maintainers. For complete security, use GPG signature verification. ## Where to find verification files From 390be6bdd6817c2b9fa52c457fa2e55b46cd4694 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 2 Nov 2025 17:32:04 +0000 Subject: [PATCH 4/7] Use generic version placeholders in verification examples Co-authored-by: swissspidy <841956+swissspidy@users.noreply.github.com> --- guides/verifying-downloads.md | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/guides/verifying-downloads.md b/guides/verifying-downloads.md index 463cea59..ce01c04d 100644 --- a/guides/verifying-downloads.md +++ b/guides/verifying-downloads.md @@ -22,7 +22,14 @@ This method provides the strongest security as it verifies both the integrity an curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar.asc ``` -For a specific version release (e.g., v2.12.0), download from GitHub releases: +For a specific version release, download from GitHub releases (replace `X.X.X` with the desired version): + +```bash +curl -LO https://github.com/wp-cli/wp-cli/releases/download/vX.X.X/wp-cli-X.X.X.phar +curl -LO https://github.com/wp-cli/wp-cli/releases/download/vX.X.X/wp-cli-X.X.X.phar.asc +``` + +For example, to download version 2.12.0: ```bash curl -LO https://github.com/wp-cli/wp-cli/releases/download/v2.12.0/wp-cli-2.12.0.phar @@ -72,10 +79,10 @@ For a specific version: gpg --verify wp-cli-2.12.0.phar.asc wp-cli-2.12.0.phar ``` -If the signature is valid, you'll see output like: +If the signature is valid, you'll see output similar to: ``` -gpg: Signature made Wed May 7 02:26:41 2025 UTC +gpg: Signature made {DATE} gpg: using RSA key 63AF7AA15067C05616FDDD88A3A2E8F226F0BC06 gpg: Good signature from "WP-CLI Releases " [unknown] ``` @@ -100,10 +107,10 @@ Download the SHA-512 checksum file: curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar.sha512 ``` -Or for a specific release: +Or for a specific release (replace `X.X.X` with your version): ```bash -curl -LO https://github.com/wp-cli/wp-cli/releases/download/v2.12.0/wp-cli-2.12.0.phar.sha512 +curl -LO https://github.com/wp-cli/wp-cli/releases/download/vX.X.X/wp-cli-X.X.X.phar.sha512 ``` Verify the checksum by comparing the output: @@ -123,10 +130,10 @@ Download the SHA-256 checksum file: curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar.sha256 ``` -Or for a specific release: +Or for a specific release (replace `X.X.X` with your version): ```bash -curl -LO https://github.com/wp-cli/wp-cli/releases/download/v2.12.0/wp-cli-2.12.0.phar.sha256 +curl -LO https://github.com/wp-cli/wp-cli/releases/download/vX.X.X/wp-cli-X.X.X.phar.sha256 ``` Verify the checksum by comparing the output: From 808e49412970eedcf517c7b838c5cc44273fdd90 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 3 Nov 2025 08:33:47 +0000 Subject: [PATCH 5/7] Address final code review feedback: standardize fingerprint format and clarify MD5 security issues Co-authored-by: swissspidy <841956+swissspidy@users.noreply.github.com> --- guides/verifying-downloads.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/guides/verifying-downloads.md b/guides/verifying-downloads.md index ce01c04d..2ed7f295 100644 --- a/guides/verifying-downloads.md +++ b/guides/verifying-downloads.md @@ -63,7 +63,7 @@ uid [ unknown] WP-CLI Releases sub rsa2048 2016-01-29 [E] ``` -**Note:** Releases prior to v1.5.1 (July 2016) were signed with a different key (fingerprint: `3B91 91CD 3CF1 B5C5 10EE FAF6 AFAA E4A2 85E0 40A8`). If you need to verify older releases, import that key from the [builds repository README](https://github.com/wp-cli/builds/blob/gh-pages/README.md). +**Note:** Releases prior to v1.5.1 (July 2016) were signed with a different key (fingerprint: `3B91 91CD 3CF1 B5C5 10EE FAF6 AFAA E4A2 85E0 40A8`). If you need to verify older releases, import that key from the [builds repository README](https://github.com/wp-cli/builds/blob/gh-pages/README.md). #### Step 3: Verify the signature @@ -157,7 +157,7 @@ Verification files for the latest stable and nightly builds are available at: Available files: - `wp-cli.phar.asc` - GPG signature for latest stable - `wp-cli.phar.sha512` - SHA-512 checksum for latest stable -- `wp-cli.phar.md5` - MD5 checksum (not recommended for security) +- `wp-cli.phar.md5` - MD5 checksum (not recommended for security; MD5 is cryptographically broken and vulnerable to collision attacks) - `wp-cli-nightly.phar.asc` - GPG signature for nightly - `wp-cli-nightly.phar.sha512` - SHA-512 checksum for nightly @@ -171,7 +171,7 @@ Each release includes: - `wp-cli-X.X.X.phar.gpg` - Inline GPG signature - `wp-cli-X.X.X.phar.sha512` - SHA-512 checksum - `wp-cli-X.X.X.phar.sha256` - SHA-256 checksum -- `wp-cli-X.X.X.phar.md5` - MD5 checksum (not recommended for security) +- `wp-cli-X.X.X.phar.md5` - MD5 checksum (not recommended for security; MD5 is cryptographically broken and vulnerable to collision attacks) ## Complete installation example with verification From a61c46795d3aa60c47a9a4dbbc32e79fd878e57f Mon Sep 17 00:00:00 2001 From: Pascal Birchler Date: Mon, 3 Nov 2025 09:39:02 +0100 Subject: [PATCH 6/7] Fix manifest --- bin/handbook-manifest.json | 344 ++++++++++++++++++------------------- 1 file changed, 172 insertions(+), 172 deletions(-) diff --git a/bin/handbook-manifest.json b/bin/handbook-manifest.json index 81ef014f..2f08c518 100644 --- a/bin/handbook-manifest.json +++ b/bin/handbook-manifest.json @@ -2,823 +2,823 @@ "behat-steps": { "title": "Behat Steps", "slug": "behat-steps", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps.md", "parent": "references" }, "bug-reports": { "title": "Bug Reports", "slug": "bug-reports", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions/bug-reports.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions\/bug-reports.md", "parent": "contributions" }, "code-review": { "title": "Code Review", "slug": "code-review", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions/code-review.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions\/code-review.md", "parent": "contributions" }, "commands-cookbook": { "title": "Commands Cookbook", "slug": "commands-cookbook", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/commands-cookbook.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/commands-cookbook.md", "parent": "guides" }, "committers-credo": { "title": "Committers Credo", "slug": "committers-credo", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions/committers-credo.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions\/committers-credo.md", "parent": "contributions" }, "common-issues": { "title": "Common Issues", "slug": "common-issues", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/common-issues.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/common-issues.md", "parent": "guides" }, "config": { "title": "Config", "slug": "config", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/config.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/config.md", "parent": "references" }, "contributing": { "title": "Contributing", "slug": "contributing", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions/contributing.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions\/contributing.md", "parent": "contributions" }, "contributions": { "title": "Contributions", "slug": "contributions", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions.md", "parent": null }, "contributor-day": { "title": "WordCamp Contributor Day", "slug": "contributor-day", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions/contributor-day.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions\/contributor-day.md", "parent": "contributions" }, "doctor": { "title": "Doctor Guides", "slug": "doctor", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/doctor.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/doctor.md", "parent": "guides" }, "doctor-check-constant-value": { "title": "Write a check for asserting the value of a given constant", "slug": "doctor-check-constant-value", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/doctor/doctor-check-constant-value.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/doctor\/doctor-check-constant-value.md", "parent": "doctor" }, "doctor-check-file-contents": { "title": "Write a check for verifying contents of WordPress files", "slug": "doctor-check-file-contents", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/doctor/doctor-check-file-contents.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/doctor\/doctor-check-file-contents.md", "parent": "doctor" }, "doctor-check-option-value": { "title": "Write a check for asserting the value of a given option", "slug": "doctor-check-option-value", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/doctor/doctor-check-option-value.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/doctor\/doctor-check-option-value.md", "parent": "doctor" }, "doctor-check-plugin-status": { "title": "Check status of a given plugin", "slug": "doctor-check-plugin-status", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/doctor/doctor-check-plugin-status.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/doctor\/doctor-check-plugin-status.md", "parent": "doctor" }, "doctor-customize-config": { "title": "Customize doctor diagnostic checks", "slug": "doctor-customize-config", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/doctor/doctor-customize-config.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/doctor\/doctor-customize-config.md", "parent": "doctor" }, "doctor-default-checks": { "title": "Default doctor diagnostic checks", "slug": "doctor-default-checks", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/doctor/doctor-default-checks.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/doctor\/doctor-default-checks.md", "parent": "doctor" }, "doctor-write-custom-check": { "title": "Write a custom check to perform an arbitrary assertion", "slug": "doctor-write-custom-check", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/doctor/doctor-write-custom-check.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/doctor\/doctor-write-custom-check.md", "parent": "doctor" }, "documentation-standards": { "title": "Documentation Standards", "slug": "documentation-standards", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/documentation-standards.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/documentation-standards.md", "parent": "references" }, "external-resources": { "title": "External Resources", "slug": "external-resources", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/external-resources.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/external-resources.md", "parent": "guides" }, "force-output-specific-locale": { "title": "Force output to a specific locale", "slug": "force-output-specific-locale", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/force-output-specific-locale.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/force-output-specific-locale.md", "parent": "guides" }, "given-a-custom-wp-content-directory": { "title": "Given a custom wp-content directory", "slug": "given-a-custom-wp-content-directory", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-a-custom-wp-content-directory.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-a-custom-wp-content-directory.md", "parent": "behat-steps" }, "given-a-database": { "title": "Given a database", "slug": "given-a-database", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-a-database.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-a-database.md", "parent": "behat-steps" }, "given-a-dependency-on-current-wp-cli": { "title": "Given a dependency on current wp-cli", "slug": "given-a-dependency-on-current-wp-cli", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-a-dependency-on-current-wp-cli.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-a-dependency-on-current-wp-cli.md", "parent": "behat-steps" }, "given-a-downloaded-phar-with-the-same-version-version": { - "title": "Given /^a downloaded Phar with (?:the same version|version "([^"]+)")$/", + "title": "Given \/^a downloaded Phar with (?:the same version|version "([^"]+)")$\/", "slug": "given-a-downloaded-phar-with-the-same-version-version", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-a-downloaded-phar-with-the-same-version-version.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-a-downloaded-phar-with-the-same-version-version.md", "parent": "behat-steps" }, "given-a-misconfigured-wp-content-dir-constant-directory": { "title": "Given a misconfigured WP_CONTENT_DIR constant directory", "slug": "given-a-misconfigured-wp-content-dir-constant-directory", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-a-misconfigured-wp-content-dir-constant-directory.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-a-misconfigured-wp-content-dir-constant-directory.md", "parent": "behat-steps" }, "given-a-new-phar-with-the-same-version-version": { - "title": "Given /^a new Phar with (?:the same version|version "([^"]+)")$/", + "title": "Given \/^a new Phar with (?:the same version|version "([^"]+)")$\/", "slug": "given-a-new-phar-with-the-same-version-version", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-a-new-phar-with-the-same-version-version.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-a-new-phar-with-the-same-version-version.md", "parent": "behat-steps" }, "given-a-php-built-in-web-server": { "title": "Given a PHP built-in web server", "slug": "given-a-php-built-in-web-server", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-a-php-built-in-web-server.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-a-php-built-in-web-server.md", "parent": "behat-steps" }, "given-a-php-built-in-web-server-to-serve-subdir": { "title": "Given a PHP built-in web server to serve :subdir", "slug": "given-a-php-built-in-web-server-to-serve-subdir", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-a-php-built-in-web-server-to-serve-subdir.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-a-php-built-in-web-server-to-serve-subdir.md", "parent": "behat-steps" }, "given-a-wp-installation": { "title": "Given a WP install(ation)", "slug": "given-a-wp-installation", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-a-wp-installation.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-a-wp-installation.md", "parent": "behat-steps" }, "given-a-wp-installation-in-subdir": { "title": "Given a WP install(ation) in :subdir", "slug": "given-a-wp-installation-in-subdir", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-a-wp-installation-in-subdir.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-a-wp-installation-in-subdir.md", "parent": "behat-steps" }, "given-a-wp-installation-with-composer": { "title": "Given a WP install(ation) with Composer", "slug": "given-a-wp-installation-with-composer", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-a-wp-installation-with-composer.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-a-wp-installation-with-composer.md", "parent": "behat-steps" }, "given-a-wp-installation-with-composer-and-a-custom-vendor-directory-vendor-directory": { "title": "Given a WP install(ation) with Composer and a custom vendor directory :vendor_directory", "slug": "given-a-wp-installation-with-composer-and-a-custom-vendor-directory-vendor-directory", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-a-wp-installation-with-composer-and-a-custom-vendor-directory-vendor-directory.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-a-wp-installation-with-composer-and-a-custom-vendor-directory-vendor-directory.md", "parent": "behat-steps" }, "given-a-wp-multisite-subdirectory-subdomaininstall-installation": { - "title": "Given /^a WP multisite (subdirectory|subdomain)?\\s?(install|installation)$/", + "title": "Given \/^a WP multisite (subdirectory|subdomain)?\\s?(install|installation)$\/", "slug": "given-a-wp-multisite-subdirectory-subdomaininstall-installation", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-a-wp-multisite-subdirectory-subdomaininstall-installation.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-a-wp-multisite-subdirectory-subdomaininstall-installation.md", "parent": "behat-steps" }, "given-an-empty-cache": { "title": "Given an empty cache", "slug": "given-an-empty-cache", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-an-empty-cache.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-an-empty-cache.md", "parent": "behat-steps" }, "given-an-empty-directory": { "title": "Given an empty directory", "slug": "given-an-empty-directory", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-an-empty-directory.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-an-empty-directory.md", "parent": "behat-steps" }, "given-an-empty-non-existent-directory": { - "title": "Given /^an? (empty|non-existent) ([^\\s]+) directory$/", + "title": "Given \/^an? (empty|non-existent) ([^\\s]+) directory$\/", "slug": "given-an-empty-non-existent-directory", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-an-empty-non-existent-directory.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-an-empty-non-existent-directory.md", "parent": "behat-steps" }, "given-an-file-cache-file": { - "title": "Given /^an? ([^\\s]+) (file|cache file):$/", + "title": "Given \/^an? ([^\\s]+) (file|cache file):$\/", "slug": "given-an-file-cache-file", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-an-file-cache-file.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-an-file-cache-file.md", "parent": "behat-steps" }, "given-download": { "title": "Given download:", "slug": "given-download", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-download.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-download.md", "parent": "behat-steps" }, "given-replaced-with-in-the-file": { - "title": "Given /^"([^"]+)" replaced with "([^"]+)" in the ([^\\s]+) file$/", + "title": "Given \/^"([^"]+)" replaced with "([^"]+)" in the ([^\\s]+) file$\/", "slug": "given-replaced-with-in-the-file", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-replaced-with-in-the-file.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-replaced-with-in-the-file.md", "parent": "behat-steps" }, "given-save-stdout-stderr-as": { - "title": "Given /^save (STDOUT|STDERR) ([\\'].+[^\\'])?\\s?as \\{(\\w+)\\}$/", + "title": "Given \/^save (STDOUT|STDERR) ([\\'].+[^\\'])?\\s?as \\{(\\w+)\\}$\/", "slug": "given-save-stdout-stderr-as", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-save-stdout-stderr-as.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-save-stdout-stderr-as.md", "parent": "behat-steps" }, "given-save-the-file-as": { - "title": "Given /^save the (.+) file ([\\'].+[^\\'])?as \\{(\\w+)\\}$/", + "title": "Given \/^save the (.+) file ([\\'].+[^\\'])?as \\{(\\w+)\\}$\/", "slug": "given-save-the-file-as", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-save-the-file-as.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-save-the-file-as.md", "parent": "behat-steps" }, "given-that-http-requests-to-will-respond-with": { - "title": "Given /^that HTTP requests to (.*?) will respond with:$/", + "title": "Given \/^that HTTP requests to (.*?) will respond with:$\/", "slug": "given-that-http-requests-to-will-respond-with", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-that-http-requests-to-will-respond-with.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-that-http-requests-to-will-respond-with.md", "parent": "behat-steps" }, "given-these-installed-and-active-plugins": { "title": "Given these installed and active plugins:", "slug": "given-these-installed-and-active-plugins", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-these-installed-and-active-plugins.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-these-installed-and-active-plugins.md", "parent": "behat-steps" }, "given-wp-config-php": { "title": "Given wp-config.php", "slug": "given-wp-config-php", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-wp-config-php.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-wp-config-php.md", "parent": "behat-steps" }, "given-wp-files": { "title": "Given WP files", "slug": "given-wp-files", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/given-wp-files.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/given-wp-files.md", "parent": "behat-steps" }, "governance": { "title": "Governance", "slug": "governance", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions/governance.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions\/governance.md", "parent": "contributions" }, "guides": { "title": "Guides", "slug": "guides", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides.md", "parent": null }, "hack-day": { "title": "WP-CLI Hack Day", "slug": "hack-day", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions/hack-day.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions\/hack-day.md", "parent": "contributions" }, "hosting-companies": { "title": "Hosting Companies", "slug": "hosting-companies", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/hosting-companies.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/hosting-companies.md", "parent": "references" }, "how-to": { "title": "How to WP-CLI", "slug": "how-to", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/how-to.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/how-to.md", "parent": null }, "how-to-create-custom-plugins": { "title": "How to create a custom plugin", "slug": "how-to-create-custom-plugins", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/how-to/how-to-create-custom-plugins.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/how-to\/how-to-create-custom-plugins.md", "parent": "how-to" }, "how-to-install": { "title": "How to install WordPress", "slug": "how-to-install", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/how-to/how-to-install.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/how-to\/how-to-install.md", "parent": "how-to" }, "how-to-maintenance-mode": { "title": "How to put the site in maintenance mode", "slug": "how-to-maintenance-mode", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/how-to/how-to-maintenance-mode.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/how-to\/how-to-maintenance-mode.md", "parent": "how-to" }, "how-to-start-webserver": { "title": "How to start the webserver", "slug": "how-to-start-webserver", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/how-to/how-to-start-webserver.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/how-to\/how-to-start-webserver.md", "parent": "how-to" }, "identify-plugin-theme-conflict": { "title": "Identify a Plugin or Theme Conflict", "slug": "identify-plugin-theme-conflict", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/how-to/identify-plugin-theme-conflict.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/how-to\/identify-plugin-theme-conflict.md", "parent": "how-to" }, "implementation-details": { "title": "Implementation Details", "slug": "implementation-details", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions/implementation-details.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions\/implementation-details.md", "parent": "contributions" }, "index": { "title": "Handbook", "slug": "handbook", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/index.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/index.md", "parent": null }, "installing": { "title": "Installing", "slug": "installing", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/installing.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/installing.md", "parent": "guides" }, "internal-api": { "title": "Internal API", "slug": "internal-api", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api.md", "parent": "references" }, "philosophy": { "title": "Philosophy", "slug": "philosophy", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions/philosophy.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions\/philosophy.md", "parent": "contributions" }, "plugin-unit-tests": { "title": "Plugin Integration Tests", "slug": "plugin-unit-tests", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/how-to/plugin-unit-tests.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/how-to\/plugin-unit-tests.md", "parent": "how-to" }, "pull-requests": { "title": "Pull Requests", "slug": "pull-requests", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions/pull-requests.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions\/pull-requests.md", "parent": "contributions" }, "quick-start": { "title": "Quick Start", "slug": "quick-start", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/quick-start.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/quick-start.md", "parent": "guides" }, "references": { "title": "References", "slug": "references", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references.md", "parent": null }, "release-checklist": { "title": "Release Checklist", "slug": "release-checklist", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions/release-checklist.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions\/release-checklist.md", "parent": "contributions" }, "repository-management": { "title": "Repository Management", "slug": "repository-management", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions/repository-management.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions\/repository-management.md", "parent": "contributions" }, "roadmap": { "title": "Roadmap", "slug": "roadmap", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/contributions/roadmap.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/contributions\/roadmap.md", "parent": "contributions" }, "running-commands-remotely": { "title": "Running Commands Remotely", "slug": "running-commands-remotely", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/running-commands-remotely.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/running-commands-remotely.md", "parent": "guides" }, "sharing-wp-cli-packages": { "title": "Sharing WP-CLI Packages", "slug": "sharing-wp-cli-packages", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/sharing-wp-cli-packages.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/sharing-wp-cli-packages.md", "parent": "guides" }, "shell-friends": { "title": "Shell Friends", "slug": "shell-friends", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/shell-friends.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/shell-friends.md", "parent": "references" }, "then-an-email-should-be-sent-not-be-sent": { - "title": "Then /^an email should (be sent|not be sent)$/", + "title": "Then \/^an email should (be sent|not be sent)$\/", "slug": "then-an-email-should-be-sent-not-be-sent", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-an-email-should-be-sent-not-be-sent.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-an-email-should-be-sent-not-be-sent.md", "parent": "behat-steps" }, "then-stdout-should-be-a-json-array-containing": { - "title": "Then /^STDOUT should be a JSON array containing:$/", + "title": "Then \/^STDOUT should be a JSON array containing:$\/", "slug": "then-stdout-should-be-a-json-array-containing", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-stdout-should-be-a-json-array-containing.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-stdout-should-be-a-json-array-containing.md", "parent": "behat-steps" }, "then-stdout-should-be-a-table-containing-rows": { - "title": "Then /^STDOUT should be a table containing rows:$/", + "title": "Then \/^STDOUT should be a table containing rows:$\/", "slug": "then-stdout-should-be-a-table-containing-rows", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-stdout-should-be-a-table-containing-rows.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-stdout-should-be-a-table-containing-rows.md", "parent": "behat-steps" }, "then-stdout-should-be-csv-containing": { - "title": "Then /^STDOUT should be CSV containing:$/", + "title": "Then \/^STDOUT should be CSV containing:$\/", "slug": "then-stdout-should-be-csv-containing", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-stdout-should-be-csv-containing.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-stdout-should-be-csv-containing.md", "parent": "behat-steps" }, "then-stdout-should-be-json-containing": { - "title": "Then /^STDOUT should be JSON containing:$/", + "title": "Then \/^STDOUT should be JSON containing:$\/", "slug": "then-stdout-should-be-json-containing", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-stdout-should-be-json-containing.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-stdout-should-be-json-containing.md", "parent": "behat-steps" }, "then-stdout-should-be-yaml-containing": { - "title": "Then /^STDOUT should be YAML containing:$/", + "title": "Then \/^STDOUT should be YAML containing:$\/", "slug": "then-stdout-should-be-yaml-containing", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-stdout-should-be-yaml-containing.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-stdout-should-be-yaml-containing.md", "parent": "behat-steps" }, "then-stdout-should-end-with-a-table-containing-rows": { - "title": "Then /^STDOUT should end with a table containing rows:$/", + "title": "Then \/^STDOUT should end with a table containing rows:$\/", "slug": "then-stdout-should-end-with-a-table-containing-rows", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-stdout-should-end-with-a-table-containing-rows.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-stdout-should-end-with-a-table-containing-rows.md", "parent": "behat-steps" }, "then-stdout-stderr-should-be-a-number": { - "title": "Then /^(STDOUT|STDERR) should be a number$/", + "title": "Then \/^(STDOUT|STDERR) should be a number$\/", "slug": "then-stdout-stderr-should-be-a-number", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-stdout-stderr-should-be-a-number.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-stdout-stderr-should-be-a-number.md", "parent": "behat-steps" }, "then-stdout-stderr-should-be-a-version-string-w": { - "title": "Then /^(STDOUT|STDERR) should be a version string (<|<=|>|>=|==|=|!=|<>) ([+\\w.{}-]+)$/", + "title": "Then \/^(STDOUT|STDERR) should be a version string (<|<=|>|>=|==|=|!=|<>) ([+\\w.{}-]+)$\/", "slug": "then-stdout-stderr-should-be-a-version-string-w", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-stdout-stderr-should-be-a-version-string-w.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-stdout-stderr-should-be-a-version-string-w.md", "parent": "behat-steps" }, "then-stdout-stderr-should-be-empty": { - "title": "Then /^(STDOUT|STDERR) should be empty$/", + "title": "Then \/^(STDOUT|STDERR) should be empty$\/", "slug": "then-stdout-stderr-should-be-empty", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-stdout-stderr-should-be-empty.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-stdout-stderr-should-be-empty.md", "parent": "behat-steps" }, "then-stdout-stderr-should-not-be-a-number": { - "title": "Then /^(STDOUT|STDERR) should not be a number$/", + "title": "Then \/^(STDOUT|STDERR) should not be a number$\/", "slug": "then-stdout-stderr-should-not-be-a-number", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-stdout-stderr-should-not-be-a-number.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-stdout-stderr-should-not-be-a-number.md", "parent": "behat-steps" }, "then-stdout-stderr-should-not-be-empty": { - "title": "Then /^(STDOUT|STDERR) should not be empty$/", + "title": "Then \/^(STDOUT|STDERR) should not be empty$\/", "slug": "then-stdout-stderr-should-not-be-empty", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-stdout-stderr-should-not-be-empty.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-stdout-stderr-should-not-be-empty.md", "parent": "behat-steps" }, "then-stdout-stderr-should-not-match": { - "title": "Then /^(STDOUT|STDERR) should( not)? match (((\\/.+\\/)|(#.+#))([a-z]+)?)$/", + "title": "Then \/^(STDOUT|STDERR) should( not)? match (((\\\/.+\\\/)|(#.+#))([a-z]+)?)$\/", "slug": "then-stdout-stderr-should-not-match", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-stdout-stderr-should-not-match.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-stdout-stderr-should-not-match.md", "parent": "behat-steps" }, "then-stdout-stderr-should-strictly-be-contain-not-contain": { - "title": "Then /^(STDOUT|STDERR) should( strictly)? (be|contain|not contain):$/", + "title": "Then \/^(STDOUT|STDERR) should( strictly)? (be|contain|not contain):$\/", "slug": "then-stdout-stderr-should-strictly-be-contain-not-contain", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-stdout-stderr-should-strictly-be-contain-not-contain.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-stdout-stderr-should-strictly-be-contain-not-contain.md", "parent": "behat-steps" }, "then-the-contents-of-the-file-should-not-match": { - "title": "Then /^the contents of the (.+) file should( not)? match (((\\/.+\\/)|(#.+#))([a-z]+)?)$/", + "title": "Then \/^the contents of the (.+) file should( not)? match (((\\\/.+\\\/)|(#.+#))([a-z]+)?)$\/", "slug": "then-the-contents-of-the-file-should-not-match", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-the-contents-of-the-file-should-not-match.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-the-contents-of-the-file-should-not-match.md", "parent": "behat-steps" }, "then-the-file-directory-should-strictly-exist-not-exist-be-contain-not-contain": { - "title": "Then /^the (.+) (file|directory) should( strictly)? (exist|not exist|be:|contain:|not contain:)$/", + "title": "Then \/^the (.+) (file|directory) should( strictly)? (exist|not exist|be:|contain:|not contain:)$\/", "slug": "then-the-file-directory-should-strictly-exist-not-exist-be-contain-not-contain", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-the-file-directory-should-strictly-exist-not-exist-be-contain-not-contain.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-the-file-directory-should-strictly-exist-not-exist-be-contain-not-contain.md", "parent": "behat-steps" }, "then-the-http-status-code-should-be-code": { "title": "Then the HTTP status code should be :code", "slug": "then-the-http-status-code-should-be-code", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-the-http-status-code-should-be-code.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-the-http-status-code-should-be-code.md", "parent": "behat-steps" }, "then-the-return-code-should-not-be": { - "title": "Then /^the return code should( not)? be (\\d+)$/", + "title": "Then \/^the return code should( not)? be (\\d+)$\/", "slug": "then-the-return-code-should-not-be", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/then-the-return-code-should-not-be.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/then-the-return-code-should-not-be.md", "parent": "behat-steps" }, "tools": { "title": "Tools", "slug": "tools", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/tools.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/tools.md", "parent": "references" }, "troubleshooting": { "title": "Troubleshooting Guide", "slug": "troubleshooting", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/troubleshooting.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/troubleshooting.md", + "parent": "guides" + }, + "verifying-downloads": { + "title": "Verifying WP-CLI Downloads", + "slug": "verifying-downloads", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/guides\/verifying-downloads.md", "parent": "guides" }, "when-i-launch-in-the-background": { - "title": "When /^I launch in the background `([^`]+)`$/", + "title": "When \/^I launch in the background `([^`]+)`$\/", "slug": "when-i-launch-in-the-background", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/when-i-launch-in-the-background.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/when-i-launch-in-the-background.md", "parent": "behat-steps" }, "when-i-run-try": { - "title": "When /^I (run|try) `([^`]+)`$/", + "title": "When \/^I (run|try) `([^`]+)`$\/", "slug": "when-i-run-try", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/when-i-run-try.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/when-i-run-try.md", "parent": "behat-steps" }, "when-i-run-try-from": { - "title": "When /^I (run|try) `([^`]+)` from '([^\\s]+)'$/", + "title": "When \/^I (run|try) `([^`]+)` from '([^\\s]+)'$\/", "slug": "when-i-run-try-from", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/when-i-run-try-from.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/when-i-run-try-from.md", "parent": "behat-steps" }, "when-i-run-try-the-previous-command-again": { - "title": "When /^I (run|try) the previous command again$/", + "title": "When \/^I (run|try) the previous command again$\/", "slug": "when-i-run-try-the-previous-command-again", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/behat-steps/when-i-run-try-the-previous-command-again.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/behat-steps\/when-i-run-try-the-previous-command-again.md", "parent": "behat-steps" }, "wp-cli-add-command": { "title": "WP_CLI::add_command()", "slug": "wp-cli-add-command", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-add-command.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-add-command.md", "parent": "internal-api" }, "wp-cli-add-hook": { "title": "WP_CLI::add_hook()", "slug": "wp-cli-add-hook", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-add-hook.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-add-hook.md", "parent": "internal-api" }, "wp-cli-add-wp-hook": { "title": "WP_CLI::add_wp_hook()", "slug": "wp-cli-add-wp-hook", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-add-wp-hook.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-add-wp-hook.md", "parent": "internal-api" }, "wp-cli-colorize": { "title": "WP_CLI::colorize()", "slug": "wp-cli-colorize", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-colorize.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-colorize.md", "parent": "internal-api" }, "wp-cli-confirm": { "title": "WP_CLI::confirm()", "slug": "wp-cli-confirm", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-confirm.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-confirm.md", "parent": "internal-api" }, "wp-cli-debug": { "title": "WP_CLI::debug()", "slug": "wp-cli-debug", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-debug.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-debug.md", "parent": "internal-api" }, "wp-cli-do-hook": { "title": "WP_CLI::do_hook()", "slug": "wp-cli-do-hook", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-do-hook.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-do-hook.md", "parent": "internal-api" }, "wp-cli-error": { "title": "WP_CLI::error()", "slug": "wp-cli-error", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-error.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-error.md", "parent": "internal-api" }, "wp-cli-error-multi-line": { "title": "WP_CLI::error_multi_line()", "slug": "wp-cli-error-multi-line", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-error-multi-line.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-error-multi-line.md", "parent": "internal-api" }, "wp-cli-get-config": { "title": "WP_CLI::get_config()", "slug": "wp-cli-get-config", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-get-config.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-get-config.md", "parent": "internal-api" }, "wp-cli-get-php-binary": { "title": "WP_CLI::get_php_binary()", "slug": "wp-cli-get-php-binary", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-get-php-binary.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-get-php-binary.md", "parent": "internal-api" }, "wp-cli-halt": { "title": "WP_CLI::halt()", "slug": "wp-cli-halt", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-halt.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-halt.md", "parent": "internal-api" }, "wp-cli-has-config": { "title": "WP_CLI::has_config()", "slug": "wp-cli-has-config", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-has-config.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-has-config.md", "parent": "internal-api" }, "wp-cli-launch": { "title": "WP_CLI::launch()", "slug": "wp-cli-launch", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-launch.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-launch.md", "parent": "internal-api" }, "wp-cli-launch-self": { "title": "WP_CLI::launch_self()", "slug": "wp-cli-launch-self", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-launch-self.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-launch-self.md", "parent": "internal-api" }, "wp-cli-line": { "title": "WP_CLI::line()", "slug": "wp-cli-line", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-line.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-line.md", "parent": "internal-api" }, "wp-cli-log": { "title": "WP_CLI::log()", "slug": "wp-cli-log", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-log.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-log.md", "parent": "internal-api" }, "wp-cli-read-value": { "title": "WP_CLI::read_value()", "slug": "wp-cli-read-value", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-read-value.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-read-value.md", "parent": "internal-api" }, "wp-cli-run-command": { "title": "WP_CLI::run_command()", "slug": "wp-cli-run-command", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-run-command.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-run-command.md", "parent": "internal-api" }, "wp-cli-runcommand": { "title": "WP_CLI::runcommand()", "slug": "wp-cli-runcommand", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-runcommand.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-runcommand.md", "parent": "internal-api" }, "wp-cli-success": { "title": "WP_CLI::success()", "slug": "wp-cli-success", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-success.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-success.md", "parent": "internal-api" }, "wp-cli-utils-basename": { "title": "WP_CLI\\Utils\\basename()", "slug": "wp-cli-utils-basename", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-basename.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-basename.md", "parent": "internal-api" }, "wp-cli-utils-esc-like": { "title": "WP_CLI\\Utils\\esc_like()", "slug": "wp-cli-utils-esc-like", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-esc-like.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-esc-like.md", "parent": "internal-api" }, "wp-cli-utils-format-items": { "title": "WP_CLI\\Utils\\format_items()", "slug": "wp-cli-utils-format-items", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-format-items.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-format-items.md", "parent": "internal-api" }, "wp-cli-utils-get-flag-value": { "title": "WP_CLI\\Utils\\get_flag_value()", "slug": "wp-cli-utils-get-flag-value", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-get-flag-value.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-get-flag-value.md", "parent": "internal-api" }, "wp-cli-utils-get-home-dir": { "title": "WP_CLI\\Utils\\get_home_dir()", "slug": "wp-cli-utils-get-home-dir", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-get-home-dir.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-get-home-dir.md", "parent": "internal-api" }, "wp-cli-utils-get-named-sem-ver": { "title": "WP_CLI\\Utils\\get_named_sem_ver()", "slug": "wp-cli-utils-get-named-sem-ver", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-get-named-sem-ver.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-get-named-sem-ver.md", "parent": "internal-api" }, "wp-cli-utils-get-php-binary": { "title": "WP_CLI\\Utils\\get_php_binary()", "slug": "wp-cli-utils-get-php-binary", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-get-php-binary.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-get-php-binary.md", "parent": "internal-api" }, "wp-cli-utils-get-temp-dir": { "title": "WP_CLI\\Utils\\get_temp_dir()", "slug": "wp-cli-utils-get-temp-dir", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-get-temp-dir.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-get-temp-dir.md", "parent": "internal-api" }, "wp-cli-utils-http-request": { "title": "WP_CLI\\Utils\\http_request()", "slug": "wp-cli-utils-http-request", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-http-request.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-http-request.md", "parent": "internal-api" }, "wp-cli-utils-ispiped": { "title": "WP_CLI\\Utils\\isPiped()", "slug": "wp-cli-utils-ispiped", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-ispiped.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-ispiped.md", "parent": "internal-api" }, "wp-cli-utils-launch-editor-for-input": { "title": "WP_CLI\\Utils\\launch_editor_for_input()", "slug": "wp-cli-utils-launch-editor-for-input", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-launch-editor-for-input.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-launch-editor-for-input.md", "parent": "internal-api" }, "wp-cli-utils-make-progress-bar": { "title": "WP_CLI\\Utils\\make_progress_bar()", "slug": "wp-cli-utils-make-progress-bar", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-make-progress-bar.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-make-progress-bar.md", "parent": "internal-api" }, "wp-cli-utils-normalize-path": { "title": "WP_CLI\\Utils\\normalize_path()", "slug": "wp-cli-utils-normalize-path", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-normalize-path.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-normalize-path.md", "parent": "internal-api" }, "wp-cli-utils-parse-ssh-url": { "title": "WP_CLI\\Utils\\parse_ssh_url()", "slug": "wp-cli-utils-parse-ssh-url", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-parse-ssh-url.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-parse-ssh-url.md", "parent": "internal-api" }, "wp-cli-utils-parse-str-to-argv": { "title": "WP_CLI\\Utils\\parse_str_to_argv()", "slug": "wp-cli-utils-parse-str-to-argv", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-parse-str-to-argv.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-parse-str-to-argv.md", "parent": "internal-api" }, "wp-cli-utils-proc-open-compat": { "title": "WP_CLI\\Utils\\proc_open_compat()", "slug": "wp-cli-utils-proc-open-compat", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-proc-open-compat.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-proc-open-compat.md", "parent": "internal-api" }, "wp-cli-utils-report-batch-operation-results": { "title": "WP_CLI\\Utils\\report_batch_operation_results()", "slug": "wp-cli-utils-report-batch-operation-results", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-report-batch-operation-results.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-report-batch-operation-results.md", "parent": "internal-api" }, "wp-cli-utils-trailingslashit": { "title": "WP_CLI\\Utils\\trailingslashit()", "slug": "wp-cli-utils-trailingslashit", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-trailingslashit.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-trailingslashit.md", "parent": "internal-api" }, "wp-cli-utils-write-csv": { "title": "WP_CLI\\Utils\\write_csv()", "slug": "wp-cli-utils-write-csv", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-utils-write-csv.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-utils-write-csv.md", "parent": "internal-api" }, "wp-cli-warning": { "title": "WP_CLI::warning()", "slug": "wp-cli-warning", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/references/internal-api/wp-cli-warning.md", + "markdown_source": "https:\/\/github.com\/wp-cli\/handbook\/blob\/main\/references\/internal-api\/wp-cli-warning.md", "parent": "internal-api" - }, - "verifying-downloads": { - "title": "Verifying Downloads", - "slug": "verifying-downloads", - "markdown_source": "https://github.com/wp-cli/handbook/blob/main/guides/verifying-downloads.md", - "parent": "guides" } } \ No newline at end of file From eb154e1ff3d360fbd42e1fdcf5d090586d1708eb Mon Sep 17 00:00:00 2001 From: Pascal Birchler Date: Mon, 3 Nov 2025 09:41:34 +0100 Subject: [PATCH 7/7] Apply suggestion from @swissspidy --- guides/verifying-downloads.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/guides/verifying-downloads.md b/guides/verifying-downloads.md index 2ed7f295..524a260c 100644 --- a/guides/verifying-downloads.md +++ b/guides/verifying-downloads.md @@ -57,10 +57,10 @@ gpg --list-keys --with-fingerprint releases@wp-cli.org The output should include: ``` -pub rsa2048 2016-01-29 [SC] +pub rsa2048 2018-05-31 [SC] 63AF 7AA1 5067 C056 16FD DD88 A3A2 E8F2 26F0 BC06 uid [ unknown] WP-CLI Releases -sub rsa2048 2016-01-29 [E] +sub rsa2048 2018-05-31 [E] ``` **Note:** Releases prior to v1.5.1 (July 2016) were signed with a different key (fingerprint: `3B91 91CD 3CF1 B5C5 10EE FAF6 AFAA E4A2 85E0 40A8`). If you need to verify older releases, import that key from the [builds repository README](https://github.com/wp-cli/builds/blob/gh-pages/README.md).