@probot/get-private-key
v2.0.0
Published
Get private key from a path, environment variables, or a `*.pem` file in the current working directory
Downloads
172,915
Readme
@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 explicitenv.PRIVATE_KEY
option. The private key can optionally be base64 encoded.PRIVATE_KEY_PATH
environment variable or explicitenv.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
@probot/get-private-key
is not compatible with browser usage
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
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",
});
Defaults to process.cwd()
. Used to resolve the filepath
option and used as folder to find *.pem
files.
const privateKey = getPrivateKey({
cwd: "/app/current",
});
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...",
},
});