code711/siteconfiggitsync

将config/site中的更改同步回您的git仓库

安装次数: 3,188

依赖项: 0

建议者: 0

安全: 0

星标: 1

关注者: 1

分支: 0

开放性问题: 0

类型:typo3-cms-extension

1.0.5 2024-08-06 23:09 UTC

This package is auto-updated.

Last update: 2024-09-06 23:21:15 UTC


README

Latest Stable Version TYPO3 13 TYPO3 12 TYPO3 11 Total Downloads Monthly Downloads PHPSTAN:Level 9 build:passing

有时,对于TYPO3项目来说,将网站配置yaml文件与网站包一起在git中管理是必要的。这些项目存在的问题是,网站管理员不能在不将这些更改手动带回到git仓库的情况下更改网站配置中的设置,以避免它们在下次CI/CD运行或发布时被覆盖。

此扩展旨在通过自动将更改推送到您的gitlab实例来解决此问题。在此过程中,该扩展将创建一个分支,提交所做的更改,并创建一个merge-request,您可以在gitlab中管理它,而无需手动合并yaml文件。您将因为merge-request而收到更改通知。

服务器上不需要git二进制文件,所有操作都通过GitLab API完成。目前仅支持GitLab,可以是自托管的或在gitlab.com上。

变更日志

1.0.3

  • 修复问题 #1
  • 修复了当项目不是组的一部分时,在扩展配置界面中读取用户列表的问题
  • 将LoggerAwareInterface添加到AfterConfigurationWriteListener

1.0.1

修复README.md

1.0.0

支持TYPO3 12

0.10.0

将SiteConfiguration类的XCLASS外部化到 EXT:siteconfigurationevents。Composer安装应自动将此扩展作为依赖项拉取。将git相关操作重构为事件监听器。

0.9.x 首次发布

设置/安装

通过使用以下命令安装此扩展后

composer req code711/siteconfiggitsync
您需要在GitLab项目页面创建一个具有至少“开发者”权限的API令牌。

这可以在您的GitLab中项目下的“设置->访问令牌”中完成。需要开发者权限,因为只有从这个级别开始才能创建分支和发布merge-request。

Gitlab Backend

在“令牌名称”字段中输入对这项任务有意义的名称,因为它将写在提交或merge-request旁边。例如,“来自TYPO3的外部网站更改”。

将“到期日期”设置为您的喜好。

在“选择角色”中选择“开发者”

对于范围选择“api”。其他范围不足以完成我们想要执行的任务。

在按下“创建项目访问令牌”按钮后,您将获得一系列字母数字字符。复制此字符串。这是您的令牌。

New Token

在您的TYPO3后台导航到设置->扩展配置,并打开siteconfiggitsync扩展的折叠面板

Extension Config

在gitlab url字段中添加到您项目仓库的完整URL,不带任何.git。就像在浏览器中一样。例如

https://gitlab.com/mycompany/customerproject 

在Gitlab API Auth Token字段中输入您刚刚生成的令牌。

现在,按“保存'siteconfiggitsync'配置”按钮,并关闭窗口。重新打开窗口,再次导航到siteconfiggitsync折叠面板并打开它。'main_branch'和'Who to assign a merge request'字段应分别填写该项目中可用的分支和允许合并merge-requests的成员。

选择代表生产分支的分支,即应该从该分支提交更改。

可选地选择一个成员,将合并请求分配给他。如果没有选择成员,合并请求将不会分配给任何人,是否会在创建时收到通知取决于您的配置。

现在再次按下“保存 'siteconfiggitsync' 配置”按钮,当通过后端接口更改站点配置时,您应该准备好接受合并请求。

注意和限制

  • 重命名不是使用 git-move 完成的,而是通过检查新文件并删除旧文件来完成的。在开发此扩展时,移动操作对我没有起作用。这可能在以后重新审视。
  • 此扩展被标记为beta,因为并非所有场景都已测试。目前对我来说这是“正常工作”的
  • Gitlab服务器必须可以通过http或https从生产服务器访问。Gitlab api 实现使用 guzzlehttp,因此应该可以配置代理,但我还没有研究这个问题。欢迎在这方面提供帮助
  • 应该可以添加bitbucket和github支持。这可能在以后添加