GitHub Pull Request Event

GitHub pull_request webhook payload with branches, labels, reviewers, and changes tracking.

Report an issue
github

Install

$ npx shadcn@latest add @open-types/github-pull-request-event

Dependencies

Source

import type {
  GitHubUser,
  GitHubRepository,
  GitHubOrganization,
  GitHubLabel,
  GitHubMilestone,
} from "./github-shared";

export type GitHubPullRequestAction =
  | "assigned"
  | "auto_merge_disabled"
  | "auto_merge_enabled"
  | "closed"
  | "converted_to_draft"
  | "demilestoned"
  | "dequeued"
  | "edited"
  | "enqueued"
  | "labeled"
  | "locked"
  | "milestoned"
  | "opened"
  | "ready_for_review"
  | "reopened"
  | "review_request_removed"
  | "review_requested"
  | "synchronize"
  | "unassigned"
  | "unlabeled"
  | "unlocked";

export interface GitHubPullRequestBranch {
  label: string;
  ref: string;
  sha: string;
  user: GitHubUser;
  repo: GitHubRepository | null;
}

export interface GitHubPullRequest {
  id: number;
  node_id: string;
  number: number;
  state: "open" | "closed";
  locked: boolean;
  title: string;
  user: GitHubUser;
  body: string | null;
  created_at: string;
  updated_at: string;
  closed_at: string | null;
  merged_at: string | null;
  merge_commit_sha: string | null;
  head: GitHubPullRequestBranch;
  base: GitHubPullRequestBranch;
  draft: boolean;
  merged: boolean;
  mergeable: boolean | null;
  mergeable_state?: string;
  merged_by?: GitHubUser | null;
  comments?: number;
  review_comments?: number;
  commits?: number;
  additions?: number;
  deletions?: number;
  changed_files?: number;
  labels: GitHubLabel[];
  milestone: GitHubMilestone | null;
  assignee: GitHubUser | null;
  assignees: GitHubUser[];
  requested_reviewers: GitHubUser[];
  html_url: string;
  url: string;
}

export interface GitHubPullRequestChanges {
  title?: { from: string };
  body?: { from: string };
}

export interface GitHubPullRequestEvent {
  action: GitHubPullRequestAction;
  number: number;
  pull_request: GitHubPullRequest;
  repository: GitHubRepository;
  sender: GitHubUser;
  organization?: GitHubOrganization;
  label?: GitHubLabel;
  changes?: GitHubPullRequestChanges;
}
import type {
  GitHubUser,
  GitHubRepository,
  GitHubOrganization,
  GitHubLabel,
  GitHubMilestone,
} from "./github-shared";

export type GitHubPullRequestAction =
  | "assigned"
  | "auto_merge_disabled"
  | "auto_merge_enabled"
  | "closed"
  | "converted_to_draft"
  | "demilestoned"
  | "dequeued"
  | "edited"
  | "enqueued"
  | "labeled"
  | "locked"
  | "milestoned"
  | "opened"
  | "ready_for_review"
  | "reopened"
  | "review_request_removed"
  | "review_requested"
  | "synchronize"
  | "unassigned"
  | "unlabeled"
  | "unlocked";

export interface GitHubPullRequestBranch {
  label: string;
  ref: string;
  sha: string;
  user: GitHubUser;
  repo: GitHubRepository | null;
}

export interface GitHubPullRequest {
  id: number;
  node_id: string;
  number: number;
  state: "open" | "closed";
  locked: boolean;
  title: string;
  user: GitHubUser;
  body: string | null;
  created_at: string;
  updated_at: string;
  closed_at: string | null;
  merged_at: string | null;
  merge_commit_sha: string | null;
  head: GitHubPullRequestBranch;
  base: GitHubPullRequestBranch;
  draft: boolean;
  merged: boolean;
  mergeable: boolean | null;
  mergeable_state?: string;
  merged_by?: GitHubUser | null;
  comments?: number;
  review_comments?: number;
  commits?: number;
  additions?: number;
  deletions?: number;
  changed_files?: number;
  labels: GitHubLabel[];
  milestone: GitHubMilestone | null;
  assignee: GitHubUser | null;
  assignees: GitHubUser[];
  requested_reviewers: GitHubUser[];
  html_url: string;
  url: string;
}

export interface GitHubPullRequestChanges {
  title?: { from: string };
  body?: { from: string };
}

export interface GitHubPullRequestEvent {
  action: GitHubPullRequestAction;
  number: number;
  pull_request: GitHubPullRequest;
  repository: GitHubRepository;
  sender: GitHubUser;
  organization?: GitHubOrganization;
  label?: GitHubLabel;
  changes?: GitHubPullRequestChanges;
}