- refactor of Plugin and Theme constructors moving code calling APIs getting remote data to separate functions
- fixed #281, removed 'Activate Plugin/Theme' buttons post-install
- fixed #284 for GitLab CE/Enterprise install and update
- fix to re-activate plugins after update, doesn't work with branch switching :person_frowning:
- fix to correctly rename plugin/theme on update if installed from upload.
- updated to current
erusev/parsedown
release, fixes PHP7 issue - updated to current
WPupdatePHP/wp-update-php/release-1-1-0
branch
- fix rollback for GitLab themes
- add branch switcher for themes
- escape all printed strings
- changed from using
upgrader_source_selection
hook toupgrader_post_install
, this greatly simplifies renaming - removed
class Remote_Update
as it's no longer needed when usingupgrader_post_install
hook - added Remote Management settings tab more cleanly support those services that currently integrate with GitHub Updater
- modified the process loading so faster for admin level users. Much thanks @khromov
- added hooks for devs to set GitHub Access Tokens and hide the Settings page. Please be sure your client will never need access to the Settings page. Thanks @oncecoupled
- fixed #267 thanks @stevehenty and @rocketgenius
- refactor remote update services to new
class Remote_Update
- general security fixes, don't call files directly...
- fix/test for remote updating via InfiniteWP. Child themes are not identified by IWP as needing updates, otherwise it seems to work as expected.
- fix for remote updating via iThemes Sync
- fix for renaming when AJAX updating of plugins
- newer, much more precise method for renaming based upon selected repos from the dashboard. Yes, I tested on staging server. :-)
- added feature to use extended naming of plugin directories to avoid potential conflict with WP.org slugs. Props @reinink for the idea.
- strip
.git
from the end of the plugin or theme URI for those who haven't gotten to the README yet. - added javascript show/hide options on the Install page.
- fixed boolean logic to not display GitLab Private Token input on Install if it's already set.
- updated screenshots in README
- switched a number of methods to be non-static, anticipation of testing.
- broken: renaming during updates from upgrade services
- hotfix GitLab private updating/installing
- fix some PHP notices
- bugfix for renaming code to properly strip
<owner>-
- most of Russian translation by Anatoly Yumashev
- back to simplifying the renaming code, always remember to test renaming on live server.
- strip
<owner>-
and-<hash>
from beginning and end of update for more precise renaming - I think this is the end of renaming for a while. :P
- hotfix for renaming, I reverted back a bunch with more extensive testing on server. It's amazing how different renaming is locally vs on server.
- updated language files -- oops
- cleanup and refactor of renaming code.
- added Romanian translation by Corneliu Cirlan
- added Japanese translation by ishihara
- fix bug so updates display without having to randomly refresh.
- fix some PHP notices
- add update by GitHub release asset in lieu of update by tag when asset is present
- install asset via remote install if asset URI used
- refactor to simplify class structure, created
abstract class API
andclass Messages
- add GitLab support!!
- refactor to set all git servers and extra headers to static arrays in
Base
- remove checkbox when loaded as mu-plugin, props @pbearne
- only add custom user agent once :P
- add support of GitHub Enterprise via new
GitHub Enterprise
header - sanitize filter input
- add support for parsing
readme.txt
for View details information usingWordPress_Plugin_Readme_Parser
by @markjaquith - fixed View details link to show for all cases when plugin using GitHub Updater
- refactor creation of header parts and URIs
- Spanish translation by Jose Miguel Bejarano
- German translation by Linus Metzler
- squish PHP notices
- add custom user agent to
wp_remote_get
and tweak error message at request of GitHub ;-) - fixed edge case renaming bug
- use @WPUpdatePhp
class WPUpdatePhp
for PHP version checking - use https://api.wordpress.org not http
- Arabic translation by Hyyan Abo FAkher
- make strings better for translation - thanks @pedro-mendonca and @fxbenard
- additional Portuguese translation by Pedro Mendonça
- refactor for getting local plugin and theme meta, now simpler for additional APIs (I'm thinking about you GitLab)
- fix link in README to GitHub Link
- correctly pass array as last argument in
add_settings_field
- add focus to URI input field
- add Setting for personal GitHub Access Token to avoid API rate limit - thanks @mlteal
- add Setting for branch switching from the Plugins page
- add 'View details' link in Plugins page
- fix POT and some updated languages, thanks @fxbenard
- fix PHP notice for
$options
settings on initial install - thanks @benosman
- add PHP version check for graceful exit
- add to error message for 401 error.
- save settings when remote installing a private repo
- added minutes until reset of GitHub API's rate limit to error message
- added
placeholder = "master"
to remote install branch text input - I should have made the last version 4.2.0 as I added a new feature. I'll try to be better with semantic versioning in the future. ;-)
- add message to certain admin pages when API returns HTTP error code
- update POT to remove HTML entity codes from strings and generally try to make i18n better
- Swedish translation by Andréas Lundgren
- added logo to README and Settings page
- use
strtolower
comparison of plugin directory and repo name. This might is an issue related to the manual installation of a plugin before any update might occur. This allows the View details screen to display in these instances where the case of the directory and repo aren't identical. This doesn't work for themes.
- hide star ratings from View details screen for private repos
- add
plugin
to$response
inPlugin::pre_set_site_transient_update_plugins
to fix PHP Notice - rename
classes
tosrc
to follow more conventional naming - refactor renaming code to function under all circumstances, I hope ;-)
- added remote installation of plugins or themes, both public and private
- remote installation using either full URI or short
<owner><repo>
format - created new tabbed interface for settings
- added another screenshot to readme
- I'd like to apologize to all my translators for adding new strings often, you guys are great, thanks!
- hotfix to force an array type when sanitizing settings, it gave me a fatal I wasn't expecting.
- changed
is_a()
toinstanceof
per https://core.trac.wordpress.org/changeset/31188 - requires PHP 5.3 or greater as autoloader class requires namespacing
- updated all classes for namespacing
- renamed directory and class names to allow for PSR 4 style loading
- clean up a number of foreach loops where I was only using either key or value, not both
- Special thanks for all my translators, especially @grappler for adding translation key for description
- bugfix to correctly pick CHANGES.MD or CHANGELOG.MD regardless of case
- removed reading/saving
GitHub Access Token
header into settings. Must use Settings Page.
- added French translation by @daniel-menard
- added Italian translation by @overclokk
- added Portuguese translation by @valeriosouza
- added Ukrainian translation by @andriiryzhkov (our first translation!!)
- remove scraping of user/pass from Bitbucket URI as it's no longer needed
- use
Requires WP
header to fill view options detail - rename private methods to begin with underscore
- add screenshot to README for Settings Page (only 70 kB)
- stop re-creating transient of transients if it already exists
- refactored adding extra headers to
class GitHub_Updater
to ensure they're added before they're needed, resolves issue with WooThemes Updater plugin - update .pot file
- changed settings page and how Bitbucket Private repos authenticate with your username/password
- update .pot
- minor transient cleanup
- update .pot file
- fix to get all themes under both single and multisite installs
- woot!! - updating from Bitbucket private repos now works!!
- fix to only add HTTP Authentication header under correct circumstances. This obviates need to fix for other APIs that might also use HTTP Authentication.
- fix to correctly add GitHub Access Token from
$options
to$download_link
- oops - changes
$options
toprivate static $options
to save a few database calls - Settings page only shows private repos, except for initial setup
- simpler test for checking branch as download endpoint
- correctly use
parent::
instead ofself::
- many updates for translation
- fix to ensure theme rollback and updating works in both single install and multisite
- fix to save settings from single site installations
- more efficient solution to HTTP Authentication issues
- more efficient options cleanup
- remove some unnecessary code resulting in few database calls
- change default option setting to use
add_site_option
so not autoloading options
- fix for other APIs that use HTTP Authentication, like JetPack - thanks @tsquez
- fix more PHP Notices
- correctly set defaults for Settings page :P
- remove options for plugins/themes that are no longer present
- Who would've thought
file_exists
was case-sensitive - when checking meta, use
empty()
instead of! isset()
fornull array
- set defaults for Settings page
- fix a number of PHP Notices
- Bugfix to properly authenticate on JetPack Stats page
- simplify check and exit on Settings if no Bitbucket plugins/themes
- Remove Bitbucket settings from page if no appropriate plugins or themes exist.
- Settings Page for your GitHub Access Tokens
- added POT file and some more i18n fixes - thanks @grappler
- added
Requires WP
andRequires PHP
headers to set minimum version requirements - for @GaryJ - move update check to function to also check WP and PHP version requirements.
- unset any HTTP Authorization headers for GitHub API calls as this gives a 401 error. Rare potential bug if you have private Bitbucket repos.
- move instantiation of
class GitHub_Plugin_Updater
andclass GitHub_Theme_Updater
intoGitHub_Updater::init()
and restrict tocurrent_user_can( 'update_plugins' )
andcurrent_user_can( 'update_themes' )
so that non-privileged users don't incur load time. - now loading classes via
spl_autoload_register
- switched to
erusev/parsedown
for rendering changelogs, faster and more light-weight. - now parses remote file info to save only file headers to transient. Hopefully speeds up database retrieval of transient.
- added README link to GitHub Link plugin by @szepeviktor
- added mu-plugin option and instructions.
- above revisions mostly due to @szepeviktor prodding me. ;-)
- accept
CHANGES.md
orCHANGELOG.md
for processing, for @GaryJ - composer support added, thanks @hyyan
- fix for WP Coding Guidelines
- added check for upgrade process instead of
$_GET['action']
(props @SLv99) - launch classes from
GitHub_Updater::init()
so can load inadd_action( 'init', ...
from__construct()
. Hopefully this will solve issues with remote upgraders like iThemes Sync, ManageWP, InfiniteWP, and MainWP. Thanks @jazzsequence for testing. Thanks @SLv99 for bringing this to my attention.
- refactor API classes and
class GitHub_Updater
to add extra headers from API class. This should allow for better abstraction. Just need to callGitHub_Updater_{repo}_API::add_headers()
inclass GitHub_Plugin_Updater
andclass GitHub_ Theme_Updater
. - remove @since tags
- move
maybe_authenticate_http
toclass GitHub_Updater_Bitbucket_API
as it's not used elsewhere - use non-strict check for http response code (thanks @echav)
- added early exit if no local
CHANGES.md
file exists. This should save an API call. - pull update from WP.org if plugin hosted in WP.org and branch is
master
.
- created functions for getting and setting transients
- added deletion of all transients if force-check is used
- removed
GitHub Timeout
andBitbucket Timeout
headers - fix for
wp_remote_retrieve_response_code
check - give Seth Carstens proper credit in README.md
- move
function make_rating
toclass GitHub_Updater
- fix for plugin name in update detail view
- fix for Bitbucket repo with no branch tag
- set default timeout to 12 hours, same as WP.org
- fix for 3.9 setting theme update details to
display:none;
- fix for error when installing themes from WP.org repo
- fix for incorrect plugin upgrade link in detail popup
- quick error checking fix for
wp_remote_get
error to wordpress.org API - thanks @deckerweb
- fixed CHANGES.md for GFM strike-through
- added transient to
plugins_api
call - better zeroing of variables in getting local theme data
- add error checking to loading of classes
- set default transient timeout to 4 hours
- added new header
GitHub Timeout
orBitbucket Timeout
to set individual plugin/theme transient timeout fixed for Bitbucket private repos- abide by WP Coding Guidelines, esp. for braces
- more error checking for correct variable fetch
- added graceful exit if repo does not exist
- added
class GitHub_Updater_Bitbucket_API
for Bitbucket hosted plugins and themes. - improvements to efficiency by not loading when
DOING_AJAX
- improvements to efficiency in use of transients
- set PHP MarkdownExtra posts and comments markup to false props @MikeHansonMe
- remove WP plugin header from
markdown.php
- forgot to include markdown.php - damn
- removed PHP Markdown Lib as it required PHP >= 5.3 and that's higher than required by WordPress core.
- switched from PHP Markdown Classic to the new PHP Markdown Lib to prevent collisions with other plugins, like Markdown On Save/Improved that also load PHP Markdown or PHP MarkdownExtra.
- fixed transient assignment for tags returning empty array.
- added transient for
CHANGES.md
to themes, should further cut down on API 403 errors. - new feature: theme rollback to previous version thanks @scarstens
- changed update methodology to use most recent tag first. If not tagged update from default branch.
- fixed download link to have correct base URI for Repository Contents API. Oops.
- rewrite of
GitHub_Update_GitHub_API::construct_download_link
to download zipball and provide appropriate endpoint.
- now saving transient and adding early return if API returns 404, this should speed up plugin when repo doesn't have
CHANGES.md
file and provide for early return in no tags have been created. If no tags have been created the API is still hit.
- moved action hook to remove
after_theme_row_$stylesheet
toclass GitHub_Theme_Updater
- added feature: if branch other than
master
is specified then tagged version will be ignored. This should make it much easier for beta testing to groups. See README.md - converted
class GitHub_Update_GitHub_API
to extension ofclass GitHub_Updater
- combined
description
andchangelog
to show in theme detail view. Rough formatting. Multisite only. - greatly simplified bug fix from 2.2.2, now using Themes API.
- bug fix for removing update notice for WP.org repo themes. Oops.
- minor code simplifications
- many thanks to @grappler for solving how to remove default
after_theme_row_$stylesheet
- moved check and load for
markdown.php
into only function that uses it. - minor README updates
- added abort if this plugin called directly
- added additional data to update available screen in both plugins and themes - issue #8
- removed requirement for tags in theme updating
- removed extra line endings from
remote_version
- added ratings function for creating star ratings based upon GitHub repo data.
- bring parts of
class GitHub_Theme_Updater
code on par withclass GitHub_Plugin_Updater
- added 'ghu-' prefix to transients
- ripped out theme rollback code. Moved to it's own branch on GitHub.
- add custom
after_theme_update_{$stylesheet}
detail.
- bug fix to return early from call to
plugins_api
if not getting plugin information. Fixes issue with Plugin Search.
- simplify check for
class Markdown_Parser
- refactor to pass
class GitHub_Update_GitHub_API
as class object. This should enable the creation of other class objects for Bitbucket, etc. - fix for setting branch when API not responding
- fix for setting download link when API not responding
- redesigned filter for setting transient timeout, but still not working (pull requests welcome)
- bug fix to not load
markdown.php
twice. Just in case it's loaded by some other plugin.
- rearranged where I put
GitHub Plugin URI
header, etc. in README and in this plugin. - minor spelling fixes
- renamed some functions for their hooks
- refactored
class GitHub_Plugin_Updater
andclass GitHub_Theme_Updater
to use stdClass objects - further refactored base class
GitHub_Updater
to contain renaming code and create stdClass objects for data. - added some ability to see changelog for GitHub hosted plugins.
- trying to follow WordPress Plugin Boilerplate, so renamed
classes
toincludes
- refactored putting all remote api calls in new
class GitHub_Plugin_Updater_API
. - Theme updating should now be able to have a specified branch.
- works on WordPress 3.8
- included Michel Fortin's PHP-Markdown for rendering
CHANGES.md
- added some variable declarations
- added early return in no GitHub sourced plugins or themes are identified
- refactored to use base class
GitHub_Updater
and extending classesGitHub_Plugin_Updater
andGitHub_Theme_Updater
.
- changed method of not overwriting extra headers to pass array.
- change
'...'
to…
in renaming notification - fix to not overwrite extra headers of other plugins.
- removed sorting option from
scandir
. Doesn't work with older versions of PHP < 5.4.0 - removed extraneous data from array in
multisite_get_themes
- updated the transient for themes
- replaced
readdir
withscandir
for creating WP_Theme object in multisite
- updated class-theme-updater.php to utilize WP_Theme class
- added method
get_remote_tag
to update plugins using tags or branch, depending upon which has greater version number. get_remote_tag
uses transient to limit calls to API- fix for
wp_get_themes
not working under plugin network activation on multisite installation. I recreatedwp_get_themes
by reading in the theme directory and adding the WP_Theme object ofwp_get_theme( 'dir_in_themes_dir' )
to an array.
- bug fix for undeclared variable $github_plugins
- Added separate method to parse plugin repo info from header
- Shortened GitHub Plugin URI to only use owner/repo
- Shortened GitHub Theme URI to only use owner/repo
- Lots of documentation and some bug fixes. Thanks @GaryJones
- Made version checking regex more compatible. Thanks @GaryJones
- Added ability to define branch to update.
- Refactored plugin/theme renaming code.
- Added
GitHub Branch
feature - Thanks @GaryJones - Trying to comply with WP Coding Standards.
- Major thanks to @GaryJones for all the pull requests and generally improving this project.
- Fixed a couple of non-fatal PHP errors. Thanks @jazzsequence
- Cleaned up readme's markdown.
- Fixed the README to more accurately reflect support for both plugins and themes.
- Fix for rename functions to be more precise, otherwise might rename wp.org repo themes.
- Simplify a couple of if statements.
- Fix to ignore renaming for wp.org plugins
- Sanity check for theme api uri
- Serialized WP_Theme object to search for added GitHub header, lots of help from Seth. No more
file_get_contents
. - Converted plugin class and added it to make joint plugin/theme updater.
- Code cleanup.
- Limit
file_get_contents
to 2000 bytes.
- Initial commit