From 3f5df8a2172b97156cb678d04d34075d264bbb9e Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Tue, 25 Aug 2026 19:01:32 +0100 Subject: [PATCH] fix(pr,release): increase max buffer size for git output --- scripts/tag-and-release.ts | 6 ++++-- scripts/update-changelog.ts | 8 +++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/scripts/tag-and-release.ts b/scripts/tag-and-release.ts index 16764af..f343a21 100644 --- a/scripts/tag-and-release.ts +++ b/scripts/tag-and-release.ts @@ -31,8 +31,10 @@ function run (cmd: string, args: string[], opts: { env?: NodeJS.ProcessEnv } = { execFileSync(cmd, args, { stdio: 'inherit', env: { ...process.env, ...opts.env } }) } +const MAX_BUFFER = 256 * 1024 * 1024 + function capture (cmd: string, args: string[], env?: NodeJS.ProcessEnv): string { - return execFileSync(cmd, args, { encoding: 'utf8', env: { ...process.env, ...env } }).trim() + return execFileSync(cmd, args, { encoding: 'utf8', maxBuffer: MAX_BUFFER, env: { ...process.env, ...env } }).trim() } function tagExists (repo: string, tag: string, env: NodeJS.ProcessEnv): boolean { @@ -43,7 +45,7 @@ function tagExists (repo: string, tag: string, env: NodeJS.ProcessEnv): boolean const out = execFileSync( 'gh', ['api', '-H', 'Accept: application/vnd.github+json', `/repos/${repo}/git/ref/tags/${tag}`], - { encoding: 'utf8', stdio: ['ignore', 'pipe', 'pipe'], env: { ...process.env, ...env } }, + { encoding: 'utf8', maxBuffer: MAX_BUFFER, stdio: ['ignore', 'pipe', 'pipe'], env: { ...process.env, ...env } }, ) return Boolean(out.trim()) } catch { diff --git a/scripts/update-changelog.ts b/scripts/update-changelog.ts index 3d3657a..d6e1070 100644 --- a/scripts/update-changelog.ts +++ b/scripts/update-changelog.ts @@ -75,8 +75,10 @@ const KNOWN_TYPES = new Set(Object.keys(TYPE_TITLES)) const isReleaseWorthy = (c: Commit) => KNOWN_TYPES.has(c.type) && !(c.type === 'chore' && c.scope === 'deps') +const MAX_BUFFER = 256 * 1024 * 1024 + const git = (...args: string[]) => - execFileSync('git', args, { encoding: 'utf8' }).trim() + execFileSync('git', args, { encoding: 'utf8', maxBuffer: MAX_BUFFER }).trim() function getRepo (): { owner: string, repo: string } { const env = process.env.GITHUB_REPOSITORY @@ -101,7 +103,7 @@ export function getAllTags (): string[] { return execFileSync( 'git', ['for-each-ref', '--sort=-creatordate', '--format=%(refname:strip=2)', 'refs/tags'], - { encoding: 'utf8' }, + { encoding: 'utf8', maxBuffer: MAX_BUFFER }, ).split('\n').map(s => s.trim()).filter(Boolean) } catch { return [] @@ -225,7 +227,7 @@ function getCommitsSince (tag: Tag | null): Commit[] { const stdout = execFileSync( 'git', ['log', range, `--pretty=format:%H%x1f%h%x1f%an%x1f%ae%x1f%s%x1f%b%x1e`], - { encoding: 'utf8' }, + { encoding: 'utf8', maxBuffer: MAX_BUFFER }, ) return stdout .split('\x1e') -- 2.51.2