virt: github report fix pulls_applied

Signed-off-by: Chris Evich <cevich@redhat.com>
virt: github report add cache to csv dump

Signed-off-by: Chris Evich <cevich@redhat.com>
virt: remove cache_dump tool pruning

Signed-off-by: Chris Evich <cevich@redhat.com>
virt: tools/github: Method migration

Added timezone conversion support to/from UTC and local.  Fixed
problem in search cache key naming, and added input TZ conversion.
Moved the more generic/basic methods from GithubIssues into
GithubIssuesBase.  This will allow for easier changes/enhancements
on the ancestor classes. Added new GithubIssue class to assist
with delayed lookup, which should improve performance.  Instances
will be the new return value from key lookup on GithubIssues
instances.

Signed-off-by: Chris Evich <cevich@redhat.com>
virt: tools/github: Timings + counting adjustments

Lengthened amount of time entries remain valid in cache
to improve performance.  Tweaked SearchResults class
to aid in debugging.  Capped rate-limiter sleep time max
at 2-seconds rather than throwing an exception.

Signed-off-by: Chris Evich <cevich@redhat.com>
virt: tools/github: Add maintainer report

Gathers stats from across some time-period for a particular github user.
Tabulates some metrics in an extensible way, then prints them on stdout.

Signed-off-by: Chris Evich <cevich@redhat.com>
virt: Rewrite github_issues tool

Old implementation demanded marshaling and caching all data for every
requested issue.  That made it difficult to make changes to the upstream
data while managing cache.  It also lowered the benefits of caching
since the initial cost was higher than required.

* Renamed github_issues -> libpygh since it sits ontop of pygithub
  and now handles much more than just issues.  Pronounced "Lib PIG" :D

* Implement CacheProxyBase class to help with Just-In-Time caching of
  only specifically requested data.

* Implement GlobalRateLimiter class, singleton rate limiting
  helper that limits based on actual requests consumed over time.

* Implemented GithubCacheProxy and RepoCacheProxy as intermediate
  subclasses taylored for github-object or repo-object centered
  subclasses.

* Implemented GithubUsersProxy, RepoLabelsProxy, IssueCommentMeta
  PullCommentMeta, IssueCommentsProxy, PullCommentsProxy, CommitsProxy
  IssueProxy classes for caching their respective github objects.

* Implemented IssueSearchCriteria and IssueSearchProxy to cache
  issue search results.

* Added unittests to assist with verifying interface and functionality
  of libpygh.

Signed-off-by: Chris Evich <cevich@redhat.com>
virt: Fix cache_dump to match new libghpy API

Signed-off-by: Chris Evich <cevich@redhat.com>