Git リポジトリのルール

次の関数は、ソースから読み込めます @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.new-repo-name などにすると、リポジトリの実際の BUILD ファイルと区別しやすくなります。

build_file_content String;省略可

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

commit String;省略可

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

init_submodules ブール値省略可

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

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

パッチツールに渡される引数。デフォルトは -p0 ですが、通常、git によって生成されたパッチには -p1 が必要です。複数の -p 引数が指定されている場合は、最後の引数が有効になります。-p 以外の引数が指定されている場合、Bazel はフォールバックして、Bazel ネイティブのパッチ実装ではなく、パッチ コマンドライン ツールを使用します。パッチ コマンドライン ツールにフォールバックし、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 String;必須

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

repo_mapping 辞書: 文字列 ->String;必須

ローカル リポジトリ名からグローバル リポジトリ名への辞書。これにより、このリポジトリの依存関係について、ワークスペースの依存関係の解決を制御できます。

たとえば、エントリ "@foo": "@bar"` は、このリポジトリが `@foo` に依存する場合は常に(`@foo//some:target` への依存関係など、グローバルに宣言された `@bar`(`@bar//some:target`)内でその依存関係を解決する必要があることを宣言します。

shallow_since String;省略可

(指定された commit の後ではない)任意の日付タグまたはブランチが指定されている場合、引数は使用できません(--depth=1 を使用すると常にクローニングできます)。このような日付を指定された commit の近くに設定すると、サーバーが任意の commit のシャロー フェッチをサポートしていない場合でも、リポジトリのシャロー クローンが可能になります。git の --shallow-ince 実装からのバグのため、フェッチが失敗する可能性があるため、この属性の使用はおすすめしません。

strip_prefix String;省略可

抽出されたファイルから削除するディレクトリ接頭辞。

tag String;省略可

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

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

このリポジトリの「WORKSPACE」ファイルとして使用するファイル。「workspace_file」または「workspace_file_content」のどちらか一方を指定するか、どちらも指定できません。両方を指定することはできません。

workspace_file_content String;省略可

このリポジトリの 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.new-repo-name などにすると、リポジトリの実際の BUILD ファイルと区別しやすくなります。

build_file_content String;省略可

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

commit String;省略可

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

init_submodules ブール値省略可

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

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

パッチツールに渡される引数。デフォルトは -p0 ですが、通常、git によって生成されたパッチには -p1 が必要です。複数の -p 引数が指定されている場合は、最後の引数が有効になります。-p 以外の引数が指定されている場合、Bazel はフォールバックして、Bazel ネイティブのパッチ実装ではなく、パッチ コマンドライン ツールを使用します。パッチ コマンドライン ツールにフォールバックし、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 String;必須

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

repo_mapping 辞書: 文字列 ->String;必須

ローカル リポジトリ名からグローバル リポジトリ名への辞書。これにより、このリポジトリの依存関係について、ワークスペースの依存関係の解決を制御できます。

たとえば、エントリ "@foo": "@bar"` は、このリポジトリが `@foo` に依存する場合は常に(`@foo//some:target` への依存関係など、グローバルに宣言された `@bar`(`@bar//some:target`)内でその依存関係を解決する必要があることを宣言します。

shallow_since String;省略可

(指定された commit の後ではない)任意の日付タグまたはブランチが指定されている場合、引数は使用できません(--depth=1 を使用すると常にクローニングできます)。このような日付を指定された commit の近くに設定すると、サーバーが任意の commit のシャロー フェッチをサポートしていない場合でも、リポジトリのシャロー クローンが可能になります。git の --shallow-ince 実装からのバグのため、フェッチが失敗する可能性があるため、この属性の使用はおすすめしません。

strip_prefix String;省略可

抽出されたファイルから削除するディレクトリ接頭辞。

tag String;省略可

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

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

このリポジトリの「WORKSPACE」ファイルとして使用するファイル。「workspace_file」または「workspace_file_content」のどちらか一方を指定するか、どちらも指定できません。両方を指定することはできません。

workspace_file_content String;省略可

このリポジトリの WORKSPACE ファイルの内容。「workspace_file」または「workspace_file_content」のどちらか一方を指定するか、どちらも指定できません。両方を指定することはできません。