Download the PHP package blankogmbh/kirby-git-commit-and-push-content without Composer
On this page you can find all versions of the php package blankogmbh/kirby-git-commit-and-push-content. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download blankogmbh/kirby-git-commit-and-push-content
More information about blankogmbh/kirby-git-commit-and-push-content
Files in blankogmbh/kirby-git-commit-and-push-content
Package kirby-git-commit-and-push-content
Short Description Plugin to track changes to content in a git repository.
License MIT
Informations about the package kirby-git-commit-and-push-content
Kirby Git Content
This is a plugin for Kirby that commits and pushes content changes made via the Panel to your git repository.
Requirements
This plugin supports Kirby from version 3.6 (including Kirby 4) and requires git version > 2.24
Usage
You can use this plugin to commit and push changes made via the Panel to your git repository. Either automatically
by setting the commit
option to true
or manually by visiting the panel view and adding a commit.
Setup
Download and configure the Plugin
Installation via composer (recommended)
composer require thathoff/kirby-git-content
Installation via git submodule
git submodule add https://github.com/thathoff/kirby-git-content.git site/plugins/git-content
Manual Installation
- download the source code
- copy the folder to
site/plugins/git-content
.
Create a new git repository for your content
Create a new git repository where you push your content to init the content repo and push it.
Remove the content/
folder from your current git repository
Configuration
By default this plugin just commits changes to the content repository. It’s recommended to setup a cron job
which calls yourdomain.com/git-content/push
. This will push changes to the remote repository. By using a cron job
saving pages in panel is a lot faster then enabling the push
option which will push changes after every commit.
This plugin is configurable via Kirby Options. Add the following entires to your config.php
.
Configuration Options
path
(String): Path to the repository, (default:kirby()->root("content")
)pull
(Boolean): Pull remote changes first? (default:false
)commit
(Boolean): Commit your changes? (default:true
)push
(Boolean): Push your changes to remote? (default:false
)commitMessage
(String): Configure the template for the commit message (default::action:(:item:): :url:
)cronHooksEnabled
(Boolean): Whether/git-content/push
and/git-content/pull
endpoints are enabled or not. (default:true
)cronHooksSecret
(String): When set, this secret must be sent with the cronHooks as a get parameter. Note: If you set a secret, only the GET method will work on the webhooks./git-content/(pull|push)?secret=S0up3rS3c3t
displayErrors
(Boolean): Display git errors when saving pages (default:true
)gitBin
(String): Path to thegit
binarydisable
(Boolean): If set totrue
, the plugin won't initialize. (default:false
)disableBranchManagement
(Boolean): If set totrue
, the options to create and switch branches are hidden. (default:false
)helpText
(String): Supply a custom help text shown in the panel UI. (default:null
)menuIcon
(String): Supply a custom icon for the panel menu item. (default:sitemap
)menuLabel
(String): Supply a custom label for the panel menu item. (default:Git Content
)
Custom Commit Message
By default the commit message is composed from the template :action:(:item:): :url:
. So for example a change to
the page example
will be committed with the message update(page): example
. If you would like to change that
message you can use the thathoff.git-content.commitMessage
option to overwrite the template.
Hooks
The plugin triggers hooks before and after content is pulled or pushed via the interface or the web endpoints. You can use these hooks to trigger other actions, for example to deploy your site after a push or clear caches after a pull.
Git LFS
Your repository might increase over time, by adding Images, Audio, Video, Binaries, etc. cloning and updating your content repository can take a lot of time. If you are able to use Git LFS you probably should. Here is what the .gitattributes-File could look like:
Authors
Maintained and developed by Markus Denhoff and Contributors. Initial version by Pascal Küsgen.
Supported by reinorange GmbH.