第 37 章 Git hook 和远程 Git 存储库集成
Git hook 是在 Git 事件之前或之后执行的 bash 脚本,如 git commit
或 git push
。在 Business Central 中,您可以使用 Git hook 配置存储库,以便在每次发生事件时触发指定操作。如需有关 Git hook 的更多信息,请参阅自定义 Git Hook。
您可以使用 post-commit Git hook 将远程 Git 存储库与 Business Central 集成。这可让您自动执行 Business Central 和远程存储库之间的内容复制。例如,您可以实施实时备份策略,其中对 Business Central 项目所做的更改将复制到远程 Git 存储库。
Business Central 只支持 post-commit Git hook。
post-commit Git hook 会在每次提交作为同步操作后执行。Business Central 等待 post-commit bash 完成,且存储库中没有其他写入操作。
37.1. 创建 post-commit Git hook 复制链接链接已复制到粘贴板!
您可以创建一个 post-commit Git hook bash 脚本文件,该文件中包含的代码或从 Java 程序等其他文件执行代码。
流程
创建
post-commit
Git hook 文件:touch post-commit
$ touch post-commit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
post-commit
文件的权限设置为755
:chmod 755 post-commit
$ chmod 755 post-commit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
#!/bin/bash
以及任何所需的代码添加到post-commit
文件中,例如:将所有更改推送到远程存储库:
#!/bin/bash git push origin +master
#!/bin/bash git push origin +master
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 记录信息:
#!/bin/bash echo 'Hello World'
#!/bin/bash echo 'Hello World'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 执行另一个文件的代码:
#!/bin/bash java -jar _EAP_HOME_/bin/.niogit/<SPACE>/<PROJECT_NAME>.git/hooks/git-push.jar
#!/bin/bash java -jar _EAP_HOME_/bin/.niogit/<SPACE>/<PROJECT_NAME>.git/hooks/git-push.jar
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意要使用执行 Java 代码的 post-commit Git hook,您必须使用以下 Java 库:
- JGit :用于与内部 Business Central Git 存储库交互。
- 用于 Java 的 GitHub API :用于与 GitHub 通信。
有关 post-commit Git hook 和 Java 代码示例的更多信息,请参阅 Business Central post-commit Git Hooks Integration。