refactor: replace Any types with specific types and update bad_code.md
- Replace Any with object or specific types across codebase - Add ReviewRequest dataclass for PR review payloads - Update bad_code.md: mark 5.1 (Any Type Overuse) as resolved - Fix summary table with accurate counts and unresolved issues list
This commit is contained in:
+18
-11
@@ -1,7 +1,8 @@
|
||||
"""Pull Requests client for Gitea API operations."""
|
||||
|
||||
import logging
|
||||
from typing import Any, Callable
|
||||
from dataclasses import dataclass
|
||||
from typing import Callable
|
||||
|
||||
import httpx
|
||||
|
||||
@@ -17,6 +18,12 @@ from .models import (
|
||||
logger: logging.Logger = logging.getLogger("gitea.prs_client")
|
||||
|
||||
|
||||
@dataclass
|
||||
class ReviewRequest:
|
||||
event: str
|
||||
body: str
|
||||
|
||||
|
||||
class PullRequestsClient:
|
||||
"""HTTP client for Gitea Pull Requests API operations."""
|
||||
|
||||
@@ -288,7 +295,7 @@ class PullRequestsClient:
|
||||
"""
|
||||
try:
|
||||
url = f"{self.base_url}/api/v1/repos/{owner}/{repo}/pulls/{pull_number}"
|
||||
data: dict[str, Any] = {}
|
||||
data: dict[str, str | None] = {}
|
||||
if title is not None:
|
||||
data["title"] = title
|
||||
if body is not None:
|
||||
@@ -322,7 +329,7 @@ class PullRequestsClient:
|
||||
|
||||
def approve_pr(
|
||||
self, owner: str, repo: str, pr_number: int, comment: str
|
||||
) -> dict[str, Any]:
|
||||
) -> dict[str, object]:
|
||||
"""Approve a pull request.
|
||||
|
||||
Args:
|
||||
@@ -335,14 +342,14 @@ class PullRequestsClient:
|
||||
The review response.
|
||||
"""
|
||||
url = f"{self.base_url}/api/v1/repos/{owner}/{repo}/pulls/{pr_number}/reviews"
|
||||
data: dict[str, Any] = {"event": "APPROVED", "body": comment}
|
||||
response = self.client.post(url, json=data)
|
||||
review: ReviewRequest = ReviewRequest(event="APPROVED", body=comment)
|
||||
response = self.client.post(url, json={"event": review.event, "body": review.body})
|
||||
response.raise_for_status()
|
||||
return response.json()
|
||||
|
||||
def request_changes_pr(
|
||||
self, owner: str, repo: str, pr_number: int, comment: str
|
||||
) -> dict[str, Any]:
|
||||
) -> dict[str, object]:
|
||||
"""Request changes on a pull request.
|
||||
|
||||
Args:
|
||||
@@ -355,14 +362,14 @@ class PullRequestsClient:
|
||||
The review response.
|
||||
"""
|
||||
url = f"{self.base_url}/api/v1/repos/{owner}/{repo}/pulls/{pr_number}/reviews"
|
||||
data: dict[str, Any] = {"event": "REQUEST_CHANGES", "body": comment}
|
||||
response = self.client.post(url, json=data)
|
||||
review: ReviewRequest = ReviewRequest(event="REQUEST_CHANGES", body=comment)
|
||||
response = self.client.post(url, json={"event": review.event, "body": review.body})
|
||||
response.raise_for_status()
|
||||
return response.json()
|
||||
|
||||
def get_pr_reviews(
|
||||
self, owner: str, repo: str, pr_number: int
|
||||
) -> list[dict[str, Any]]:
|
||||
) -> list[dict[str, object]]:
|
||||
"""Get reviews for a pull request.
|
||||
|
||||
Args:
|
||||
@@ -382,7 +389,7 @@ class PullRequestsClient:
|
||||
|
||||
def dismiss_review_pr(
|
||||
self, owner: str, repo: str, pr_number: int, review_id: int, message: str
|
||||
) -> dict[str, Any]:
|
||||
) -> dict[str, object]:
|
||||
"""Dismiss a review on a pull request.
|
||||
|
||||
Args:
|
||||
@@ -447,7 +454,7 @@ class PullRequestsClient:
|
||||
url = (
|
||||
f"{self.base_url}/api/v1/repos/{owner}/{repo}/pulls/{pull_number}/merge"
|
||||
)
|
||||
data: dict[str, Any] = {
|
||||
data: dict[str, str] = {
|
||||
"Do": style,
|
||||
"MergeTitleField": title,
|
||||
"MergeMessageField": message,
|
||||
|
||||
Reference in New Issue
Block a user