Fixes
- Avoid binding the connection twice [142](https://github.com/jupyterhub/ldapauthenticator/pull/142) ([m2hofi94](https://github.com/m2hofi94))
- Gracefully handle username lookups with list return values [117](https://github.com/jupyterhub/ldapauthenticator/pull/117) ([metrofun](https://github.com/metrofun))
- Misc cleanup + fixes [95](https://github.com/jupyterhub/ldapauthenticator/pull/95) ([dhirschfeld](https://github.com/dhirschfeld)) - _Empty DN templates are now ignored, `search_filter` and `allowed_groups` are no longer mutually exclusive._
Improvements
- Allow authentication with empty bind_dn_template when using lookup_dn [106](https://github.com/jupyterhub/ldapauthenticator/pull/106) ([behrmann](https://github.com/behrmann))
- Ignore username returned by `resolve_username` [105](https://github.com/jupyterhub/ldapauthenticator/pull/105) ([behrmann](https://github.com/behrmann)) - _`use_lookup_dn_username` configuration option added._
- Lookup additional LDAP user info [103](https://github.com/jupyterhub/ldapauthenticator/pull/103) ([manics](https://github.com/manics)) - _`user_info_attributes` is now saved in `auth_state` for a valid user._
Maintenance
- Fix CI linting failures and add testing of Py38 [157](https://github.com/jupyterhub/ldapauthenticator/pull/157) ([consideRatio](https://github.com/consideRatio))
- Add long description for pypi [155](https://github.com/jupyterhub/ldapauthenticator/pull/155) ([manics](https://github.com/manics))
- Add badges according to team-compass [154](https://github.com/jupyterhub/ldapauthenticator/pull/154) ([consideRatio](https://github.com/consideRatio))
- Travis deploy tags to PyPI [153](https://github.com/jupyterhub/ldapauthenticator/pull/153) ([manics](https://github.com/manics))
- Add bind_dn_template to Active Directory instructions [147](https://github.com/jupyterhub/ldapauthenticator/pull/147) ([irasnyd](https://github.com/irasnyd))
- Expand contributor's guide [135](https://github.com/jupyterhub/ldapauthenticator/pull/135) ([marcusianlevine](https://github.com/marcusianlevine))
- Add Travis CI setup and simple tests [134](https://github.com/jupyterhub/ldapauthenticator/pull/134) ([marcusianlevine](https://github.com/marcusianlevine))
- Update project url in setup.py [92](https://github.com/jupyterhub/ldapauthenticator/pull/92) ([dhirschfeld](https://github.com/dhirschfeld))
- Update README.md [85](https://github.com/jupyterhub/ldapauthenticator/pull/85) ([dhirschfeld](https://github.com/dhirschfeld))
- Bump version to 1.2.2 [84](https://github.com/jupyterhub/ldapauthenticator/pull/84) ([dhirschfeld](https://github.com/dhirschfeld))
Contributors to this release
([GitHub contributors page for this release](https://github.com/jupyterhub/ldapauthenticator/graphs/contributors?from=2018-06-14&to=2020-01-31&type=c))
[behrmann](https://github.com/search?q=repo%3Ajupyterhub%2Fldapauthenticator+involves%3Abehrmann+updated%3A2018-06-14..2020-01-31&type=Issues) | [betatim](https://github.com/search?q=repo%3Ajupyterhub%2Fldapauthenticator+involves%3Abetatim+updated%3A2018-06-14..2020-01-31&type=Issues) | [consideRatio](https://github.com/search?q=repo%3Ajupyterhub%2Fldapauthenticator+involves%3AconsideRatio+updated%3A2018-06-14..2020-01-31&type=Issues) | [dhirschfeld](https://github.com/search?q=repo%3Ajupyterhub%2Fldapauthenticator+involves%3Adhirschfeld+updated%3A2018-06-14..2020-01-31&type=Issues) | [irasnyd](https://github.com/search?q=repo%3Ajupyterhub%2Fldapauthenticator+involves%3Airasnyd+updated%3A2018-06-14..2020-01-31&type=Issues) | [m2hofi94](https://github.com/search?q=repo%3Ajupyterhub%2Fldapauthenticator+involves%3Am2hofi94+updated%3A2018-06-14..2020-01-31&type=Issues) | [manics](https://github.com/search?q=repo%3Ajupyterhub%2Fldapauthenticator+involves%3Amanics+updated%3A2018-06-14..2020-01-31&type=Issues) | [marcusianlevine](https://github.com/search?q=repo%3Ajupyterhub%2Fldapauthenticator+involves%3Amarcusianlevine+updated%3A2018-06-14..2020-01-31&type=Issues) | [meeseeksmachine](https://github.com/search?q=repo%3Ajupyterhub%2Fldapauthenticator+involves%3Ameeseeksmachine+updated%3A2018-06-14..2020-01-31&type=Issues) | [metrofun](https://github.com/search?q=repo%3Ajupyterhub%2Fldapauthenticator+involves%3Ametrofun+updated%3A2018-06-14..2020-01-31&type=Issues) | [ramkrishnan8994](https://github.com/search?q=repo%3Ajupyterhub%2Fldapauthenticator+involves%3Aramkrishnan8994+updated%3A2018-06-14..2020-01-31&type=Issues) | [titansmc](https://github.com/search?q=repo%3Ajupyterhub%2Fldapauthenticator+involves%3Atitansmc+updated%3A2018-06-14..2020-01-31&type=Issues) | [yuvipanda](https://github.com/search?q=repo%3Ajupyterhub%2Fldapauthenticator+involves%3Ayuvipanda+updated%3A2018-06-14..2020-01-31&type=Issues)