55
55
PROXY_PROPERTY = 'proxy'
56
56
INCOMING_PROPERTY = 'incoming_check'
57
57
IGNORE_ERR_PROPERTY = 'ignore_errors'
58
+ IGNORE_PROPERTY = 'ignore'
58
59
COMMANDS_PROPERTY = 'commands'
59
60
DISABLED_PROPERTY = 'disabled'
60
61
DISABLED_REASON_PROPERTY = 'disabled-reason'
@@ -169,7 +170,7 @@ def get_project_properties(project_config, project_name, hookdir):
169
170
:param project_name: name of the project
170
171
:param hookdir: directory with hooks
171
172
:return: list of properties: prehook, posthook, hook_timeout,
172
- command_timeout, use_proxy, ignored_repos, check_changes, strip_outgoing, ignore_errors
173
+ command_timeout, use_proxy, ignored_repos, check_changes, strip_outgoing, ignore_errors, ignore
173
174
"""
174
175
175
176
prehook = None
@@ -181,6 +182,7 @@ def get_project_properties(project_config, project_name, hookdir):
181
182
check_changes = None
182
183
strip_outgoing = None
183
184
ignore_errors = None
185
+ ignore = None
184
186
185
187
logger = logging .getLogger (__name__ )
186
188
@@ -245,11 +247,17 @@ def get_project_properties(project_config, project_name, hookdir):
245
247
project_config .get (IGNORE_ERR_PROPERTY ))
246
248
logger .debug ("ignore errors = {}" .format (check_changes ))
247
249
250
+ if project_config .get (IGNORE_PROPERTY ) is not None :
251
+ ignore = get_bool (logger , ("ignore project {}" .
252
+ format (project_name )),
253
+ project_config .get (IGNORE_PROPERTY ))
254
+ logger .debug ("project ignore = {}" .format (check_changes ))
255
+
248
256
if not ignored_repos :
249
257
ignored_repos = []
250
258
251
259
return prehook , posthook , hook_timeout , command_timeout , \
252
- use_proxy , ignored_repos , check_changes , strip_outgoing , ignore_errors
260
+ use_proxy , ignored_repos , check_changes , strip_outgoing , ignore_errors , ignore
253
261
254
262
255
263
def process_hook (hook_ident , hook , source_root , project_name , proxy ,
@@ -460,10 +468,10 @@ def mirror_project(config, project_name, check_changes, strip_outgoing, uri,
460
468
ignored_repos , \
461
469
check_changes_proj , \
462
470
strip_outgoing_proj , \
463
- ignore_errors_proj = get_project_properties ( project_config ,
464
- project_name ,
465
- config .
466
- get (HOOKDIR_PROPERTY ))
471
+ ignore_errors_proj , \
472
+ ignore = get_project_properties ( project_config ,
473
+ project_name ,
474
+ config . get (HOOKDIR_PROPERTY ))
467
475
468
476
if not command_timeout :
469
477
command_timeout = config .get (CMD_TIMEOUT_PROPERTY )
@@ -489,6 +497,10 @@ def mirror_project(config, project_name, check_changes, strip_outgoing, uri,
489
497
if use_proxy :
490
498
proxy = config .get (PROXY_PROPERTY )
491
499
500
+ if ignore :
501
+ logger .info (f"Project { project_name } ignored per configuration, no mirror performed." )
502
+ return SUCCESS_EXITVAL
503
+
492
504
# We want this to be logged to the log file (if any).
493
505
if project_config and project_config .get (DISABLED_PROPERTY ):
494
506
handle_disabled_project (config , project_name ,
0 commit comments