1
0
mirror of https://github.com/openSUSE/osc.git synced 2025-02-03 18:16:17 +01: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:
Adrian Schröter 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

View File

@ -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:

View File

@ -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,