name: Git Sync type: plugin slug: git-sync version: 2.3.1 description: Allows to synchronize portions of Grav with Git Repositories (GitHub, BitBucket, GitLab) icon: git author: name: Trilby Media, LLC email: hello@trilby.media url: http://trilby.media homepage: http://trilby.media keywords: grav, plugin, git, sync, github, bitbucket, gitlab issues: https://github.com/trilbymedia/grav-plugin-git-sync/issues docs: https://github.com/trilbymedia/grav-plugin-git-sync license: MIT dependencies: - { name: grav, version: '>=1.6.0' } - { name: form, version: '>=2.16.3' } form: validation: strict fields: Basic: type: section title: Basic Settings underline: true enabled: type: toggle label: Plugin Status highlight: 1 default: 0 options: 1: Enabled 0: Disabled validate: type: bool folders: type: select multiple: true label: Folders to Sync classes: fancy description: Removing folders after they have been synced may cause undesired results. default: - pages options: - pages - themes - plugins - config - data selectize: create: true validate: type: commalist Sync: type: section title: Automatic Synchronization Settings underline: true SyncNotice: type: spacer markdown: true text: | ! To improve the speed of saving pages you can disable automatic sync. Then, changes to a page will not be sent to the remote repository on every save. To sync your changes to the repository tap the GitSync button () in the top left of the Administration Panel, or use the below Scheduler option to add the GitSync Syncronization Job to the Scheduler (Grav 1.6 required). sync.on_save: type: toggle label: Sync on Page Save help: Sync with the remote directory when a page is saved through the admin default: 1 highlight: 1 options: 1: PLUGIN_ADMIN.YES 0: PLUGIN_ADMIN.NO validate: type: bool sync.on_delete: type: toggle label: Sync on Page Delete help: Sync with the remote directory when a page is deleted through the admin default: 1 highlight: 1 options: 1: PLUGIN_ADMIN.YES 0: PLUGIN_ADMIN.NO validate: type: bool sync.on_media: type: toggle label: Sync on Media Changes help: Sync with the remote directory when a media is uploaded or deleted through the admin immediately (instead of only syncing when the page is saved) default: 1 highlight: 1 options: 1: PLUGIN_ADMIN.YES 0: PLUGIN_ADMIN.NO validate: type: bool sync.cron_enable: type: toggle label: Add Sync to Scheduler help: Add GitSync Job to the Scheduler so it can automatically perform synchronization at the given time default: 0 highlight: 1 options: 1: PLUGIN_ADMIN.YES 0: PLUGIN_ADMIN.NO validate: type: bool sync.cron_at: type: cron label: Run Sync at help: When should the Scheduler run the automatic GitSync synchronization job default: '0 12,23 * * *' Repo: type: section title: Git Repository Settings underline: true local_repository: type: hidden multiple: false size: medium label: Local Repository Path repository: type: text label: Git Repository placeholder: https://github.com/user/repository.git no_user: type: toggle label: User not required highlight: 0 default: 0 options: 1: Enabled 0: Disabled description: With this setting enabled, the user can be left blank and it will be ignored from the authentication. Useful when only needing access tokens `token@host` rather than `user:password@host` user: type: text label: Git User placeholder: Username, not email autocomplete: off password: type: enc-password label: Git Password or Token placeholder: Your Git Password or Token description: Enter your password or token to encrypt and securely store it, then save the settings. It will not show up here for security reasons. autocomplete: off webhook: type: text label: Repository Web Hook URL placeholder: /_git-sync data-default@: '\Grav\Plugin\GitSyncPlugin::generateRandomWebhook' webhook_enabled: type: toggle label: Web Hook Secret highlight: 1 default: 0 options: 1: Enabled 0: Disabled description: With this setting enabled, only authorized webhook calls will be able to trigger a synchronization (recommended) webhook_secret: type: text label: Repository Web Hook Secret placeholder: Your Web Hook Secret data-default@: '\Grav\Plugin\GitSyncPlugin::generateWebhookSecret' description: You can either use this randomly generated string or enter your own secret.
**Bitbucket** does not yet support Webhook Secrets. markdown: true Advanced: type: section title: Advanced Git Settings underline: true branch: type: text default: master label: Local Branch placeholder: master remote.name: type: text default: origin label: Remote Name placeholder: origin remote.branch: type: text default: master label: Remote Branch placeholder: master git.author: type: select default: gituser label: Commits Author options: gituser: Use Git User Name gitsync: Use GitSync Committer Name gravuser: Use Grav User Name gravfull: Use Grav User Full Name git.message: type: text default: (Grav GitSync) Automatic Commit label: Commit message placeholder: (Grav GitSync) Automatic Commit help: You can use {{pageTitle}} or {{pageRoute}} in your message as placeholders for the title or route of the page being saved git.name: type: text default: GitSync label: Committer Name placeholder: GitSync git.email: type: text default: git-sync@trilby.media label: Committer Email placeholder: git-sync@trilby.media git.bin: type: text default: git label: Git Binary Path help: If the default `git` command doesn't work on your machine or if you want to specify a custom path, do it in here placeholder: /usr/bin/git git.ignore: type: textarea label: Git Ignore help: Add custom git ignore rules to go along with GitSync. One per line rows: 6 placeholder: | node_modules /.idea git.private_key: type: text label: Private SSH Key placeholder: ~/.ssh/id_rsa markdown: true description: > In order to be able to sparse-checkout and push changes, it is expected you have an ssh-key configured for accessing the repository. This is usually found under `~/.ssh` and it needs to be configured for the same user that runs the web-server.

Point it to the secret (not the public) and make also sure you have strict permissions to the file. (`-rw-------`).

Example: `private_key: /home/www-data/.ssh/id_rsa`

**IMPORTANT**: SSH keys with passphrase are __NOT__ supported. To remove a passphrase, run the `ssh-keygen -p` command and when asked for the new passphrase leave blank and return. logging: type: toggle default: 0 label: Log Git Commands help: Logs git commands. Useful to debug and troubleshoot git execution highlight: 0 options: 1: PLUGIN_ADMIN.YES 0: PLUGIN_ADMIN.NO validate: type: bool Actions: type: section title: Actions underline: true _wizard: type: git-wizard label: Text Variable help: Text to add to the top of a page