19.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.2 サーバーインスタンスに Red Hat Decision 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
設定ファイルパラメーターを変更します。表19.1 .gitremote パラメーターの例 パラメーター 説明 provider
Git プロバイダー。許容値は GIT_HUB と GIT_LAB の 2 つのみ。必須。
login
Git プロバイダーのユーザー名。必須。
password
プレーンテキストのパスワードです。
token
が指定されている場合は必要ありません。token
username
およびpassword
ベースの、安全対策がされていない接続の代わりとなる生成トークン。注記: これが設定されていない場合は、セキュアでない接続を使用している旨の警告が表示されます。password
が指定されている場合は必須ではありません。注記: GitLab はトークン認証のみをサポートします。remoteGitUrl
パブリックのプロバイダー URL またはプロバイダー用にローカルでホストされたエンタープライズ URL。必須。注記: 公開 GitHub URL は API URL である必要があります。たとえば、api.github.com です。
useSSH
SSH プロトコルがリモートリポジトリーに変更をプッシュできるようにするブール型。任意。デフォルト値 = false。注記: このパラメーターはローカルの
~/.ssh/
ディレクトリーを使用して SSH 設定を取得します。ignore
これらの式のいずれかに一致するプロジェクト名を無視するために、コンマ区切りの正規表現。任意。
githubOrg
プロバイダーとして GitHub を使用する場合にリポジトリー組織を定義します。任意。
gitlabGroup
プロバイダーとして GitLab を使用する場合にリポジトリーグループおよびサブグループを定義します。任意。
EAP_HOME/hooks
に、post-commit
Git フックファイルを作成します。$ 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 を参照してください。