1
0
mirror of https://github.com/openSUSE/osc.git synced 2025-08-11 17:54:06 +02:00

allow implicit branch on maintenance request creation

via --enforce-branching option

This may be default by server side settings
This commit is contained in:
2019-07-22 15:32:19 +02:00
parent 23c8f19868
commit f465717668
3 changed files with 10 additions and 5 deletions

3
NEWS
View File

@@ -1,4 +1,5 @@
0.165.3 0.166.0
- allow optional fork when creating a maintenance request
- -
0.165.2 0.165.2

View File

@@ -3182,6 +3182,8 @@ Please submit there instead, or use --nodevelproject to force direct submission.
help='specify message TEXT') help='specify message TEXT')
@cmdln.option('--release-project', metavar='RELEASEPROJECT', @cmdln.option('--release-project', metavar='RELEASEPROJECT',
help='Specify the release project') 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', @cmdln.option('--no-cleanup', action='store_true',
help='do not remove source project on accept') help='do not remove source project on accept')
@cmdln.option('--cleanup', action='store_true', @cmdln.option('--cleanup', action='store_true',
@@ -3283,7 +3285,7 @@ Please submit there instead, or use --nodevelproject to force direct submission.
target_project, target_project,
None) # unspecified release 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) print(r.reqid)
if supersede_existing: if supersede_existing:

View File

@@ -3045,11 +3045,13 @@ class Request:
def __cmp__(self, other): def __cmp__(self, other):
return cmp(int(self.reqid), int(other.reqid)) 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""" """create a new request"""
query = {'cmd' : 'create' } query = {'cmd' : 'create' }
if addrevision: if addrevision:
query['addrevision'] = "1" query['addrevision'] = "1"
if enforce_branching:
query['enforce_branching'] = "1"
u = makeurl(apiurl, ['request'], query=query) u = makeurl(apiurl, ['request'], query=query)
f = http_POST(u, data=self.to_str()) f = http_POST(u, data=self.to_str())
root = ET.fromstring(f.read()) root = ET.fromstring(f.read())
@@ -4175,7 +4177,7 @@ def create_release_request(apiurl, src_project, message=''):
return r return r
# create a maintenance incident per request # 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 import cgi
r = Request() r = Request()
if src_packages: 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) 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 # XXX: clarify why we need the unicode(...) stuff
r.description = cgi.escape(unicode(message, 'utf8')) r.description = cgi.escape(unicode(message, 'utf8'))
r.create(apiurl, addrevision=True) r.create(apiurl, addrevision=True, enforce_branching=enforce_branching)
return r return r
def create_submit_request(apiurl, def create_submit_request(apiurl,