Skip to content

Prs

UserType

Bases: str, Enum

user

user = 'User'

bot

bot = 'Bot'

org

org = 'Organization'

PRState

Bases: str, Enum

open

open = 'open'

closed

closed = 'closed'

AuthorAssociation

Bases: str, Enum

owner

owner = 'OWNER'

collaborator

collaborator = 'COLLABORATOR'

contributor

contributor = 'CONTRIBUTOR'

first_time_contributor

first_time_contributor = 'FIRST_TIME_CONTRIBUTOR'

first_timer

first_timer = 'FIRST_TIMER'

member

member = 'MEMBER'

none

none = 'NONE'

User

Bases: BaseModel

login

login: str = Field(..., description='GitHub username')

id

id: int = Field(..., description='Unique user ID')

node_id

node_id: str = Field(..., description='GraphQL node ID')

avatar_url

avatar_url: str = Field(..., description="URL to user's avatar image")

gravatar_id

gravatar_id: str = Field(..., description='Gravatar ID (usually empty)')

url

url: str = Field(..., description='API URL for user')

html_url

html_url: str = Field(..., description='GitHub profile URL')

followers_url

followers_url: str = Field(..., description="API URL for user's followers")

following_url

following_url: str = Field(..., description='API URL for users this user follows')

gists_url

gists_url: str = Field(..., description="API URL for user's gists")

starred_url

starred_url: str = Field(..., description="API URL for user's starred repositories")

subscriptions_url

subscriptions_url: str = Field(..., description="API URL for user's subscriptions")

organizations_url

organizations_url: str = Field(..., description="API URL for user's organizations")

repos_url

repos_url: str = Field(..., description="API URL for user's repositories")

events_url

events_url: str = Field(..., description="API URL for user's events")

received_events_url

received_events_url: str = Field(..., description='API URL for events received by user')

type

type: UserType = Field(..., description='Type of user account')

site_admin

site_admin: bool = Field(..., description='Whether user is a GitHub site admin')

License

Bases: BaseModel

key

key: str = Field(default='', description='License key identifier')

name

name: str = Field(default='', description='Full license name')

url

url: str = Field(default='', description='API URL for license details')

spdx_id

spdx_id: str = Field(default='', description='SPDX license identifier')

node_id

node_id: str = Field(default='', description='GraphQL node ID')

html_url

html_url: str = Field(default='', description='GitHub URL for license details')

Permissions

Bases: BaseModel

admin

admin: bool = Field(default=False, description='Whether user has admin permissions')

push

push: bool = Field(default=False, description='Whether user can push to repository')

pull

pull: bool = Field(default=False, description='Whether user can pull from repository')

Repository

Bases: BaseModel

id

id: int = Field(..., description='Unique repository ID')

node_id

node_id: str = Field(..., description='GraphQL node ID')

name

name: str = Field(..., description='Repository name')

full_name

full_name: str = Field(..., description='Full repository name (Mai0313/SWEBenchV2)')

owner

owner: User = Field(..., description='Repository owner')

private

private: bool = Field(..., description='Whether repository is private')

html_url

html_url: str = Field(..., description='GitHub repository URL')

description

description: str | None = Field(default=None, description='Repository description')

fork

fork: bool = Field(..., description='Whether repository is a fork')

url

url: str = Field(..., description='API URL for repository')

archive_url

archive_url: str = Field(..., description='API URL template for repository archives')

assignees_url

assignees_url: str = Field(..., description='API URL template for assignees')

blobs_url

blobs_url: str = Field(..., description='API URL template for blobs')

branches_url

branches_url: str = Field(..., description='API URL template for branches')

collaborators_url

collaborators_url: str = Field(..., description='API URL template for collaborators')

comments_url

comments_url: str = Field(..., description='API URL template for comments')

commits_url

commits_url: str = Field(..., description='API URL template for commits')

compare_url

compare_url: str = Field(..., description='API URL template for comparing branches')

contents_url

contents_url: str = Field(..., description='API URL template for repository contents')

contributors_url

contributors_url: str = Field(..., description='API URL for contributors')

deployments_url

deployments_url: str = Field(..., description='API URL for deployments')

downloads_url

downloads_url: str = Field(..., description='API URL for downloads')

events_url

events_url: str = Field(..., description='API URL for repository events')

forks_url

forks_url: str = Field(..., description='API URL for repository forks')

git_commits_url

git_commits_url: str = Field(..., description='API URL template for git commits')

git_refs_url

git_refs_url: str = Field(..., description='API URL template for git references')

git_tags_url

git_tags_url: str = Field(..., description='API URL template for git tags')

git_url

git_url: str = Field(..., description='Git clone URL')

issue_comment_url

issue_comment_url: str = Field(..., description='API URL template for issue comments')

issue_events_url

issue_events_url: str = Field(..., description='API URL template for issue events')

issues_url

issues_url: str = Field(..., description='API URL template for issues')

keys_url

keys_url: str = Field(..., description='API URL template for deploy keys')

labels_url

labels_url: str = Field(..., description='API URL template for labels')

languages_url

languages_url: str = Field(..., description='API URL for repository languages')

