WordPress GitHub Sync

A WordPress plugin to sync content with a GitHub repository (or Jekyll site)

Author:James DiGioia, Ben Balter (profile at wordpress.org)
WordPress version required:3.9
WordPress version tested:4.8.19
Plugin version:2.0.1
Added to WordPress repository:17-05-2015
Last updated:09-10-2017
Warning! This plugin has not been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.
Rating, %:100
Rated by:4
Plugin URI:https://github.com/mAAdhaTTah/wordpress-githu...
Total downloads:19 154
Active installs:500+
plugin download
Click to start download

A WordPress plugin to sync content with a GitHub repository (or Jekyll site)

Ever wish you could collaboratively author content for your WordPress site (or expose change history publicly and accept pull requests from your readers)?

Looking to tinker with Jekyll, but wish you could use WordPress’s best-of-breed web editing interface instead of Atom? (gasp!)

Well, now you can! Introducing WordPress GitHub Sync!

WordPress GitHub Sync does three things:

  1. Allows content publishers to version their content in GitHub, exposing “who made what change when” to readers
  2. Allows readers to submit proposed improvements to WordPress-served content via GitHub’s Pull Request model
  3. Allows non-technical writers to draft and edit a Jekyll site in WordPress’s best-of-breed editing interface

WordPress GitHub sync might be able to do some other cool things:

  • Allow teams to collaboratively write and edit posts using GitHub (e.g., pull requests, issues, comments)
  • Allow you to sync the content of two different WordPress installations via GitHub
  • Allow you to stage and preview content before “deploying” to your production server

How it works

The sync action is based on two hooks:

  1. A per-post sync fired in response to WordPress’s save_post hook which pushes content to GitHub
  2. A sync of all changed files triggered by GitHub’s push webhook (outbound API call)