thathoff/kirby-git-content

插件,用于跟踪git仓库中内容的更改。

安装数: 25,297

依赖关系: 0

建议者: 0

安全: 0

星标: 134

关注者: 7

分支: 20

开放问题: 9

类型:kirby-plugin

5.2.0 2023-12-09 15:53 UTC

README

这是一个为Kirby构建的插件,可以将通过面板进行的更改提交并推送到您的git仓库。

Screnshot of Panel Area

要求

此插件支持从版本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

手动安装

为您的内容创建一个新的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=S0up3rS3c3t
  • displayErrors (布尔值): 保存页面时显示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 支持。