thathoff / kirby-git-content
插件,用于跟踪git仓库中内容的更改。
Requires
- czproject/git-php: ^4.0.1
- getkirby/composer-installer: ^1.1
Requires (Dev)
- getkirby/cms: ^3.6.0|^4.0.0
README
这是一个为Kirby构建的插件,可以将通过面板进行的更改提交并推送到您的git仓库。
要求
此插件支持从版本3.6(包括Kirby 4)的Kirby,并要求git版本 > 2.24
用法
您可以使用此插件将面板进行的更改提交并推送到您的git仓库。可以是自动的,通过将commit选项设置为true,也可以是手动访问面板视图并添加提交。
设置
下载并配置插件
通过composer安装(推荐)
composer require thathoff/kirby-git-content
通过git子模块安装
git submodule add https://github.com/thathoff/kirby-git-content.git site/plugins/git-content
手动安装
- 下载源代码
- 将文件夹复制到
site/plugins/git-content。
为您的内容创建一个新的git仓库
创建一个新的git仓库,将内容推送到那里以初始化内容仓库并将其推送。
cd content # include .lock files in .gitignore echo ".lock" >> .gitignore # init repo git init git add . git commit -m "Initial Commit"
从当前git仓库中删除content/文件夹
cd .. git rm --cached -r content git add -A git commit -m "Move Content Folder to separate repository"
配置
默认情况下,此插件仅将更改提交到内容仓库。建议设置一个cron作业,该作业调用yourdomain.com/git-content/push。这将推送更改到远程仓库。通过使用cron作业,保存页面比启用push选项要快得多,后者会在每次提交后推送更改。
此插件可通过Kirby选项进行配置。将以下条目添加到您的config.php。
return [ // other configuration options 'thathoff.git-content.commit' => true, ];
配置选项
path(字符串): 仓库路径,(默认:kirby()->root("content"))pull(布尔值): 首先拉取远程更改?(默认:false)commit(布尔值): 提交您的更改?(默认:true)push(布尔值): 将您的更改推送到远程?(默认:false)commitMessage(字符串): 配置提交信息的模板(默认::action:(:item:): :url:)cronHooksEnabled(布尔值): 是否启用/git-content/push和/git-content/pull端点。 (默认:true)cronHooksSecret(字符串): 当设置时,此秘密必须作为get参数与cronHooks一起发送。注意:如果您设置了一个秘密,则只有GET方法将在webhooks上工作。/git-content/(pull|push)?secret=S0up3rS3c3tdisplayErrors(布尔值): 保存页面时显示git错误(默认:true)gitBin(字符串):git二进制文件路径disable(布尔值): 如果设置为true,则插件不会初始化。(默认:false)disableBranchManagement(布尔值): 如果设置为true,则创建和切换分支的选项将隐藏。(默认:false)helpText(字符串): 提供在面板UI中显示的自定义帮助文本。(默认:null)menuIcon(字符串): 提供面板菜单项的自定义图标。(默认:sitemap)menuLabel(字符串): 提供面板菜单项的自定义标签。(默认:Git Content)
自定义提交信息
默认情况下,提交消息由模板 :action:(:item:): :url: 组成。例如,对页面 example 的更改将以消息 update(page): example 提交。如果您想更改此消息,可以使用 thathoff.git-content.commitMessage 选项覆盖模板。
钩子
插件在内容通过接口或Web端点拉取或推送前后触发钩子。您可以使用这些钩子触发其他操作,例如在推送后部署您的网站或在拉取后清除缓存。
// site/config/config.php return [ // other configuration options 'hooks' => [ 'thathoff.git-content.push:before' => function () { // do something before a push }, 'thathoff.git-content.push:after' => function ($response) { // do something after a push }, 'thathoff.git-content.pull:before' => function () { // do something before a pull }, 'thathoff.git-content.pull:after' => function ($response) { // do something after a pull }, ], ];
Git LFS
随着时间的推移,您的存储库可能会增加,例如添加图片、音频、视频、二进制文件等。克隆和更新内容存储库可能需要很长时间。如果您可以使用 Git LFS,那么您可能应该使用它。以下是一个 .gitattributes 文件的示例:
*.zip filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.jpeg filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.gif filter=lfs diff=lfs merge=lfs -text
作者
由 Markus Denhoff 和 贡献者 维护和开发。初始版本由 Pascal Küsgen 创建。
由 reinorange GmbH 支持。
