# Below we forbid everything and only allow what we know, that's much easier
# than blocking about 500 different test files and bug report outputs.
/.*
/*
!/.cirrus.yml
!/.gitattributes
!/.github
!/.gitignore
!/.travis.yml
!/CHANGELOG
!/LICENSE
!/BRANCHES
!/Makefile
!/README
!/INSTALL
!/CONTRIBUTING
!/MAINTAINERS
!/SUBVERS
!/VERDATE
!/VERSION
!/addons
!/admin
!/dev
!/doc
!/ebtree
!/examples
!/include
!/src
!/tests
!/debian
!/scripts
!/reg-tests
# Reject some generic files
*.o
*.a
*~
*.rej
*.orig
*.bak
# And reject some specific files
/admin/halog/halog
/admin/dyncookie/dyncookie
/admin/iprange/ip6range
/admin/iprange/iprange
/admin/systemd/haproxy.service
dev/base64/base64rev-gen
dev/flags/flags
dev/poll/poll
dev/tcploop/tcploop
dev/hpack/decode
dev/hpack/gen-rht
/src/dlmalloc.c
/tests/test_hashes
doc/lua-api/_build
