From d5352e89c328ddd8fc142af631ec324ab599b7ed Mon Sep 17 00:00:00 2001 From: Bugale Date: Tue, 18 Aug 2026 14:59:55 +0300 Subject: [PATCH 1/2] fix: fetch the pull request diff via the uncapped compare endpoint The pull request diff endpoint rejects large diffs outright (HTTP 406, 'diff exceeded the maximum number of lines (20000)' on older GitHub Enterprise Server versions, 'maximum number of files (300)' on 3.18), which failed the action on any oversized pull request. The compare endpoint serves the identical three-dot diff with no such cap (verified at 3,000 files / 558K lines on GHES 3.18). Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- dist/index.js | 3 ++- src/bugalint.ts | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/dist/index.js b/dist/index.js index 8f8f9c2..fb2a0ad 100644 --- a/dist/index.js +++ b/dist/index.js @@ -30271,7 +30271,8 @@ function decodeDiff(data) { } async function getPrDiff(githubToken, owner, repo, prNumber) { const octokit = (0, github_1.getOctokit)(githubToken); - return decodeDiff((await octokit.rest.pulls.get({ owner, repo, pull_number: prNumber, mediaType: { format: 'diff' } })).data); + const { base, head } = (await octokit.rest.pulls.get({ owner, repo, pull_number: prNumber })).data; + return decodeDiff((await octokit.rest.repos.compareCommits({ owner, repo, base: base.sha, head: head.sha, mediaType: { format: 'diff' } })).data); } function parseDiffLines(diff) { const diffLines = {}; diff --git a/src/bugalint.ts b/src/bugalint.ts index a8b0d59..7280401 100644 --- a/src/bugalint.ts +++ b/src/bugalint.ts @@ -385,7 +385,8 @@ function decodeDiff(data: unknown): string { export async function getPrDiff(githubToken: string, owner: string, repo: string, prNumber: number): Promise { const octokit = getOctokit(githubToken) - return decodeDiff((await octokit.rest.pulls.get({ owner, repo, pull_number: prNumber, mediaType: { format: 'diff' } })).data) + const { base, head } = (await octokit.rest.pulls.get({ owner, repo, pull_number: prNumber })).data + return decodeDiff((await octokit.rest.repos.compareCommits({ owner, repo, base: base.sha, head: head.sha, mediaType: { format: 'diff' } })).data) } export function parseDiffLines(diff: string): DiffLines { From 614f76f5b7ee37b5e9749a90f3526b395f039844 Mon Sep 17 00:00:00 2001 From: Bugale Date: Tue, 18 Aug 2026 15:21:40 +0300 Subject: [PATCH 2/2] fix: keep going when review comments cannot be posted GitHub rejects inline review threads on files whose diff it refuses to render in oversized pull requests (HTTP 422, 'review thread path diff too large'), which failed the whole step even though the SARIF, summary and failure outputs were unaffected. Posting the comments is best-effort decoration; warn and continue instead. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- dist/index.js | 7 ++++++- src/bugalint.ts | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/dist/index.js b/dist/index.js index fb2a0ad..bcc8b32 100644 --- a/dist/index.js +++ b/dist/index.js @@ -30257,7 +30257,12 @@ async function addComments(issues, prDiff, githubToken, identifier, owner, repo, return; } (0, core_1.debug)('Sending comments'); - await octokit.rest.pulls.createReview({ owner, repo, pull_number: prNumber, event: 'COMMENT', comments }); + try { + await octokit.rest.pulls.createReview({ owner, repo, pull_number: prNumber, event: 'COMMENT', comments }); + } + catch (error) { + (0, core_1.warning)(`Failed to post the comments as a review: ${error instanceof Error ? error.message : String(error)}`); + } (0, core_1.debug)('Sent comments'); } function decodeDiff(data) { diff --git a/src/bugalint.ts b/src/bugalint.ts index 7280401..8876e37 100644 --- a/src/bugalint.ts +++ b/src/bugalint.ts @@ -367,7 +367,11 @@ export async function addComments( return } debug('Sending comments') - await octokit.rest.pulls.createReview({ owner, repo, pull_number: prNumber, event: 'COMMENT', comments }) + try { + await octokit.rest.pulls.createReview({ owner, repo, pull_number: prNumber, event: 'COMMENT', comments }) + } catch (error) { + warning(`Failed to post the comments as a review: ${error instanceof Error ? error.message : String(error)}`) + } debug('Sent comments') }