Download the PHP package bmd/github-wp-updater without Composer

On this page you can find all versions of the php package bmd/github-wp-updater. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package github-wp-updater

GitHub WP Updater

Composer package for wiring GitHub-hosted WordPress plugin updates into the native WordPress update UI.

This package is built for plugins. You can initialize it from a plugin or from theme/framework code, but the root_file must always point at the target plugin's main file.

What It Does

Installation

Quick Start

Minimal plugin bootstrap:

mount() is required. Constructing GithubWpUpdater only prepares config and services. It does not register the update hooks by itself.

Using It In A Plugin

The normal plugin setup is to instantiate the updater from the plugin's main file and pass __FILE__ as the root file.

plugin.version is auto-discovered from the target plugin's main file header. You do not need to set it in constructor config.

Using It From A Theme Or Shared Framework

If your theme, starter kit, framework, or build system is responsible for bootstrapping plugins, that is fine. The important constraint is that the updater still needs the plugin's real main file.

Use this pattern when the bootstrap code is not inside the plugin itself:

Important:

Required Repository Conventions

For the updater to work reliably, your GitHub repository should follow these conventions:

1. Main Plugin File In Repo Root

The package fetches the remote plugin file using the local plugin file name. If your installed plugin root file is my-plugin.php, the repository should expose that same file on the configured branch.

2. Version Header In Plugin File

The remote plugin file should contain standard WordPress headers near the top, including:

3. GitHub Release Represents The Update Version

The updater checks the latest GitHub release first, then reads the plugin headers from that release tag. The remote plugin file version should match the release version. Tags with a leading v, such as v1.2.3, are normalized for comparison.

4. Release Contains A Zip Asset

The updater scans uploaded release assets and uses the configured asset name when github.asset is set. Otherwise it uses the first uploaded asset ending in .zip. GitHub-generated source archives are not used for plugin update packages because they can change the extracted plugin directory name.

Practical recommendation:

5. Optional Readme In Repo Root

The plugin info modal checks readme.md, README.md, and readme.txt from the repository root. Markdown #/## headings and WordPress.org-style == Heading == sections are parsed into plugin info sections.

Use a structure like:

Configuration Reference

Pass configuration as the second argument to new GithubWpUpdater( $root_file, $config ).

Required GitHub Keys

Optional Container Cache Key

Optional Presentation Keys

Example:

Example:

Asset Precedence

Asset values are resolved in this order:

  1. Plugin-side asset files discovered at runtime
  2. Bundled updater defaults from src/assets/
  3. Explicit constructor config values

If you set an asset key directly in constructor config, it is treated as the highest-priority value.

Automatically Derived Keys

These are normally inferred from the plugin root file and do not need to be set manually unless you are doing something unusual:

Hooks And Extension Points

The package exposes one main filter namespace based on plugin.package.

{config.package}_config

Filters the updater config before it is committed to the service container. Use this to add or override presentation metadata such as icons, banners, or any other config key.

Example:

{package}_update_response

Filters the update response before it is returned to WordPress.

Example:

{package}_default_plugin_headers

Filters the fallback plugin headers returned when the remote plugin file request fails.

Example:

Advanced Service Access

If you need to access a registered service after mounting, keep the updater instance and resolve from it.

Use fully qualified class names when possible.

Behavior Notes

Troubleshooting

No update appears

Check all of the following:

Plugin info modal is missing sections

Check:

I am mounting this from theme code and nothing works

The usual problem is the wrong root_file. Pass the plugin main file path, not the theme file path.

LLM Implementation Checklist

If you are using this package from generated code, the safe default implementation checklist is:

  1. Require Composer autoload.
  2. Instantiate Bmd\GithubWpUpdater with the plugin main file.
  3. Provide github.user, github.repo, and optionally github.branch.
  4. Call ->mount() exactly once during bootstrap.
  5. Ensure the GitHub repo has a published release with an uploaded plugin zip asset.
  6. Keep the plugin headers in the main plugin file accurate.

Minimal LLM-safe template:

Development

Useful commands:


All versions of github-wp-updater with dependencies

PHP Build Version
Package Version
Requires php-di/php-di Version ^7.1
league/commonmark Version ^2.6
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package bmd/github-wp-updater contains the following files

Loading the files please wait ...