> ## Documentation Index
> Fetch the complete documentation index at: https://trigger-v3-fix-additional-files.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# GitHub overview & authentication

## Overview

Our GitHub integration allows you to create triggers and tasks that interact with GitHub. Trigger jobs when events happen, like when a new issue is added to a repo, or when a pull request is opened, etc. You can also perform tasks like creating issues, getting information about a repo, adding comments, and much more.

## Installing the GitHub packages

To get started with our GitHub integration, you need to install the `@trigger.dev/github` packages. You can do this using `npm`, `pnpm`, or `yarn`:

<CodeGroup>
  ```bash npm
  npm install @trigger.dev/github@latest
  ```

  ```bash pnpm
  pnpm install @trigger.dev/github@latest
  ```

  ```bash yarn
  yarn add @trigger.dev/github@latest
  ```
</CodeGroup>

## Authentication

GitHub supports Personal Access Tokens and OAuth. You can use either of these to authenticate with GitHub.

### Personal Access Token

To create a personal access token on GitHub, login and [follow the instructions](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token). Information on the required scopes can be found [here](https://docs.github.com/en/developers/apps/scopes-for-oauth-apps).

```ts my-job.ts
import { GitHub } from "@trigger.dev/github";

//create GitHub client using a token
const github = new GitHub({
  id: "github",
  token: process.env.GITHUB_TOKEN!,
});
...
```

### OAuth

To use OAuth you can connect to GitHub via the Trigger.dev [web app](https://cloud.trigger.dev). Click 'Integrations' in the side panel of any project, and configure GitHub with the ID you want to use in your job and the required [scopes](https://docs.github.com/en/apps/oauth-apps/building-oauth-apps/scopes-for-oauth-apps).

```ts my-job.ts
import { GitHub } from "@trigger.dev/github";

//create GitHub client using OAuth
const github = new GitHub({
  id: "github",
});
...
```

## Triggers and Tasks

Once you have set up a GitHub client, you can use it to create triggers and tasks.

<CardGroup cols={2}>
  <Card title="Triggers" icon="stars" href="/integrations/apis/github-triggers">
    Trigger Jobs when events happen in GitHub, such as a new commit or a new issue.
  </Card>

  <Card title="Tasks" icon="sparkles" href="/integrations/apis/github-tasks">
    Perform tasks such as creating a new issue or a new comment.
  </Card>
</CardGroup>

## Example jobs

<Card title="Code examples" icon="code" href="https://trigger.dev/apis/github">
  Check out pre-built jobs using GitHub in our API section.
</Card>
