第18章 リポジトリーフック
Business Central で、フックとして知られるスクリプトを使用し、特定のイベントが発生するたびに、リポジトリーが指定のアクションをトリガーするように設定できます。Git フックの詳細は、Customizing Git Hooks を参照してください。
18.1. Git フックの設定
Business Central では、コミット後のフックを設定し、Git フックを使用してリモートのリポジトリーに対して自動的に変更をプッシュできます。
現在、コミット後にフックのみがサポートされています。コミット後のフックは、コミットプロセスの完了後にトリガーされます。
前提条件
- Red Hat JBoss EAP 7.2 サーバーインスタンスに Red Hat Decision Manager がインストールされている。
- Red Hat Decision Manager プロジェクトが外部の Git リポジトリーに存在している。
- 外部 Git リポジトリーへの読み取りアクセスに必要な認証情報。
-
(Windows の場合) Cygwin は、インストール時に追加される Git パッケージでインストールします。Cygwin
/bin
フォルダーへのパスは、お使いの環境のPATH
変数に追加されます。たとえば、C:\cygwin64\bin
です。Cygwin のインストールに関する詳細は、Installing and Updating Cygwin Packages を参照してください。
手順
- Business Central で、Menu → Projects に移動します。
- Git プロジェクトをインポートするスペースを選択または作成します。
- 画面の右側の をクリックして、Import Project を選択します。
-
Import Project ウィンドウで、Git リポジトリーの URL を入力します (例:
https://github.com/USERNAME/REPOSITORY_NAME.git
および Git リポジトリーの認証情報)。 Import をクリックします。
プロジェクトを Business Central の Git リポジトリーに追加すると、スペースで使用できるようになります。
重要SCP スタイルの SSH URL の代わりに、HTTPS または Git プロトコルを使用します。Business Central は基本的な SSH URL をサポートしないため、この URL を使用する場合はエラーが発生します。
公開 SSH キーを Git プロバイダーに設定する必要があります。
Git リポジトリーは、Red Hat Decision Manager のバージョンと互換性のある KJAR が 1 つだけ含まれる、KJAR プロジェクトでなければなりません。KJAR コンテンツは、リポジトリーのルートに配置する必要があります。
コマンドターミナルで、リポジトリーのフォルダーに移動します。
cd JBOSS_HOME/bin/.niogit/<SPACE>/REPOSITORY_NAME.git
-
権限が
rwxr—r--
に設定されたhooks
フォルダーにpost-commit
ファイルを作成します。たとえば、JBOSS_HOME/bin/.niogit/<SPACE>/REPOSITORY_NAME.git/hooks/post-commit
です。 以下のコンテンツを
post-commit
ファイルに追加します。#!/bin/sh git push origin +master
設定が正常に行われたことを確認するには、Business Central のガイド付きルールを作成します。
- Business Central で Menu → Projects → Add Asset → Guided Rule に移動します。
- Create new Guided Rule ページで必要な情報を入力します。
OK をクリックします。
Business Central は、リモートリポジトリーにすべての変更を自動的にプッシュします。
org.uberfire.nio.git.hooks
システムプロパティーの値に対して、フックファイルのディレクトリーを指定できます。このディレクトリーは、新たに作成された Git リポジトリーにコピーされます。この設定の standalone.xml
ファイルの一例として、以下を参照してください。
<system-properties> <property name="org.uberfire.nio.git.hooks" value="/opt/jboss-as/git-hooks"> </property> ... </system-properties>