1e310dd91SPatrick Williams# tof-voters 2e310dd91SPatrick Williams 3e72e5669SPatrick WilliamsThis tool is used for determining who is qualified for voting in a TOF election, 4e310dd91SPatrick Williamsbased on the 5e310dd91SPatrick Williams[requirements](https://github.com/openbmc/docs/blob/master/tof/membership-and-voting.md#metrics) 6e72e5669SPatrick Williamsset out by the TOF. 7e72e5669SPatrick Williams 8e72e5669SPatrick WilliamsThe tool will query Gerrit for commits and reviews, process them, and generate a 9e72e5669SPatrick Williamsreport of qualified individuals. 10e72e5669SPatrick Williams 11e72e5669SPatrick WilliamsThe typical use of the tool is something like this: 12e310dd91SPatrick Williams 13e72e5669SPatrick Williams```sh 14e72e5669SPatrick Williams./voters dump-gerrit --after=2021-06-30 15e72e5669SPatrick Williams./voters analyze-commits --before "2022-01-01" --after "2021-06-30" 16e72e5669SPatrick Williams./voters analyze-reviews --before "2022-01-01" --after "2021-06-30" 17e72e5669SPatrick Williams./voters report 18*ed5643f6SAndrew Jefferyjq '[ .[] | select(.qualified) | {(.name): .points} ] | add | to_entries | sort_by(.value) | reverse | from_entries' data/report.json 19e72e5669SPatrick Williams``` 20e72e5669SPatrick Williams 21e72e5669SPatrick WilliamsThe above will yield a JSON dictionary of "users:points" where 'qualified' is 22e72e5669SPatrick Williamsset in the users' dictionary from `report.json` like: 23e310dd91SPatrick Williams 24e72e5669SPatrick Williams```json 25e72e5669SPatrick Williams{ 26*ed5643f6SAndrew Jeffery "User Name 2": 19, 27*ed5643f6SAndrew Jeffery "User Name 1": 16, 28e72e5669SPatrick Williams ... 29e72e5669SPatrick Williams} 30e72e5669SPatrick Williams``` 31