@@ -49,6 +49,7 @@ def sync(self, request):
4949 title = self .make_issue_title (request ),
5050 body = self .make_issue_body (request ),
5151 state_event = "close" if request .is_closed else "reopen" ,
52+ labels = labels ,
5253 )
5354 else :
5455 issue = self .create_issue (
@@ -83,7 +84,7 @@ def create_issue(self, repo_id, title, body="", labels=None):
8384 response .raise_for_status ()
8485 return response .json ()
8586
86- def update_issue (self , repo_id , issue_id , title = None , body = None , state_event = None ):
87+ def update_issue (self , repo_id , issue_id , title = None , body = None , state_event = None , labels = None ):
8788 """Update an existing GitLab issue."""
8889 project_path = quote (repo_id , safe = "" )
8990 url = f"{ self .api_url } /projects/{ project_path } /issues/{ issue_id } "
@@ -94,6 +95,9 @@ def update_issue(self, repo_id, issue_id, title=None, body=None, state_event=Non
9495 data ["description" ] = body
9596 if state_event :
9697 data ["state_event" ] = state_event
98+ if labels :
99+ # GitLab expects a comma-separated string for labels
100+ data ["labels" ] = "," .join (labels )
97101
98102 response = self .session .put (
99103 url ,
0 commit comments