1515from packit .local_project import LocalProject
1616from packit_service .models import PullRequestModel , SourceGitPRDistGitPRModel
1717from packit_service .worker .events import MergeRequestGitlabEvent , PipelineGitlabEvent
18+ from packit_service .worker .events .enums import GitlabEventAction
1819from packit_service .worker .events .pagure import PullRequestFlagPagureEvent
1920from packit_service .worker .handlers import JobHandler
2021from packit_service .worker .handlers .abstract import (
@@ -42,6 +43,7 @@ def __init__(
4243 job_config = job_config ,
4344 event = event ,
4445 )
46+ self .action = event ["action" ]
4547 self .mr_identifier = event ["identifier" ]
4648 self .mr_title = event ["title" ]
4749 self .mr_description = event ["description" ]
@@ -116,11 +118,11 @@ def run(self) -> TaskResults:
116118 "Not creating a dist-git MR from "
117119 f"{ self .target_repo } :{ self .target_repo_branch } "
118120 )
119- return TaskResults (success = True , details = {} )
121+ return TaskResults (success = True )
120122
121123 if not self .package_config :
122124 logger .debug ("No package config found." )
123- return TaskResults (success = True , details = {} )
125+ return TaskResults (success = True )
124126
125127 if (
126128 self .target_repo_branch
@@ -132,16 +134,23 @@ def run(self) -> TaskResults:
132134 return TaskResults (success = True )
133135
134136 if self .dist_git_pr_model :
135- # The source-git PR was probably closed and then reopened
136137 logger .info (
137138 f"{ self .source_git_pr_model } already has corresponding { self .dist_git_pr_model } "
138139 )
139140 if self .dist_git_pr :
140- # TODO: reopen the corresponding dist-git PR as well if it's already closed
141- # https://github.com/packit/ogr/pull/714
142- comment = f"[Source-git MR]({ self .mr_url } ) has been reopened."
143- self .dist_git_pr .comment (comment )
144- return TaskResults (success = True , details = {})
141+ if self .action == GitlabEventAction .closed .value :
142+ msg = f"[Source-git MR]({ self .mr_url } ) has been closed."
143+ self .dist_git_pr .close ()
144+ elif self .action == GitlabEventAction .reopen .value :
145+ msg = f"[Source-git MR]({ self .mr_url } ) has been reopened."
146+ # https://github.com/packit/ogr/pull/714
147+ # self.dist_git_pr.reopen()
148+ else :
149+ logger .error (f"Unknown action { self .action } " )
150+ return TaskResults (success = False )
151+ logger .info (msg )
152+ self .dist_git_pr .comment (msg )
153+ return TaskResults (success = True )
145154
146155 dg_mr_info = f"""###### Info for package maintainer
147156This MR has been automatically created from
@@ -227,12 +236,12 @@ def run(self) -> TaskResults:
227236 """
228237 if not (dist_git_pr_model := self .dist_git_pr_model ()):
229238 logger .debug ("No dist-git PR model." )
230- return TaskResults (success = True , details = {} )
239+ return TaskResults (success = True )
231240 if not (
232241 sg_dg := SourceGitPRDistGitPRModel .get_by_dist_git_id (dist_git_pr_model .id )
233242 ):
234243 logger .debug (f"Source-git PR for { dist_git_pr_model } not found." )
235- return TaskResults (success = True , details = {} )
244+ return TaskResults (success = True )
236245
237246 source_git_pr_model = sg_dg .source_git_pull_request
238247 source_git_project = self .service_config .get_project (
@@ -260,7 +269,7 @@ def run(self) -> TaskResults:
260269 check_name = self .status_check_name ,
261270 url = self .status_url ,
262271 )
263- return TaskResults (success = True , details = {} )
272+ return TaskResults (success = True )
264273
265274
266275@reacts_to (event = PipelineGitlabEvent )
0 commit comments