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

このページでは、バージョン管理のために Git と統合するようにプロジェクトの要素を構成する方法について説明します。

プロジェクトの設定

[Project Settings] ページでオプションを変更するには、Looker 管理者である必要があります。管理者ではない Looker 開発者の方は、[Project Settings] ページを表示できますが、オプションを変更することはできません。

[Project Settings] ページにプロジェクトの構成オプションがあります。このページを表示するには、プロジェクトを開いて左側のアイコン メニューから [設定] アイコンを選択します。

ここから次の 3 つのセクションにアクセスできます。

構成

[Projects Settings] ページの [Configuration] タブでは、次の設定を構成できます。

  • 名前: プロジェクトの名前。テキストを編集して [Save Project Configuration] ボタンをクリックすると、プロジェクト名を変更できます。詳細については、プロジェクト情報へのアクセスと編集に関するドキュメント ページをご覧ください。
  • Git Production Branch Name: プロジェクトの開発ブランチ用のマージ ターゲットとして使用する Git ブランチ名を指定します。Git ブランチは Git リポジトリに存在している必要があります。詳細については、このページの Git 本番環境のブランチ名をご覧ください。

  • コード品質: プロジェクトに変更を commit する前に、デベロッパーに対し、プロジェクトに対する LookML 検証ツールの実行を必須にするかどうかを決定します。コード品質には次のオプションがあります。

    • commit の前にエラーと警告の修正を要求する: Looker デベロッパーは、LookML バリデータを正常に実行し、すべてのエラーと警告を解決した後でのみ、変更を commit できます。この設定をおすすめします。
    • commit の前にエラーの修正のみが必要: Looker デベロッパーは LookML 検証ツールを実行してすべてのエラーを解決した後にのみ、commit できます。デベロッパーは、警告が存在する場合に変更を commit できます。この方法はおすすめしませんが、Looker の更新後に新しい LookML が動作するようになった場合などに便利です。
    • 誤りのあるコードの commit を許可する: Looker デベロッパーは、LookML 検証ツールを実行することなく、エラーや警告が LookML に存在するかどうかにかかわらず、変更を commit できます。このオプションは、LookML が機能しないか、誤った結果をもたらす可能性があるため、おすすめしません。

  • このプロジェクトを本番環境にデプロイする前にデータテストに合格することを必須にする: デベロッパーは、変更をデプロイする前にデータテストを実行する必要があります。データテストに合格すると、IDE によってデベロッパーは変更を本番環境にデプロイできます。LookML プロジェクトでのデータテストの設定については、test パラメータのドキュメント ページをご覧ください。プロジェクトでのデータテストの実行については、バージョン管理とデプロイの使用に関するドキュメント ページをご覧ください。

  • Git 統合: Git プロバイダとの統合レベルを指定します。詳細については、Git 統合オプションをご覧ください。

  • 高度なデプロイモードを有効にする: 有効にすると、ユーザーは任意の SHA、タグ、ブランチを本番環境にデプロイできるようになります。高度なデプロイモードを有効にしてバージョン管理を使用する方法について詳しくは、高度なデプロイモードのページをご覧ください。

  • Webhook Deploy Secret: 本番環境に変更を Looker インスタンスにデプロイするための認証を設定します。詳細については、Webhook デプロイ シークレットの構成に関するドキュメント ページをご覧ください。

  • Reset Git Connection: このボタンをクリックすると [Configure Git] ウィンドウが開き、Git リポジトリの接続設定を更新できます。

    Git 接続をリセットすると、マスター ブランチの Git 履歴が保持されます。また、デベロッパー モードを同期すると、各 Looker デベロッパーの個人用ブランチの履歴も保持されます。すべてのブランチの履歴を保持するには、ヘルプセンターの記事新しい Git リポジトリへの移行をご覧ください。

  • Delete Project: このボタンでは、プロジェクトを削除し、Looker インスタンス全体の開発環境と本番環境の全プロジェクトからすべての LookML を削除します。

  • Git の概要: このセクションには、プロジェクトの Git 構成と現在のユーザーの Git ブランチ情報が表示されます。

Git 本番環境のブランチ名

デフォルトの Looker Git 統合では、すべての Looker デベロッパーが master というブランチに変更をマージします。[Git Production Branch Name] フィールドを使用して、Looker のターゲット ブランチとして使用する Git リポジトリのブランチ(Looker 開発者がマージされるブランチ)を指定できます。(デフォルトの Git ワークフローと、高度な Git 実装のその他のオプションについては、バージョン管理とデプロイの使用に関するドキュメント ページをご覧ください)。

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

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

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

  1. 左側のアイコンメニューから [設定] アイコンをクリックして、[プロジェクト設定] ページの [設定] タブに移動します。
  2. [Git Production Branch Name] フィールドに、Looker プロジェクトの本番環境ブランチとして使用する Git ブランチの名前を入力します。
  3. 下にスクロールして [プロジェクト設定を保存] ボタンをクリックし、変更を保存します。

Import Credentials

[Import Credentials] セクションでは、プライベート リモート リポジトリの認証情報を管理できます。詳細については、他のプロジェクトからファイルをインポートするをご覧ください。

