@@ -32,17 +32,24 @@ def _update_attributes(self, branch):
32
32
def _repr (self ):
33
33
return '<Repository Branch [{0}]>' .format (self .name )
34
34
35
- def protect (self ,enforcement ,status_checks ):
35
+ def protect (self ,enforcement = None ,status_checks = None ):
36
36
"""Enable force push protection and configure status check enforcement.
37
37
38
38
See: http://git.io/v4Gvu
39
39
40
- :param str enforcement: (required ), Specifies the enforcement level of
40
+ :param str enforcement: (optional ), Specifies the enforcement level of
41
41
the status checks. Must be one of 'off', 'non_admins', or
42
- 'everyone'.
43
- :param list status_checks: (required), An iterable of strings naming
44
- status checks that must pass before merging.
42
+ 'everyone'. Use `None` or omit to use the already associated value.
43
+ :param list status_checks: (optional), An list of strings naming
44
+ status checks that must pass before merging. Use `None` or omit to
45
+ use the already associated value.
45
46
"""
47
+ previous_values = self .protection ['required_status_checks' ]
48
+ if enforcement is None :
49
+ enforcement = previous_values ['enforcement_level' ]
50
+ if status_checks is None :
51
+ status_checks = previous_values ['contexts' ]
52
+
46
53
edit = {'protection' : {'enabled' :True ,'required_status_checks' : {
47
54
'enforcement_level' :enforcement ,'contexts' :status_checks }}}
48
55
json = self ._json (self ._patch (self .links ['self' ],data = dumps (edit ),