> ## Documentation Index
> Fetch the complete documentation index at: https://preview.bazel.build/llms.txt
> Use this file to discover all available pages before exploring further.

# cache repository rules

The following functions can be loaded from
`@bazel_tools//tools/build_defs/repo:cache.bzl`.

Returns the default canonical id to use for downloads.

<a id="get_default_canonical_id" />

## get\_default\_canonical\_id

<pre>
  load("@bazel//tools/build\_defs/repo:cache.bzl", "get\_default\_canonical\_id")

  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 theme={null}
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>