Branch Management

[Projects Settings] ページの [Branch Management] タブに、プロジェクトに関連付けられているすべての Git ブランチが表示されます。詳細については、バージョン管理とデプロイの使用に関するドキュメント ページをご覧ください。

Git の統合オプション

Git 接続を設定すると、Looker は Git プロバイダを使用して LookML ソースファイルを管理します(バージョン管理とデプロイのドキュメント ページを参照)。

Looker 管理者は、[Project Settings] ページの [Configuration] タブの [Git Integration] オプションを使用して、Looker と Git の統合に追加オプションを構成できます。

GitHub では、Git 統合オペレーションを実行するために個人用のアクセス トークンが必要です。プロジェクトで個人用アクセス トークンを使用していない場合は、GitHub で個人用アクセス トークンを作成し、個人用アクセス トークンを使用して Git 接続をリセットします。

  • オフ: Looker は Git プロバイダのインターフェースへの外部リンクを表示しません。Git リポジトリが Looker ホストされている場合、これは必須オプションです。
<aside class="deprecated">
Looker-hosted Git repositories are deprecated. See the [Migrating to a new Git repository](https://help.looker.com/hc/en-us/articles/360001310847-Migrating-to-a-New-Git-Repository) Help Center article for instructions on moving your project to a new Git repository.
To check if your Git repository is Looker-hosted, scroll to the bottom of the **Branch Management** tab of the **Project Settings** page to see the **Remote Origin URL**. Looker-hosted repos have a URL starting with `git@github.com:llooker`.
</aside>
  • リンクの表示: Looker は Git プロバイダのインターフェースへの外部リンクを提供し、デベロッパーは Git プロバイダのインターフェースでプロジェクトを確認できるようになります。Looker には各プロジェクト ファイルへのリンクも用意されているため、デベロッパーは Git プロバイダのインターフェース上でファイルの履歴や Git の過失に関する情報を確認できます。リンクについては、外部リンクを Git プロバイダに統合するをご覧ください。
  • 推奨される pull リクエスト: 開発者は、Git プロバイダのインターフェースへの外部リンクを提供するだけでなく、pull リクエストを送信することもできます。これにより、別のデベロッパーが変更をプロジェクトに追加する前に承認できるようになります。この設定方法については、プロジェクトの pull リクエストの統合をご覧ください。
  • pull リクエストが必要: これは上記と同じですが、LookML デベロッパーがプロジェクトに変更を送信するために pull リクエストを開く必要がある点が異なります。この設定方法については、プロジェクトの pull リクエストの統合をご覧ください。

Git 統合の設定を保存するには、下にスクロールして、[Deployment] セクションの [Save Project Configuration] をクリックします。

追加の Git 統合オプション([Show Links]、[Pull Requests Recommended]、[Pull Requests required])のいずれかを有効にしている場合、Looker は Git プロバイダのインターフェースへの外部リンクを提供します。外部リンクをクリックすると、Git プロバイダのサイトへの新しいブラウザタブが開きます。

これらの外部リンクを表示するには、デベロッパーに Git プロバイダのアカウントがあり、プロジェクトの Git リポジトリにアクセスできる必要があります。

Looker は各 LookML ファイルのその他メニューから、Git プロバイダのサイトへのリンクを示しており、ファイルの表示、ファイルの Git ブラム情報の表示、ファイルの commit 履歴の表示を行うことができます。

Looker の [Git Actions] パネルで、Git プロバイダのサイトにあるプロジェクト ファイルへのリンクを確認します。

プロジェクトの pull リクエストの統合

デフォルトの Looker Git 統合では、Looker デベロッパーは変更を開発ブランチに commit してから、開発ブランチを本番環境ブランチにマージします。その後、Looker 環境にデプロイすると、Looker は本番環境ブランチで最新の commit を使用します。(デフォルトの Git ワークフローと、高度な Git 実装のその他のオプションについては、バージョン管理とデプロイの使用に関するドキュメント ページをご覧ください)。

Looker デベロッパーが開発ブランチを Looker 本番環境ブランチに統合できるようにする代わりに、[Pull Requests Recommended] または [Pull Requests required] オプションを使用してプロジェクトを設定する。

  • pull リクエストの推奨事項: デベロッパーが開発ブランチに変更を commit すると、Looker IDE の Git ボタンにより、pull リクエストを開いて開発ブランチを本番環境ブランチにマージするよう求められます。デベロッパーはその後、他の Looker デベロッパーの pull リクエストを開き、Git プロバイダのウェブ インターフェースからレビューと承認を行うことができます。あるいは、デベロッパーが Git Actions パネル[Deploy to Production] オプションを使用して pull リクエストの作成をスキップし、変更を本番環境にデプロイすることもできます。(プロジェクトで高度なデプロイモードが有効になっている場合、[Deploy to Production] オプションは使用できません)。
  • pull リクエストが必要: デベロッパーが開発ブランチに変更を commit すると、Looker IDE の Git ボタンにより、pull リクエストを開くように求めるプロンプトが表示されます。デベロッパーは、開発ブランチを本番環境ブランチにマージするための pull リクエストを開く必要があります。その後、他の Looker デベロッパーは Git プロバイダのウェブ インターフェースから pull リクエストを確認して承認できます。

Looker では、次の Git プロバイダに対して pull リクエストの統合がサポートされています。

  • GitHub
  • GitLab
  • Bitbucket Cloud
  • Bitbucket Server(旧称「Stash」)

Looker での pull リクエストの使用に関するその他の注意事項は次のとおりです。

  • インスタンスで IP 許可リスト機能が有効になっている場合、pull リクエストを LookML プロジェクトと統合するには、Git プロバイダが送信リクエストを行う IP アドレスの範囲を許可リストに追加する必要があります。たとえば、現在の GitHub の IP アドレスは、GitHub の変更履歴で確認できます。IP は変更されることがあり、他の Git プロバイダでは変更されます。

  • 高度なデプロイモードを有効にしている場合、統合 pull リクエストを使用したプロジェクトの設定セクションで Webhook を構成する必要はありません。高度なデプロイモードでは、マージ機能とデプロイ機能が分離されます。

  • Looker デベロッパーが、元に戻す pull リクエストを発行した場合は、このコミュニティのトピックで、pull リクエストを元に戻す方法を確認してください。

  • Git の pull リクエストによって Looker のステージング インスタンスを使用できるため、ステージング インスタンスと本番環境インスタンスを用意して、ステージング インスタンスで pull リクエストを有効にできます。開発とコードのレビューはすべてステージング環境で行えるので、レビューしたコードを必要に応じて本番環境インスタンスにデプロイできます。これを設定するには、複数のインスタンスにわたる 1 つのリポジトリを使用した Git ワークフロー - 開発、ステージング、本番環境のヘルプセンター記事を参照してください。

  • Looker は merge commit メソッドを使用して、Looker デベロッパー ブランチから本番環境ブランチに変更をマージします。Git プロバイダのインターフェースを使用する際は、デベロッパーがスカッシュ マージリベース マージを使用しないでください。詳細は、Git Provider' Interface の Merge Options をご覧ください。

統合 pull リクエストを使用したプロジェクトの設定

Git pull リクエストを使用して Looker プロジェクトを設定するには:

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

Looker デベロッパーがプロジェクトに変更を commit するたびに、Looker IDE に [Open Pull Request] ボタンが表示されるようになりました。ボタンをクリックすると、新しいブラウザタブが 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 のプロジェクト設定に移動し、[Git Integration] セクションから Webhook をコピーします。

この例の Webhook 情報は <host_url>/webhooks/projects/e_faa/deploy です。

<host_url> は、Looker インスタンスの URL に置き換えます。例:

https://docsexamples.dev.looker.com/webhooks/projects/e_faa/deploy

Looker プロジェクトの設定から Webhook デプロイ シークレットを取得して、プロジェクトの Git との統合について認証することもできます。詳細については、Webhook デプロイ シークレットの構成に関するドキュメントをご覧ください。

Webhook URL とデプロイ Webhook シークレットを取得したら、それらを Git プロバイダのインターフェースに入力できます。Git プロバイダとして GitHub を使用する例を次に示します。

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

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

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

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

デプロイ Webhook を使用して、Looker の本番環境ブランチをリポジトリのマスター ブランチに同期させることができます。

  1. 新しいブラウザタブを開き、次の URL を入力します。<instance_url> は、Looker インスタンス URL で置き換えます。<project_name> は、LookML プロジェクトの名前に置き換えます。 none <instance_url>/webhooks/projects/<project name>/deploy
  2. デプロイ Webhook URL を実行すると、空のウェブページに次のような成功メッセージが表示されます。none {"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 マスター ブランチが反映されます。個人用のデベロッパー ブランチと共有ブランチは影響を受けません。

デプロイ シークレットを使用した Webhook のリモート Git リポジトリからの pull

LookML プロジェクトで、マスター ブランチから本番環境ブランチに変更を push するための webhook デプロイ シークレットも必要な場合は、前のセクションのリモート Git リポジトリから pull するデプロイ Webhook を使用して本番環境ブランチをリポジトリのマスター ブランチと同期すると、次のいずれかのエラーが表示されます。

{"error":"Uh oh! Something went wrong."}

または

{"error":"Not found."}

デプロイ Webhook を使用する代わりに、ターミナルで Webhook シークレットを使用して次の 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. Git プロバイダのウェブサイトでプロジェクトのリポジトリ設定に移動します。

    ヒント: Git 統合で構成されたプロジェクトの場合は、Looker でプロジェクトの [Git] メニューの [View Project on Git] オプションを使用できます。

  2. リポジトリの設定で [オプション] をクリックします。

  3. [Merge button] までスクロールし、[Allow merge commits] オプションのみをオンのままにします。[スカッシュ マージを許可する] オプションと [リベース マージを許可する] オプションのチェックボックスをオフにします。

これらのチェックボックスをオフにすると、リポジトリでブランチをマージするときに、これらのオプションは使用できません。