Skip to content

Repository files navigation

register-github-app

Register a GitHub App using the manifest flow

Usage

register-github-app.mov

Minimal

importregisterGitHubAppfrom"register-github-app";constappCredentials=awaitregisterGitHubApp();console.log(appCredentials);

Write credentials into a .env file.

importfsfrom"node:fs/promises";importcryptofrom"node:crypto";importregisterGitHubAppfrom"register-github-app";// register app and retrieve credentialsconstappCredentials=awaitregisterGitHubApp({// name of your appname: "my-github-app",// Homepage of your app, e.g. your app's repository or your org/user accounturl: "https://github.com/monatheoctocat/monas-github-app",// object of permissions for new installationsdefault_permissions: {issues: "write",},// List of events for new installationsevedefault_events: ["issues"],});// convert private key to pkcs8 format (recommended for better cross plattform support)constprivateKeyPKCS8=String(crypto.createPrivateKey(appCredentials.pem).export({type: "pkcs8",format: "pem",}),);constsingleLinePrivateKey=privateKeyPKCS8.trim().replace(/\n/g,"\\n");// write credentials into `.env` fileawaitfs.writeFile(".env",`GITHUB_APP_ID=${appCredentials.id}GITHUB_APP_PRIVATE_KEY="${singleLinePrivateKey}"GITHUB_APP_WEBHOOK_SECRET=${appCredentials.webhook_secret}GITHUB_APP_CLIENT_ID=${appCredentials.client_id}GITHUB_APP_SECRET=${appCredentials.client_secret}`,);

Register an app on an organization

importregisterGitHubAppfrom"register-github-app";// register app and retrieve credentialsconstappCredentials=awaitregisterGitHubApp({org: "my-organization-login",// name of your appname: "my-github-app",// object of permissions for new installationsdefault_permissions: {issues: "write",},// List of events for new installationsevedefault_events: ["issues"],});

See also

How it works

Registering a GitHub App using the manifest flow is an alternative to manually register a GitHub App on a user account or an organization. Here is what the register-github-app does

  1. Starts a server on a random available port.
  2. When opened in browser, it generates an HTML form with an input named manifest which value is set to a JSON string with the app manifest settings, and submits the form to github.com
  3. On github.com, the user will be prompted to sign in or enter sudo mode.
  4. Once authenticated, the user has to confirm the GitHub App name. It must be globally unique.
  5. Once confirmed, the browser redirects to server started in the first step with a one-time code
  6. The app credentials are retrieved using the one-time code, the server is stopped, and the credentials are returned

Resources

License

ISC

About

Register a GitHub App using the manifest flow

Resources

Code of conduct

Stars

8 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages