The rework includes a variety of changes:
- multiple actions per request supported
- automatically detecting "main" repo (useful for devel/home projects)
- full layered repository path state and published taken into account
- arbitrary repository name (ie. not just standard) supported
- intermediate results (used for staging) no longer accept (even if no
problems detected) until all layers are published
- no longer tied to staging process, but still supports staging workflow
- robust handling of repository state changes during review cycle
- multiple repositories supported for project_only output (ie. file name)
- project_only run supports any OBS project instead of only products
- maintenance_release requests supported with alternate staging approach
These methods provide for a generic place to store meta data related to
a project. For the time being, keep the original :Staging/dashboard
location for openSUSE products.
Previously, group members were only added if no maintainers were present
whereas group members should always be considered. Additionally, project
queries never included group members. Now groups are included in both.
This allows for cases where the requested project was something like
openSUSE:Leap:42.3:Update and the returned project was openSUSE:Leap:42.3.
With this change the fallback will be triggered and the global maintainer
will then be used.
Useful for determining if a request has an open staging project review
which makes it likely that it has been staged and avoids the need to
review each staging project.
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.