Configuring project version control settings(プロジェクトのバージョン管理の設定)

このページでは、バージョン管理のために 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 デベロッパーが変更を main というブランチにマージします。[Git 本番環境のブランチ名] フィールドを使用して、Looker デベロッパーのブランチがマージされるターゲット ブランチとして Looker が使用する Git リポジトリからのブランチを指定できます。(デフォルトの Git ワークフローと、高度な Git 実装のためのその他のオプションについては、バージョン管理機能の使用とデプロイのドキュメント ページをご覧ください。)

既存のプロジェクトの場合は、Git 本番環境ブランチ名を変更する前に、次のことを行うことを検討してください。

  • Looker プロジェクトのすべてのデベロッパーに、変更を commit して既存の本番環境ブランチにマージするよう要請し、Git 本番環境ブランチ名を更新して Looker プロジェクト構成に保存するまで作業を一時停止します。
  • プロジェクトで統合 pull リクエストを使用している場合は、適宜未解決の pull リクエストを確定してマージします。
  • Git プロバイダ側で必要な準備を行います。たとえば、リポジトリで新しいブランチを作成する、既存のデフォルト Git ブランチの名前を変更する、または Looker がマージ用のターゲット ブランチとして使用できるようにブランチを準備するために必要なアクションを行います。少なくとも、使用するブランチが Git リポジトリ内の既存のブランチであることを確認する必要があります。

プロジェクトが開発ブランチのマージのターゲットとして使用する Git ブランチを変更するには:

  1. Looker IDE のアイコンメニューから [設定] アイコンを選択し、[プロジェクト設定] ページを表示します。デフォルトで [構成] タブが開きます。
  2. [Git 本番環境のブランチ名 ] フィールドに、Looker プロジェクトの本番環境ブランチとして使用する Git ブランチの名前を入力します。
  3. [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] セクションの [Save Project Configuration] をクリックします。

追加の 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 プロジェクトを設定するには:

  1. プロジェクトの Looker IDE アイコン メニューから [プロジェクト設定] を選択します。
  2. [構成] タブの [Git の統合] セクションで、[Pull Requests Recommended] または [Pull Requests Required] を選択します。
  3. 必要に応じて、Git プロバイダのインターフェースに自動デプロイ Webhook を設定する場合は、Webhook 情報をコピーしてテキスト ファイルに貼り付けます。プロジェクトが高度なデプロイモードを使用するように構成されている場合は、この手順をスキップできます。後で決定してプロジェクト設定に戻って Webhook 情報を取得することもできます。
  4. 必要に応じて、Webhook デプロイ シークレットを設定して、Git プロバイダからの自動デプロイ Webhook または高度なデプロイモード Webhook を認証できます。Webhook シークレットを作成するには、[Webhook シークレットの設定] をクリックします。デプロイ シークレットをコピーして、Webhook を Git プロバイダのインターフェースに追加するときに使用するテキスト ファイルに貼り付けます。後でプロジェクト設定に戻って、デプロイ シークレットを追加することもできます。詳細については、Webhook デプロイ シークレットの構成ドキュメント ページをご覧ください。
  5. [プロジェクト構成の保存] をクリックします。

これで、Looker デベロッパーがプロジェクトに変更を commit するたびに、Looker IDE に [プルリクエストを開く] ボタンが表示されます。このボタンをクリックすると、新しいブラウザタブが開き、Git プロバイダのウェブサイト上の新しい pull リクエスト ページが表示されます。

pull リクエストを使用するように Looker プロジェクトを設定したら、次のいずれかを行って commit を本番環境にデプロイする方法を設定します。

  • 本番環境のブランチに結合された最新の commit を自動的にデプロイするには、このページの次のセクションで説明するように、Git プロバイダのインターフェースを使用して Webhook を追加します。
  • どのブランチまたは commit をデプロイするのかを手動で指定するには、高度なデプロイモードを有効にします。高度なデプロイモードの有効化と管理については、高度なデプロイモードのドキュメント ページをご覧ください。

Git プロバイダに Webhook を追加する

pull リクエストに対して有効になっている Looker プロジェクトでは、Git プロバイダのインターフェースにデプロイ Webhook を設定できます。この Webhook は、Git プロバイダのインターフェースで pull リクエストをマージするたびに、本番環境ブランチからの最新の commit をデプロイするように Looker をトリガーします。

ほとんどの場合、プロジェクトが高度なデプロイモードを使用するように構成されている場合、自動デプロイ Webhook を設定するのは適切ではありません。高度なデプロイモードでは、デプロイする commit とブランチを選択できるため、ほとんどの場合、自動デプロイ Webhook を設定すると、高度なデプロイモードの機能が無効になります。

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 の場合は、次の手順を行います。

  1. GitHub リポジトリでプロジェクトのリポジトリ設定に移動します。
  2. リポジトリの設定で [Webhook] をクリックします。 [Webhook を追加] をクリックして [Webhook を追加] ウィンドウを開きます。
  3. [Payload URL] フィールドに、Looker の [Git の統合] セクションからコピーした Webhook 情報を貼り付けます。
  4. 必要に応じて、プロジェクトの Git の Git プロバイダとの統合を認証する Webhook デプロイ シークレットを追加できます。LookML プロジェクトのプロジェクト設定からデプロイ シークレットをコピーし、Git プロバイダのインターフェースの [Secret] フィールドに Secret を貼り付けます。詳細については、Webhook デプロイ シークレットの構成ドキュメント ページをご覧ください。
  5. [どのイベントでこの Webhook をトリガーしたいですか?] 項目で [push イベントのみ] オプションを選択します。
  6. [Add webhook] をクリックします。

デプロイ Webhook を使用してリモートの Git リポジトリから pull する

LookML プロジェクトで pull リクエストが有効になっていて、Webhook のデプロイが自動化されていない場合、Looker の本番環境モードに表示される LookML が、Git リポジトリのメイン ブランチの LookML と一致しないことがあります。これは、次のような状況で発生する可能性があります。

  • リポジトリに対して pull リクエストが有効な場合
  • LookML が Looker 開発環境の外部で編集されている場合:
    • Git リポジトリ自体で
    • 別の Looker インスタンス(ステージング インスタンスなど)

デプロイ Webhook を使用して、Looker 本番環境ブランチをリポジトリのメインブランチと同期できます。

  1. 新しいブラウザタブを開き、次の URL を入力します。<instance_url> は Looker インスタンス URL に置き換え、<project_name> は LookML プロジェクトの名前に置き換えます。

    <instance_url>/webhooks/projects/<project name>/deploy
    
  2. デプロイ 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

たとえば、Brettcase インスタンス上の 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 リポジトリでこれらのオプションを無効にするには、次の手順を行います。

  1. [設定] タブに移動して、GitHub のプロジェクトのリポジトリ設定にアクセスします。

    ヒント: Git 統合で構成されているプロジェクトの場合、Looker のプロジェクトの Git メニューから [Git でプロジェクトを表示] オプションを使用できます。

  2. リポジトリの設定で、ナビゲーション メニューから [オプション] をクリックします。

  3. [統合ボタン] セクションに移動し、[Allow merge commits] オプションのみをオンにします。[Allow squash merging] チェックボックスと [Allow rebase merging] チェックボックスを無効にします。

マージ オプションを無効にすると、デベロッパーがリポジトリ内のブランチをマージする際に、GitHub で使用できなくなります。