mirror of
https://github.com/actions/checkout.git
synced 2026-05-13 16:38:07 +00:00
Compare commits
1 Commits
0e52ea306b
...
ce56faa08e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ce56faa08e |
@ -134,8 +134,7 @@ describe('input-helper tests', () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
it('sets ref to empty when explicit sha-256', async () => {
|
it('sets ref to empty when explicit sha-256', async () => {
|
||||||
inputs.ref =
|
inputs.ref = '1111111111222222222233333333334444444444555555555566666666667777'
|
||||||
'1111111111222222222233333333334444444444555555555566666666667777'
|
|
||||||
const settings: IGitSourceSettings = await inputHelper.getInputs()
|
const settings: IGitSourceSettings = await inputHelper.getInputs()
|
||||||
expect(settings.ref).toBeFalsy()
|
expect(settings.ref).toBeFalsy()
|
||||||
expect(settings.commit).toBe(
|
expect(settings.commit).toBe(
|
||||||
|
|||||||
@ -1,6 +1,4 @@
|
|||||||
import * as assert from 'assert'
|
import * as assert from 'assert'
|
||||||
import * as core from '@actions/core'
|
|
||||||
import * as github from '@actions/github'
|
|
||||||
import * as refHelper from '../lib/ref-helper'
|
import * as refHelper from '../lib/ref-helper'
|
||||||
import {IGitCommandManager} from '../lib/git-command-manager'
|
import {IGitCommandManager} from '../lib/git-command-manager'
|
||||||
|
|
||||||
@ -237,142 +235,4 @@ describe('ref-helper tests', () => {
|
|||||||
'+refs/heads/my/branch:refs/remotes/origin/my/branch'
|
'+refs/heads/my/branch:refs/remotes/origin/my/branch'
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
describe('checkCommitInfo', () => {
|
|
||||||
const repositoryOwner = 'some-owner'
|
|
||||||
const repositoryName = 'some-repo'
|
|
||||||
const ref = 'refs/pull/123/merge'
|
|
||||||
const sha1Head = '1111111111222222222233333333334444444444'
|
|
||||||
const sha1Base = 'aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd'
|
|
||||||
const sha256Head =
|
|
||||||
'1111111111222222222233333333334444444444555555555566666666667777'
|
|
||||||
const sha256Base =
|
|
||||||
'aaaaaaaaaabbbbbbbbbbccccccccccddddddddddeeeeeeeeeeffffffffff0000'
|
|
||||||
let debugSpy: jest.SpyInstance
|
|
||||||
let getOctokitSpy: jest.SpyInstance
|
|
||||||
let repoGetSpy: jest.Mock
|
|
||||||
let originalEventName: string
|
|
||||||
let originalPayload: unknown
|
|
||||||
let originalRef: string
|
|
||||||
let originalSha: string
|
|
||||||
|
|
||||||
function setPullRequestContext(
|
|
||||||
expectedHeadSha: string,
|
|
||||||
expectedBaseSha: string,
|
|
||||||
mergeCommit: string
|
|
||||||
): void {
|
|
||||||
;(github.context as any).eventName = 'pull_request'
|
|
||||||
github.context.ref = ref
|
|
||||||
github.context.sha = mergeCommit
|
|
||||||
;(github.context as any).payload = {
|
|
||||||
action: 'synchronize',
|
|
||||||
after: expectedHeadSha,
|
|
||||||
number: 123,
|
|
||||||
pull_request: {
|
|
||||||
base: {
|
|
||||||
sha: expectedBaseSha
|
|
||||||
}
|
|
||||||
},
|
|
||||||
repository: {
|
|
||||||
private: false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
originalEventName = github.context.eventName
|
|
||||||
originalPayload = github.context.payload
|
|
||||||
originalRef = github.context.ref
|
|
||||||
originalSha = github.context.sha
|
|
||||||
|
|
||||||
jest.spyOn(github.context, 'repo', 'get').mockReturnValue({
|
|
||||||
owner: repositoryOwner,
|
|
||||||
repo: repositoryName
|
|
||||||
})
|
|
||||||
debugSpy = jest.spyOn(core, 'debug').mockImplementation(jest.fn())
|
|
||||||
repoGetSpy = jest.fn(async () => ({}))
|
|
||||||
getOctokitSpy = jest.spyOn(github, 'getOctokit').mockReturnValue({
|
|
||||||
rest: {
|
|
||||||
repos: {
|
|
||||||
get: repoGetSpy
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} as any)
|
|
||||||
})
|
|
||||||
|
|
||||||
afterEach(() => {
|
|
||||||
;(github.context as any).eventName = originalEventName
|
|
||||||
;(github.context as any).payload = originalPayload
|
|
||||||
github.context.ref = originalRef
|
|
||||||
github.context.sha = originalSha
|
|
||||||
jest.restoreAllMocks()
|
|
||||||
})
|
|
||||||
|
|
||||||
it('returns early for SHA-1 merge commit', async () => {
|
|
||||||
setPullRequestContext(sha1Head, sha1Base, commit)
|
|
||||||
|
|
||||||
await refHelper.checkCommitInfo(
|
|
||||||
'token',
|
|
||||||
`Merge ${sha1Head} into ${sha1Base}`,
|
|
||||||
repositoryOwner,
|
|
||||||
repositoryName,
|
|
||||||
ref,
|
|
||||||
commit
|
|
||||||
)
|
|
||||||
|
|
||||||
expect(getOctokitSpy).not.toHaveBeenCalled()
|
|
||||||
expect(repoGetSpy).not.toHaveBeenCalled()
|
|
||||||
})
|
|
||||||
|
|
||||||
it('matches SHA-256 merge commit info', async () => {
|
|
||||||
const actualHeadSha =
|
|
||||||
'9999999999888888888877777777776666666666555555555544444444443333'
|
|
||||||
setPullRequestContext(sha256Head, sha256Base, sha256Commit)
|
|
||||||
|
|
||||||
await refHelper.checkCommitInfo(
|
|
||||||
'token',
|
|
||||||
`Merge ${actualHeadSha} into ${sha256Base}`,
|
|
||||||
repositoryOwner,
|
|
||||||
repositoryName,
|
|
||||||
ref,
|
|
||||||
sha256Commit
|
|
||||||
)
|
|
||||||
|
|
||||||
expect(getOctokitSpy).toHaveBeenCalledWith(
|
|
||||||
'token',
|
|
||||||
expect.objectContaining({
|
|
||||||
userAgent: expect.stringContaining(
|
|
||||||
`expected_head_sha=${sha256Head};actual_head_sha=${actualHeadSha}`
|
|
||||||
)
|
|
||||||
})
|
|
||||||
)
|
|
||||||
expect(repoGetSpy).toHaveBeenCalledWith({
|
|
||||||
owner: repositoryOwner,
|
|
||||||
repo: repositoryName
|
|
||||||
})
|
|
||||||
expect(debugSpy).toHaveBeenCalledWith(
|
|
||||||
`Expected head sha ${sha256Head}; actual head sha ${actualHeadSha}`
|
|
||||||
)
|
|
||||||
expect(debugSpy).not.toHaveBeenCalledWith('Unexpected message format')
|
|
||||||
})
|
|
||||||
|
|
||||||
it('does not match 50-char hex as a valid merge', async () => {
|
|
||||||
const invalidHeadSha =
|
|
||||||
'99999999998888888888777777777766666666665555555555'
|
|
||||||
setPullRequestContext(sha1Head, sha1Base, commit)
|
|
||||||
|
|
||||||
await refHelper.checkCommitInfo(
|
|
||||||
'token',
|
|
||||||
`Merge ${invalidHeadSha} into ${sha1Base}`,
|
|
||||||
repositoryOwner,
|
|
||||||
repositoryName,
|
|
||||||
ref,
|
|
||||||
commit
|
|
||||||
)
|
|
||||||
|
|
||||||
expect(getOctokitSpy).not.toHaveBeenCalled()
|
|
||||||
expect(repoGetSpy).not.toHaveBeenCalled()
|
|
||||||
expect(debugSpy).toHaveBeenCalledWith('Unexpected message format')
|
|
||||||
})
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
|
|||||||
@ -258,9 +258,7 @@ export async function checkCommitInfo(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Extract details from message
|
// Extract details from message
|
||||||
const match = commitInfo.match(
|
const match = commitInfo.match(/Merge ([0-9a-f]{40}|[0-9a-f]{64}) into ([0-9a-f]{40}|[0-9a-f]{64})/)
|
||||||
/Merge ([0-9a-f]{40}|[0-9a-f]{64}) into ([0-9a-f]{40}|[0-9a-f]{64})/
|
|
||||||
)
|
|
||||||
if (!match) {
|
if (!match) {
|
||||||
core.debug('Unexpected message format')
|
core.debug('Unexpected message format')
|
||||||
return
|
return
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user