We’ve had a similar issue with Amethyst. The fact that rustfmt changes / changed its formatting very often made it hard to keep the crate formatted.
We thought about a bot, but that would cause a lot of rebasing, which just becomes too much work for larger PRs.
Currently, we are using https://concourse-ci.org/ to show separate status reports (one for the build, one for the book tests and one for rustfmt).
That way, we can ask contributors to format whenever it makes sense. Note that the status report shown here does not make a merge with bors fail, so it’s just indicative.