Also update calls based on default behavior change. As described in the
comment above add_review() there seems to be no reason to ever add a
duplicate review.
The check in leaper would skip unless state == declined. In such a case
the review would automatically be reopened along with the request so that
logic is unnecessary.
This ensures that calling bots crash rather than continue which can cause
non-atomic state changes that miss reviews when OBS crashes or is
unavailable.
Perhaps this should be handled on a larger scale where initial variable
states are not set in __init__ but rather in special method or reset in
some manor.
Simple interface:
- comment_handler_add(): Add handler to start recording log messages
for comment.
- comment_write(): Write comment from log messages if not similar to
previous comment.
See leaper.py for example usage.
In the process of porting many improvements and bug fixes were added. Usage
follows the standard ReviewBot format and allows for new execution styles,
but the following examples replicate previous usage.
# Review all requests assigned to factory-auto.
./check_source.py --group factory-auto review
# Review request 13370.
./check_source.py --group factory-auto id 13370
# --project translates to project command.
# No longer automatically includes $project:NonFree.
./check_source.py --group factory-auto project openSUSE:Factory
New options available are:
--ignore-devel ignore devel projects for target package
--devel-whitelist=FILE file containing whitelisted projects (one per line)
--review-team=GROUP review team group added to requests with > 8 diff
--repo-checker=USER repo checker user added after accepted review
Note that --ignore-devel used to be provided as env[IGNORE_DEVEL_PROJECTS].
Some highlights about what was cleaned up:
- cryptic variable names replaced
- replaced custom osc queries with osc.core calls where applicable
- removed the need to load package information for all packages within
target project which cuts runtime in half for single review
- removed extraneous code that performed extra steps for no reason
os.path.dirname(os.path.realpath(__file__.replace('.pyc', '.py')))
os.path.dirname(os.path.realpath(__file__))
and _checker_prepare_dir() which needlessly chdir() twice.
- one logic branch failed to cleanup checkout directory
- new flags provide additional flexibility