> ## 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.

# local repository rules

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

Rules for making directories in the local filesystem available as repos.

### Setup

To use these rules in a module extension, load them in your .bzl file and then call them from your
extension's implementation function. For example, to use `local_repository`:

```python theme={null}
load("@bazel_tools//tools/build_defs/repo:local.bzl", "local_repository")

def _my_extension_impl(mctx):
  local_repository(name = "foo", path = "foo")

my_extension = module_extension(implementation = _my_extension_impl)
```

Alternatively, you can directly call these repo rules in your MODULE.bazel file with
`use_repo_rule`:

```python theme={null}
local_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:local.bzl", "local_repository")
local_repository(name = "foo", path = "foo")
```

<a id="local_repository" />

## local\_repository

<pre>
  load("@bazel//tools/build\_defs/repo:local.bzl", "local\_repository")

  local\_repository(<a href="#local_repository-name">name</a>, <a href="#local_repository-path">path</a>)
</pre>

Makes a local directory that already contains Bazel files available as a repo. This directory should contain Bazel BUILD files and a repo boundary file already. If it doesn't contain these files, consider using [`new_local_repository`](#new_local_repository) instead.

**ATTRIBUTES**

<table class="params-table">
  <colgroup>
    <col class="col-param" />

    <col class="col-description" />
  </colgroup>

  <tbody>
    <tr id="local_repository-name">
      <td><code>name</code></td>

      <td>
        <a href="https://bazel.build/concepts/labels#target-names">Name</a>; required

        <p>
          A unique name for this repository.
        </p>
      </td>
    </tr>

    <tr id="local_repository-path">
      <td><code>path</code></td>

      <td>
        String; required

        <p>
          The path to the directory to make available as a repo.

          The path can be either absolute, or relative to the workspace root.
        </p>
      </td>
    </tr>
  </tbody>
</table>

<a id="new_local_repository" />

## new\_local\_repository

<pre>
  load("@bazel//tools/build\_defs/repo:local.bzl", "new\_local\_repository")

  new\_local\_repository(<a href="#new_local_repository-name">name</a>, <a href="#new_local_repository-build_file">build\_file</a>, <a href="#new_local_repository-build_file_content">build\_file\_content</a>, <a href="#new_local_repository-path">path</a>)
</pre>

Makes a local directory that doesn't contain Bazel files available as a repo. This directory need not contain Bazel BUILD files or a repo boundary file; they will be created by this repo rule. If the directory already contains Bazel files, consider using [`local_repository`](#local_repository) instead.

**ATTRIBUTES**

<table class="params-table">
  <colgroup>
    <col class="col-param" />

    <col class="col-description" />
  </colgroup>

  <tbody>
    <tr id="new_local_repository-name">
      <td><code>name</code></td>

      <td>
        <a href="https://bazel.build/concepts/labels#target-names">Name</a>; required

        <p>
          A unique name for this repository.
        </p>
      </td>
    </tr>

    <tr id="new_local_repository-build_file">
      <td><code>build\_file</code></td>

      <td>
        <a href="https://bazel.build/concepts/labels">Label</a>; optional

        <p>
          A file to use as a BUILD file for this repo.

          Exactly one of `build_file` and `build_file_content` must be specified.

          The file addressed by this label does not need to be named BUILD, but can be. Something like `BUILD.new-repo-name` may work well to distinguish it from actual BUILD files.
        </p>
      </td>
    </tr>

    <tr id="new_local_repository-build_file_content">
      <td><code>build\_file\_content</code></td>

      <td>
        String; optional

        <p>
          The content of the BUILD file to be created for this repo.

          Exactly one of `build_file` and `build_file_content` must be specified.
        </p>
      </td>
    </tr>

    <tr id="new_local_repository-path">
      <td><code>path</code></td>

      <td>
        String; required

        <p>
          The path to the directory to make available as a repo.

          The path can be either absolute, or relative to the workspace root.
        </p>
      </td>
    </tr>
  </tbody>
</table>