merges_url

merges_url: str = Field(..., description='API URL for merges')

milestones_url

milestones_url: str = Field(..., description='API URL template for milestones')

notifications_url

notifications_url: str = Field(..., description='API URL for notifications')

pulls_url

pulls_url: str = Field(..., description='API URL template for pull requests')

releases_url

releases_url: str = Field(..., description='API URL template for releases')

ssh_url

ssh_url: str = Field(..., description='SSH clone URL')

stargazers_url

stargazers_url: str = Field(..., description='API URL for stargazers')

statuses_url

statuses_url: str = Field(..., description='API URL template for statuses')

subscribers_url

subscribers_url: str = Field(..., description='API URL for subscribers')

subscription_url

subscription_url: str = Field(..., description='API URL for subscription')

tags_url

tags_url: str = Field(..., description='API URL for tags')

teams_url

teams_url: str = Field(..., description='API URL for teams')

trees_url

trees_url: str = Field(..., description='API URL template for git trees')

clone_url

clone_url: str = Field(..., description='HTTPS clone URL')

mirror_url

mirror_url: str | None = Field(default=None, description='Mirror repository URL')

hooks_url

hooks_url: str = Field(..., description='API URL for webhooks')

svn_url

svn_url: str = Field(..., description='SVN checkout URL')

homepage

homepage: str | None = Field(default=None, description='Repository homepage URL')

language

language: str | None = Field(default=None, description='Primary programming language')

forks_count

forks_count: int = Field(..., description='Number of forks')

stargazers_count

stargazers_count: int = Field(..., description='Number of stargazers')

watchers_count

watchers_count: int = Field(..., description='Number of watchers')

size

size: int = Field(..., description='Repository size in KB')

default_branch

default_branch: str = Field(..., description='Default branch name')

open_issues_count

open_issues_count: int = Field(..., description='Number of open issues')

is_template

is_template: bool = Field(..., description='Whether repository is a template')

topics

topics: list[str] = Field(default_factory=list, description='Repository topics')

has_issues

has_issues: bool = Field(..., description='Whether issues are enabled')

has_projects

has_projects: bool = Field(..., description='Whether projects are enabled')

has_wiki

has_wiki: bool = Field(..., description='Whether wiki is enabled')

has_pages

has_pages: bool = Field(..., description='Whether GitHub Pages is enabled')

has_downloads

has_downloads: bool = Field(..., description='Whether downloads are enabled')

archived

archived: bool = Field(..., description='Whether repository is archived')

disabled

disabled: bool = Field(..., description='Whether repository is disabled')

visibility

visibility: str = Field(..., description='Repository visibility (public/private/internal)')

pushed_at

pushed_at: datetime = Field(..., description='Last push timestamp')

created_at

created_at: datetime = Field(..., description='Repository creation timestamp')

updated_at

updated_at: datetime = Field(..., description='Last update timestamp')

permissions

permissions: Permissions = Field(default_factory=Permissions, description='User permissions on repository')

allow_rebase_merge

allow_rebase_merge: bool = Field(default=False, description='Whether rebase merge is allowed')

template_repository

template_repository: dict | None = Field(default=None, description='Template repository if this is from template')

temp_clone_token

temp_clone_token: str | None = Field(default=None, description='Temporary clone token')

allow_squash_merge

allow_squash_merge: bool = Field(default=False, description='Whether squash merge is allowed')

allow_auto_merge

allow_auto_merge: bool = Field(default=False, description='Whether auto-merge is allowed')

delete_branch_on_merge

delete_branch_on_merge: bool = Field(default=False, description='Whether to delete branch on merge')

allow_merge_commit

allow_merge_commit: bool = Field(default=False, description='Whether merge commit is allowed')

subscribers_count

subscribers_count: int = Field(default=0, description='Number of subscribers')

network_count

network_count: int = Field(default=0, description='Network count')

license

license: License | None = Field(default=None, description='Repository license')

forks

forks: int = Field(..., description='Number of forks')

open_issues

open_issues: int = Field(..., description='Number of open issues')

watchers

watchers: int = Field(..., description='Number of watchers')

Label

Bases: BaseModel

id

id: int = Field(..., description='Unique label ID')

node_id

node_id: str = Field(..., description='GraphQL node ID')

url

url: str = Field(..., description='API URL for label')

name

name: str = Field(..., description='Label name')

description

description: str | None = Field(default=None, description='Label description')

color

color: str = Field(..., description='Label color (hex code without #)')

default

default: bool = Field(..., description='Whether this is a default label')

Milestone

Bases: BaseModel

url

url: str = Field(..., description='API URL for milestone')

html_url

html_url: str = Field(..., description='GitHub URL for milestone')

labels_url

labels_url: str = Field(..., description='API URL for milestone labels')

id

id: int = Field(..., description='Unique milestone ID')

node_id

node_id: str = Field(..., description='GraphQL node ID')

number

number: int = Field(..., description='Milestone number')

state

state: str = Field(..., description='Milestone state (open/closed)')

title

title: str = Field(..., description='Milestone title')

description

description: str | None = Field(default=None, description='Milestone description')

creator

