> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stackerjs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# stacker/github

> Provides type definitions for working with GitHub notification events.

## Constants

### `GitHubReasons`

A set of constants representing possible reasons for a GitHub event.

> Explanations for each reason can be found in the [GitHub Docs](https://docs.github.com/en/rest/activity/notifications?apiVersion=2022-11-28#about-notification-reasons).

```typescript theme={null}
export const GitHubReasons: {
    Assign: 'assign';
    Author: 'author';
    Comment: 'comment';
    Invitation: 'invitation';
    Manual: 'manual';
    Mention: 'mention';
    ReviewRequested: 'review_requested';
    SecurityAlert: 'security_alert';
    StateChange: 'state_change';
    Subscribed: 'subscribed';
    TeamMention: 'team_mention';
    CiActivity: 'ci_activity';
};
```

### `GitHubTypes`

A set of constants representing possible types of GitHub events.

```TypeScript theme={null}
export const GitHubTypes: {
    CheckSuite: 'CheckSuite';
    Commit: 'Commit';
    Discussion: 'Discussion';
    Issue: 'Issue';
    PullRequest: 'PullRequest';
    Release: 'Release';
    RepositoryVulnerabilityAlert: 'RepositoryVulnerabilityAlert';
};
```

## Types

### `GitHubEvent`

Represents a GitHub event.

```typescript theme={null}
interface GitHubEvent {
    title: string;
    url: string;
    reason: string;
    type: string;
    repository: GitHubRepository;
}
```

### `GitHubRepository`

Represents a GitHub repository.

```TypeScript theme={null}
interface GitHubRepository {
    fullName: string;
    name: string;
    url: string;
    private: boolean;
    description: string;
    fork: boolean;
    owner: GitHubOwner;
}
```

### `GitHubOwner`

Represents the owner of a GitHub repository.

```TypeScript theme={null}
interface GitHubOwner {
    login: string;
    url: string;
    type: string;
    siteAdmin: boolean;
}
```
