以下函数可从 @bazel_tools//tools/build_defs/repo:utils.bzl 加载。
用于在提取后操作外部代码库的实用程序。
设置
这些实用程序旨在供其他代码库规则使用。可以按如下方式加载。
load(
    "@bazel_tools//tools/build_defs/repo:utils.bzl",
    "workspace_and_buildfile",
    "patch",
    "update_attrs",
)
download_remote_files
download_remote_files(ctx, auth)
用于下载远程文件的实用函数。
此规则旨在用于代码库规则的实现函数中。它假设 remote_file_urls 和 remote_file_integrity 参数存在于 ctx.attr 中。
参数
| ctx | 必需。 调用此实用程序函数的代码库规则的代码库上下文。 | 
| auth | 可选。
默认值为 None一个可选的字典,用于指定部分网址的身份验证信息。 | 
get_auth
get_auth(ctx, urls)
一种实用函数,用于从 .netrc 文件中获取网址列表的正确身份验证字典。
支持可选的 netrc 和 auth_patterns 属性(如果可用)。
参数
| ctx | 必需。 调用此实用程序函数的代码库规则的代码库上下文。 | 
| urls | 必需。 要读取的网址列表 | 
返回
可传递给 repository_ctx.download 的身份验证字典
可能
maybe(repo_rule, name, kwargs)
仅在代码库尚不存在时添加该代码库的实用函数。
这是为了实现 https://bazel.build/rules/deploying#dependencies 中记录的 safe_repositories.bzl 宏。
参数
| repo_rule | 必需。 代码库规则函数。 | 
| name | 必需。 要创建的代码库的名称。 | 
| kwargs | 可选。 传递给 repo_rule 函数的其余实参。 | 
返回
无,在需要时将代码库定义为附带效应。
parse_netrc
parse_netrc(contents, filename)
用于解析至少一个基本 .netrc 文件的实用程序函数。
参数
| contents | 必需。 解析器的输入。 | 
| filename | 可选。
默认值为 None要在错误消息中使用的文件名(如果有)。 | 
返回
将机器名称映射到包含有关机器信息的字典的字典
patch
patch(ctx, patches, patch_cmds, patch_cmds_win, patch_tool, patch_args, auth)
实现对已提取的代码库进行修补。
此规则旨在用于代码库规则的实现函数中。如果未指定参数 patches、patch_tool、patch_args、patch_cmds 和 patch_cmds_win,则会从 ctx.attr 中获取这些参数。
参数
| ctx | 必需。 调用此实用程序函数的代码库规则的代码库上下文。 | 
| patches | 可选。
默认值为 None要应用的补丁文件。字符串、标签或路径的列表。 | 
| patch_cmds | 可选。
默认值为 None用于修补的 Bash 命令,一次传递一个给 bash -c。字符串列表 | 
| patch_cmds_win | 可选。
默认值为 None要运行的用于修补的 Powershell 命令,一次一个地传递给 powershell /c。字符串列表。如果此参数的布尔值为 false,则将使用 patch_cmds,并忽略此参数。 | 
| patch_tool | 可选。
默认值为 None用于应用补丁的补丁工具的执行路径。字符串。 | 
| patch_args | 可选。
默认值为 None要传递给补丁工具的实参。字符串列表。 | 
| auth | 可选。
默认值为 None一个可选的字典,用于指定部分网址的身份验证信息。 | 
read_netrc
read_netrc(ctx, filename)
用于解析至少一个基本 .netrc 文件的实用程序函数。
参数
| ctx | 必需。 调用此实用程序函数的代码库规则的代码库上下文。 | 
| filename | 必需。 要读取的 .netrc 文件的名称 | 
返回
将机器名称映射到包含有关机器信息的字典的字典
read_user_netrc
read_user_netrc(ctx)
读取用户的默认 netrc 文件。
参数
| ctx | 必需。 调用此实用函数的代码库规则的代码库上下文。 | 
返回
将机器名称映射到包含有关机器信息的字典的字典。
update_attrs
update_attrs(orig, keys, override)
用于更改特定代码库规则调用并向其添加指定属性的实用函数。
用于使规则可重现。
参数
| orig | 必需。 通过特定规则调用实际设置的属性(显式或隐式)的字典 | 
| keys | 必需。 此规则上定义的全套属性 | 
| override | 必需。 要替换或添加到原始属性的属性字典 | 
返回
包含插入/更新的替换键的属性字典
use_netrc
use_netrc(netrc, urls, patterns)
根据已解析的 netrc 文件和网址列表计算身份验证字典。
参数
| netrc | 必需。 已解析为字典的 netrc 文件,例如通过 read_netrc 获取的 netrc 文件 | 
| urls | 必需。 网址列表。 | 
| patterns | 必需。 网址到授权模式的可选字典 | 
返回
适合作为 ctx.download 的身份验证实参的字典;更确切地说,该字典会将 netrc 文件提供登录名和密码的所有网址映射到一个字典,其中包含相应的登录名、密码和可选的授权模式,以及“type”到“basic”或“pattern”的映射。
workspace_and_buildfile
workspace_and_buildfile(ctx)
用于写入 WORKSPACE 和(如果需要)BUILD 文件的实用函数。
此规则旨在用于库规则的实现函数中。它假定 ctx.attr 中存在参数 name、build_file、build_file_content、workspace_file 和 workspace_file_content;后四个参数的值可能为 None。
参数
| ctx | 必需。 调用此实用程序函数的代码库规则的代码库上下文。 |