# Buildtools for bazel

This repository contains developer tools for working with Google's `bazel` buildtool.

* [buildifier](buildifier/README.md) For formatting BUILD, BUILD.bazel and BUCK files in a standard way
* [buildozer](buildozer/README.md) For doing command-line operations on these files.
* [unused_deps](unused_deps/README.md) For finding unneeded dependencies in
[java_library](https://docs.bazel.build/versions/main/be/java.html#java_library) rules.

[![Build status](https://badge.buildkite.com/6a80fcf7909883296cada2e474286ea627994b9130aed110e2.svg)](https://buildkite.com/bazel/buildtools-postsubmit)

## Setup

See instructions in each tool's directory.
