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
$ git clone https://github.com/kiegroup/bc-git-integration-push.gitCopy to Clipboard Copied! Toggle word wrap Toggle overflow クローンしたリポジトリーに移動します。
cd bc-git-integration-push
$ cd bc-git-integration-pushCopy to Clipboard Copied! Toggle word wrap Toggle overflow Maven の新規インストールを実行します。
mvn clean install
$ mvn clean installCopy 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.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow テンプレート
.gitremote設定ファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow .gitremote設定ファイルパラメーターを変更します。Expand 表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
$ touch post-commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow post-commitファイルのパーミッションを755に設定します。chmod 755 post-commit
$ chmod 755 post-commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow #!/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
$ echo "#\!/bin/bash\njava -jar $APP_SERVER_HOME/hooks/git-push-2.1-SNAPSHOT.jar" > hooks/post-commitCopy to Clipboard Copied! Toggle word wrap Toggle overflow -Dorg.uberfire.nio.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_/hooksCopy to Clipboard Copied! Toggle word wrap Toggle overflow
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 を参照してください。