คุณโหลดฟังก์ชันต่อไปนี้ได้จาก
@bazel_tools//tools/build_defs/repo:local.bzl
กฎสำหรับการทำให้ไดเรกทอรีในระบบไฟล์ในเครื่องพร้อมใช้งานเป็นที่เก็บ
ตั้งค่า
หากต้องการใช้กฎเหล่านี้ในส่วนขยายโมดูล ให้โหลดกฎในไฟล์ .bzl แล้วเรียกใช้จากฟังก์ชันการใช้งานของส่วนขยาย เช่น หากต้องการใช้ local_repository ให้ทำดังนี้
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)
หรือจะเรียกใช้กฎของ repo เหล่านี้ในไฟล์ MODULE.bazel โดยตรงด้วย
use_repo_rule ก็ได้
local_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:local.bzl", "local_repository")
local_repository(name = "foo", path = "foo")
local_repository
load("@bazel//tools/build_defs/repo:local.bzl", "local_repository")
local_repository(name, path, repo_mapping)
ทำให้ไดเรกทอรีในเครื่องที่มีไฟล์ Bazel อยู่แล้วพร้อมใช้งานเป็นที่เก็บ ไดเรกทอรีนี้ควรมีไฟล์ BUILD ของ Bazel และไฟล์ขอบเขตของที่เก็บอยู่แล้ว หากไม่มีไฟล์เหล่านี้ ให้ลองใช้ new_local_repository แทน
แอตทริบิวต์
| name | ชื่อ (ต้องระบุ) ชื่อที่ไม่ซ้ำกันสำหรับที่เก็บนี้ | 
| path | สตริง; ต้องระบุ เส้นทางไปยังไดเรกทอรีที่จะทำให้พร้อมใช้งานเป็นที่เก็บ เส้นทางอาจเป็นแบบสัมบูรณ์หรือสัมพัทธ์กับรูทของพื้นที่ทำงานก็ได้ | 
| repo_mapping | พจนานุกรม: สตริง -> สตริง; ไม่บังคับ ในบริบท `WORKSPACE` เท่านั้น: พจนานุกรมจากชื่อที่เก็บในเครื่องไปยังชื่อที่เก็บส่วนกลาง ซึ่งจะช่วยให้ควบคุมการแก้ปัญหาการขึ้นต่อกันของเวิร์กสเปซสำหรับการขึ้นต่อกันของที่เก็บนี้ได้ ตัวอย่างเช่น รายการ `"@foo": "@bar"` จะประกาศว่าเมื่อใดก็ตามที่ที่เก็บนี้ขึ้นอยู่กับ `@foo` (เช่น การขึ้นอยู่กับ `@foo//some:target`) ที่เก็บนี้ควรแก้ปัญหาการขึ้นอยู่ดังกล่าวภายใน `@bar` ที่ประกาศทั่วโลก (`@bar//some:target`) ระบบ _ไม่_ รองรับแอตทริบิวต์นี้ในบริบท `MODULE.bazel` (เมื่อเรียกใช้กฎที่เก็บภายในฟังก์ชันการใช้งานของส่วนขยายโมดูล) | 
new_local_repository
load("@bazel//tools/build_defs/repo:local.bzl", "new_local_repository")
new_local_repository(name, build_file, build_file_content, path, repo_mapping)
ทำให้ไดเรกทอรีในเครื่องที่ไม่มีไฟล์ Bazel พร้อมใช้งานเป็นที่เก็บ ไดเรกทอรีนี้ไม่จำเป็นต้องมีไฟล์ Bazel BUILD หรือไฟล์ขอบเขตของที่เก็บ เนื่องจากกฎของที่เก็บนี้จะสร้างไฟล์ดังกล่าว หากไดเรกทอรีมีไฟล์ Bazel อยู่แล้ว ให้ลองใช้ local_repository แทน
แอตทริบิวต์
| name | ชื่อ (ต้องระบุ) ชื่อที่ไม่ซ้ำกันสำหรับที่เก็บนี้ | 
| build_file | ป้ายกำกับ (ไม่บังคับ) ไฟล์ที่จะใช้เป็นไฟล์ BUILD สำหรับที่เก็บนี้ ต้องระบุ  ไฟล์ที่ป้ายกำกับนี้ระบุไม่จำเป็นต้องชื่อ BUILD แต่สามารถตั้งชื่อได้ เช่น  | 
| build_file_content | สตริง ไม่บังคับ เนื้อหาของไฟล์ BUILD ที่จะสร้างสำหรับที่เก็บนี้ ต้องระบุ  | 
| path | สตริง; ต้องระบุ เส้นทางไปยังไดเรกทอรีที่จะทำให้พร้อมใช้งานเป็นที่เก็บ เส้นทางอาจเป็นแบบสัมบูรณ์หรือสัมพัทธ์กับรูทของพื้นที่ทำงานก็ได้ | 
| repo_mapping | พจนานุกรม: สตริง -> สตริง; ไม่บังคับ ในบริบท `WORKSPACE` เท่านั้น: พจนานุกรมจากชื่อที่เก็บในเครื่องไปยังชื่อที่เก็บส่วนกลาง ซึ่งจะช่วยให้ควบคุมการแก้ปัญหาการขึ้นต่อกันของเวิร์กสเปซสำหรับการขึ้นต่อกันของที่เก็บนี้ได้ ตัวอย่างเช่น รายการ `"@foo": "@bar"` จะประกาศว่าเมื่อใดก็ตามที่ที่เก็บนี้ขึ้นอยู่กับ `@foo` (เช่น การขึ้นอยู่กับ `@foo//some:target`) ที่เก็บนี้ควรแก้ปัญหาการขึ้นอยู่ดังกล่าวภายใน `@bar` ที่ประกาศทั่วโลก (`@bar//some:target`) ระบบ _ไม่_ รองรับแอตทริบิวต์นี้ในบริบท `MODULE.bazel` (เมื่อเรียกใช้กฎที่เก็บภายในฟังก์ชันการใช้งานของส่วนขยายโมดูล) |