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.
Allows the code to be properly shared between checkrepo and
check_maintenance_incidents as a todo suggests. Given that the majority of
similar cases for code sharing are extension of osc.core it seems to make
sense to place them in osclib.core.
Avoid adding e.g. openSUSE:13.2 as reviewer. OBS sometimes returns
projects of released openSUSE distributions as maintainer for packages
that were dropped from Factory.
factory-source checks if submissions contain sources already accepted in
Factory. maintbot makes sure maintenance submissions are authored by the
Factory package maintainer.
Both are based on a new generic ReviewBot.py class that can serve as
common framework for review bots.