Skip to content
This repository was archived by the owner on Sep 25, 2024. It is now read-only.

Commit 617b94a

Browse files
committed
Close a dist-git MR when source-git MR has been closed
Fixes #35
1 parent 011ffd5 commit 617b94a

File tree

1 file changed

+20
-11
lines changed

1 file changed

+20
-11
lines changed

hardly/handlers/distgit.py

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from packit.local_project import LocalProject
1616
from packit_service.models import PullRequestModel, SourceGitPRDistGitPRModel
1717
from packit_service.worker.events import MergeRequestGitlabEvent, PipelineGitlabEvent
18+
from packit_service.worker.events.enums import GitlabEventAction
1819
from packit_service.worker.events.pagure import PullRequestFlagPagureEvent
1920
from packit_service.worker.handlers import JobHandler
2021
from 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
147156
This 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

Comments
 (0)