@probot/get-private-key

Get private key from a path, environment variables, or a `*.pem` file in the current working directory

Usage no npm install needed!

<script type="module">
  import probotGetPrivateKey from 'https://cdn.skypack.dev/@probot/get-private-key';
</script>

README

@probot/get-private-key

Get private key from a file path, environment variables, or a *.pem file in the current working directory

@latest Build Status

Finds a private key through various user-(un)specified methods. Order of precedence:

  1. Explicit file path option
  2. PRIVATE_KEY environment variable or explicit env.PRIVATE_KEY option. The private key can optionally be base64 encoded.
  3. PRIVATE_KEY_PATH environment variable or explicit env.PRIVATE_KEY_PATH option
  4. Any file w/ .pem extension in current working dir

Usage

Browsers

@probot/get-private-key is not compatible with browser usage

Node

Install with npm install octokit-auth-probot

const { Probot } = require("probot");
const { getPrivateKey } = require("@probot/get-private-key");
const probot = new Probot({
  appId: 123,
  privateKey: getPrivateKey(),
});

Options

name type description
options.filepath string

Pass a path to a *.pem file. A relative path will be resolved to the current working directory (which you can set with the cwd option)

const privateKey = getPrivateKey({
  filepath: "private-key.pem",
});
options.cwd string

Defaults to process.cwd(). Used to resolve the filepath option and used as folder to find *.pem files.

const privateKey = getPrivateKey({
  cwd: "/app/current",
});
options.env object

Defaults to process.env. Pass env.PRIVATE_KEY or env.PRIVATE_KEY_PATH to workaround reading environment variables

const privateKey = getPrivateKey({
  env: {
    PRIVATE_KEY: "-----BEGIN RSA PRIVATE KEY-----\n...",
  },
});

LICENSE

ISC