check_source: move all relevant flags to config to work properly without flags.

This commit is contained in:
Jimmy Berry 2017-10-11 22:19:24 -05:00
parent 52af5b3d75
commit 37d397fb89
2 changed files with 22 additions and 20 deletions

View File

@ -10,6 +10,7 @@ try:
except ImportError: except ImportError:
import cElementTree as ET import cElementTree as ET
import osc.conf
import osc.core import osc.core
import urllib2 import urllib2
import ReviewBot import ReviewBot
@ -27,13 +28,21 @@ class CheckSource(ReviewBot.ReviewBot):
self.maintbot = MaintenanceChecker(*args, **kwargs) self.maintbot = MaintenanceChecker(*args, **kwargs)
self.ignore_devel = False
self.review_team = 'opensuse-review-team'
self.repo_checker = 'repo-checker'
self.skip_add_reviews = False self.skip_add_reviews = False
def target_project_config(self, project):
# Load project config and allow for remote entries.
self.staging_api(project)
config = self.staging_config[project]
self.ignore_devel = not bool(config.get('devel-project-enforce', False))
self.review_team = config.get('review-team')
self.repo_checker = config.get('repo-checker')
self.devel_whitelist = config.get('devel-whitelist', '').split()
def check_source_submission(self, source_project, source_package, source_revision, target_project, target_package): def check_source_submission(self, source_project, source_package, source_revision, target_project, target_package):
super(CheckSource, self).check_source_submission(source_project, source_package, source_revision, target_project, target_package) super(CheckSource, self).check_source_submission(source_project, source_package, source_revision, target_project, target_package)
self.target_project_config(target_project)
if not self.ignore_devel: if not self.ignore_devel:
self.logger.info('checking if target package exists and has devel project') self.logger.info('checking if target package exists and has devel project')
@ -137,10 +146,7 @@ class CheckSource(ReviewBot.ReviewBot):
return None return None
def is_devel_project(self, source_project, target_project): def is_devel_project(self, source_project, target_project):
# Load project config and allow for remote entries. if source_project in self.devel_whitelist:
self.staging_api(target_project)
devel_whitelist = self.staging_config[target_project].get('devel-whitelist', '').split()
if source_project in devel_whitelist:
return True return True
# Allow any projects already used as devel projects for other packages. # Allow any projects already used as devel projects for other packages.
@ -252,9 +258,6 @@ class CommandLineInterface(ReviewBot.CommandLineInterface):
def get_optparser(self): def get_optparser(self):
parser = ReviewBot.CommandLineInterface.get_optparser(self) parser = ReviewBot.CommandLineInterface.get_optparser(self)
parser.add_option('--ignore-devel', action='store_true', default=False, help='ignore devel projects for target package')
parser.add_option('--review-team', metavar='GROUP', help='review team group added to requests')
parser.add_option('--repo-checker', metavar='USER', help='repo checker user added after accepted review')
parser.add_option('--skip-add-reviews', action='store_true', default=False, help='skip adding review after completing checks') parser.add_option('--skip-add-reviews', action='store_true', default=False, help='skip adding review after completing checks')
return parser return parser
@ -262,16 +265,6 @@ class CommandLineInterface(ReviewBot.CommandLineInterface):
def setup_checker(self): def setup_checker(self):
bot = ReviewBot.CommandLineInterface.setup_checker(self) bot = ReviewBot.CommandLineInterface.setup_checker(self)
if self.options.ignore_devel:
bot.ignore_devel = self.options.ignore_devel
if self.options.review_team:
if self.options.review_team == 'None':
self.options.review_team = None
bot.review_team = self.options.review_team
if self.options.repo_checker:
if self.options.repo_checker == 'None':
self.options.repo_checker = None
bot.repo_checker = self.options.repo_checker
bot.skip_add_reviews = self.options.skip_add_reviews bot.skip_add_reviews = self.options.skip_add_reviews
return bot return bot

View File

@ -46,6 +46,10 @@ DEFAULT = {
'lock-ns': 'openSUSE', 'lock-ns': 'openSUSE',
'delreq-review': 'factory-maintainers', 'delreq-review': 'factory-maintainers',
'main-repo': 'standard', 'main-repo': 'standard',
# check_source.py
'devel-project-enforce': 'True',
'review-team': 'opensuse-review-team',
'repo-checker': 'repo-checker',
}, },
r'openSUSE:(?P<project>Leap:[\d.]+)': { r'openSUSE:(?P<project>Leap:[\d.]+)': {
'staging': 'openSUSE:%(project)s:Staging', 'staging': 'openSUSE:%(project)s:Staging',
@ -62,6 +66,9 @@ DEFAULT = {
'lock-ns': 'openSUSE', 'lock-ns': 'openSUSE',
'delreq-review': None, 'delreq-review': None,
'main-repo': 'standard', 'main-repo': 'standard',
# check_source.py
# review-team optionally added by leaper.py.
'repo-checker': 'repo-checker',
}, },
r'SUSE:(?P<project>SLE-15.*$)': { r'SUSE:(?P<project>SLE-15.*$)': {
'staging': 'SUSE:%(project)s:Staging', 'staging': 'SUSE:%(project)s:Staging',
@ -77,6 +84,8 @@ DEFAULT = {
'lock-ns': 'SUSE', 'lock-ns': 'SUSE',
'delreq-review': None, 'delreq-review': None,
'main-repo': 'standard', 'main-repo': 'standard',
# check_source.py
'repo-checker': 'repo-checker',
}, },
r'SUSE:(?P<project>.*$)': { r'SUSE:(?P<project>.*$)': {
'staging': 'SUSE:%(project)s:Staging', 'staging': 'SUSE:%(project)s:Staging',