24 lines
651 B
JavaScript
24 lines
651 B
JavaScript
import { execFileSync } from 'node:child_process'
|
|
import process from 'node:process'
|
|
|
|
export function selectPullRequestDiffBase(requestedBase, headParents, eventName) {
|
|
if (eventName === 'pull_request' && headParents.length >= 2) {
|
|
return headParents[0]
|
|
}
|
|
return requestedBase
|
|
}
|
|
|
|
export function resolvePullRequestDiffBase(
|
|
root,
|
|
requestedBase,
|
|
eventName = process.env.GITHUB_EVENT_NAME
|
|
) {
|
|
const [, ...headParents] = execFileSync('git', ['rev-list', '--parents', '-n', '1', 'HEAD'], {
|
|
cwd: root,
|
|
encoding: 'utf8'
|
|
})
|
|
.trim()
|
|
.split(/\s+/)
|
|
return selectPullRequestDiffBase(requestedBase, headParents, eventName)
|
|
}
|