@@ -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
3334var 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);
4043440440var 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}
4192741933function 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
4252242547if (!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,]+/)
4253842563var 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,
0 commit comments