GitHub Updater is a plugin that developers often use to enable automatic updates to GitHub or Bitbucket-hosted WordPress plugins and themes. The project was started in July 2013 by Andy Fragen, a trauma surgeon and plugin developer. Over the past two years GitHub Updater has received improvements from 14 contributors.
Fragen’s work on GitHub Updater makes it possible for developers to stay in their preferred GitHub/Bitbucket workflow and still ship updates for plugins and themes to their users. After reading about how WP Pusher is extending WordPress’ built-in auto updater to deploy remotely hosted themes and plugins, Fragen was inspired to investigate the possibility of adding remote installation of WordPress extensions to his GitHub Updater.
He now has the
develop branch of the project working to successfully install both public and private GitHub or Bitbucket repositories remotely. “I must confess, the hardest part was getting everything in the Settings API functioning,” Fragen said.
With the help of some code from the WordPress Zero Spam plugin by Ben Marshall, and a few lines from TGM Plugin Activation by Thomas Griffin, he was able to get a tabbed settings interface in place in addition to the plugin dependency portion of the task.
“After setting up the tabs in the Settings page I was able to simply create the correct endpoint for GitHub and Bitbucket,” Fragen said. “I thought allowing for private repository remote installation might prove more difficult but a couple of modifications in other parts of the plugin made this relatively painless. It certainly makes downloading a repo from GitHub, renaming it correctly, and then uploading it a single-click experience.”
GitHub Updater is not allowed in the WordPress.org directory, as the guidelines forbid official plugins from allowing updates from anywhere outside of WordPress.org. Developers usually opt for using the GitHub Updater when they want to host their plugins on GitHub/Bitbucket, or need to provide updates for private repositories.
The 4.1 release of GitHub Updater will include both remote installation and automatic updating in one package. If you want to test the functionality now, you can check out the
develop branch. Feel free to log your issues and feedback on GitHub, as Fragen will be incorporating bug fixes into the 4.1 release.