diff --git a/dist/index.js b/dist/index.js index e60f354c..8cbfa401 100644 --- a/dist/index.js +++ b/dist/index.js @@ -45,6 +45,15 @@ const fs = __importStar(__nccwpck_require__(7147)); const util = __importStar(__nccwpck_require__(3837)); const utils = __importStar(__nccwpck_require__(918)); const util_1 = __nccwpck_require__(3837); +function truncateBody(body) { + // 65536 characters is the maximum allowed for issues. + const truncateWarning = '...*[Issue body truncated]*'; + if (body.length > 65536) { + core.warning(`Issue body is too long. Truncating to 65536 characters.`); + return body.substring(0, 65536 - truncateWarning.length) + truncateWarning; + } + return body; +} function run() { return __awaiter(this, void 0, void 0, function* () { try { @@ -64,9 +73,10 @@ function run() { // Check the file exists if (yield util.promisify(fs.exists)(inputs.contentFilepath)) { // Fetch the file content - const fileContent = yield fs.promises.readFile(inputs.contentFilepath, { + let fileContent = yield fs.promises.readFile(inputs.contentFilepath, { encoding: 'utf8' }); + fileContent = truncateBody(fileContent); const issueNumber = yield (() => __awaiter(this, void 0, void 0, function* () { if (inputs.issueNumber) { // Update an existing issue diff --git a/src/main.ts b/src/main.ts index 4c5bb7f6..dbc5e481 100644 --- a/src/main.ts +++ b/src/main.ts @@ -5,6 +5,16 @@ import * as util from 'util' import * as utils from './utils' import {inspect} from 'util' +function truncateBody(body: string) { + // 65536 characters is the maximum allowed for issues. + const truncateWarning = '...*[Issue body truncated]*' + if (body.length > 65536) { + core.warning(`Issue body is too long. Truncating to 65536 characters.`) + return body.substring(0, 65536 - truncateWarning.length) + truncateWarning + } + return body +} + async function run(): Promise { try { const inputs = { @@ -26,10 +36,12 @@ async function run(): Promise { // Check the file exists if (await util.promisify(fs.exists)(inputs.contentFilepath)) { // Fetch the file content - const fileContent = await fs.promises.readFile(inputs.contentFilepath, { + let fileContent = await fs.promises.readFile(inputs.contentFilepath, { encoding: 'utf8' }) + fileContent = truncateBody(fileContent) + const issueNumber = await (async (): Promise => { if (inputs.issueNumber) { // Update an existing issue