次の関数は、@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, commit, init_submodules, patch_args,
patch_cmds, patch_cmds_win, patch_strip, patch_tool, patches,
recursive_init_submodules, remote, repo_mapping, 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 ファイルのコンテンツ。 |
commit |
文字列。省略可
チェックアウトする特定のコミット。branch、tag、commit のいずれか 1 つを指定する必要があります。 |
init_submodules |
ブール値。省略可
リポジトリ内のサブモジュールをクローンするかどうか。 |
patch_args |
文字列のリスト。省略可
パッチツールに渡される引数。デフォルトは -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 |
repo_mapping |
辞書: 文字列 -> 文字列。省略可
`WORKSPACE` コンテキストのみ: ローカル リポジトリ名からグローバル リポジトリ名への辞書。これにより、このリポジトリの依存関係のワークスペース依存関係の解決を制御できます。たとえば、エントリ `"@foo": "@bar"` は、このリポジトリが `@foo` に依存するたびに(`@foo//some:target` への依存関係など)、グローバルに宣言された `@bar`(`@bar//some:target`)内でその依存関係を解決する必要があることを宣言します。 この属性は、`MODULE.bazel` コンテキスト(モジュール拡張機能の実装関数内でリポジトリ ルールを呼び出す場合)ではサポートされていません。 |
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` ファイルとして使用するファイル。`workspace_file` または `workspace_file_content` のいずれか 1 つを指定できます。両方は指定できません。 |
workspace_file_content |
文字列。省略可
このリポジトリの WORKSPACE ファイルのコンテンツ。`workspace_file` または `workspace_file_content` のいずれか 1 つを指定できます。両方は指定できません。 |
new_git_repository
load("@bazel//tools/build_defs/repo:git.bzl", "new_git_repository")
new_git_repository(name, branch, build_file, build_file_content, commit, init_submodules,
patch_args, patch_cmds, patch_cmds_win, patch_strip, patch_tool, patches,
recursive_init_submodules, remote, repo_mapping, 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 ファイルのコンテンツ。 |
commit |
文字列。省略可
チェックアウトする特定のコミット。branch、tag、commit のいずれか 1 つを指定する必要があります。 |
init_submodules |
ブール値。省略可
リポジトリ内のサブモジュールをクローンするかどうか。 |
patch_args |
文字列のリスト。省略可
パッチツールに渡される引数。デフォルトは -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 |
repo_mapping |
辞書: 文字列 -> 文字列。省略可
`WORKSPACE` コンテキストのみ: ローカル リポジトリ名からグローバル リポジトリ名への辞書。これにより、このリポジトリの依存関係のワークスペース依存関係の解決を制御できます。たとえば、エントリ `"@foo": "@bar"` は、このリポジトリが `@foo` に依存するたびに(`@foo//some:target` への依存関係など)、グローバルに宣言された `@bar`(`@bar//some:target`)内でその依存関係を解決する必要があることを宣言します。 この属性は、`MODULE.bazel` コンテキスト(モジュール拡張機能の実装関数内でリポジトリ ルールを呼び出す場合)ではサポートされていません。 |
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` ファイルとして使用するファイル。`workspace_file` または `workspace_file_content` のいずれか 1 つを指定できます。両方は指定できません。 |
workspace_file_content |
文字列。省略可
このリポジトリの WORKSPACE ファイルのコンテンツ。`workspace_file` または `workspace_file_content` のいずれか 1 つを指定できます。両方は指定できません。 |