Git リポジトリのルール

次の関数は、@bazel_tools//tools/build_defs/repo:git.bzl から読み込むことができます。

外部 Git リポジトリのクローン作成のルール。

git_repository

load("@bazel//tools/build_defs/repo:git.bzl", "git_repository")

git_repository(name, branch, build_file, build_file_content, canonical_id, commit, init_submodules,
               patch_args, patch_cmds, patch_cmds_win, patch_strip, patch_tool, patches,
               recursive_init_submodules, remote, remote_module_file_integrity,
               remote_module_file_urls, remote_patch_strip, remote_patches, shallow_since,
               sparse_checkout_file, sparse_checkout_patterns, strip_prefix, tag, verbose,
               workspace_file, workspace_file_content)

外部 Git リポジトリのクローンを作成します。

Git リポジトリのクローンを作成し、指定されたブランチ、タグ、またはコミットをチェックアウトして、そのターゲットをバインディングに使用できるようにします。ブランチ、タグ、コミットが指定されていない場合は、リポジトリのデフォルト ブランチをチェックアウトします。また、チェックアウトされたコミットの ID と日付を特定し、このルールの再現可能なバージョンを提供するパラメータを含む辞書を返します(タグやブランチは必ずしもそうではありません)。

Bazel は、まず指定されたコミットのみの浅いフェッチを試みます。 失敗した場合(通常はサーバーのサポートがないため)、リポジトリの完全なフェッチにフォールバックします。

git_repository よりも http_archive を優先します。 その理由は次のとおりです。

  • Git リポジトリのルールはシステム git(1) に依存しますが、HTTP ダウンローダーは Bazel に組み込まれており、システム依存関係はありません。
  • http_archive はミラーとして urls のリストをサポートしますが、git_repository は単一の remote のみをサポートします。
  • http_archiveリポジトリ キャッシュ で動作しますが、 git_repository は動作しません。詳細については、 #5116 をご覧ください。

属性

name 名前。必須

このリポジトリの一意の名前。

branch 文字列。省略可

チェックアウトするリモート リポジトリのブランチ。branch、tag、commit のいずれか 1 つを指定する必要があります。

build_file ラベル。省略可

このリポジトリの BUILD ファイルとして使用するファイル。この属性は絶対ラベルです(メイン リポジトリには '@//' を使用します)。ファイル名は BUILD にする必要はありませんが、BUILD にすることもできます(BUILD.new-repo-name のようにすると、リポジトリの実際の BUILD ファイルと区別しやすくなります)。

build_file_content 文字列。省略可

このリポジトリの BUILD ファイルの内容。

canonical_id 文字列。省略可

ダウンロードしたファイルの正規 ID。 指定されていて空でない場合、同じ正規 ID のリクエストによってキャッシュに追加されない限り、Bazel はキャッシュからファイルを取得しません。 指定されていない場合や空の場合、Bazel はデフォルトでファイルの URL を正規 ID として使用します。これにより、ハッシュを更新せずに URL を更新するというよくある間違いを回避できます。この間違いは、ローカルではビルドが成功するものの、キャッシュにファイルがないマシンではビルドが失敗する原因となります。この動作は、 --repo_env=BAZEL_HTTP_RULES_URLS_AS_DEFAULT_CANONICAL_ID=0 で無効にできます。

commit 文字列。省略可

チェックアウトする特定のコミット。branch、tag、commit のいずれか 1 つを指定する必要があります。

init_submodules ブール値。省略可

リポジトリ内のサブモジュールのクローンを作成するかどうか。

patch_args 文字列のリスト。省略可

patch ツールに渡される引数。デフォルトは -p0 です(`patch_strip` 属性を参照)。ただし、git で生成されたパッチには通常 -p1 が必要です。複数の -p 引数が指定されている場合は、最後の引数が有効になります。-p 以外の引数が指定されている場合、Bazel は Bazel ネイティブのパッチ実装ではなく、patch コマンドライン ツールを使用します。patch コマンドライン ツールにフォールバックし、patch_tool 属性が指定されていない場合は、`patch` が使用されます。

patch_cmds 文字列のリスト。省略可

パッチの適用後に Linux/macOS で適用される Bash コマンドのシーケンス。

patch_cmds_win 文字列のリスト。省略可

パッチの適用後に Windows で適用される Powershell コマンドのシーケンス。この属性が設定されていない場合、Windows で patch_cmds が実行されます。これには Bash バイナリが存在する必要があります。

patch_strip 整数。省略可

