# The JSONPath filter expression used to identify which PRs to close.
# The data filtered is the pull request data along with other metadata passed in
# by probot.
# See https://goessner.net/articles/JsonPath/
# `true` will close all PRs.
filters:
  - true

# The message to post to the closed PR.
commentBody: |
  Thanks for your contribution!  Unfortunately, we don't use GitHub pull
  requests to manage code contributions to this repository.  Instead, please
  see [README.md](../blob/master/README.md) which provides full instructions
  on how to get involved.

# Whether to add a label to the closed PR.
addLabel: false
