Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/electron/github-app-auth
Gets an auth token for a repo via a GitHub app installation
https://github.com/electron/github-app-auth
Last synced: 3 months ago
JSON representation
Gets an auth token for a repo via a GitHub app installation
- Host: GitHub
- URL: https://github.com/electron/github-app-auth
- Owner: electron
- License: mit
- Created: 2022-05-05T22:26:31.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-18T18:24:51.000Z (9 months ago)
- Last Synced: 2024-04-14T03:56:18.908Z (8 months ago)
- Language: TypeScript
- Size: 166 KB
- Stars: 10
- Watchers: 7
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# @electron/github-app-auth
> Gets an auth token for a repo via a GitHub app installation
[![CircleCI](https://circleci.com/gh/electron/github-app-auth.svg?style=shield)](https://circleci.com/gh/electron/github-app-auth)
[![npm version](https://img.shields.io/npm/v/@electron/github-app-auth.svg)](https://npmjs.org/package/@electron/github-app-auth)## Usage
### Generating Credentials
In order to simply credential management `@electron/github-app-auth` contains
a CLI tool to generate a "credential bundle" that contains the requisite
information to generate tokens. You need both a private key for your
application and the application ID.* You can find your app's ID on the settings page for your GitHub App.
* To download your app's private key, see [Managing private keys for GitHub Apps](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/managing-private-keys-for-github-apps).```bash
npx @electron/github-app-auth --cert=my-private.key.pem --app-id=12345
```This command will output a base64 encoded blob which you should store in your
services secret storage (normally accessed via an environment variable). Below
we will use `MY_GITHUB_APP_CREDS` as the environment variable.### With `@octokit/rest`
```typescript
import { appCredentialsFromString, getAuthOptionsForRepo } from '@electron/github-app-auth';
import { Octokit } from '@octokit/rest';const creds = appCredentialsFromString(process.env.MY_GITHUB_APP_CREDS);
const authOpts = await getAuthOptionsForRepo({
owner: 'electron',
name: 'electron'
}, creds)
const octo = new Octokit({
...authOpts,
});// octo is now a valid octokit instance
```### With raw tokens
```typescript
import { appCredentialsFromString, getTokenForRepo } from '@electron/github-app-auth';
import { Octokit } from '@octokit/rest';const creds = appCredentialsFromString(process.env.MY_GITHUB_APP_CREDS);
const token = await getTokenForRepo({
owner: 'electron',
name: 'electron'
}, creds)// token is now a valid github auth token
```#### With raw tokens on the CLI
```bash
gh_token=$(npx @electron/github-app-auth --creds=$MY_GITHUB_APP_CREDS --owner=electron --repo=electron)
```