feat: close issues
This commit is contained in:
parent
0e37b5d444
commit
a2d636f64e
|
|
@ -479,6 +479,35 @@ class Gitea:
|
||||||
self.org_name, repo_name, issue.number, body={"state": "closed"}
|
self.org_name, repo_name, issue.number, body={"state": "closed"}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def close_issues(self, repo_name: str, issue_numbers: List[int], dry_run: bool = True) -> None:
|
||||||
|
if not issue_numbers:
|
||||||
|
logger.warning("No issue numbers provided to close")
|
||||||
|
return
|
||||||
|
if dry_run:
|
||||||
|
logger.info("Dry run enabled. No changes will be made to issues.")
|
||||||
|
try:
|
||||||
|
issues = {issue.number: issue for issue in list_all(self.issue_api.issue_list_issues, self.org_name, repo_name)}
|
||||||
|
except ApiException as e:
|
||||||
|
logger.error(f"Failed to list issues for {repo_name}: {e}")
|
||||||
|
return
|
||||||
|
|
||||||
|
for num in issue_numbers:
|
||||||
|
issue = issues.get(num)
|
||||||
|
if issue is None:
|
||||||
|
logger.warning(f"Issue #{num} not found in {repo_name}")
|
||||||
|
continue
|
||||||
|
if getattr(issue, "state", "") == "closed":
|
||||||
|
logger.info(f"Issue #{num} in {repo_name} already closed")
|
||||||
|
continue
|
||||||
|
try:
|
||||||
|
if dry_run:
|
||||||
|
logger.info(f"Would close issue #{num} in {repo_name} (dry run)")
|
||||||
|
continue
|
||||||
|
self.issue_api.issue_edit_issue(self.org_name, repo_name, num, body={"state": "closed"})
|
||||||
|
logger.info(f"Closed issue #{num} in {repo_name}")
|
||||||
|
except ApiException as e:
|
||||||
|
logger.error(f"Failed to close issue #{num} in {repo_name}: {e}")
|
||||||
|
|
||||||
def archive_repos(self, regex: str = ".+", dry_run: bool = True) -> None:
|
def archive_repos(self, regex: str = ".+", dry_run: bool = True) -> None:
|
||||||
if dry_run:
|
if dry_run:
|
||||||
logger.info("Dry run enabled. No changes will be made to the repositories.")
|
logger.info("Dry run enabled. No changes will be made to the repositories.")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user