次の関数は @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 をチェックアウトして、そのターゲットをバインディングに使用できるようにします。また、実際にチェックアウトされた commit の ID と日付を特定し、このルールの再現可能なバージョンを提供するパラメータを含む辞書を返します(タグは必ずしもそうではありません)。
Bazel はまず、指定された commit のみのシャロー フェッチを試行します。 失敗した場合(通常はサーバー サポートがないため)、リポジトリの完全な取得にフォールバックします。
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.new-repo-name などにすると、リポジトリの実際の BUILD ファイルと区別しやすくなります。  | 
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 | 
文字列(省略可) 使用する 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」のいずれかを指定するか、どちらも指定しないことができます。両方を指定することはできません。  | 
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 をチェックアウトして、そのターゲットをバインディングに使用できるようにします。また、実際にチェックアウトされた commit の ID と日付を特定し、このルールの再現可能なバージョンを提供するパラメータを含む辞書を返します(タグは必ずしもそうではありません)。
Bazel は、まず指定された commit のみの浅いフェッチを試みます。失敗した場合(通常はサーバー サポートがないため)、リポジトリの完全な取得にフォールバックします。
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_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 | 
文字列(省略可) 使用する 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」のいずれかを指定するか、どちらも指定しないことができます。両方を指定することはできません。  |