creator: User = Field(..., description='User who created the milestone')

open_issues

open_issues: int = Field(..., description='Number of open issues in milestone')

closed_issues

closed_issues: int = Field(..., description='Number of closed issues in milestone')

created_at

created_at: datetime = Field(..., description='Milestone creation timestamp')

updated_at

updated_at: datetime = Field(..., description='Milestone last update timestamp')

closed_at

closed_at: datetime | None = Field(default=None, description='Milestone close timestamp')

due_on

due_on: datetime | None = Field(default=None, description='Milestone due date')

Team

Bases: BaseModel

id

id: int = Field(..., description='Unique team ID')

node_id

node_id: str = Field(..., description='GraphQL node ID')

url

url: str = Field(..., description='API URL for team')

html_url

html_url: str = Field(..., description='GitHub URL for team')

name

name: str = Field(..., description='Team name')

slug

slug: str = Field(..., description='Team slug')

description

description: str | None = Field(default=None, description='Team description')

privacy

privacy: str = Field(..., description='Team privacy setting (open/closed/secret)')

permission

permission: str = Field(..., description='Team permission level')

notification_setting

notification_setting: str = Field(..., description='Team notification setting')

members_url

members_url: str = Field(..., description='API URL template for team members')

repositories_url

repositories_url: str = Field(..., description='API URL for team repositories')

parent

parent: dict | None = Field(default=None, description='Parent team if this is a child team')

BranchReference

Bases: BaseModel

label

label: str = Field(..., description='Branch label (owner:branch)')

ref

ref: str = Field(..., description='Branch reference name')

sha

sha: str = Field(..., description='Commit SHA')

user

user: User = Field(..., description='User who owns the branch')

repo

repo: Repository | None = Field(default=None, description='Repository containing the branch')

Bases: BaseModel

self_link: dict = Field(..., validation_alias=AliasChoices('self', 'self_link'), description='Self link')

html

html: dict = Field(..., description='HTML link')

issue

issue: dict = Field(..., description='Issue link')

comments

comments: dict = Field(..., description='Comments link')

review_comments

review_comments: dict = Field(..., description='Review comments link')

review_comment

review_comment: dict = Field(..., description='Review comment template link')

commits

commits: dict = Field(..., description='Commits link')

statuses

statuses: dict = Field(..., description='Statuses link')

PullRequest

Bases: BaseModel

url

url: str = Field(..., description='API URL for pull request')

id

id: int = Field(..., description='Unique pull request ID')

node_id

node_id: str = Field(..., description='GraphQL node ID')

html_url

html_url: str = Field(..., description='GitHub URL for pull request')

diff_url

diff_url: str = Field(..., description='Diff URL for pull request')

patch_url

patch_url: str = Field(..., description='Patch URL for pull request')

issue_url

issue_url: str = Field(..., description='API URL for associated issue')

commits_url

commits_url: str = Field(..., description='API URL for pull request commits')

review_comments_url

review_comments_url: str = Field(..., description='API URL for review comments')

review_comment_url

review_comment_url: str = Field(..., description='API URL template for review comments')

comments_url

comments_url: str = Field(..., description='API URL for issue comments')

statuses_url

statuses_url: str = Field(..., description='API URL for commit statuses')

number

number: int = Field(..., description='Pull request number')

state

state: PRState = Field(..., description='Pull request state')

locked

locked: bool = Field(..., description='Whether pull request is locked')

title

title: str = Field(..., description='Pull request title')

user

user: User = Field(..., description='User who created the pull request')

body

body: str | None = Field(default='', description='Pull request body/description')

labels

labels: list[Label] = Field(default_factory=list, description='Labels applied to pull request')

milestone

milestone: Milestone | None = Field(default=None, description='Milestone assigned to pull request')

active_lock_reason

active_lock_reason: str | None = Field(default=None, description='Reason for locking (if locked)')

created_at

created_at: datetime = Field(..., description='Pull request creation timestamp')

updated_at

updated_at: datetime = Field(..., description='Pull request last update timestamp')

closed_at

closed_at: datetime | None = Field(default=None, description='Pull request close timestamp')

merged_at

merged_at: datetime | None = Field(default=None, description='Pull request merge timestamp')

merge_commit_sha

merge_commit_sha: str | None = Field(default=None, description='SHA of merge commit')

assignee

assignee: User | None = Field(default=None, description='Primary assignee')

assignees

assignees: list[User] = Field(default_factory=list, description='All assignees')

requested_reviewers

requested_reviewers: list[User] = Field(default_factory=list, description='Requested reviewers')

requested_teams

requested_teams: list[Team] = Field(default_factory=list, description='Requested team reviewers')

head

head: BranchReference = Field(..., description='Head branch (source)')

base

base: BranchReference = Field(..., description='Base branch (target)')
links: Links = Field(..., validation_alias=AliasChoices('_links', 'links'), description='Related links')

author_association

author_association: AuthorAssociation = Field(..., description="Author's association with repository")

auto_merge

auto_merge: dict | None = Field(default=None, description='Auto-merge configuration')

draft

draft: bool = Field(..., description='Whether pull request is a draft')