GitHub Release Event

GitHub release webhook payload with assets, tag tracking, and draft/prerelease flags.

Report an issue
github

Install

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

Dependencies

Source

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

export interface GitHubReleaseAsset {
  url: string;
  browser_download_url: string;
  id: number;
  node_id: string;
  name: string;
  label: string | null;
  state: string;
  content_type: string;
  size: number;
  download_count: number;
  created_at: string;
  updated_at: string;
}

export interface GitHubRelease {
  url: string;
  html_url: string;
  id: number;
  node_id: string;
  tag_name: string;
  target_commitish: string;
  name: string | null;
  body: string | null;
  draft: boolean;
  prerelease: boolean;
  created_at: string;
  published_at: string | null;
  author: GitHubUser;
  assets: GitHubReleaseAsset[];
}

export type GitHubReleaseEventAction =
  | "published"
  | "unpublished"
  | "created"
  | "edited"
  | "deleted"
  | "prereleased"
  | "released";

export interface GitHubReleaseEvent {
  action: GitHubReleaseEventAction;
  release: GitHubRelease;
  repository: GitHubRepository;
  sender: GitHubUser;
  organization?: GitHubOrganization;
}
import type {
  GitHubUser,
  GitHubRepository,
  GitHubOrganization,
} from "./github-shared";

export interface GitHubReleaseAsset {
  url: string;
  browser_download_url: string;
  id: number;
  node_id: string;
  name: string;
  label: string | null;
  state: string;
  content_type: string;
  size: number;
  download_count: number;
  created_at: string;
  updated_at: string;
}

export interface GitHubRelease {
  url: string;
  html_url: string;
  id: number;
  node_id: string;
  tag_name: string;
  target_commitish: string;
  name: string | null;
  body: string | null;
  draft: boolean;
  prerelease: boolean;
  created_at: string;
  published_at: string | null;
  author: GitHubUser;
  assets: GitHubReleaseAsset[];
}

export type GitHubReleaseEventAction =
  | "published"
  | "unpublished"
  | "created"
  | "edited"
  | "deleted"
  | "prereleased"
  | "released";

export interface GitHubReleaseEvent {
  action: GitHubReleaseEventAction;
  release: GitHubRelease;
  repository: GitHubRepository;
  sender: GitHubUser;
  organization?: GitHubOrganization;
}