このページでは、バージョン管理用に Git と統合するようにプロジェクトの要素を構成する方法について説明します。
プロジェクトの設定
[プロジェクト設定] ページのオプションを変更できるのは、Looker 管理者のみです。管理者以外の Looker デベロッパーは [プロジェクト設定] ページを表示できますが、そこでオプションを変更することはできません。
[プロジェクト設定] ページには、プロジェクトの構成オプションがあります。このページを表示するには、プロジェクトを開いて、Looker IDE のアイコン メニューから [設定] アイコンを選択します。
ここから、3 つのセクションにアクセスできます。
構成
[プロジェクト設定] ページの [構成] タブで、次の設定を行うことができます。
- 名前: プロジェクトの名前。テキストを編集して [プロジェクト構成の保存] ボタンをクリックすると、プロジェクトの名前を変更できます。詳細については、プロジェクト情報へのアクセスと編集のドキュメント ページをご覧ください。
Git 本番環境のブランチ名: プロジェクトの開発ブランチのマージ ターゲットとして使用する Git ブランチ名を指定します。Git リポジトリに Git ブランチが存在する必要があります。詳細については、このページのGit 本番環境のブランチ名セクションをご覧ください。
コードの品質: 変更をプロジェクトへ commit する前に、プロジェクトで LookML Validator を正常に実行する必要があるかどうかを判断します。[コードの品質] には、次のオプションがあります。
- commit する前にエラーと警告を修正する必要がある: Looker デベロッパーは、LookML Validator が正常に実行され、すべてのエラーと警告が解決された後にのみ変更を commit できます。これは推奨の設定です。
- commit する前にエラーを修正することのみが必要: Looker デベロッパーは、LookML Validator が正常に実行され、すべてのエラーが解決された後にのみ変更を commit できます。デベロッパーは、警告が存在する場合でも変更を commit できます。Looker の更新後に新しい LookML への警告が表示された場合などに、このオプションが役に立ちます。
- 不正なコードの commit を許可する: Looker デベロッパーは、LookML Validator を実行しなくても、LookML にエラーや警告が存在するかどうかにかかわらず、変更を commit できます。この方法は、LookML が機能しなかったり、エラー結果が生じる可能性があるため、おすすめしません。
このプロジェクトを本番環境にデプロイする前にデータテストに合格する必要がある: LookML プロジェクトに一つ以上の
test
パラメータがある場合、このオプションを使用するには、デベロッパーは変更をデプロイする前にデータテストを行う必要があります。データテストに合格すると、IDEによってデベロッパーは変更を本番環境にデプロイできます。LookML プロジェクトでのデータテストの設定については、test
パラメータのドキュメント ページをご覧ください。プロジェクトでデータテストを実行する方法については、バージョン管理機能の使用とデプロイのドキュメント ページをご覧ください。デフォルトでは、[このプロジェクトを本番環境にデプロイする前にデータテストに合格する必要があります] オプションが新しい LookML プロジェクトでは有効になっています。Git の統合: Git プロバイダとの統合レベルを指定します。詳細については、Git の統合オプションをご覧ください。
高度なデプロイモードを有効にする: 有効にすると、ユーザーは任意の SHA、タグ、ブランチを本番環境にデプロイできます。高度なデプロイモードが有効になっている状態でバージョン管理を使用する方法については、高度なデプロイモードのドキュメント ページをご覧ください。
Webhook デプロイ シークレット: Looker インスタンスの本番環境に変更をデプロイするための認証を設定します。詳細については、Webhook デプロイ シークレットの構成のドキュメント ページをご覧ください。
Git 接続のリセット: このボタンをクリックすると [Git の構成] ウィンドウが開き、Git リポジトリの接続設定を更新できます。
Git 接続をリセットしても、メインブランチの Git 履歴は保持されます。また、開発モードを同期した後、各 Looker デベロッパーの個人用ブランチの履歴も保持されます。すべてのブランチの履歴を保持するには、新しい Git リポジトリへの移行のベスト プラクティスのページをご覧ください。
プロジェクトの削除: このボタンでプロジェクトを削除し、Looker インスタンス上のすべての開発環境と本番環境のプロジェクトからすべての LookML を削除します。
Git の要約: このセクションには、プロジェクトの Git 構成と現在のユーザーの Git ブランチの情報が表示されます。
Git 本番環境のブランチ名
Looker のデフォルトの Git 統合では、すべての Looker デベロッパーが変更を master
というメインブランチにマージします。[Git 本番環境のブランチ名] フィールドを使用して、Looker デベロッパーのブランチがマージされるターゲット ブランチとして Looker が使用する Git リポジトリからのブランチを指定できます。(デフォルトの Git ワークフローと、高度な Git 実装のためのその他のオプションについては、バージョン管理機能の使用とデプロイのドキュメント ページをご覧ください。)
既存のプロジェクトの場合は、Git 本番環境ブランチ名を変更する前に、次の操作を検討してください。
- Looker プロジェクトのすべてのデベロッパーに、変更を commit して既存の本番環境ブランチにマージするよう要請し、Git 本番環境ブランチ名を更新して Looker プロジェクト構成に保存するまで作業を一時停止します。
- プロジェクトで統合 pull リクエストを使用している場合は、適宜未解決の pull リクエストを確定してマージします。
- Git プロバイダ側で必要な準備を行います。たとえば、リポジトリで新しいブランチを作成する、既存のデフォルト Git ブランチの名前を変更する、または Looker がマージ用のターゲット ブランチとして使用できるようにブランチを準備するために必要なアクションを行います。少なくとも、使用するブランチが Git リポジトリの既存のブランチであることを確認する必要があります。
プロジェクトが開発ブランチのマージのターゲットとして使用する Git ブランチを変更するには:
- Looker IDE アイコン メニューから [設定] アイコンを選択し、[プロジェクトの設定] ページを表示します。デフォルトで [構成] タブが開きます。
- [Git 本番環境のブランチ名 ] フィールドに、Looker プロジェクトの本番環境ブランチとして使用する Git ブランチの名前を入力します。
- [Save Project Configuration] ボタンをクリックして、変更を保存します。
Import Credentials
[資格情報のインポート] セクションでは、非公開リモート リポジトリの認証情報を管理できます。詳しくは、他のプロジェクトからのファイルのインポートに関するドキュメント ページをご覧ください。
Branch Management
[プロジェクト設定] ページの [ブランチの管理] タブで、プロジェクトに関連付けられているすべての Git ブランチを確認できます。詳細については、バージョン管理機能の使用とデプロイのドキュメント ページをご覧ください。
Git の統合オプション
Git 接続を設定すると、Looker は Git プロバイダを使用して LookML ソースファイルを管理します。詳しくは、バージョン管理機能の使用とデプロイのドキュメント ページをご覧ください。
Looker 管理者である場合、[プロジェクト設定] ページの [設定] タブで [Git の統合] オプションを使用して、Looker と Git の統合のための追加オプションを構成できます。
- オフ: Looker では Git プロバイダのインターフェースへの外部リンクは表示されません。
- リンクの表示: Looker では Git プロバイダのインターフェースへの外部リンクが提供されるため、デベロッパーは Git プロバイダのインターフェースにプロジェクトを表示できます。また、デベロッパーが Git プロバイダのインターフェースにファイルの履歴と Git blame 情報を表示できるように、各プロジェクト ファイルへのリンクも提供されます。リンクの詳細については、Git プロバイダへの外部リンクの統合セクションをご覧ください。
- Pull Requests Recommended: Looker では、Git プロバイダのインターフェースへの外部リンクを提供するだけでなく、pull リクエストを送信して、プロジェクトに追加する前に、別のデベロッパーが変更を承認できるようにすることもできます。設定方法については、プロジェクトの pull リクエストを統合するセクションをご覧ください。
- Pull Requests Required: [Pull Requests Recommended] と同様ですが、LookML デベロッパーは pull リクエストを開いてプロジェクトに対する変更を送信する必要がある点が異なります。設定方法については、プロジェクトの pull リクエストを統合するセクションをご覧ください。
Git 統合設定を保存するには、[Deployment] セクションで [プロジェクト構成の保存] をクリックします。
Git プロバイダへの外部リンクの統合
追加の Git 統合オプション([リンクの表示]、[Pull Requests Recommended]、[Pull Requests Required])のいずれかを有効にした場合、Looker は Git プロバイダのインターフェースに外部リンクを提供します。これらの外部リンクをクリックすると、Git プロバイダのサイトが新しいブラウザタブで開きます。
これらの外部リンクを表示するには、デベロッパーは Git プロバイダのアカウントを持っていて、プロジェクトの Git リポジトリへのアクセス権も持っている必要があります。
各 LookML ファイルのその他の [ファイルオプション] メニューに、Looker は Git プロバイダのサイトへのリンクを提供します。このリンクから、ファイルを表示したり、ファイルの Git blame 情報を表示したり、ファイルの commit 履歴を表示したりできます。
[Git アクション] パネルでは、[<Git provider>
でプロジェクトを表示] オプションを使用して Git プロバイダのサイトでプロジェクト ファイルを開くこともできます。
プロジェクトの pull リクエストを統合する
Looker のデフォルトの Git 統合では、Looker デベロッパーが開発ブランチに変更を commit し、開発ブランチを本番環境ブランチにマージします。Looker 環境にデプロイすると、Looker は本番環境ブランチで最新の commit を使用します(デフォルトの Git ワークフローと、高度な Git 実装のためのその他のオプションについては、バージョン管理機能の使用とデプロイのドキュメント ページをご覧ください。)
Looker デベロッパーが開発ブランチを Looker 本番環境ブランチにマージできるようにするのではなく、[Pull Requests Recommended] または [Pull Requests Required] オプションを使用してプロジェクトを設定できます。
- Pull Requests Recommended: デベロッパーが開発ブランチに変更を commit した後、Looker IDE の Git ボタンをクリックすると、pull リクエストを開いて開発ブランチを本番環境ブランチとマージするよう求めるメッセージが表示されます。その後、デベロッパーは pull リクエストを開いて、Git プロバイダのウェブ インターフェースから、他の Looker デベロッパーに確認と承認をしてもらうことができます。代わりに、デベロッパーは [Git アクション] パネルから [本番環境にデプロイ] オプションを使用して、pull リクエストの作成をスキップして変更を本番環境にデプロイすることもできます。(プロジェクトが高度なデプロイモードで有効になっている場合、[本番環境にデプロイ] オプションは使用できません)。
- Pull Requests Required: デベロッパーが開発ブランチに変更を commit すると、Looker IDE の Git ボタンがデベロッパーに対して pull リクエストを開くよう求めるメッセージが表示されます。デベロッパーは、pull リクエストを開いて開発ブランチを本番環境ブランチにマージする必要があります。その後、他の Looker デベロッパーは、Git プロバイダのウェブ インターフェースから pull リクエストを確認して承認できます。
Looker では、次の Git プロバイダの pull リクエスト統合がサポートされています。
- GitHub
- GitLab
- Bitbucket Cloud
- Bitbucket Server(旧「Stash」)
Looker での pull リクエストの使用に関するその他の注意事項は次のとおりです。
pull リクエストを開くには、デベロッパーは Git プロバイダのアカウントを持ち、プロジェクトの Git リポジトリにアクセス権を持つ必要があります。
インスタンスで IP 許可リスト機能が有効になっている場合、pull リクエストを任意の LookML プロジェクトと統合するには、Git プロバイダが送信リクエストを行う IP アドレスの範囲を許可リストに追加する必要があります。たとえば、現在の GitHub IP アドレスは GitHub 変更履歴に一覧表示されます。IP は変更される場合があり、他の Git プロバイダでは異なります。
詳細デプロイモードを有効にしている場合、高度なデプロイモードでは、マージ関数とデプロイ関数が分離されているため、統合 pull リクエストを使用したプロジェクトの設定で Webhook を構成する必要はありません。
元に戻したい pull リクエストを Looker デベロッパーが発行した場合は、GitHub 経由で Looker から pull リクエストを元に戻す方法のコミュニティ投稿で詳細をご覧ください。
Git pull リクエストを使用すると、Looker にステージング インスタンスを使用できるため、ステージング インスタンスで pull リクエストを有効にして、ステージング インスタンスと本番環境インスタンスを使用できます。すべての開発とコードレビューはステージング環境で行うことができ、レビュー済みのコードは本番環境インスタンスにデプロイできます。これを設定するには、複数のインスタンスで 1 つのリポジトリを使用する Git ワークフロー - 開発、ステージング、本番環境のコミュニティ投稿をご覧ください。
Looker では、マージ commit 方式を使用して、Looker デベロッパーのブランチから本番環境ブランチへの変更をマージします。Git プロバイダのインターフェースを使用する場合は、デベロッパーはスカッシュ マージやリベース マージを使用しないでください。詳細については、Git プロバイダのインターフェースのマージ オプションをご覧ください。
統合された pull リクエストを使用してプロジェクトを設定する
Git pull リクエストを使用して Looker プロジェクトを設定するには:
- プロジェクトで、Looker IDE のアイコン メニューから [プロジェクト設定] を選択します。
- [構成] タブの [Git の統合] セクションで、[Pull Requests Recommended] または [Pull Requests Required] を選択します。
- 必要に応じて、Git プロバイダのインターフェースで自動デプロイ Webhook を設定する場合は、Webhook 情報をコピーしてテキスト ファイルに貼り付けます。プロジェクトが高度なデプロイモードを使用するように構成されている場合は、この手順をスキップできます。後でプロジェクト設定に戻って Webhook 情報を取得することもできます。
- 必要に応じて、Webhook デプロイ シークレットを設定して、Git プロバイダまたは高度なデプロイモードの Webhook からの自動デプロイ Webhook を認証できます。Webhook シークレットを作成するには、[Webhook シークレットの設定] をクリックします。デプロイ シークレットをコピーして、Webhook を Git プロバイダのインターフェースに追加するときに使用するテキスト ファイルに貼り付けます。後でプロジェクト設定に戻ってデプロイ シークレットを追加することもできます。詳細については、Webhook デプロイ シークレットの構成ドキュメント ページをご覧ください。
- [プロジェクト構成の保存] をクリックします。
これで、Looker デベロッパーがプロジェクトに変更を commit するたびに、Looker IDE に [プルリクエストを開く] ボタンが表示されます。このボタンをクリックすると、新しいブラウザタブが開き、Git プロバイダのウェブサイト上の新しい pull リクエスト ページが表示されます。
pull リクエストを使用するように Looker プロジェクトを設定したら、次のいずれかを行って commit を本番環境にデプロイする方法を設定します。
- 本番環境のブランチに結合された最新の commit を自動的にデプロイするには、このページの次のセクションで説明するように、Git プロバイダのインターフェースを使用して Webhook を追加します。
- どのブランチまたは commit をデプロイするのかを手動で指定するには、高度なデプロイモードを有効にします。高度なデプロイモードの有効化と管理については、高度なデプロイモードのドキュメント ページをご覧ください。
Git プロバイダへの Webhook の追加
pull リクエストが有効になっている Looker プロジェクトの場合は、Git プロバイダのインターフェースでデプロイ Webhook を設定できます。この Webhook により、Git プロバイダのインターフェースで pull リクエストをマージするたびに、Looker が本番環境ブランチから最新の commit をデプロイします。
ほとんどの場合、プロジェクトが高度なデプロイモードを使用するように構成されている場合、自動デプロイ Webhook を設定するのは適切ではありません。高度なデプロイモードでは、デプロイする commit とブランチを選択できるため、ほとんどの場合、自動デプロイ Webhook を設定すると、高度なデプロイモードの機能が null 化します。
Git プロバイダのインターフェースに自動デプロイ Webhook を追加するには、まず、プロジェクトの Looker IDE のアイコン メニューから 設定 アイコンをクリックして、Looker のプロジェクト設定に移動します。次に、[Git 統合] セクションから Webhook をコピーします。
Webhook のフォームは <instance_url>/webhooks/projects/<project_name>/deploy
です。
<instance_url>
は、Looker インスタンスの URL に置き換えます。たとえば、Looker インスタンスの URL が example.looker.com
で、プロジェクト名が e_faa
の場合、Webhook は次のようになります。
https://example.looker.com/webhooks/projects/e_faa/deploy
Looker プロジェクト設定から、プロジェクトの Git の Git プロバイダとの統合を認証するための Webhook デプロイ シークレットを取得することもできます。詳細については、Webhook デプロイ シークレットの構成ドキュメント ページをご覧ください。
Webhook URL と Webhook デプロイ シークレットを取得したら、Git プロバイダのインターフェースに入力できます。Git プロバイダが GitHub の場合は、次の手順を行います。
- GitHub リポジトリでプロジェクトのリポジトリ設定に移動します。
- リポジトリの設定で [Webhook] をクリックします。 [Webhook を追加] をクリックして [Webhook を追加] ウィンドウを開きます。
- [Payload URL] フィールドに、Looker の [Git の統合] セクションからコピーした Webhook 情報を貼り付けます。
- 必要に応じて、プロジェクトの Git の Git プロバイダとの統合を認証する Webhook デプロイ シークレットを追加できます。LookML プロジェクトのプロジェクト設定からデプロイ シークレットをコピーし、Git プロバイダのインターフェースの [Secret] フィールドに Secret を貼り付けます。詳細については、Webhook デプロイ シークレットの構成ドキュメント ページをご覧ください。
- [どのイベントでこの Webhook をトリガーしたいですか?] 項目で [push イベントのみ] オプションを選択します。
- [Add webhook] をクリックします。
デプロイ Webhook を使用してリモートの Git リポジトリから pull する
LookML プロジェクトで pull リクエストが有効になっていて、Webhook のデプロイが自動化されていない場合、Looker の本番環境モードに表示される LookML が、Git リポジトリのメイン ブランチの LookML と一致しないことがあります。これは、次のような状況で発生する可能性があります。
- リポジトリに対して pull リクエストが有効な場合
- LookML が、Looker 開発環境の外部で編集されている場合。例:
- Git リポジトリ自体
- 別の Looker インスタンス(ステージング インスタンスなど)
デプロイ Webhook を使用して、Looker 本番環境ブランチをリポジトリのメインブランチと同期できます。
新しいブラウザタブを開き、次の URL を入力します。
<instance_url>
は Looker インスタンス URL に、<project_name>
は LookML プロジェクトの名前に置き換えます。<instance_url>/webhooks/projects/<project name>/deploy
Webhook URL のデプロイを実行すると、空白のウェブページに次のような成功メッセージが表示されます。
{"operations":[{"error":false,"error_code":0,"command":"Checkout Branch #\u003cLooker::GitBranch:0x5798672b\u003e","node_id":728,"results":["Success"]},{"error":false,"error_code":0,"command":"jgit revert_repo","node_id":728,"results":["Success"]}],"new_head":"05f772af48709fc2799fefe408e3fdd895a63284","old_head":"77412cad9fd7ed3eed1627afa201fdf7dcb97dd1"}
これで、Looker の本番環境モードが更新され、リモートの Git メインブランチが反映されました。個人用デベロッパー ブランチと共有ブランチは影響を受けません。
Secret をデプロイして Webhook のリモート Git リポジトリから pull する
LookML プロジェクトでメイン ブランチから本番環境ブランチに変更を push するために Webhook デプロイ シークレットも必要な場合は、前のセクションで説明したデプロイ Webhook を使用してリモート Git リポジトリから pull する方法をご覧ください。
{"error":"Uh oh! Something went wrong."}
または
{"error":"Not found."}
デプロイ Webhook を使用する代わりに、ターミナルで Webhook Secret を指定して次の cURL コマンドを実行できます。次のフィールドを置き換えるようにしてください。
<instance_URL>
は、Looker インスタンスの URL に置き換えます。<deploy_secret>
は、プロジェクトのデプロイ シークレットに置き換えます。<project_name>
は、LookML プロジェクトの名前に置き換えます。
curl -i -X POST -H "X-Looker-Deploy-Secret:<deploy_secret>" https://<instance_url>/webhooks/projects/<project_name>/deploy
たとえば、ecommerce_project インスタンス上の ecommerce_project の本番環境ブランチをリポジトリのメイン ブランチと同期した場合は、次のようになります。
curl -i -X POST -H "X-Looker-Deploy-Secret:123123123secretgoeshere123123123" https://brettcase.looker.com/webhooks/projects/ecommerce_project/deploy
Git プロバイダのインターフェースの結合オプション
Looker プロジェクトが pull リクエストと統合されている場合、デベロッパーは Git プロバイダのインターフェースを使用して pull リクエストを送信し、変更を本番環境ブランチに結合します。
Looker では、開発ブランチから本番環境ブランチに変更を結合する merge commit 方式がサポートされています。ただし、Git プロバイダのインターフェースには、[スカッシュとマージ] や [リベースとマージなど、マージの追加オプションが表示されることがあります。
Looker ではスカッシュ マージまたはリベース マージはサポートされていないため、デベロッパーはこれらのオプションを使用しないでください。可能であれば、リポジトリでこれらのオプションを無効にすることをおすすめします。GitHub リポジトリでこれらのオプションを無効にする手順は次のとおりです。
[設定] タブに移動して、GitHub のプロジェクトのリポジトリ設定にアクセスします。
ヒント: Git インテグレーションで構成されているプロジェクトの場合は、Looker のプロジェクトの Git メニューから [View Project on Git] オプションを使用できます。
リポジトリの設定で、ナビゲーション メニューの [オプション] をクリックします。
[統合ボタン] セクションに移動し、[Allow merge commits] オプションのみをオンにします。[Allow squash merging] チェックボックスと [Allow rebase merging] チェックボックスを無効にします。
マージ オプションを無効にすると、デベロッパーがリポジトリ内のブランチをマージするときに、GitHub で使用できなくなります。