@@ -28,6 +28,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
29
29
mod
30
30
));
31
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
31
32
32
33
// node_modules/@actions/core/lib/utils.js
33
34
var require_utils = __commonJS({
@@ -40431,6 +40432,11 @@ var require_undici2 = __commonJS({
40431
40432
});
40432
40433
40433
40434
// main.js
40435
+ var main_exports = {};
40436
+ __export(main_exports, {
40437
+ default: () => main_default
40438
+ });
40439
+ module.exports = __toCommonJS(main_exports);
40434
40440
var import_core2 = __toESM(require_core(), 1);
40435
40441
40436
40442
// node_modules/universal-user-agent/index.js
@@ -41890,19 +41896,19 @@ async function get(cache, options) {
41890
41896
permissionsString,
41891
41897
singleFileName
41892
41898
] = result.split("|");
41893
- const permissions = options.permissions || permissionsString.split(/,/).reduce((permissions2 , string) => {
41899
+ const permissions2 = options.permissions || permissionsString.split(/,/).reduce((permissions22 , string) => {
41894
41900
if (/!$/.test(string)) {
41895
- permissions2 [string.slice(0, -1)] = "write";
41901
+ permissions22 [string.slice(0, -1)] = "write";
41896
41902
} else {
41897
- permissions2 [string] = "read";
41903
+ permissions22 [string] = "read";
41898
41904
}
41899
- return permissions2 ;
41905
+ return permissions22 ;
41900
41906
}, {});
41901
41907
return {
41902
41908
token,
41903
41909
createdAt,
41904
41910
expiresAt,
41905
- permissions,
41911
+ permissions: permissions2 ,
41906
41912
repositoryIds: options.repositoryIds,
41907
41913
repositoryNames: options.repositoryNames,
41908
41914
singleFileName,
@@ -41926,11 +41932,11 @@ async function set(cache, options, data) {
41926
41932
}
41927
41933
function optionsToCacheKey({
41928
41934
installationId,
41929
- permissions = {},
41935
+ permissions: permissions2 = {},
41930
41936
repositoryIds = [],
41931
41937
repositoryNames = []
41932
41938
}) {
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(",");
41934
41940
const repositoryIdsString = repositoryIds.sort().join(",");
41935
41941
const repositoryNamesString = repositoryNames.join(",");
41936
41942
return [
@@ -41946,7 +41952,7 @@ function toTokenAuthentication({
41946
41952
createdAt,
41947
41953
expiresAt,
41948
41954
repositorySelection,
41949
- permissions,
41955
+ permissions: permissions2 ,
41950
41956
repositoryIds,
41951
41957
repositoryNames,
41952
41958
singleFileName
@@ -41957,7 +41963,7 @@ function toTokenAuthentication({
41957
41963
tokenType: "installation",
41958
41964
token,
41959
41965
installationId,
41960
- permissions,
41966
+ permissions: permissions2 ,
41961
41967
createdAt,
41962
41968
expiresAt,
41963
41969
repositorySelection
@@ -41995,7 +42001,7 @@ async function getInstallationAuthentication(state, options, customRequest) {
41995
42001
token: token2,
41996
42002
createdAt: createdAt2,
41997
42003
expiresAt: expiresAt2,
41998
- permissions: permissions2 ,
42004
+ permissions: permissions22 ,
41999
42005
repositoryIds: repositoryIds2,
42000
42006
repositoryNames: repositoryNames2,
42001
42007
singleFileName: singleFileName2,
@@ -42006,7 +42012,7 @@ async function getInstallationAuthentication(state, options, customRequest) {
42006
42012
token: token2,
42007
42013
createdAt: createdAt2,
42008
42014
expiresAt: expiresAt2,
42009
- permissions: permissions2 ,
42015
+ permissions: permissions22 ,
42010
42016
repositorySelection: repositorySelection2,
42011
42017
repositoryIds: repositoryIds2,
42012
42018
repositoryNames: repositoryNames2,
@@ -42049,7 +42055,7 @@ async function getInstallationAuthentication(state, options, customRequest) {
42049
42055
"POST /app/installations/{installation_id}/access_tokens",
42050
42056
payload
42051
42057
);
42052
- const permissions = permissionsOptional || {};
42058
+ const permissions2 = permissionsOptional || {};
42053
42059
const repositorySelection = repositorySelectionOptional || "all";
42054
42060
const repositoryIds = repositories2 ? repositories2.map((r) => r.id) : void 0;
42055
42061
const repositoryNames = repositories2 ? repositories2.map((repo) => repo.name) : void 0;
@@ -42059,7 +42065,7 @@ async function getInstallationAuthentication(state, options, customRequest) {
42059
42065
createdAt,
42060
42066
expiresAt,
42061
42067
repositorySelection,
42062
- permissions,
42068
+ permissions: permissions2 ,
42063
42069
repositoryIds,
42064
42070
repositoryNames
42065
42071
};
@@ -42073,7 +42079,7 @@ async function getInstallationAuthentication(state, options, customRequest) {
42073
42079
createdAt,
42074
42080
expiresAt,
42075
42081
repositorySelection,
42076
- permissions,
42082
+ permissions: permissions2 ,
42077
42083
repositoryIds,
42078
42084
repositoryNames
42079
42085
};
@@ -42376,7 +42382,7 @@ async function pRetry(input, options) {
42376
42382
}
42377
42383
42378
42384
// 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) {
42380
42386
let parsedOwner = "";
42381
42387
let parsedRepositoryNames = [];
42382
42388
if (!owner2 && repositories2.length === 0) {
@@ -42423,7 +42429,8 @@ async function main(appId2, privateKey2, owner2, repositories2, core3, createApp
42423
42429
request2,
42424
42430
auth5,
42425
42431
parsedOwner,
42426
- parsedRepositoryNames
42432
+ parsedRepositoryNames,
42433
+ permissions2
42427
42434
),
42428
42435
{
42429
42436
onFailedAttempt: (error) => {
@@ -42438,7 +42445,7 @@ async function main(appId2, privateKey2, owner2, repositories2, core3, createApp
42438
42445
));
42439
42446
} else {
42440
42447
({ authentication, installationId, appSlug } = await pRetry(
42441
- () => getTokenFromOwner(request2, auth5, parsedOwner),
42448
+ () => getTokenFromOwner(request2, auth5, parsedOwner, permissions2 ),
42442
42449
{
42443
42450
onFailedAttempt: (error) => {
42444
42451
core3.info(
@@ -42458,7 +42465,7 @@ async function main(appId2, privateKey2, owner2, repositories2, core3, createApp
42458
42465
core3.saveState("expiresAt", authentication.expiresAt);
42459
42466
}
42460
42467
}
42461
- async function getTokenFromOwner(request2, auth5, parsedOwner) {
42468
+ async function getTokenFromOwner(request2, auth5, parsedOwner, permissions2 ) {
42462
42469
const response = await request2("GET /users/{username}/installation", {
42463
42470
username: parsedOwner,
42464
42471
request: {
@@ -42467,13 +42474,14 @@ async function getTokenFromOwner(request2, auth5, parsedOwner) {
42467
42474
});
42468
42475
const authentication = await auth5({
42469
42476
type: "installation",
42470
- installationId: response.data.id
42477
+ installationId: response.data.id,
42478
+ permissions: permissions2
42471
42479
});
42472
42480
const installationId = response.data.id;
42473
42481
const appSlug = response.data["app_slug"];
42474
42482
return { authentication, installationId, appSlug };
42475
42483
}
42476
- async function getTokenFromRepository(request2, auth5, parsedOwner, parsedRepositoryNames) {
42484
+ async function getTokenFromRepository(request2, auth5, parsedOwner, parsedRepositoryNames, permissions2 ) {
42477
42485
const response = await request2("GET /repos/{owner}/{repo}/installation", {
42478
42486
owner: parsedOwner,
42479
42487
repo: parsedRepositoryNames[0],
@@ -42484,7 +42492,8 @@ async function getTokenFromRepository(request2, auth5, parsedOwner, parsedReposi
42484
42492
const authentication = await auth5({
42485
42493
type: "installation",
42486
42494
installationId: response.data.id,
42487
- repositoryNames: parsedRepositoryNames
42495
+ repositoryNames: parsedRepositoryNames,
42496
+ permissions: permissions2
42488
42497
});
42489
42498
const installationId = response.data.id;
42490
42499
const appSlug = response.data["app_slug"];
@@ -42518,6 +42527,22 @@ var request_default = request.defaults({
42518
42527
request: proxyUrl ? { fetch: proxyFetch } : {}
42519
42528
});
42520
42529
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
+
42521
42546
// main.js
42522
42547
if (!process.env.GITHUB_REPOSITORY) {
42523
42548
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,]+/)
42538
42563
var skipTokenRevoke = Boolean(
42539
42564
import_core2.default.getInput("skip-token-revoke") || import_core2.default.getInput("skip_token_revoke")
42540
42565
);
42541
- main(
42566
+ var permissions = getPermissionsFromInputs(process.env);
42567
+ var main_default = main(
42542
42568
appId,
42543
42569
privateKey,
42544
42570
owner,
42545
42571
repositories,
42572
+ permissions,
42546
42573
import_core2.default,
42547
42574
createAppAuth,
42548
42575
request_default,
0 commit comments