Compare commits

..

2 Commits

Author SHA1 Message Date
semantic-release-bot
49ce228ea7 build(release): 1.2.1 [skip ci]
## [1.2.1](https://github.com/actions/create-github-app-token/compare/v1.2.0...v1.2.1) (2023-08-30)

### Bug Fixes

* **GHES:** respect `GITHUB_API_URL` when creating installation access token ([#38](https://github.com/actions/create-github-app-token/issues/38)) ([c08c5ac](c08c5ace34)), closes [#36](https://github.com/actions/create-github-app-token/issues/36)
2023-08-30 05:30:14 +00:00
Gregor Martynus
c08c5ace34 fix(GHES): respect GITHUB_API_URL when creating installation access token (#38)
Follow up to #36. I just wanted to do some refactoring but turns out I
missed to pass the custom `request` instance to `createAppAuth`. It will
fallback to the default `request` which does not respect
`GITHUB_API_URL`
2023-08-29 22:29:41 -07:00
8 changed files with 66 additions and 49 deletions

58
dist/main.cjs vendored
View File

@@ -3077,7 +3077,7 @@ var require_dist_node7 = __commonJS({
module2.exports = __toCommonJS2(dist_src_exports); module2.exports = __toCommonJS2(dist_src_exports);
var VERSION = "4.0.0"; var VERSION = "4.0.0";
var import_oauth_authorization_url = require_dist_node6(); var import_oauth_authorization_url = require_dist_node6();
var import_request2 = require_dist_node5(); var import_request3 = require_dist_node5();
var import_request_error = require_dist_node4(); var import_request_error = require_dist_node4();
function requestToOAuthBaseUrl(request2) { function requestToOAuthBaseUrl(request2) {
const endpointDefaults = request2.endpoint.DEFAULTS; const endpointDefaults = request2.endpoint.DEFAULTS;
@@ -3110,7 +3110,7 @@ var require_dist_node7 = __commonJS({
return response; return response;
} }
function getWebFlowAuthorizationUrl({ function getWebFlowAuthorizationUrl({
request: request2 = import_request2.request, request: request2 = import_request3.request,
...options ...options
}) { }) {
const baseUrl = requestToOAuthBaseUrl(request2); const baseUrl = requestToOAuthBaseUrl(request2);
@@ -3158,10 +3158,10 @@ var require_dist_node7 = __commonJS({
function toTimestamp(apiTimeInMs, expirationInSeconds) { function toTimestamp(apiTimeInMs, expirationInSeconds) {
return new Date(apiTimeInMs + expirationInSeconds * 1e3).toISOString(); return new Date(apiTimeInMs + expirationInSeconds * 1e3).toISOString();
} }
var import_request3 = require_dist_node5(); var import_request32 = require_dist_node5();
async function createDeviceCode(options) { async function createDeviceCode(options) {
const request2 = options.request || /* istanbul ignore next: we always pass a custom request in tests */ const request2 = options.request || /* istanbul ignore next: we always pass a custom request in tests */
import_request3.request; import_request32.request;
const parameters = { const parameters = {
client_id: options.clientId client_id: options.clientId
}; };
@@ -3399,7 +3399,7 @@ var require_dist_node8 = __commonJS({
}); });
module2.exports = __toCommonJS2(dist_src_exports); module2.exports = __toCommonJS2(dist_src_exports);
var import_universal_user_agent = require_dist_node(); var import_universal_user_agent = require_dist_node();
var import_request2 = require_dist_node5(); var import_request3 = require_dist_node5();
var import_oauth_methods = require_dist_node7(); var import_oauth_methods = require_dist_node7();
async function getOAuthAccessToken(state, options) { async function getOAuthAccessToken(state, options) {
const cachedAuthentication = getCachedAuthentication(state, options.auth); const cachedAuthentication = getCachedAuthentication(state, options.auth);
@@ -3496,7 +3496,7 @@ var require_dist_node8 = __commonJS({
} }
var VERSION = "6.0.0"; var VERSION = "6.0.0";
function createOAuthDeviceAuth(options) { function createOAuthDeviceAuth(options) {
const requestWithDefaults = options.request || import_request2.request.defaults({ const requestWithDefaults = options.request || import_request3.request.defaults({
headers: { headers: {
"user-agent": `octokit-auth-oauth-device.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}` "user-agent": `octokit-auth-oauth-device.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}`
} }
@@ -3567,7 +3567,7 @@ var require_dist_node9 = __commonJS({
}); });
module2.exports = __toCommonJS2(dist_src_exports); module2.exports = __toCommonJS2(dist_src_exports);
var import_universal_user_agent = require_dist_node(); var import_universal_user_agent = require_dist_node();
var import_request2 = require_dist_node5(); var import_request3 = require_dist_node5();
var VERSION = "4.0.0"; var VERSION = "4.0.0";
var import_auth_oauth_device = require_dist_node8(); var import_auth_oauth_device = require_dist_node8();
var import_oauth_methods = require_dist_node7(); var import_oauth_methods = require_dist_node7();
@@ -3732,7 +3732,7 @@ var require_dist_node9 = __commonJS({
clientId, clientId,
clientSecret, clientSecret,
clientType = "oauth-app", clientType = "oauth-app",
request: request2 = import_request2.request.defaults({ request: request2 = import_request3.request.defaults({
headers: { headers: {
"user-agent": `octokit-auth-oauth-app.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}` "user-agent": `octokit-auth-oauth-app.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}`
} }
@@ -3795,7 +3795,7 @@ var require_dist_node10 = __commonJS({
}); });
module2.exports = __toCommonJS2(dist_src_exports); module2.exports = __toCommonJS2(dist_src_exports);
var import_universal_user_agent = require_dist_node(); var import_universal_user_agent = require_dist_node();
var import_request2 = require_dist_node5(); var import_request3 = require_dist_node5();
var import_btoa_lite = __toESM2(require_btoa_node()); var import_btoa_lite = __toESM2(require_btoa_node());
var import_auth_oauth_user = require_dist_node9(); var import_auth_oauth_user = require_dist_node9();
async function auth(state, authOptions) { async function auth(state, authOptions) {
@@ -3865,7 +3865,7 @@ var require_dist_node10 = __commonJS({
function createOAuthAppAuth(options) { function createOAuthAppAuth(options) {
const state = Object.assign( const state = Object.assign(
{ {
request: import_request2.request.defaults({ request: import_request3.request.defaults({
headers: { headers: {
"user-agent": `octokit-auth-oauth-app.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}` "user-agent": `octokit-auth-oauth-app.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}`
} }
@@ -14610,7 +14610,7 @@ var require_dist_node12 = __commonJS({
}); });
module2.exports = __toCommonJS2(dist_src_exports); module2.exports = __toCommonJS2(dist_src_exports);
var import_universal_user_agent = require_dist_node(); var import_universal_user_agent = require_dist_node();
var import_request2 = require_dist_node5(); var import_request3 = require_dist_node5();
var import_auth_oauth_app = require_dist_node10(); var import_auth_oauth_app = require_dist_node10();
var import_deprecation = require_dist_node3(); var import_deprecation = require_dist_node3();
var OAuthAppAuth = __toESM2(require_dist_node10()); var OAuthAppAuth = __toESM2(require_dist_node10());
@@ -15009,7 +15009,7 @@ var require_dist_node12 = __commonJS({
}, },
options.log options.log
); );
const request2 = options.request || import_request2.request.defaults({ const request2 = options.request || import_request3.request.defaults({
headers: { headers: {
"user-agent": `octokit-auth-app.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}` "user-agent": `octokit-auth-app.js/${VERSION} ${(0, import_universal_user_agent.getUserAgent)()}`
} }
@@ -15039,17 +15039,16 @@ var require_dist_node12 = __commonJS({
}); });
// main.js // main.js
var import_core2 = __toESM(require_core(), 1); var import_core = __toESM(require_core(), 1);
var import_auth_app = __toESM(require_dist_node12(), 1); var import_auth_app = __toESM(require_dist_node12(), 1);
var import_request = __toESM(require_dist_node5(), 1);
// lib/main.js // lib/main.js
var import_core = __toESM(require_core(), 1); async function main(appId2, privateKey2, repository2, core2, createAppAuth2, request2) {
async function main(appId2, privateKey2, repository2, core3, createAppAuth2, request2) {
const [owner, repo] = repository2.split("/"); const [owner, repo] = repository2.split("/");
const auth = createAppAuth2({ const auth = createAppAuth2({
appId: appId2, appId: appId2,
privateKey: privateKey2 privateKey: privateKey2,
request: request2
}); });
const appAuthentication = await auth({ const appAuthentication = await auth({
type: "app" type: "app"
@@ -15069,30 +15068,39 @@ async function main(appId2, privateKey2, repository2, core3, createAppAuth2, req
installationId: installation.id, installationId: installation.id,
repositoryNames: [repo] repositoryNames: [repo]
}); });
core3.setSecret(authentication.token); core2.setSecret(authentication.token);
core3.setOutput("token", authentication.token); core2.setOutput("token", authentication.token);
core3.saveState("token", authentication.token); core2.saveState("token", authentication.token);
} }
// lib/request.js
var import_request = __toESM(require_dist_node5(), 1);
var request_default = import_request.request.defaults({
baseUrl: process.env["GITHUB_API_URL"],
headers: {
"user-agent": "actions/create-github-app-token"
}
});
// main.js // main.js
if (!process.env.GITHUB_REPOSITORY) { if (!process.env.GITHUB_REPOSITORY) {
throw new Error("GITHUB_REPOSITORY missing, must be set to '<owner>/<repo>'"); throw new Error("GITHUB_REPOSITORY missing, must be set to '<owner>/<repo>'");
} }
var appId = import_core2.default.getInput("app_id"); var appId = import_core.default.getInput("app_id");
var privateKey = import_core2.default.getInput("private_key"); var privateKey = import_core.default.getInput("private_key");
var repository = process.env.GITHUB_REPOSITORY; var repository = process.env.GITHUB_REPOSITORY;
main( main(
appId, appId,
privateKey, privateKey,
repository, repository,
import_core2.default, import_core.default,
import_auth_app.createAppAuth, import_auth_app.createAppAuth,
import_request.request.defaults({ request_default.defaults({
baseUrl: process.env["GITHUB_API_URL"] baseUrl: process.env["GITHUB_API_URL"]
}) })
).catch((error) => { ).catch((error) => {
console.error(error); console.error(error);
import_core2.default.setFailed(error.message); import_core.default.setFailed(error.message);
}); });
/*! Bundled license information: /*! Bundled license information:

25
dist/post.cjs vendored
View File

@@ -2951,13 +2951,11 @@ var require_dist_node5 = __commonJS({
}); });
// post.js // post.js
var import_core2 = __toESM(require_core(), 1); var import_core = __toESM(require_core(), 1);
var import_request = __toESM(require_dist_node5(), 1);
// lib/post.js // lib/post.js
var import_core = __toESM(require_core(), 1); async function post(core2, request2) {
async function post(core3, request2) { const token = core2.getState("token");
const token = core3.getState("token");
if (!token) if (!token)
return; return;
await request2("DELETE /installation/token", { await request2("DELETE /installation/token", {
@@ -2965,18 +2963,27 @@ async function post(core3, request2) {
authorization: `token ${token}` authorization: `token ${token}`
} }
}); });
core3.info("Token revoked"); core2.info("Token revoked");
} }
// lib/request.js
var import_request = __toESM(require_dist_node5(), 1);
var request_default = import_request.request.defaults({
baseUrl: process.env["GITHUB_API_URL"],
headers: {
"user-agent": "actions/create-github-app-token"
}
});
// post.js // post.js
post( post(
import_core2.default, import_core.default,
import_request.request.defaults({ request_default.defaults({
baseUrl: process.env["GITHUB_API_URL"] baseUrl: process.env["GITHUB_API_URL"]
}) })
).catch((error) => { ).catch((error) => {
console.error(error); console.error(error);
import_core2.default.setFailed(error.message); import_core.default.setFailed(error.message);
}); });
/*! Bundled license information: /*! Bundled license information:

View File

@@ -1,16 +1,12 @@
// @ts-check // @ts-check
import core from "@actions/core";
import { createAppAuth } from "@octokit/auth-app";
import { request } from "@octokit/request";
/** /**
* @param {string} appId * @param {string} appId
* @param {string} privateKey * @param {string} privateKey
* @param {string} repository * @param {string} repository
* @param {core} core * @param {import("@actions/core")} core
* @param {createAppAuth} createAppAuth * @param {import("@octokit/auth-app").createAppAuth} createAppAuth
* @param {request} request * @param {import("@octokit/request").request} request
*/ */
export async function main( export async function main(
appId, appId,
@@ -26,6 +22,7 @@ export async function main(
const auth = createAppAuth({ const auth = createAppAuth({
appId, appId,
privateKey, privateKey,
request,
}); });
const appAuthentication = await auth({ const appAuthentication = await auth({

View File

@@ -1,11 +1,8 @@
// @ts-check // @ts-check
import core from "@actions/core";
import { request } from "@octokit/request";
/** /**
* @param {core} core * @param {import("@actions/core")} core
* @param {request} request * @param {import("@octokit/request").request} request
*/ */
export async function post(core, request) { export async function post(core, request) {
const token = core.getState("token"); const token = core.getState("token");

8
lib/request.js Normal file
View File

@@ -0,0 +1,8 @@
import { request } from "@octokit/request";
export default request.defaults({
baseUrl: process.env["GITHUB_API_URL"],
headers: {
"user-agent": "actions/create-github-app-token",
},
});

View File

@@ -2,9 +2,9 @@
import core from "@actions/core"; import core from "@actions/core";
import { createAppAuth } from "@octokit/auth-app"; import { createAppAuth } from "@octokit/auth-app";
import { request } from "@octokit/request";
import { main } from "./lib/main.js"; import { main } from "./lib/main.js";
import request from "./lib/request.js";
if (!process.env.GITHUB_REPOSITORY) { if (!process.env.GITHUB_REPOSITORY) {
throw new Error("GITHUB_REPOSITORY missing, must be set to '<owner>/<repo>'"); throw new Error("GITHUB_REPOSITORY missing, must be set to '<owner>/<repo>'");

View File

@@ -2,7 +2,7 @@
"name": "create-github-app-token", "name": "create-github-app-token",
"private": true, "private": true,
"type": "module", "type": "module",
"version": "1.2.0", "version": "1.2.1",
"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=node16.16", "build": "esbuild main.js post.js --bundle --outdir=dist --out-extension:.js=.cjs --platform=node --target=node16.16",

View File

@@ -1,9 +1,9 @@
// @ts-check // @ts-check
import core from "@actions/core"; import core from "@actions/core";
import { request } from "@octokit/request";
import { post } from "./lib/post.js"; import { post } from "./lib/post.js";
import request from "./lib/request.js";
post( post(
core, core,