44.5. リモート Git リポジトリーの統合
以下の例では、post-commit の Git フックと Java コードを使用して、Business Central と リモートの Git リポジトリーを統合します。Java コードの例は、Business Central post-commit Git Hooks Integration を参照してください。この例では、以下の機能を提供します。
-
テンプレート
.gitremote設定ファイルを自動生成 -
必須のパラメーターに対する
.gitremote設定ファイルを検証 -
.gitremoteファイルの ignore パラメーターで定義するパターンを Git で無視 - ユーザーにメッセージおよび通知を出力
- GitLab および GitHub トークン認証をサポート
- GitLab グループおよびサブグループプロジェクト作成をサポート
- GitHub 組織リポジトリー作成をサポート
前提条件
- Red Hat JBoss EAP 7.3 サーバーインスタンスに Red Hat Process Automation Manager がインストールされている。
- 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設定ファイルパラメーターを変更します。表44.1
.gitremoteパラメーターの例パラメーター 説明 providerGit プロバイダー。許容値は GIT_HUB と GIT_LAB の 2 つのみ。必須。
loginGit プロバイダーのユーザー名。必須。
passwordプレーンテキストのパスワードです。
tokenが指定されている場合は必要ありません。tokenusernameおよびpasswordベースの、安全対策がされていない接続の代わりとなる生成トークン。注記: これが設定されていない場合は、セキュアでない接続を使用している旨の警告が表示されます。passwordが指定されている場合は必須ではありません。注記: GitLab はトークン認証のみをサポートします。remoteGitUrlパブリックのプロバイダー URL またはプロバイダー用にローカルでホストされたエンタープライズ URL。必須。注記: 公開 GitHub URL は API URL である必要があります。たとえば、api.github.com です。
useSSHSSH プロトコルがリモートリポジトリーに変更をプッシュできるようにするブール型。任意。デフォルト値 = false。注記: このパラメーターはローカルの
~/.ssh/ディレクトリーを使用して SSH 設定を取得します。ignoreこれらの式のいずれかに一致するプロジェクト名を無視するために、コンマ区切りの正規表現。任意。
githubOrgプロバイダーとして GitHub を使用する場合にリポジトリー組織を定義します。任意。
gitlabGroupプロバイダーとして GitLab を使用する場合にリポジトリーグループおよびサブグループを定義します。任意。
EAP_HOME/hooksに、post-commitGit フックファイルを作成します。$ touch post-commit
post-commitファイルのパーミッションを755に設定します。$ chmod 755 post-commit
#!/bin/bashと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
post-commit の Git フックを使用して Java コードを実行するには、以下の Java ライブラリーを使用する必要があります。
- JGit: 内部の Business Central Git リポジトリーと対話するのに使用します。
- GitHub API for Java: GitHub との通信に使用します。
post-commit の Git フックと Java コードの例に関する情報は、Business Central post-commit Git Hooks Integration を参照してください。