Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0f859bf9e6 | ||
|
|
a1cbe0fa3c | ||
|
|
d7ee281215 | ||
|
|
93c1f04d6f | ||
|
|
dff4b11d10 | ||
|
|
6d44c9fd24 | ||
|
|
df432ceedc | ||
|
|
333678481b | ||
|
|
db3cdf4098 | ||
|
|
d64d7d7355 | ||
|
|
1b6f53e48e | ||
|
|
061a84d5f5 | ||
|
|
c8f34a61a8 | ||
|
|
4821f52fa7 | ||
|
|
2950cbc446 |
5
.github/workflows/test.yml
vendored
5
.github/workflows/test.yml
vendored
@@ -11,6 +11,9 @@ concurrency:
|
|||||||
group: ${{ github.workflow }}-${{ github.ref }}
|
group: ${{ github.workflow }}-${{ github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
integration:
|
integration:
|
||||||
name: Integration
|
name: Integration
|
||||||
@@ -35,7 +38,7 @@ jobs:
|
|||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: actions/setup-node@v4
|
- uses: actions/setup-node@v4
|
||||||
with:
|
with:
|
||||||
node-version: 20
|
node-version: 24
|
||||||
cache: "npm"
|
cache: "npm"
|
||||||
- run: npm ci
|
- run: npm ci
|
||||||
- run: npm run build
|
- run: npm run build
|
||||||
|
|||||||
@@ -28,6 +28,6 @@ jobs:
|
|||||||
- name: Run permission inputs update script
|
- name: Run permission inputs update script
|
||||||
run: node scripts/update-permission-inputs.js
|
run: node scripts/update-permission-inputs.js
|
||||||
- name: Commit changes
|
- name: Commit changes
|
||||||
uses: stefanzweifel/git-auto-commit-action@e348103e9026cc0eee72ae06630dbe30c8bf7a79 # v5.1.0
|
uses: stefanzweifel/git-auto-commit-action@b863ae1933cb653a53c021fe36dbb774e1fb9403 # v5.2.0
|
||||||
with:
|
with:
|
||||||
commit_message: 'feat: update permission inputs'
|
commit_message: 'feat: update permission inputs'
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
20.9.0
|
24.4.0
|
||||||
@@ -8,9 +8,9 @@ GitHub Action for creating a GitHub App installation access token.
|
|||||||
|
|
||||||
In order to use this action, you need to:
|
In order to use this action, you need to:
|
||||||
|
|
||||||
1. [Register new GitHub App](https://docs.github.com/apps/creating-github-apps/setting-up-a-github-app/creating-a-github-app)
|
1. [Register new GitHub App](https://docs.github.com/apps/creating-github-apps/setting-up-a-github-app/creating-a-github-app).
|
||||||
2. [Store the App's ID in your repository environment variables](https://docs.github.com/actions/learn-github-actions/variables#defining-configuration-variables-for-multiple-workflows) (example: `APP_ID`)
|
2. [Store the App's ID or Client ID in your repository environment variables](https://docs.github.com/actions/learn-github-actions/variables#defining-configuration-variables-for-multiple-workflows) (example: `APP_ID`).
|
||||||
3. [Store the App's private key in your repository secrets](https://docs.github.com/actions/security-guides/encrypted-secrets?tool=webui#creating-encrypted-secrets-for-a-repository) (example: `PRIVATE_KEY`)
|
3. [Store the App's private key in your repository secrets](https://docs.github.com/actions/security-guides/encrypted-secrets?tool=webui#creating-encrypted-secrets-for-a-repository) (example: `PRIVATE_KEY`).
|
||||||
|
|
||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> An installation access token expires after 1 hour. Please [see this comment](https://github.com/actions/create-github-app-token/issues/121#issuecomment-2043214796) for alternative approaches if you have long-running processes.
|
> An installation access token expires after 1 hour. Please [see this comment](https://github.com/actions/create-github-app-token/issues/121#issuecomment-2043214796) for alternative approaches if you have long-running processes.
|
||||||
|
|||||||
@@ -132,6 +132,6 @@ outputs:
|
|||||||
app-slug:
|
app-slug:
|
||||||
description: "GitHub App slug"
|
description: "GitHub App slug"
|
||||||
runs:
|
runs:
|
||||||
using: "node20"
|
using: "node24"
|
||||||
main: "dist/main.cjs"
|
main: "dist/main.cjs"
|
||||||
post: "dist/post.cjs"
|
post: "dist/post.cjs"
|
||||||
|
|||||||
28
dist/main.cjs
vendored
28
dist/main.cjs
vendored
@@ -33638,6 +33638,11 @@ var require_sqlite_cache_store = __commonJS({
|
|||||||
}
|
}
|
||||||
this.#db = new DatabaseSync(opts?.location ?? ":memory:");
|
this.#db = new DatabaseSync(opts?.location ?? ":memory:");
|
||||||
this.#db.exec(`
|
this.#db.exec(`
|
||||||
|
PRAGMA journal_mode = WAL;
|
||||||
|
PRAGMA synchronous = NORMAL;
|
||||||
|
PRAGMA temp_store = memory;
|
||||||
|
PRAGMA optimize;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS cacheInterceptorV${VERSION7} (
|
CREATE TABLE IF NOT EXISTS cacheInterceptorV${VERSION7} (
|
||||||
-- Data specific to us
|
-- Data specific to us
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
@@ -33657,9 +33662,8 @@ var require_sqlite_cache_store = __commonJS({
|
|||||||
staleAt INTEGER NOT NULL
|
staleAt INTEGER NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS idx_cacheInterceptorV${VERSION7}_url ON cacheInterceptorV${VERSION7}(url);
|
CREATE INDEX IF NOT EXISTS idx_cacheInterceptorV${VERSION7}_getValuesQuery ON cacheInterceptorV${VERSION7}(url, method, deleteAt);
|
||||||
CREATE INDEX IF NOT EXISTS idx_cacheInterceptorV${VERSION7}_method ON cacheInterceptorV${VERSION7}(method);
|
CREATE INDEX IF NOT EXISTS idx_cacheInterceptorV${VERSION7}_deleteByUrlQuery ON cacheInterceptorV${VERSION7}(deleteAt);
|
||||||
CREATE INDEX IF NOT EXISTS idx_cacheInterceptorV${VERSION7}_deleteAt ON cacheInterceptorV${VERSION7}(deleteAt);
|
|
||||||
`);
|
`);
|
||||||
this.#getValuesQuery = this.#db.prepare(`
|
this.#getValuesQuery = this.#db.prepare(`
|
||||||
SELECT
|
SELECT
|
||||||
@@ -33836,7 +33840,7 @@ var require_sqlite_cache_store = __commonJS({
|
|||||||
this.#deleteByUrlQuery.run(this.#makeValueUrl(key));
|
this.#deleteByUrlQuery.run(this.#makeValueUrl(key));
|
||||||
}
|
}
|
||||||
#prune() {
|
#prune() {
|
||||||
if (this.size <= this.#maxCount) {
|
if (Number.isFinite(this.#maxCount) && this.size <= this.#maxCount) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
@@ -41375,7 +41379,7 @@ async function waitForAccessToken(request2, clientId, clientType, verification)
|
|||||||
return waitForAccessToken(request2, clientId, clientType, verification);
|
return waitForAccessToken(request2, clientId, clientType, verification);
|
||||||
}
|
}
|
||||||
if (errorType === "slow_down") {
|
if (errorType === "slow_down") {
|
||||||
await wait(verification.interval + 5);
|
await wait(verification.interval + 7);
|
||||||
return waitForAccessToken(request2, clientId, clientType, verification);
|
return waitForAccessToken(request2, clientId, clientType, verification);
|
||||||
}
|
}
|
||||||
throw error;
|
throw error;
|
||||||
@@ -42345,7 +42349,7 @@ async function sendRequestWithRetries(state, request2, options, createdAt, retri
|
|||||||
return sendRequestWithRetries(state, request2, options, createdAt, retries);
|
return sendRequestWithRetries(state, request2, options, createdAt, retries);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var VERSION6 = "7.2.0";
|
var VERSION6 = "7.2.1";
|
||||||
function createAppAuth(options) {
|
function createAppAuth(options) {
|
||||||
if (!options.appId) {
|
if (!options.appId) {
|
||||||
throw new Error("[@octokit/auth-app] appId option is required");
|
throw new Error("[@octokit/auth-app] appId option is required");
|
||||||
@@ -42394,8 +42398,9 @@ function createAppAuth(options) {
|
|||||||
// lib/get-permissions-from-inputs.js
|
// lib/get-permissions-from-inputs.js
|
||||||
function getPermissionsFromInputs(env) {
|
function getPermissionsFromInputs(env) {
|
||||||
return Object.entries(env).reduce((permissions2, [key, value]) => {
|
return Object.entries(env).reduce((permissions2, [key, value]) => {
|
||||||
if (!key.startsWith("INPUT_PERMISSION_")) return permissions2;
|
if (!key.startsWith("INPUT_PERMISSION-")) return permissions2;
|
||||||
const permission = key.slice("INPUT_PERMISSION_".length).toLowerCase();
|
if (!value) return permissions2;
|
||||||
|
const permission = key.slice("INPUT_PERMISSION-".length).toLowerCase().replaceAll(/-/g, "_");
|
||||||
if (permissions2 === void 0) {
|
if (permissions2 === void 0) {
|
||||||
return { [permission]: value };
|
return { [permission]: value };
|
||||||
}
|
}
|
||||||
@@ -42568,6 +42573,7 @@ async function main(appId2, privateKey2, owner2, repositories2, permissions2, co
|
|||||||
permissions2
|
permissions2
|
||||||
),
|
),
|
||||||
{
|
{
|
||||||
|
shouldRetry: (error) => error.status >= 500,
|
||||||
onFailedAttempt: (error) => {
|
onFailedAttempt: (error) => {
|
||||||
core3.info(
|
core3.info(
|
||||||
`Failed to create token for "${parsedRepositoryNames.join(
|
`Failed to create token for "${parsedRepositoryNames.join(
|
||||||
@@ -42692,14 +42698,10 @@ var main_default = main(
|
|||||||
/*! Bundled license information:
|
/*! Bundled license information:
|
||||||
|
|
||||||
undici/lib/fetch/body.js:
|
undici/lib/fetch/body.js:
|
||||||
(*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> *)
|
|
||||||
|
|
||||||
undici/lib/websocket/frame.js:
|
|
||||||
(*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
|
|
||||||
|
|
||||||
undici/lib/web/fetch/body.js:
|
undici/lib/web/fetch/body.js:
|
||||||
(*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> *)
|
(*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> *)
|
||||||
|
|
||||||
|
undici/lib/websocket/frame.js:
|
||||||
undici/lib/web/websocket/frame.js:
|
undici/lib/web/websocket/frame.js:
|
||||||
(*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
|
(*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
|
||||||
|
|
||||||
|
|||||||
18
dist/post.cjs
vendored
18
dist/post.cjs
vendored
@@ -33404,6 +33404,11 @@ var require_sqlite_cache_store = __commonJS({
|
|||||||
}
|
}
|
||||||
this.#db = new DatabaseSync(opts?.location ?? ":memory:");
|
this.#db = new DatabaseSync(opts?.location ?? ":memory:");
|
||||||
this.#db.exec(`
|
this.#db.exec(`
|
||||||
|
PRAGMA journal_mode = WAL;
|
||||||
|
PRAGMA synchronous = NORMAL;
|
||||||
|
PRAGMA temp_store = memory;
|
||||||
|
PRAGMA optimize;
|
||||||
|
|
||||||
CREATE TABLE IF NOT EXISTS cacheInterceptorV${VERSION3} (
|
CREATE TABLE IF NOT EXISTS cacheInterceptorV${VERSION3} (
|
||||||
-- Data specific to us
|
-- Data specific to us
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
@@ -33423,9 +33428,8 @@ var require_sqlite_cache_store = __commonJS({
|
|||||||
staleAt INTEGER NOT NULL
|
staleAt INTEGER NOT NULL
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE INDEX IF NOT EXISTS idx_cacheInterceptorV${VERSION3}_url ON cacheInterceptorV${VERSION3}(url);
|
CREATE INDEX IF NOT EXISTS idx_cacheInterceptorV${VERSION3}_getValuesQuery ON cacheInterceptorV${VERSION3}(url, method, deleteAt);
|
||||||
CREATE INDEX IF NOT EXISTS idx_cacheInterceptorV${VERSION3}_method ON cacheInterceptorV${VERSION3}(method);
|
CREATE INDEX IF NOT EXISTS idx_cacheInterceptorV${VERSION3}_deleteByUrlQuery ON cacheInterceptorV${VERSION3}(deleteAt);
|
||||||
CREATE INDEX IF NOT EXISTS idx_cacheInterceptorV${VERSION3}_deleteAt ON cacheInterceptorV${VERSION3}(deleteAt);
|
|
||||||
`);
|
`);
|
||||||
this.#getValuesQuery = this.#db.prepare(`
|
this.#getValuesQuery = this.#db.prepare(`
|
||||||
SELECT
|
SELECT
|
||||||
@@ -33602,7 +33606,7 @@ var require_sqlite_cache_store = __commonJS({
|
|||||||
this.#deleteByUrlQuery.run(this.#makeValueUrl(key));
|
this.#deleteByUrlQuery.run(this.#makeValueUrl(key));
|
||||||
}
|
}
|
||||||
#prune() {
|
#prune() {
|
||||||
if (this.size <= this.#maxCount) {
|
if (Number.isFinite(this.#maxCount) && this.size <= this.#maxCount) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
@@ -40917,14 +40921,10 @@ post(import_core2.default, request_default).catch((error) => {
|
|||||||
/*! Bundled license information:
|
/*! Bundled license information:
|
||||||
|
|
||||||
undici/lib/fetch/body.js:
|
undici/lib/fetch/body.js:
|
||||||
(*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> *)
|
|
||||||
|
|
||||||
undici/lib/websocket/frame.js:
|
|
||||||
(*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
|
|
||||||
|
|
||||||
undici/lib/web/fetch/body.js:
|
undici/lib/web/fetch/body.js:
|
||||||
(*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> *)
|
(*! formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> *)
|
||||||
|
|
||||||
|
undici/lib/websocket/frame.js:
|
||||||
undici/lib/web/websocket/frame.js:
|
undici/lib/web/websocket/frame.js:
|
||||||
(*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
|
(*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -7,9 +7,13 @@
|
|||||||
*/
|
*/
|
||||||
export function getPermissionsFromInputs(env) {
|
export function getPermissionsFromInputs(env) {
|
||||||
return Object.entries(env).reduce((permissions, [key, value]) => {
|
return Object.entries(env).reduce((permissions, [key, value]) => {
|
||||||
if (!key.startsWith("INPUT_PERMISSION_")) return permissions;
|
if (!key.startsWith("INPUT_PERMISSION-")) return permissions;
|
||||||
|
if (!value) return permissions;
|
||||||
|
|
||||||
const permission = key.slice("INPUT_PERMISSION_".length).toLowerCase();
|
const permission = key.slice("INPUT_PERMISSION-".length).toLowerCase()
|
||||||
|
.replaceAll(/-/g, "_");
|
||||||
|
|
||||||
|
// Inherit app permissions if no permissions inputs are set
|
||||||
if (permissions === undefined) {
|
if (permissions === undefined) {
|
||||||
return { [permission]: value };
|
return { [permission]: value };
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -89,6 +89,7 @@ export async function main(
|
|||||||
permissions
|
permissions
|
||||||
),
|
),
|
||||||
{
|
{
|
||||||
|
shouldRetry: (error) => error.status >= 500,
|
||||||
onFailedAttempt: (error) => {
|
onFailedAttempt: (error) => {
|
||||||
core.info(
|
core.info(
|
||||||
`Failed to create token for "${parsedRepositoryNames.join(
|
`Failed to create token for "${parsedRepositoryNames.join(
|
||||||
|
|||||||
926
package-lock.json
generated
926
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
20
package.json
20
package.json
@@ -2,10 +2,10 @@
|
|||||||
"name": "create-github-app-token",
|
"name": "create-github-app-token",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"version": "2.0.3",
|
"version": "2.1.0",
|
||||||
"description": "GitHub Action for creating a GitHub App Installation Access Token",
|
"description": "GitHub Action for creating a GitHub App Installation Access Token",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "esbuild main.js post.js --bundle --outdir=dist --out-extension:.js=.cjs --platform=node --target=node20.0.0 --packages=bundle",
|
"build": "esbuild main.js post.js --bundle --outdir=dist --out-extension:.js=.cjs --platform=node --target=node24.0.0 --packages=bundle",
|
||||||
"test": "c8 --100 ava tests/index.js",
|
"test": "c8 --100 ava tests/index.js",
|
||||||
"coverage": "c8 report --reporter html",
|
"coverage": "c8 report --reporter html",
|
||||||
"postcoverage": "open-cli coverage/index.html"
|
"postcoverage": "open-cli coverage/index.html"
|
||||||
@@ -13,21 +13,21 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^1.11.1",
|
"@actions/core": "^1.11.1",
|
||||||
"@octokit/auth-app": "^7.2.0",
|
"@octokit/auth-app": "^7.2.1",
|
||||||
"@octokit/request": "^9.2.2",
|
"@octokit/request": "^9.2.2",
|
||||||
"p-retry": "^6.2.1",
|
"p-retry": "^6.2.1",
|
||||||
"undici": "^7.7.0"
|
"undici": "^7.8.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@octokit/openapi": "^18.2.0",
|
"@octokit/openapi": "^19.1.0",
|
||||||
"@sinonjs/fake-timers": "^14.0.0",
|
"@sinonjs/fake-timers": "^14.0.0",
|
||||||
"ava": "^6.2.0",
|
"ava": "^6.4.0",
|
||||||
"c8": "^10.1.3",
|
"c8": "^10.1.3",
|
||||||
"dotenv": "^16.4.7",
|
"dotenv": "^16.5.0",
|
||||||
"esbuild": "^0.25.2",
|
"esbuild": "^0.25.6",
|
||||||
"execa": "^9.5.2",
|
"execa": "^9.6.0",
|
||||||
"open-cli": "^8.0.0",
|
"open-cli": "^8.0.0",
|
||||||
"yaml": "^2.7.1"
|
"yaml": "^2.8.0"
|
||||||
},
|
},
|
||||||
"release": {
|
"release": {
|
||||||
"branches": [
|
"branches": [
|
||||||
|
|||||||
@@ -2,6 +2,6 @@ import { test } from "./main.js";
|
|||||||
|
|
||||||
// Verify `main` successfully sets permissions
|
// Verify `main` successfully sets permissions
|
||||||
await test(() => {
|
await test(() => {
|
||||||
process.env.INPUT_PERMISSION_ISSUES = `write`;
|
process.env["INPUT_PERMISSION-ISSUES"] = `write`;
|
||||||
process.env.INPUT_PERMISSION_PULL_REQUESTS = `read`;
|
process.env["INPUT_PERMISSION-PULL-REQUESTS"] = `read`;
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -38,6 +38,8 @@ so0tiQKBgGQXZaxaXhYUcxYHuCkQ3V4Vsj3ezlM92xXlP32SGFm3KgFhYy9kATxw
|
|||||||
Cax1ytZzvlrKLQyQFVK1COs2rHt7W4cJ7op7C8zXfsigXCiejnS664oAuX8sQZID
|
Cax1ytZzvlrKLQyQFVK1COs2rHt7W4cJ7op7C8zXfsigXCiejnS664oAuX8sQZID
|
||||||
x3WQZRiXlWejSMUAHuMwXrhGlltF3lw83+xAjnqsVp75kGS6OH61
|
x3WQZRiXlWejSMUAHuMwXrhGlltF3lw83+xAjnqsVp75kGS6OH61
|
||||||
-----END RSA PRIVATE KEY-----`,
|
-----END RSA PRIVATE KEY-----`,
|
||||||
|
// The Actions runner sets all inputs to empty strings if not set.
|
||||||
|
"INPUT_PERMISSION-ADMINISTRATION": "",
|
||||||
};
|
};
|
||||||
|
|
||||||
export async function test(cb = (_mockPool) => {}, env = DEFAULT_ENV) {
|
export async function test(cb = (_mockPool) => {}, env = DEFAULT_ENV) {
|
||||||
@@ -61,7 +63,7 @@ export async function test(cb = (_mockPool) => {}, env = DEFAULT_ENV) {
|
|||||||
const owner = env.INPUT_OWNER ?? env.GITHUB_REPOSITORY_OWNER;
|
const owner = env.INPUT_OWNER ?? env.GITHUB_REPOSITORY_OWNER;
|
||||||
const currentRepoName = env.GITHUB_REPOSITORY.split("/")[1];
|
const currentRepoName = env.GITHUB_REPOSITORY.split("/")[1];
|
||||||
const repo = encodeURIComponent(
|
const repo = encodeURIComponent(
|
||||||
(env.INPUT_REPOSITORIES ?? currentRepoName).split(",")[0],
|
(env.INPUT_REPOSITORIES ?? currentRepoName).split(",")[0]
|
||||||
);
|
);
|
||||||
|
|
||||||
mockPool
|
mockPool
|
||||||
@@ -77,7 +79,7 @@ export async function test(cb = (_mockPool) => {}, env = DEFAULT_ENV) {
|
|||||||
.reply(
|
.reply(
|
||||||
200,
|
200,
|
||||||
{ id: mockInstallationId, app_slug: mockAppSlug },
|
{ id: mockInstallationId, app_slug: mockAppSlug },
|
||||||
{ headers: { "content-type": "application/json" } },
|
{ headers: { "content-type": "application/json" } }
|
||||||
);
|
);
|
||||||
|
|
||||||
// Mock installation access token request
|
// Mock installation access token request
|
||||||
@@ -98,7 +100,7 @@ export async function test(cb = (_mockPool) => {}, env = DEFAULT_ENV) {
|
|||||||
.reply(
|
.reply(
|
||||||
201,
|
201,
|
||||||
{ token: mockInstallationAccessToken, expires_at: mockExpiresAt },
|
{ token: mockInstallationAccessToken, expires_at: mockExpiresAt },
|
||||||
{ headers: { "content-type": "application/json" } },
|
{ headers: { "content-type": "application/json" } }
|
||||||
);
|
);
|
||||||
|
|
||||||
// Run the callback
|
// Run the callback
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user