`N` に設定すると、`patch_args` の先頭に `-pN` を挿入するのと同じになります。

patch_tool 文字列。省略可

使用する patch(1) ユーティリティ。これが指定されている場合、Bazel は Bazel ネイティブのパッチ実装ではなく、指定されたパッチツールを使用します。

patches ラベルのリスト。省略可

アーカイブの抽出後にパッチとして適用されるファイルのリスト。デフォルトでは、バイナリ パッチをサポートしていない Bazel ネイティブのパッチ実装が使用されますが、`patch_tool` 属性が指定されている場合、または `patch_args` 属性に `-p` 以外の引数がある場合は、Bazel は patch コマンドライン ツールを使用します。

recursive_init_submodules ブール値。省略可

リポジトリ内のサブモジュールのクローンを再帰的に作成するかどうか。

remote 文字列。必須

リモート Git リポジトリの URI

remote_module_file_integrity 文字列。省略可

内部でのみ使用します。

remote_module_file_urls 文字列のリスト。省略可

内部でのみ使用します。

remote_patch_strip 整数。省略可

リモート パッチのファイル名から削除する先頭のスラッシュの数。

remote_patches 辞書: 文字列 -> 文字列。省略可

パッチファイルの URL とその整合性値のマップ。リポジトリのクローン作成後、`patches` 属性のパッチファイルの適用前に適用されます。Bazel ネイティブのパッチ実装を使用します。パッチストリップ番号は `remote_patch_strip` で指定できます。

shallow_since 文字列。省略可

指定されたコミット以降ではない日付(省略可)。タグまたはブランチが指定されている場合(--depth=1 で常にクローンできる)、引数は使用できません。指定されたコミットに近い日付を設定すると、サーバーが任意のコミットの浅いフェッチをサポートしていない場合でも、リポジトリの浅いクローンを作成できます。git の --shallow-since 実装にバグがあるため、この属性を使用するとフェッチが失敗する可能性があるため、使用することをおすすめしません。

sparse_checkout_file ラベル。省略可

このリポジトリ内のファイルのスパース チェックアウト用の .gitignore スタイルのパターンを含むファイル。`sparse_checkout_patterns` または `sparse_checkout_file` のいずれか 1 つを指定できます。両方は指定できません。

sparse_checkout_patterns 文字列のリスト。省略可

このリポジトリ内のファイルのスパース チェックアウト用のパターン シーケンス。

strip_prefix 文字列。省略可

抽出したファイルから削除するディレクトリ プレフィックス。

tag 文字列。省略可

チェックアウトするリモート リポジトリのタグ。branch、tag、commit のいずれか 1 つを指定する必要があります。

verbose ブール値。省略可
workspace_file ラベル。省略可

操作なしの属性。使用しないでください。

workspace_file_content 文字列。省略可

操作なしの属性。使用しないでください。

環境変数

このリポジトリ ルールは、次の環境変数に依存します。

  • BAZEL_HTTP_RULES_URLS_AS_DEFAULT_CANONICAL_ID

new_git_repository

load("@bazel//tools/build_defs/repo:git.bzl", "new_git_repository")

new_git_repository(name, branch, build_file, build_file_content, canonical_id, commit,
                   init_submodules, patch_args, patch_cmds, patch_cmds_win, patch_strip, patch_tool,
                   patches, recursive_init_submodules, remote, remote_module_file_integrity,
                   remote_module_file_urls, remote_patch_strip, remote_patches, shallow_since,
                   sparse_checkout_file, sparse_checkout_patterns, strip_prefix, tag, verbose,
                   workspace_file, workspace_file_content)

非推奨 - 代わりにドロップイン置換の 'git_repository' を使用してください

属性

name 名前。必須

このリポジトリの一意の名前。

branch 文字列。省略可

チェックアウトするリモート リポジトリのブランチ。branch、tag、commit のいずれか 1 つを指定する必要があります。

build_file ラベル。省略可

このリポジトリの BUILD ファイルとして使用するファイル。この属性は絶対ラベルです(メイン リポジトリには '@//' を使用します)。ファイル名は BUILD にする必要はありませんが、BUILD にすることもできます(BUILD.new-repo-name のようにすると、リポジトリの実際の BUILD ファイルと区別しやすくなります)。

build_file_content 文字列。省略可

このリポジトリの BUILD ファイルの内容。

canonical_id 文字列。省略可

