@probot/get-private-key
Get private key from a file path, environment variables, or a *.pem
file in the current working directory

Finds a private key through various user-(un)specified methods. Order of precedence:
- Explicit file path option
PRIVATE_KEY
environment variable or explicit env.PRIVATE_KEY
option. The private key can optionally be base64 encoded.PRIVATE_KEY_PATH
environment variable or explicit env.PRIVATE_KEY_PATH
option- Any file w/
.pem
extension in current working dir
Supports both PKCS1 (i.e -----BEGIN RSA PRIVATE KEY-----
) and PKCS8 (i.e -----BEGIN PRIVATE KEY-----
).
Usage
Browsers
|
@probot/get-private-key is not compatible with browser usage
|
---|
Node
|
Install with npm install @probot/get-private-key
import { Probot } from "probot";
import { getPrivateKey } from "@probot/get-private-key";
[!IMPORTANT]
As we use conditional exports, you will need to adapt your tsconfig.json by setting "moduleResolution": "node16", "module": "node16" .
See the TypeScript docs on package.json "exports".
See this helpful guide on transitioning to ESM from @sindresorhus
|
---|
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