diff options
author | Bryan Newbold <bnewbold@robocracy.org> | 2019-04-09 13:12:07 -0700 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2019-04-09 13:12:07 -0700 |
commit | ac4d748d8ba930a1961c7353a6eebeb1f8f724cd (patch) | |
tree | 52397ffb1bf08aceb63ba0f95eb196c502e0e141 /python/fatcat_review.py | |
parent | e8980c114174339327b763a6e31f80d49e9eaaef (diff) | |
parent | d89787882aaf4b7342768ac56d2252f3fcb7a7ad (diff) | |
download | fatcat-ac4d748d8ba930a1961c7353a6eebeb1f8f724cd.tar.gz fatcat-ac4d748d8ba930a1961c7353a6eebeb1f8f724cd.zip |
Merge branch 'bnewbold-review-bots'
Diffstat (limited to 'python/fatcat_review.py')
-rwxr-xr-x | python/fatcat_review.py | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/python/fatcat_review.py b/python/fatcat_review.py new file mode 100755 index 00000000..40bc7041 --- /dev/null +++ b/python/fatcat_review.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python3 + +import sys +import argparse +import datetime +import raven + +from fatcat_tools import authenticated_api +from fatcat_tools.reviewers import DummyReviewBot, ReviewBot + +# Yep, a global. Gets DSN from `SENTRY_DSN` environment variable +sentry_client = raven.Client() + + +def run_dummy(args): + reviewer = DummyReviewBot(args.api, poll_interval=args.poll_interval, + verbose=args.debug) + if args.editgroup: + annotation = reviewer.run_single(args.editgroup, args.annotate) + print(annotation) + elif args.continuous: + reviewer.run() + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--debug', + action='store_true', + help="enable debug logging") + parser.add_argument('--api-host-url', + default="http://localhost:9411/v0", + help="fatcat API host/port to use") + parser.add_argument('--poll-interval', + help="how long to wait between polling (seconds)", + default=10.0, type=float) + subparsers = parser.add_subparsers() + + sub_dummy = subparsers.add_parser('dummy') + sub_dummy.set_defaults(func=run_dummy) + sub_dummy.add_argument("--continuous", + action="store_true", + help="run forever, polling for new reviewable editgroups") + sub_dummy.add_argument("--editgroup", + help="single editgroup ID to review") + sub_dummy.add_argument("--annotate", + action="store_true", + help="for single editgroups, pushes result as annotation") + + args = parser.parse_args() + if not args.__dict__.get("func"): + print("tell me what to do!") + sys.exit(-1) + if (args.editgroup and args.continuous) or not (args.editgroup or args.continuous): + print("need to run on a single editgroup, or continuous") + sys.exit(-1) + + args.api = authenticated_api(args.api_host_url) + args.func(args) + +if __name__ == '__main__': + main() |