第 42 章 Git hook 和远程 Git 存储库集成
Git hook 是在 Git 事件之前或
bash 脚本。在 Business Central 中,您可以使用 Git hook 配置存储库,在每次发生事件时触发指定操作。有关 Git hook 的更多信息,请参阅自定义 Git Hook。
git push
等 Git 事件之前或之后执行的
您可以使用 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 完成且在存储库中没有其他写入操作。
42.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。