---
title: 'cache repository rules'
---

The following functions can be loaded from
`@bazel_tools//tools/build_defs/repo:cache.bzl`.
<!-- Generated with Stardoc: http://skydoc.bazel.build -->

Returns the default canonical id to use for downloads.

<a id="get_default_canonical_id"></a>

## get_default_canonical_id

<pre>
get_default_canonical_id(<a href="#get_default_canonical_id-repository_ctx">repository_ctx</a>, <a href="#get_default_canonical_id-urls">urls</a>)
</pre>

Returns the default canonical id to use for downloads.

Returns `""` (empty string) when Bazel is run with
`--repo_env=BAZEL_HTTP_RULES_URLS_AS_DEFAULT_CANONICAL_ID=0`.

e.g.
```python
load("@bazel_tools//tools/build_defs/repo:cache.bzl", "get_default_canonical_id")
# ...
    repository_ctx.download_and_extract(
        url = urls,
        integrity = integrity
        canonical_id = get_default_canonical_id(repository_ctx, urls),
    ),
```

### Parameters

<table class="params-table">
<colgroup>
<col class="col-param" />
<col class="col-description" />
</colgroup>
<tbody>
<tr id="get_default_canonical_id-repository_ctx">
<td><code>repository_ctx</code></td>
<td>

required.

<p>

The repository context of the repository rule calling this utility
function.

</p>
</td>
</tr>
<tr id="get_default_canonical_id-urls">
<td><code>urls</code></td>
<td>

required.

<p>

A list of URLs matching what is passed to `repository_ctx.download` and
`repository_ctx.download_and_extract`.

</p>
</td>
</tr>
</tbody>
</table>

