Skip to content

Commit d72941d

Browse files
build(release): 1.12.0 [skip ci]
# [1.12.0](v1.11.7...v1.12.0) (2025-03-27) ### Features * permissions ([#168](#168)) ([0e0aa99](0e0aa99))
1 parent 0e0aa99 commit d72941d

File tree

2 files changed

+50
-23
lines changed

2 files changed

+50
-23
lines changed

dist/main.cjs

+49-22
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
2828
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
2929
mod
3030
));
31+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
3132

3233
// node_modules/@actions/core/lib/utils.js
3334
var require_utils = __commonJS({
@@ -40431,6 +40432,11 @@ var require_undici2 = __commonJS({
4043140432
});
4043240433

4043340434
// main.js
40435+
var main_exports = {};
40436+
__export(main_exports, {
40437+
default: () => main_default
40438+
});
40439+
module.exports = __toCommonJS(main_exports);
4043440440
var import_core2 = __toESM(require_core(), 1);
4043540441

4043640442
// node_modules/universal-user-agent/index.js
@@ -41890,19 +41896,19 @@ async function get(cache, options) {
4189041896
permissionsString,
4189141897
singleFileName
4189241898
] = result.split("|");
41893-
const permissions = options.permissions || permissionsString.split(/,/).reduce((permissions2, string) => {
41899+
const permissions2 = options.permissions || permissionsString.split(/,/).reduce((permissions22, string) => {
4189441900
if (/!$/.test(string)) {
41895-
permissions2[string.slice(0, -1)] = "write";
41901+
permissions22[string.slice(0, -1)] = "write";
4189641902
} else {
41897-
permissions2[string] = "read";
41903+
permissions22[string] = "read";
4189841904
}
41899-
return permissions2;
41905+
return permissions22;
4190041906
}, {});
4190141907
return {
4190241908
token,
4190341909
createdAt,
4190441910
expiresAt,
41905-
permissions,
41911+
permissions: permissions2,
4190641912
repositoryIds: options.repositoryIds,
4190741913
repositoryNames: options.repositoryNames,
4190841914
singleFileName,
@@ -41926,11 +41932,11 @@ async function set(cache, options, data) {
4192641932
}
4192741933
function optionsToCacheKey({
4192841934
installationId,
41929-
permissions = {},
41935+
permissions: permissions2 = {},
4193041936
repositoryIds = [],
4193141937
repositoryNames = []
4193241938
}) {
41933-
const permissionsString = Object.keys(permissions).sort().map((name) => permissions[name] === "read" ? name : `${name}!`).join(",");
41939+
const permissionsString = Object.keys(permissions2).sort().map((name) => permissions2[name] === "read" ? name : `${name}!`).join(",");
4193441940
const repositoryIdsString = repositoryIds.sort().join(",");
4193541941
const repositoryNamesString = repositoryNames.join(",");
4193641942
return [
@@ -41946,7 +41952,7 @@ function toTokenAuthentication({
4194641952
createdAt,
4194741953
expiresAt,
4194841954
repositorySelection,
41949-
permissions,
41955+
permissions: permissions2,
4195041956
repositoryIds,
4195141957
repositoryNames,
4195241958
singleFileName
@@ -41957,7 +41963,7 @@ function toTokenAuthentication({
4195741963
tokenType: "installation",
4195841964
token,
4195941965
installationId,
41960-
permissions,
41966+
permissions: permissions2,
4196141967
createdAt,
4196241968
expiresAt,
4196341969
repositorySelection
@@ -41995,7 +42001,7 @@ async function getInstallationAuthentication(state, options, customRequest) {
4199542001
token: token2,
4199642002
createdAt: createdAt2,
4199742003
expiresAt: expiresAt2,
41998-
permissions: permissions2,
42004+
permissions: permissions22,
4199942005
repositoryIds: repositoryIds2,
4200042006
repositoryNames: repositoryNames2,
4200142007
singleFileName: singleFileName2,
@@ -42006,7 +42012,7 @@ async function getInstallationAuthentication(state, options, customRequest) {
4200642012
token: token2,
4200742013
createdAt: createdAt2,
4200842014
expiresAt: expiresAt2,
42009-
permissions: permissions2,
42015+
permissions: permissions22,
4201042016
repositorySelection: repositorySelection2,
4201142017
repositoryIds: repositoryIds2,
4201242018
repositoryNames: repositoryNames2,
@@ -42049,7 +42055,7 @@ async function getInstallationAuthentication(state, options, customRequest) {
4204942055
"POST /app/installations/{installation_id}/access_tokens",
4205042056
payload
4205142057
);
42052-
const permissions = permissionsOptional || {};
42058+
const permissions2 = permissionsOptional || {};
4205342059
const repositorySelection = repositorySelectionOptional || "all";
4205442060
const repositoryIds = repositories2 ? repositories2.map((r) => r.id) : void 0;
4205542061
const repositoryNames = repositories2 ? repositories2.map((repo) => repo.name) : void 0;
@@ -42059,7 +42065,7 @@ async function getInstallationAuthentication(state, options, customRequest) {
4205942065
createdAt,
4206042066
expiresAt,
4206142067
repositorySelection,
42062-
permissions,
42068+
permissions: permissions2,
4206342069
repositoryIds,
4206442070
repositoryNames
4206542071
};
@@ -42073,7 +42079,7 @@ async function getInstallationAuthentication(state, options, customRequest) {
4207342079
createdAt,
4207442080
expiresAt,
4207542081
repositorySelection,
42076-
permissions,
42082+
permissions: permissions2,
4207742083
repositoryIds,
4207842084
repositoryNames
4207942085
};
@@ -42376,7 +42382,7 @@ async function pRetry(input, options) {
4237642382
}
4237742383

4237842384
// lib/main.js
42379-
async function main(appId2, privateKey2, owner2, repositories2, core3, createAppAuth2, request2, skipTokenRevoke2) {
42385+
async function main(appId2, privateKey2, owner2, repositories2, permissions2, core3, createAppAuth2, request2, skipTokenRevoke2) {
4238042386
let parsedOwner = "";
4238142387
let parsedRepositoryNames = [];
4238242388
if (!owner2 && repositories2.length === 0) {
@@ -42423,7 +42429,8 @@ async function main(appId2, privateKey2, owner2, repositories2, core3, createApp
4242342429
request2,
4242442430
auth5,
4242542431
parsedOwner,
42426-
parsedRepositoryNames
42432+
parsedRepositoryNames,
42433+
permissions2
4242742434
),
4242842435
{
4242942436
onFailedAttempt: (error) => {
@@ -42438,7 +42445,7 @@ async function main(appId2, privateKey2, owner2, repositories2, core3, createApp
4243842445
));
4243942446
} else {
4244042447
({ authentication, installationId, appSlug } = await pRetry(
42441-
() => getTokenFromOwner(request2, auth5, parsedOwner),
42448+
() => getTokenFromOwner(request2, auth5, parsedOwner, permissions2),
4244242449
{
4244342450
onFailedAttempt: (error) => {
4244442451
core3.info(
@@ -42458,7 +42465,7 @@ async function main(appId2, privateKey2, owner2, repositories2, core3, createApp
4245842465
core3.saveState("expiresAt", authentication.expiresAt);
4245942466
}
4246042467
}
42461-
async function getTokenFromOwner(request2, auth5, parsedOwner) {
42468+
async function getTokenFromOwner(request2, auth5, parsedOwner, permissions2) {
4246242469
const response = await request2("GET /users/{username}/installation", {
4246342470
username: parsedOwner,
4246442471
request: {
@@ -42467,13 +42474,14 @@ async function getTokenFromOwner(request2, auth5, parsedOwner) {
4246742474
});
4246842475
const authentication = await auth5({
4246942476
type: "installation",
42470-
installationId: response.data.id
42477+
installationId: response.data.id,
42478+
permissions: permissions2
4247142479
});
4247242480
const installationId = response.data.id;
4247342481
const appSlug = response.data["app_slug"];
4247442482
return { authentication, installationId, appSlug };
4247542483
}
42476-
async function getTokenFromRepository(request2, auth5, parsedOwner, parsedRepositoryNames) {
42484+
async function getTokenFromRepository(request2, auth5, parsedOwner, parsedRepositoryNames, permissions2) {
4247742485
const response = await request2("GET /repos/{owner}/{repo}/installation", {
4247842486
owner: parsedOwner,
4247942487
repo: parsedRepositoryNames[0],
@@ -42484,7 +42492,8 @@ async function getTokenFromRepository(request2, auth5, parsedOwner, parsedReposi
4248442492
const authentication = await auth5({
4248542493
type: "installation",
4248642494
installationId: response.data.id,
42487-
repositoryNames: parsedRepositoryNames
42495+
repositoryNames: parsedRepositoryNames,
42496+
permissions: permissions2
4248842497
});
4248942498
const installationId = response.data.id;
4249042499
const appSlug = response.data["app_slug"];
@@ -42518,6 +42527,22 @@ var request_default = request.defaults({
4251842527
request: proxyUrl ? { fetch: proxyFetch } : {}
4251942528
});
4252042529

42530+
// lib/get-permissions-from-inputs.js
42531+
function getPermissionsFromInputs(env) {
42532+
return Object.entries(env).reduce((permissions2, [key, value]) => {
42533+
if (!key.startsWith("INPUT_PERMISSION_")) return permissions2;
42534+
const permission = key.slice("INPUT_PERMISSION_".length).toLowerCase();
42535+
if (permissions2 === void 0) {
42536+
return { [permission]: value };
42537+
}
42538+
return {
42539+
// @ts-expect-error - needs to be typed correctly
42540+
...permissions2,
42541+
[permission]: value
42542+
};
42543+
}, void 0);
42544+
}
42545+
4252142546
// main.js
4252242547
if (!process.env.GITHUB_REPOSITORY) {
4252342548
throw new Error("GITHUB_REPOSITORY missing, must be set to '<owner>/<repo>'");
@@ -42538,11 +42563,13 @@ var repositories = import_core2.default.getInput("repositories").split(/[\n,]+/)
4253842563
var skipTokenRevoke = Boolean(
4253942564
import_core2.default.getInput("skip-token-revoke") || import_core2.default.getInput("skip_token_revoke")
4254042565
);
42541-
main(
42566+
var permissions = getPermissionsFromInputs(process.env);
42567+
var main_default = main(
4254242568
appId,
4254342569
privateKey,
4254442570
owner,
4254542571
repositories,
42572+
permissions,
4254642573
import_core2.default,
4254742574
createAppAuth,
4254842575
request_default,

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "create-github-app-token",
33
"private": true,
44
"type": "module",
5-
"version": "1.11.7",
5+
"version": "1.12.0",
66
"description": "GitHub Action for creating a GitHub App Installation Access Token",
77
"scripts": {
88
"build": "esbuild main.js post.js --bundle --outdir=dist --out-extension:.js=.cjs --platform=node --target=node20.0.0 --packages=bundle",

0 commit comments

Comments
 (0)