次の関数は、ソースから読み込めます
@bazel_tools//tools/build_defs/repo:git.bzl
。
外部 Git リポジトリのクローンを作成するためのルール。
git_repository
git_repository(name, branch, build_file, build_file_content, commit, init_submodules, patch_args, patch_cmds, patch_cmds_win, patch_tool, patches, recursive_init_submodules, remote, repo_mapping, shallow_since, strip_prefix, tag, verbose, workspace_file, workspace_file_content)
外部 Git リポジトリのクローンを作成します。
Git リポジトリのクローンを作成し、指定されたタグをチェックアウトするか、commit する そのターゲットをバインディングに使用できるようにします。また、Terraform から commit が実際にチェックアウトして、その日付とパラメータを含むディクショナリを返す ルールの再現可能なバージョンを提供する(タグは あります)。
Bazel は、まず指定された commit のみの浅いフェッチを試みます。これが失敗した場合(通常はサーバー サポートが不足しているため)、リポジトリの完全な取得にフォールバックします。
git_repository
よりも http_archive
を優先します。
その理由は次のとおりです。
- Git リポジトリ ルールはシステムの
git(1)
に依存しますが、HTTP ダウンローダーはビルドされます Bazel に移行し、システムの依存関係がないことを確認します。 http_archive
はミラーとしてurls
のリストをサポートし、git_repository
は単一のremote
のみをサポートします。http_archive
はリポジトリ キャッシュでは機能しますが、git_repository
。詳しくは、 #5116 をご覧ください。
属性
name |
名前(必須) このリポジトリの一意の名前。 |
branch |
String;省略可
チェックアウトします。branch、tag、commit のいずれかを 1 つだけ指定する必要があります。 |
build_file |
ラベル:省略可
このリポジトリのビルド ファイルとして使用するファイル。この属性は絶対ラベルです(メイン リポジトリの場合は「@//」を使用します)。ファイルの名前は BUILD にする必要はありませんが、BUILD にすることもできます(リポジトリの実際の BUILD ファイルと区別するために、BUILD.new-repo-name などの名前を付けるとよいでしょう。 |
build_file_content |
文字列(省略可) このリポジトリの BUILD ファイルの内容。 |
commit |
文字列(省略可) チェックアウトする特定の commit を指定します。branch、tag、commit のいずれかを 1 つだけ指定する必要があります。 |
init_submodules |
ブール値(省略可) リポジトリ内のサブモジュールのクローンを作成するかどうか。 |
patch_args |
文字列のリスト。省略可
パッチツールに渡される引数。デフォルトは -p0 ですが、通常、git によって生成されたパッチには -p1 が必要です。-p 引数が複数指定されている場合は、最後の引数が有効になります。-p 以外の引数が指定されている場合、Bazel は Bazel ネイティブのパッチ実装ではなく、patch コマンドライン ツールを使用します。パッチ コマンドライン ツールにフォールバックし、patch_tool 属性が指定されていない場合、patch が使用されます。 |
patch_cmds |
文字列のリスト。省略可
パッチ適用後に Linux / macOS で適用する Bash コマンドのシーケンス。 |
patch_cmds_win |
文字列のリスト(省略可) パッチ適用後に Windows に適用される Powershell コマンドの順序。この属性が設定されていない場合、patch_cmds が Windows で実行されます。この場合、Bash バイナリが存在する必要があります。 |
patch_tool |
String;省略可
使用する patch(1) ユーティリティ。これを指定すると、Bazel ネイティブのパッチ実装ではなく、指定されたパッチツールが使用されます。 |
patches |
ラベルのリスト(省略可) アーカイブの抽出後にパッチとして適用されるファイルのリスト。デフォルトでは、Bazel ネイティブのパッチ実装が使用されますが、これはファズ マッチとバイナリ パッチをサポートしていません。ただし、patch_tool 属性が指定されている場合、または patch_args 属性に「-p」以外の引数がある場合は、Bazel はパッチ コマンドライン ツールを使用します。 |
recursive_init_submodules |
ブール値(省略可) リポジトリでサブモジュールを再帰的にクローンを作成するかどうか。 |
remote |
文字列(必須) リモートの Git リポジトリの URI |
repo_mapping |
辞書: 文字列 ->String;必須
ローカル リポジトリ名からグローバル リポジトリ名への辞書。これにより、このリポジトリの依存関係のワークスペース依存関係解決を制御できます。 たとえば、エントリ "@foo": "@bar"` は、このリポジトリが `@foo` に依存する場合は常に(`@foo//some:target` への依存関係など、グローバルに宣言された `@bar`(`@bar//some:target`)内でその依存関係を解決する必要があることを宣言します。 |
shallow_since |
文字列(省略可) (指定された commit の後ではない)任意の日付タグやブランチが指定されている場合、引数は使用できません(--depth=1 を使用して常にクローニングできます)。指定した commit に近い日付を設定すると、サーバーが任意の commit の浅いフェッチをサポートしていなくても、リポジトリの浅いクローンを作成できる場合があります。git の --shallow-since 実装以降のバグのため、フェッチが失敗する可能性があるため、この属性の使用はおすすめしません。 |
strip_prefix |
文字列(省略可) 抽出されたファイルから削除するディレクトリ接頭辞。 |
tag |
文字列(省略可) タグがチェックアウトされたリモート リポジトリに存在します。branch、tag、commit のいずれかを 1 つだけ指定する必要があります。 |
verbose |
ブール値省略可 |
workspace_file |
ラベル:省略可
このリポジトリの「WORKSPACE」ファイルとして使用するファイル。「workspace_file」または「workspace_file_content」のどちらか一方を指定するか、どちらも指定できません。両方を指定することはできません。 |
workspace_file_content |
文字列(省略可) このリポジトリの WORKSPACE ファイルのコンテンツ。「workspace_file」または「workspace_file_content」のどちらか一方を指定するか、どちらも指定できません。両方を指定することはできません。 |
new_git_repository
new_git_repository(name, branch, build_file, build_file_content, commit, init_submodules, patch_args, patch_cmds, patch_cmds_win, patch_tool, patches, recursive_init_submodules, remote, repo_mapping, shallow_since, strip_prefix, tag, verbose, workspace_file, workspace_file_content)
外部 Git リポジトリのクローンを作成します。
Git リポジトリのクローンを作成し、指定されたタグをチェックアウトするか、commit する そのターゲットをバインディングに使用できるようにします。また、Terraform から commit が実際にチェックアウトして、その日付とパラメータを含むディクショナリを返す ルールの再現可能なバージョンを提供する(タグは あります)。
Bazel は、まず指定された commit のみの浅いフェッチを試みます。失敗した場合(通常はサーバー サポートがないため)、 リポジトリの完全なフェッチ。
git_repository
よりも http_archive
を優先します。
その理由は次のとおりです。
- Git リポジトリ ルールはシステムの
git(1)
に依存しますが、HTTP ダウンローダーはビルドされます Bazel に移行し、システムの依存関係がないことを確認します。 http_archive
はミラーとしてurls
のリストをサポートし、git_repository
は単一のremote
のみをサポートします。http_archive
はリポジトリ キャッシュでは機能しますが、git_repository
。詳しくは、 #5116 をご覧ください。
属性
name |
名前(必須) このリポジトリの一意の名前。 |
branch |
String;省略可
チェックアウトします。branch、tag、commit のいずれか 1 つのみを指定する必要があります。 |
build_file |
ラベル(省略可) このリポジトリの BUILD ファイルとして使用するファイル。この属性は絶対ラベルです(メイン リポジトリの場合は「@//」を使用します)。ファイルの名前は BUILD にする必要はありませんが、BUILD にすることもできます(リポジトリの実際の BUILD ファイルと区別するために、BUILD.new-repo-name などの名前を付けるとよいでしょう。 |
build_file_content |
文字列(省略可) このリポジトリの BUILD ファイルの内容。 |
commit |
文字列(省略可) チェックアウトする特定の commit を指定します。branch、tag、commit のいずれかを 1 つだけ指定する必要があります。 |
init_submodules |
ブール値(省略可) リポジトリ内のサブモジュールのクローンを作成するかどうか。 |
patch_args |
文字列のリスト。省略可
パッチツールに渡される引数。デフォルトは -p0 ですが、通常、git によって生成されたパッチには -p1 が必要です。-p 引数が複数指定されている場合は、最後の引数が有効になります。-p 以外の引数が指定されている場合、Bazel は Bazel ネイティブのパッチ実装ではなく、patch コマンドライン ツールを使用します。パッチ コマンドライン ツールにフォールバックし、patch_tool 属性が指定されていない場合、patch が使用されます。 |
patch_cmds |
文字列のリスト。省略可
パッチ適用後に Linux / macOS で適用する Bash コマンドのシーケンス。 |
patch_cmds_win |
文字列のリスト(省略可) パッチ適用後に Windows に適用される Powershell コマンドの順序。この属性が設定されていない場合、patch_cmds が Windows で実行されます。この場合、Bash バイナリが存在する必要があります。 |
patch_tool |
String;省略可
使用する patch(1) ユーティリティ。これが指定されている場合、Bazel は Bazel ネイティブのパッチ実装ではなく、指定されたパッチツールを使用します。 |
patches |
ラベルのリスト省略可
アーカイブの抽出後にパッチとして適用するファイルのリスト。デフォルトでは、Bazel ネイティブのパッチ実装が使用されますが、これはファズ マッチとバイナリ パッチをサポートしていません。ただし、patch_tool 属性が指定されている場合、または patch_args 属性に「-p」以外の引数がある場合は、Bazel はパッチ コマンドライン ツールを使用します。 |
recursive_init_submodules |
ブール値(省略可) リポジトリでサブモジュールを再帰的にクローンを作成するかどうか。 |
remote |
文字列(必須) リモート Git リポジトリの URI |
repo_mapping |
ディクショナリ: String -> String(必須) ローカル リポジトリ名からグローバル リポジトリ名への辞書。これにより、このリポジトリの依存関係のワークスペース依存関係解決を制御できます。 たとえば、エントリ "@foo": "@bar"` は、このリポジトリが `@foo` に依存する場合は常に(`@foo//some:target` への依存関係など、グローバルに宣言された `@bar`(`@bar//some:target`)内でその依存関係を解決する必要があることを宣言します。 |
shallow_since |
文字列(省略可) (指定された commit の後ではない)任意の日付タグやブランチが指定されている場合、引数は使用できません(--depth=1 を使用して常にクローニングできます)。指定した commit に近い日付を設定すると、サーバーが任意の commit の浅いフェッチをサポートしていなくても、リポジトリの浅いクローンを作成できる場合があります。git の --shallow-since 実装以降のバグのため、フェッチが失敗する可能性があるため、この属性の使用はおすすめしません。 |
strip_prefix |
文字列(省略可) 抽出されたファイルから削除するディレクトリ接頭辞。 |
tag |
文字列(省略可) タグがチェックアウトされたリモート リポジトリに存在します。branch、tag、commit のいずれかを 1 つだけ指定する必要があります。 |
verbose |
ブール値省略可 |
workspace_file |
ラベル(省略可) このリポジトリの「WORKSPACE」ファイルとして使用するファイル。「workspace_file」または「workspace_file_content」のどちらか一方を指定するか、どちらも指定できません。両方を指定することはできません。 |
workspace_file_content |
文字列(省略可) このリポジトリの WORKSPACE ファイルの内容。「workspace_file」または「workspace_file_content」のどちらか一方を指定するか、どちらも指定できません。両方を指定することはできません。 |