第19章 Git フックおよびリモート Git リポジトリーの統合
Git フックは、git commit
や git push
などの Git イベントの前後に実行するバッシュスクリプトです。Business Central では、Git フックを使用して、イベントが発生するたびに、リポジトリーが指定のアクションをトリガーするように設定できます。Git フックの詳細は、Customizing Git Hooks を参照してください。
Business Central と、リモート Git リポジトリーを統合するには、post-commit の Git フックを使用します。こうすることで、Business Central とリモートリポジトリーの間のコンテンツの複製を自動化できます。たとえば、Business Central プロジェクトに加えた変更をリモートの Git リポジトリーに複製する、リアルタイムのバックアップストラテジーを実装できます。
Business Central は、post-commit の Git フックのみをサポートします。
post-commit の Git フックは、コミットするたびに同期操作として実行します。Business Central は、コミット後の Bash が完了するまで待機して、リポジトリーでの他の書き込み操作が行われないようにします。
19.1. post-commit の Git フックの作成
post-commit の Git フックスクリプトファイルを作成して、そのファイルに含まれるコードを実行するか、Java プログラムなどの別のファイルからコードを実行できます。
手順
post-commit
Git フックファイルを作成します。$ touch post-commit
post-commit
ファイルのパーミッションを755
に設定します。$ chmod 755 post-commit
以下のように、
#!/bin/bash
と必要なコードをpost-commit
ファイルに追加します。すべての変更をリモートリポジトリーにプッシュするには、以下のコマンドを実行します。
#!/bin/bash git push origin +master
メッセージをログに記録するには、以下を実行します。
#!/bin/bash echo 'Hello World'
別のファイルのコードを実行するには、以下を実行します。
#!/bin/bash java -jar _EAP_HOME_/bin/.niogit/<SPACE>/<PROJECT_NAME>.git/hooks/git-push.jar
注記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 を参照してください。