ダウンロードしたファイルの正規 ID。 指定されていて空でない場合、同じ正規 ID のリクエストによってキャッシュに追加されない限り、Bazel はキャッシュからファイルを取得しません。 指定されていない場合や空の場合、Bazel はデフォルトでファイルの URL を正規 ID として使用します。これにより、ハッシュを更新せずに URL を更新するというよくある間違いを回避できます。この間違いは、ローカルではビルドが成功するものの、キャッシュにファイルがないマシンではビルドが失敗する原因となります。この動作は、 --repo_env=BAZEL_HTTP_RULES_URLS_AS_DEFAULT_CANONICAL_ID=0 で無効にできます。

commit 文字列。省略可

チェックアウトする特定のコミット。branch、tag、commit のいずれか 1 つを指定する必要があります。

init_submodules ブール値。省略可

リポジトリ内のサブモジュールのクローンを作成するかどうか。

patch_args 文字列のリスト。省略可

patch ツールに渡される引数。デフォルトは -p0 です(`patch_strip` 属性を参照)。ただし、git で生成されたパッチには通常 -p1 が必要です。複数の -p 引数が指定されている場合は、最後の引数が有効になります。-p 以外の引数が指定されている場合、Bazel は Bazel ネイティブのパッチ実装ではなく、patch コマンドライン ツールを使用します。patch コマンドライン ツールにフォールバックし、patch_tool 属性が指定されていない場合は、`patch` が使用されます。

patch_cmds 文字列のリスト。省略可

パッチの適用後に Linux/macOS で適用される Bash コマンドのシーケンス。

patch_cmds_win 文字列のリスト。省略可

パッチの適用後に Windows で適用される Powershell コマンドのシーケンス。この属性が設定されていない場合、Windows で patch_cmds が実行されます。これには Bash バイナリが存在する必要があります。

patch_strip 整数。省略可

`N` に設定すると、`patch_args` の先頭に `-pN` を挿入するのと同じになります。

patch_tool 文字列。省略可

使用する patch(1) ユーティリティ。これが指定されている場合、Bazel は Bazel ネイティブのパッチ実装ではなく、指定されたパッチツールを使用します。

patches ラベルのリスト。省略可

アーカイブの抽出後にパッチとして適用されるファイルのリスト。デフォルトでは、バイナリ パッチをサポートしていない Bazel ネイティブのパッチ実装が使用されますが、`patch_tool` 属性が指定されている場合、または `patch_args` 属性に `-p` 以外の引数がある場合は、Bazel は patch コマンドライン ツールを使用します。

recursive_init_submodules ブール値。省略可

リポジトリ内のサブモジュールのクローンを再帰的に作成するかどうか。

remote 文字列。必須

リモート Git リポジトリの URI

remote_module_file_integrity 文字列。省略可

内部でのみ使用します。

remote_module_file_urls 文字列のリスト。省略可

内部でのみ使用します。

remote_patch_strip 整数。省略可

リモート パッチのファイル名から削除する先頭のスラッシュの数。

remote_patches 辞書: 文字列 -> 文字列。省略可

パッチファイルの URL とその整合性値のマップ。リポジトリのクローン作成後、`patches` 属性のパッチファイルの適用前に適用されます。Bazel ネイティブのパッチ実装を使用します。パッチストリップ番号は `remote_patch_strip` で指定できます。

shallow_since 文字列。省略可

指定されたコミット以降ではない日付(省略可)。タグまたはブランチが指定されている場合(--depth=1 で常にクローンできる)、引数は使用できません。指定されたコミットに近い日付を設定すると、サーバーが任意のコミットの浅いフェッチをサポートしていない場合でも、リポジトリの浅いクローンを作成できます。git の --shallow-since 実装にバグがあるため、この属性を使用するとフェッチが失敗する可能性があるため、使用することをおすすめしません。

sparse_checkout_file ラベル。省略可

このリポジトリ内のファイルのスパース チェックアウト用の .gitignore スタイルのパターンを含むファイル。`sparse_checkout_patterns` または `sparse_checkout_file` のいずれか 1 つを指定できます。両方は指定できません。

sparse_checkout_patterns 文字列のリスト。省略可

このリポジトリ内のファイルのスパース チェックアウト用のパターン シーケンス。

strip_prefix 文字列。省略可

抽出したファイルから削除するディレクトリ プレフィックス。

tag 文字列。省略可

チェックアウトするリモート リポジトリのタグ。branch、tag、commit のいずれか 1 つを指定する必要があります。

verbose ブール値。省略可
workspace_file ラベル。省略可

操作なしの属性。使用しないでください。

workspace_file_content 文字列。省略可

操作なしの属性。使用しないでください。