# Contribors to oauth2client / google-auth

## Maintainers

* [Jon Wayne Parrott](https://github.com/jonparrott)
* [Danny Hermes](https://github.com/dhermes)
* [Brian Watson](https://github.com/bjwatson)

Previous maintainers:

* [Nathaniel Manista](https://github.com/nathanielmanistaatgoogle)
* [Craig Citro](https://github.com/craigcitro)
* [Joe Gregorio](https://github.com/jcgregorio)

## Contributors

This list is generated from git commit authors.

* aalexand <aalexand@google.com>
* Aaron <aaronwinter@users.noreply.github.com>
* Adam Chainz <me@adamj.eu>
* ade@google.com
* Alexandre Vivien <alx.vivien@gmail.com>
* Ali Afshar <afshar@google.com>
* Andrzej Pragacz <apragacz@o2.pl>
* api.nickm@gmail.com
* Ben Demaree <bendemaree@gmail.com>
* Bill Prin <waprin@gmail.com, waprin@google.com>
* Brendan McCollam <brendan@mccoll.am, bmccollam@uchicago.edu>
* Craig Citro <craigcitro@gmail.com, craigcitro@google.com>
* Dan Ring <dfring@gmail.com>
* Daniel Hermes <dhermes@google.com, daniel.j.hermes@gmail.com>
* Danilo Akamine <danilowz@gmail.com>
* daryl herzmann <akrherz@iastate.edu>
* dlorenc <lorenc.d@gmail.com>
* Dominik Miedziński <dominik@mdzn.pl>
* dr. Kertész Csaba-Zoltán <cskertesz@gmail.com>
* Dustin Farris <dustin@dustinfarris.com>
* Eddie Warner <happyspace@gmail.com>
* Edwin Amsler <EdwinGuy@GMail.com>
* elibixby <elibixby@google.com>
* Emanuele Pucciarelli <ep@acm.org>
* Eric Koleda <eric.koleda@google.com>
* Frederik Creemers <frederikcreemers@gmail.com>
* Guido van Rossum <guido@google.com>
* Harsh Vardhan <harshvd95@gmail.com>
* Herr Kaste <thdz.x@gmx.net>
* INADA Naoki <inada-n@klab.com>
* JacobMoshenko <moshenko@google.com>
* Jay Lee <jay0lee@gmail.com>
* Jed Hartman <jhartman@google.com>
* Jeff Terrace <jterrace@gmail.com, jterrace@google.com>
* Jeffrey Sorensen <sorensenjs@users.noreply.github.com>
* Jeremi Joslin <jeremi@collabspot.com>
* Jin Liu <liujin@google.com>
* Joe Beda <jbeda@google.com>
* Joe Gregorio <jcgregorio@google.com, joe.gregorio@gmail.com>
* Johan Euphrosine <proppy@google.com>
* John Asmuth <jasmuth@gmail.com, jasmuth@google.com>
* John Vandenberg <jayvdb@gmail.com>
* Jon Wayne Parrott <jon.wayne.parrott@gmail.com, jonwayne@google.com>
* Jose Alcerreca <jalc@google.com>
* KCs <cskertesz@gmail.com>
* Keith Maxwell <keith.maxwell@gmail.com>
* Ken Payson <kpayson@google.com>
* Kevin Regan <regank@google.com>
* lraccomando <lraccomando@gmail.com>
* Luar Roji <cyberplant@users.noreply.github.com>
* Luke Blanshard <leadpipe@google.com>
* Marc Cohen <marccohen@google.com>
* Mark Pellegrini <markpell@google.com>
* Martin Trigaux <mat@odoo.com>
* Matt McDonald <mmcdonald@google.com>
* Nathan Naze <nanaze@gmail.com>
* Nathaniel Manista <nathaniel@google.com>
* Orest Bolohan <orest@google.com>
* Pat Ferate <pferate@gmail.com>
* Patrick Costello <pcostello@google.com>
* Rafe Kaplan <rafek@google.com>
* rahulpaul@google.com <rahulpaul@google.com>
* RM Saksida <rsaksida@gmail.com>
* Robert Kaplow <rkaplow@google.com>
* Robert Spies <wilford@google.com>
* Sergei Trofimovich <siarheit@google.com>
* sgomes@google.com <sgomes@google.com>
* Simon Cadman <src@niftiestsoftware.com>
* soltanmm <soltanmm@users.noreply.github.com>
* Sébastien de Melo <sebastien.de-melo@ubicast.eu>
* takuya sato <sato-taku@klab.com>
* thobrla <thobrla@google.com>
* Tom Miller <tom.h.miller@gmail.com>
* Tony Aiuto <aiuto@google.com>
* Travis Hobrla <thobrla@google.com>
* Veres Lajos <vlajos@gmail.com>
* Vivek Seth <vivekseth.m@gmail.com>
* Éamonn McManus <eamonn@mcmanus.net>
