# Settings in here control defaults for `repo upload` checks for all projects
# listed in the manifest.  Do not turn on things here without first consulting
# the wider Android team, and make sure you send out a PSA before landing.

[Options]
ignore_merged_commits = true

[Builtin Hooks]
commit_msg_test_field = true
android_test_mapping_format = true

[Tool Paths]
bpfmt = ${REPO_ROOT}/prebuilts/build-tools/${BUILD_OS}/bin/bpfmt
clang-format = ${REPO_ROOT}/prebuilts/clang/host/${BUILD_OS}/clang-stable/bin/clang-format
git-clang-format = ${REPO_ROOT}/prebuilts/clang/host/${BUILD_OS}/clang-stable/bin/git-clang-format
gofmt = ${REPO_ROOT}/prebuilts/go/${BUILD_OS}/bin/gofmt
google-java-format = ${REPO_ROOT}/prebuilts/tools/common/google-java-format/google-java-format
google-java-format-diff = ${REPO_ROOT}/prebuilts/tools/common/google-java-format/google-java-format-diff.py
rustfmt = ${REPO_ROOT}/prebuilts/rust/${BUILD_OS}/stable/rustfmt
cpplint = ${REPO_ROOT}/external/google-styleguide/cpplint/cpplint.py
