Compare commits

...

3 Commits

Author SHA1 Message Date
Jake Bailey
42feabf761
Merge 3c3e99848b36c587c8046383ab04e86713061576 into de5a000abf73b6f4965bd1bcdf8f8d94a56ea815 2024-10-01 21:50:10 -07:00
Orhan Toy
de5a000abf
Check out other refs/* by commit if provided, fall back to ref (#1924)
Some checks failed
Check dist / check-dist (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
Licensed / Check licenses (push) Has been cancelled
Build and Test / build (push) Has been cancelled
Build and Test / test (macos-latest) (push) Has been cancelled
Build and Test / test (ubuntu-latest) (push) Has been cancelled
Build and Test / test (windows-latest) (push) Has been cancelled
Build and Test / test-proxy (push) Has been cancelled
Build and Test / test-bypass-proxy (push) Has been cancelled
Build and Test / test-git-container (push) Has been cancelled
Build and Test / test-output (push) Has been cancelled
2024-10-01 20:24:28 -04:00
Jake Bailey
3c3e99848b Document that filter doesn't override fetch-depth 2023-10-05 09:04:25 -07:00
5 changed files with 19 additions and 6 deletions

View File

@ -79,6 +79,8 @@ Please refer to the [release page](https://github.com/actions/checkout/releases/
clean: '' clean: ''
# Partially clone against a given filter. Overrides sparse-checkout if set. # Partially clone against a given filter. Overrides sparse-checkout if set.
# Note that when a filter is provided, fetch-depth is still respected; you
# may want to specify `fetch-depth: 0` to ensure the full history is fetched.
# Default: null # Default: null
filter: '' filter: ''

View File

@ -77,6 +77,16 @@ describe('ref-helper tests', () => {
expect(checkoutInfo.startPoint).toBeFalsy() expect(checkoutInfo.startPoint).toBeFalsy()
}) })
it('getCheckoutInfo refs/ without commit', async () => {
const checkoutInfo = await refHelper.getCheckoutInfo(
git,
'refs/non-standard-ref',
''
)
expect(checkoutInfo.ref).toBe('refs/non-standard-ref')
expect(checkoutInfo.startPoint).toBeFalsy()
})
it('getCheckoutInfo unqualified branch only', async () => { it('getCheckoutInfo unqualified branch only', async () => {
git.branchExists = jest.fn(async (remote: boolean, pattern: string) => { git.branchExists = jest.fn(async (remote: boolean, pattern: string) => {
return true return true

View File

@ -59,8 +59,9 @@ inputs:
default: true default: true
filter: filter:
description: > description: >
Partially clone against a given filter. Partially clone against a given filter. Overrides sparse-checkout if set.
Overrides sparse-checkout if set. Note that when a filter is provided, fetch-depth is still respected; you
may want to specify `fetch-depth: 0` to ensure the full history is fetched.
default: null default: null
sparse-checkout: sparse-checkout:
description: > description: >

4
dist/index.js vendored
View File

@ -2005,8 +2005,8 @@ function getCheckoutInfo(git, ref, commit) {
result.ref = ref; result.ref = ref;
} }
// refs/ // refs/
else if (upperRef.startsWith('REFS/') && commit) { else if (upperRef.startsWith('REFS/')) {
result.ref = commit; result.ref = commit ? commit : ref;
} }
// Unqualified ref, check for a matching branch or tag // Unqualified ref, check for a matching branch or tag
else { else {

View File

@ -46,8 +46,8 @@ export async function getCheckoutInfo(
result.ref = ref result.ref = ref
} }
// refs/ // refs/
else if (upperRef.startsWith('REFS/') && commit) { else if (upperRef.startsWith('REFS/')) {
result.ref = commit result.ref = commit ? commit : ref
} }
// Unqualified ref, check for a matching branch or tag // Unqualified ref, check for a matching branch or tag
else { else {