@@ -89,6 +89,8 @@ def set_approvers(
89
89
approver_ids : Optional [List [int ]] = None ,
90
90
approver_group_ids : Optional [List [int ]] = None ,
91
91
approval_rule_name : str = "name" ,
92
+ * ,
93
+ approver_usernames : Optional [List [str ]] = None ,
92
94
** kwargs : Any ,
93
95
) -> RESTObject :
94
96
"""Change MR-level allowed approvers and approver groups.
@@ -104,13 +106,15 @@ def set_approvers(
104
106
"""
105
107
approver_ids = approver_ids or []
106
108
approver_group_ids = approver_group_ids or []
109
+ approver_usernames = approver_usernames or []
107
110
108
111
data = {
109
112
"name" : approval_rule_name ,
110
113
"approvals_required" : approvals_required ,
111
114
"rule_type" : "regular" ,
112
115
"user_ids" : approver_ids ,
113
116
"group_ids" : approver_group_ids ,
117
+ "usernames" : approver_usernames ,
114
118
}
115
119
if TYPE_CHECKING :
116
120
assert self ._parent is not None
@@ -124,6 +128,7 @@ def set_approvers(
124
128
ar .user_ids = data ["user_ids" ]
125
129
ar .approvals_required = data ["approvals_required" ]
126
130
ar .group_ids = data ["group_ids" ]
131
+ ar .usernames = data ["usernames" ]
127
132
ar .save ()
128
133
return ar
129
134
# if there was no rule matching the rule name, create a new one
@@ -145,14 +150,14 @@ class ProjectMergeRequestApprovalRuleManager(CRUDMixin, RESTManager):
145
150
"name" ,
146
151
"approvals_required" ,
147
152
),
148
- optional = ("user_ids" , "group_ids" ),
153
+ optional = ("user_ids" , "group_ids" , "usernames" ),
149
154
)
150
155
# Important: When approval_project_rule_id is set, the name, users and
151
156
# groups of project-level rule will be copied. The approvals_required
152
157
# specified will be used.
153
158
_create_attrs = RequiredOptional (
154
159
required = ("name" , "approvals_required" ),
155
- optional = ("approval_project_rule_id" , "user_ids" , "group_ids" ),
160
+ optional = ("approval_project_rule_id" , "user_ids" , "group_ids" , "usernames" ),
156
161
)
157
162
158
163
def get (
0 commit comments