diff --git a/NEWS b/NEWS index bd291887..1034458c 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,5 @@ -0.165.3 +0.166.0 + - allow optional fork when creating a maintenance request - 0.165.2 diff --git a/osc/commandline.py b/osc/commandline.py index 94c2c7d2..653ca03c 100644 --- a/osc/commandline.py +++ b/osc/commandline.py @@ -3182,6 +3182,8 @@ Please submit there instead, or use --nodevelproject to force direct submission. help='specify message TEXT') @cmdln.option('--release-project', metavar='RELEASEPROJECT', help='Specify the release project') + @cmdln.option('--enforce-branching', action='store_true', + help='submit from a fresh branched project') @cmdln.option('--no-cleanup', action='store_true', help='do not remove source project on accept') @cmdln.option('--cleanup', action='store_true', @@ -3283,7 +3285,7 @@ Please submit there instead, or use --nodevelproject to force direct submission. target_project, None) # unspecified release project - r = create_maintenance_request(apiurl, source_project, source_packages, target_project, release_project, opt_sourceupdate, opts.message) + r = create_maintenance_request(apiurl, source_project, source_packages, target_project, release_project, opt_sourceupdate, opts.message, opts.enforce_branching) print(r.reqid) if supersede_existing: diff --git a/osc/core.py b/osc/core.py index 23ca55f6..961445a5 100644 --- a/osc/core.py +++ b/osc/core.py @@ -3045,11 +3045,13 @@ class Request: def __cmp__(self, other): return cmp(int(self.reqid), int(other.reqid)) - def create(self, apiurl, addrevision=False): + def create(self, apiurl, addrevision=False, enforce_branching=False): """create a new request""" query = {'cmd' : 'create' } if addrevision: query['addrevision'] = "1" + if enforce_branching: + query['enforce_branching'] = "1" u = makeurl(apiurl, ['request'], query=query) f = http_POST(u, data=self.to_str()) root = ET.fromstring(f.read()) @@ -4175,7 +4177,7 @@ def create_release_request(apiurl, src_project, message=''): return r # create a maintenance incident per request -def create_maintenance_request(apiurl, src_project, src_packages, tgt_project, tgt_releaseproject, opt_sourceupdate, message=''): +def create_maintenance_request(apiurl, src_project, src_packages, tgt_project, tgt_releaseproject, opt_sourceupdate, message='', enforce_branching=False): import cgi r = Request() if src_packages: @@ -4185,7 +4187,7 @@ def create_maintenance_request(apiurl, src_project, src_packages, tgt_project, t r.add_action('maintenance_incident', src_project=src_project, tgt_project=tgt_project, tgt_releaseproject=tgt_releaseproject, opt_sourceupdate = opt_sourceupdate) # XXX: clarify why we need the unicode(...) stuff r.description = cgi.escape(unicode(message, 'utf8')) - r.create(apiurl, addrevision=True) + r.create(apiurl, addrevision=True, enforce_branching=enforce_branching) return r def create_submit_request(apiurl,