# GitHubSourceOptions

Options for GitHub sources.

- Source: [`pipelines/lib/codepipeline/codepipeline-source.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/pipelines/lib/codepipeline/codepipeline-source.ts#L204)
- Type last changed: v2.64.0 · 9 Feb 2023

## Example

```ts
pipelines.CodePipelineSource.gitHub('org/repo', 'branch', {
  // This is optional
  authentication: cdk.SecretValue.secretsManager('my-token'),
});
```

## Properties

- `actionName`: string — The action name used for this source in the CodePipeline.

  **Default:** The repository string

- `authentication`: [SecretValue](/cdk/api/v2/docs/aws-cdk-lib.SecretValue.html) — A GitHub OAuth token to use for authentication.

  **Default:** SecretValue.secretsManager('github-token')

  It is recommended to use a Secrets Manager `Secret` to obtain the token:

  ```ts
  const oauth = cdk.SecretValue.secretsManager('my-github-token');
  ```

  The GitHub Personal Access Token should have these scopes:

  * **repo** - to read the repository
  * **admin:repo_hook** - if you plan to use webhooks (true by default)

- `trigger`: [GitHubTrigger](/cdk/api/v2/docs/aws-cdk-lib.aws_codepipeline_actions.GitHubTrigger.html) = GitHubTrigger.WEBHOOK — How AWS CodePipeline should be triggered.

  With the default value "WEBHOOK", a webhook is created in GitHub that triggers the action.
  With "POLL", CodePipeline periodically checks the source for changes.
  With "None", the action is not triggered through changes in the source.

  To use `WEBHOOK`, your GitHub Personal Access Token should have
  **admin:repo_hook** scope (in addition to the regular **repo** scope).
