43.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 Process Automation Manager 安装在 Red Hat JBoss EAP 7.3 服务器实例中。
- 安装了 Java Development Kit (JDK) 8。
- 已安装 Maven。
流程
在终端窗口中,将 GitHub 存储库克隆到您的系统:
$ git clone https://github.com/kiegroup/bc-git-integration-push.git
进入克隆的存储库:
$ cd bc-git-integration-push
执行 Maven 全新安装:
$ mvn clean install
在
EAP_HOME
目录中创建一个/hooks
文件夹:$ mkdir -p _EAP_HOME_/hooks/
将
git-push-2.1-SNAPSHOT.jar
复制到EAP_HOME/hooks/
文件夹:$ cp bc-git-integration-push/target/git-push-2.1-SNAPSHOT.jar _EAP_HOME_/hooks/
可选: 要创建模板
.gitremote
配置文件,请运行git-push-2.1-SNAPSHOT.jar
:$ java -jar git-push-2.1-SNAPSHOT.jar
模板
.gitremote
配置文件示例#This is an auto generated template empty property file provider=GIT_HUB login= password= token= remoteGitUrl=https://api.github.com/ useSSH=false ignore=.*demo.*, test.* githubOrg=OrgName gitlabGroup=Group/subgroup
修改
.gitremote
配置文件参数。表 43.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
将
post-commit
文件的权限设置为755
:$ chmod 755 post-commit
添加
192.168.1.0/24!/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
使用
-Dorg.uberfire.nio.git.hooks
环境变量启动 Business Central。例如:$ ./standalone.sh -c standalone-full.xml -Dorg.uberfire.nio.git.hooks=_EAP_HOME_/hooks
要使用执行 Java 代码的 post-commit Git hook,您必须使用以下 Java 库:
- jgit :用于与内部 Business Central Git 存储库交互。
- 用于 Java 的 GitHub API :用于与 GitHub 通信。
有关提交 Git hook 和 Java 代码示例的更多信息,请参阅 Business Central post-commit Git Hooks 集成。