The original intent was clearly to allow 404 (package does not exist for
new packages), but crash on anything else. Instead it consumes all
exceptions and does nothing different even with the e.code condition.
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.
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
Just use the generated build number while fetching openqa jobs. This way
we can trigger test runs even if there are no incidents to review to
verify the tests still work on maintained products