37.5. 集成远程 Git 存储库
在以下示例中,您可以使用 post-commit Git hook 和 Java 代码将 Business Central 与远程 Git 存储库集成。有关 Java 代码示例,请参阅 Business Central post-commit Git Hooks Integration。这个示例提供以下功能:
-
模板
.gitremote
配置文件的自动生成 -
为所需参数验证
.gitremote
配置文件 -
Git 会忽略
.gitremote
文件的 ignore 参数中定义的模式 - 用户的消息和通知输出
- 支持 GitLab 和 GitHub 令牌身份验证
- 支持 GitLab 组和子组项目创建
- 支持 GitHub 机构存储库创建
先决条件
- Red Hat Decision Manager 安装在 Red Hat JBoss EAP 7.4 服务器实例中。
- Java Development Kit (JDK) 8 已安装。
- 已安装 Maven。
流程
在终端窗口中,将 GitHub 存储库克隆到您的系统中:
git clone https://github.com/kiegroup/bc-git-integration-push.git
$ git clone https://github.com/kiegroup/bc-git-integration-push.git
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 进入克隆的存储库:
cd bc-git-integration-push
$ cd bc-git-integration-push
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 执行 Maven 清理安装:
mvn clean install
$ mvn clean install
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
EAP_HOME
目录中创建/hooks
文件夹:mkdir -p _EAP_HOME_/hooks/
$ mkdir -p _EAP_HOME_/hooks/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
git-push-2.1-SNAPSHOT.jar
复制到EAP_HOME/hooks/
文件夹:cp bc-git-integration-push/target/git-push-2.1-SNAPSHOT.jar _EAP_HOME_/hooks/
$ cp bc-git-integration-push/target/git-push-2.1-SNAPSHOT.jar _EAP_HOME_/hooks/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选: 要创建
.gitremote
配置文件,请运行git-push-2.1-SNAPSHOT.jar
:java -jar git-push-2.1-SNAPSHOT.jar
$ java -jar git-push-2.1-SNAPSHOT.jar
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 模板
.gitremote
配置文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 修改
.gitremote
配置文件参数。Expand 表 37.1. .gitremote 参数示例 参数 描述 provider
Git 提供程序。只接受两个值: GIT_HUB 和 GIT_LAB。必填
login
Git 提供程序的用户名。必填
password
纯文本密码。如果提供
令牌
,则不需要此项。token
生成的令牌,用于替换基于
不安全连接
。注: 如果没有设置警告,代表您使用的是不安全的连接。如果提供了的用户名和密码
密码
,则不需要使用。注意:GitLab 只支持令牌身份验证。remoteGitUrl
用于任何供应商的公共供应商 URL 或本地托管企业。必需。注:公共 GitHub URL 应当是 API URL。例如: api.github.com。
useSSH
布尔值,以允许 SSH 协议将更改推送到远程存储库。可选。默认 = false。注:此参数使用本地
~/.ssh/
目录来获取 SSH 配置。ignore
以逗号分隔的正则表达式,忽略与这些表达式中的任何一个匹配的项目名称。可选。
githubOrg
如果 GitHub 用作提供程序,则定义存储库组织。可选。
gitlabGroup
如果 GitLab 用作提供程序可选,则定义存储库组和子组。
在
EAP_HOME/hooks
中创建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
和 code,将git-push-2.1-SNAPSHOT.jar
添加到post-commit
文件中:echo "#\!/bin/bash\njava -jar $APP_SERVER_HOME/hooks/git-push-2.1-SNAPSHOT.jar" > hooks/post-commit
$ echo "#\!/bin/bash\njava -jar $APP_SERVER_HOME/hooks/git-push-2.1-SNAPSHOT.jar" > hooks/post-commit
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
-Dorg.uberfire.n.git.hooks
环境变量集启动 Business Central。例如:./standalone.sh -c standalone-full.xml -Dorg.uberfire.nio.git.hooks=_EAP_HOME_/hooks
$ ./standalone.sh -c standalone-full.xml -Dorg.uberfire.nio.git.hooks=_EAP_HOME_/hooks
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。