diff --git a/dist/index.js b/dist/index.js index f3695826a..273001377 100644 --- a/dist/index.js +++ b/dist/index.js @@ -76,11 +76,25 @@ function run() { labelsToRemove.push(label); } } - if (labels.length > 0) { - yield addLabels(client, prNumber, labels); + try { + if (labels.length > 0) { + yield addLabels(client, prNumber, labels); + } + if (syncLabels && labelsToRemove.length) { + yield removeLabels(client, prNumber, labelsToRemove); + } } - if (syncLabels && labelsToRemove.length) { - yield removeLabels(client, prNumber, labelsToRemove); + catch (error) { + if (error.name === 'HttpError' && + error.message === 'Resource not accessible by integration') { + core.warning(`The action requires write permission to add labels to pull requests. For more information please refer to the action documentation: https://github.com/actions/labeler#permissions`, { + title: `${process.env['GITHUB_ACTION_REPOSITORY']} running under '${github.context.eventName}' is misconfigured` + }); + core.setFailed(error.message); + } + else { + throw error; + } } } catch (error) { diff --git a/package.json b/package.json index 2ebca4083..927161a61 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "labeler", - "version": "4.0.1", + "version": "4.1.0", "description": "Labels pull requests by files altered", "main": "lib/main.js", "scripts": { diff --git a/src/labeler.ts b/src/labeler.ts index 6331857cc..be159b2c7 100644 --- a/src/labeler.ts +++ b/src/labeler.ts @@ -50,12 +50,29 @@ export async function run() { } } - if (labels.length > 0) { - await addLabels(client, prNumber, labels); - } + try { + if (labels.length > 0) { + await addLabels(client, prNumber, labels); + } - if (syncLabels && labelsToRemove.length) { - await removeLabels(client, prNumber, labelsToRemove); + if (syncLabels && labelsToRemove.length) { + await removeLabels(client, prNumber, labelsToRemove); + } + } catch (error: any) { + if ( + error.name === 'HttpError' && + error.message === 'Resource not accessible by integration' + ) { + core.warning( + `The action requires write permission to add labels to pull requests. For more information please refer to the action documentation: https://github.com/actions/labeler#permissions`, + { + title: `${process.env['GITHUB_ACTION_REPOSITORY']} running under '${github.context.eventName}' is misconfigured` + } + ); + core.setFailed(error.message); + } else { + throw error; + } } } catch (error: any) { core.error(error);