MatteoMass's picture
removed the tokens from env
9ad58d0
from pmcp.mcp_server.github_server.utils.github_api import GithubClient
class PullRequestService:
"""Read-only pull-request queries."""
def __init__(self, client: GithubClient):
self.client = client
async def get_pr_list(self, owner: str, repo: str, state: str = "open"):
"""
List pull requests for a repository.
Args:
owner (str): Repository owner.
repo (str): Repository name.
state (str): ``open``, ``closed`` or ``all``.
Returns:
List of PR dicts.
"""
params = {"state": state}
return await self.client.GET(f"{owner}/{repo}/pulls", params=params)
async def create(
self,
owner: str,
repo: str,
title: str,
head: str,
base: str,
body: str | None = None,
draft: bool = False,
):
"""
Create a pull request (`POST /pulls`).
Args:
owner: Repository owner.
repo: Repository name.
title: PR title.
head: The branch/tag you want to merge **from** (`user:branch` accepted).
base: The branch you want to merge **into** (usually `main`).
body: Optional Markdown description.
draft: Whether to open as a draft PR.
Returns:
JSON describing the new pull request.
"""
payload = {
"title": title,
"head": head,
"base": base,
"body": body or "",
"draft": draft,
}
return await self.client.POST(f"{owner}/{repo}/pulls", json=payload)