I’ve finally been able to add support for GitLab in the GitHub Updater v4.5.0. Additionally, support for GitLab CE and GitLab Enterprise are also included. All that’s required is an additional header with the base URI for the GitLab server. As an example, GitLab CE: https://gitlab.example.com or GitLab Enterprise: https://gitlab.example.com.
Extras for GitHub
Support for GitHub Enterprise is also included using a similar header, GitHub Enterprise: https://github.example.com. Support for updating from GitHub assets is also included if an asset exists for a tagged release. It will be preferentially used for the update. Using an asset’s URI for the remote installation of a plugin or theme will also function as expected.
Under the Hood
A bit of refactoring has been done as well. An abstract class API has been created to simplify the structure of all the git server API classes. Additionally a class Messages has been created to hold admin notices. The class Base has been refactored to hold information regarding the added APIs in static arrays for use throughout the codebase. I hope everyone likes the changes and updates. As always, if there are problems or improvements, please create an issue on GitHub. Thanks.
A new update to GitHub Updater reorganizes the Settings page.
Now the individual user enters their Bitbucket username and password. They must have at least Read privileges for each private Bitbucket repository. The next section of the Settings page has a checkbox for identifying private Bitbucket repositories.
This setup should allow developers to add clients as Read-only users to their private repositories and have the client able to update as the repository updates.
This should be a substantial security improvement as it no longer exposes the developer’s Bitbucket password to the client. As always, please create an issue if there are any problems or if you have any ideas for improvement of GitHub Updater.
I’ve been doing a lot of tweaking to GitHub Updater. The plugin now runs on the front-end and only for privileged users. This allows for a couple of things.
It makes less overhead for the non-admin user.
Second it allows for update services to do their thing.
I’ve tested with several update services and iThemes Sync works great out of the box. I’ve been told MainWP works and ManageWP works. ManageWP does not yet have support for child themes but I’ve been told it’s in the works. I’ve been told mixed things with InfiniteWP and I’m unable to test well against it.
Classes are autoloaded using spl_autoload_register and I’m now using Parsedown to render the change logs. Additionally, efficiency gains are achieved by only parsing remote file headers and saving those headers to transients. I’ve also added 2 new headers ( Requires PHP and Requires WP ) to set the minimum requirements of both PHP and WordPress for your plugins or themes. If the minimum requirements aren’t met on the user’s system then your plugin or theme will show an update.
One of the biggest changes is a Settings Page. No longer are GitHub Access Tokens or Bitbucket passwords required to be stored within the repository. They can be added after plugin or theme installation. This should help with security.
Update Bitbucket Private Repositories
One of the most glaring bugs was my inability to update Bitbucket private repositories. Somewhere along the path to add Settings API functionality or more precisely improving HTTP Authentication headers only for the proper plugins or themes, it seems that Bitbucket private repositories now update correctly.
If anyone’s interested in working on a Gitlab module please ping me.
It’s been a wild couple of days figuring this one out. Special thanks to Jonah West for all the help and encouragement. This plugin seeks to greatly simplify the ability to create background colors for your categories in the month view when using The Events Calendar plugin. It requires The Events Calendar v2.0.5 or greater.
TEC Category Colors uses the Tribe Setting API to integrate its settings into TEC’s settings page.
You can grab it from the WordPress Repository.
Thanks to Joey Kudish and Jonah at Modern Tribe, Inc., I’ve converted my original hacked together code to add an alarm to a calendar event created using the Events Calendar PRO WordPress plugin into a plugin of my own. You can see/follow the original discussion on the Modern Tribe forum.
This plugin requires the Events Calendar PRO plugin. You will have to create an Additional Field from The Events Calendar Settings page.
You can then download, install and activate the The Events Calendar PRO Alarm plugin. If/when this functionality ever becomes part of Events Calendar PRO simply deactivate the plugin.