Skip to content
This WP plugin will update GitHub, Bitbucket, and GitLab hosted plugins and themes
PHP Shell JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

GitHub Updater

A simple plugin to enable automatic updates to your GitHub hosted WordPress plugins and themes.

This plugin is not allowed in the repo. :frowning:


This plugin was designed to simply update any GitHub hosted WordPress plugin or theme. Your plugin or theme must contain a header in the style.css header or in the plugin's header denoting the location on GitHub. The format is as follows.

GitHub Theme URI: afragen/test-child
GitHub Theme URI:


GitHub Plugin URI: afragen/github-updater
GitHub Plugin URI:

...where the above URI leads to the owner/repository of your theme or plugin. The URI may be in the format<owner>/<repo> or the short format <owner>/<repo>.


  • WordPress 3.4 (tested up to 3.8)



  1. Download the latest tagged archive (choose the "zip" option).
  2. Go to the Plugins -> Add New screen and click the Upload tab.
  3. Upload the zipped archive directly.
  4. Go to the Plugins screen and click Activate.


  1. Download the latest tagged archive (choose the "zip" option).
  2. Unzip the archive.
  3. Copy the folder to your /wp-content/plugins/ directory.
  4. Go to the Plugins screen and click Activate.

Check out the Codex for more information about installing plugins manually.


Using git, browse to your /wp-content/plugins/ directory and clone this repository:

git clone

Then go to your Plugins screen and click Activate.



There must be a GitHub Theme URI declaration in the style.css file and you must create a tag in GitHub for each version.

Theme Name:       Test
Theme URI:
Version:          0.1.0
Description:      Child theme of TwentyTwelve.
Author:           Andy Fragen
Template:         twentytwelve
Template Version: 1.0.0
GitHub Theme URI:
GitHub Branch:    master


In your plugin the following is an example. You do not need to create a tag in GitHub for your plugin version, but if you do create tags, the plugin will use version_compare to determine if your tag is greater than the version in your branch.

Plugin Name:       GitHub Updater
Plugin URI:
Description:       A plugin to automatically update GitHub hosted plugins and themes into WordPress. Plugin class based upon <a href="">codepress/github-plugin-updater</a>. Theme class based upon <a href="">Whitelabel Framework</a> modifications.
Version:           1.0.0
Author:            Andy Fragen
License:           GNU General Public License v2
License URI:
Domain Path:       /languages
Text Domain:       github-updater
GitHub Plugin URI:
GitHub Branch:     master

Optional headers GitHub Access Token: and GitHub Branch: are available but not required.

The only extra character allowed in a URI is -. Let me know if there is a need for others.

Branch Support

To specify a branch that you would like to use for updating, just add a GitHub Branch: header. GitHub Updater will preferentially use a tag over a branch having the same or lesser version number. If the version number of the specified branch is greater then the update will pull from the branch and not from the tag.

The default state is either GitHub Branch: master or nothing at all. They are equivalent.

Filter Hooks

There is a filter hook to set the number of hours for a transient to expire. You can add this to any plugin that you wish to override the default transient expiration. Add an appropriate function returning an integer of the number of hours before expiration of the transient. Usage as follows.

add_filter( 'github_updater_set_transient_hours', $hours );

This can also be added using an anonymous function call as well.

add_filter( 'github_updater_set_transient_hours', function() { return 12;} );


Please log issues on the GitHub at

If you are using a WordPress Multisite installation, the plugin should be network activated.




This plugin's theme updater class was based upon Whitelabel Framework's updater-plugin.php, which was based upon

The plugin updater class was based upon codepress/github-plugin-updater.

Built by Andy Fragen, Gary Jones and contributors

Includes Michel Fortin's PHP-Markdown for rendering ChangeLogs.

Something went wrong with that request. Please try again.