GitHub Updater 4.1 to Add Remote Installation for WordPress Plugins and Themes

WordPress Versus Github

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.

11 Comments


  1. Awesome news! It’s one of my all time favorite plugins – top-notch work, also including great contributions from Gary Jones! :-)

    Report


    1. GitHub Updater certainly wouldn’t be where it is today without Gary’s PRs and Paul Clark’s discussion and guidance. That said, go and break the develop branch.

      Thanks David.

      Report


  2. So how is this different than WP Pusher? WP Pusher also installs and updates Github/Bitbucket plugins and themes, so I’m a little confused as to how the two differ.

    Report


    1. I cannot speak with authority regarding WP Pusher, but GitHub Updater requires the developer of the plugin or theme to opt in to automatic updates by inserting a header into their code. It is also open source and developed on GitHub.

      While you can remotely install any plugin or them from GitHub or Bitbucket only those repos with the designated header will be receive automatic updates.

      My supposition is that WP Pusher stores the repos it installs in the database so it can access them later for updates. GitHub Updater only stores transients.

      GitHub Updater is free while WP Pusher is a paid service for certain features.

      If you have any specific questions I can answer, please let me know.

      Report


      1. Thanks for the response. That helps clarify. They appear very similar.

        With Github Updater, how do you install a plugin from a private repo if you don’t have any other private repo hosted plugins installed? It appears you have to enter your private credentials in the Settings page, but that only shows up if you already have a private repo-hosted plugin installed in the 1st place. Am I missing something there?

        Great work, btw. Excited about these latest updates. This will help my work significantly.

        Report


      2. Oops. Thanks for the bug report. I’ll have it fixed later tonight. I’m still at the hospital.

        Report


      3. Jeremy, this should be fixed now in develop.

        Report


      4. The settings page does show the Bitbucket login info now. However, after saving credentials and trying to install a private repo plugin from Bitbucket, the infamous error appears:

        The package could not be installed. PCLZIP_ERR_BAD_FORMAT (-10) : Unable to find End of Central Dir Record signature

        Which indicates it isn’t accessing the zip file properly for installation :(

        Report


  3. Jeremy, lets move this over to GitHub please. Can you create a new issue and images are helpful.

    Report


    1. Jeremy, make sure box is checked for Private Bitbucket Repository’

      Report

Comments are closed.