Read-only mirror — the public repositories of the Forgejo instance, refreshed every 10 minutes. The live instance (fg.dieschoenewolke.de) is reachable only over the VPN; clone here with https://git.dieschoenewolke.de/git/<owner>/<repo>.git.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOrhan Toy <orhantoy@github.com>2024-06-12 17:01:40 +0200
committerGitHub <noreply@github.com>2024-06-12 11:01:40 -0400
commit798b08b7113201b0aac9404bba2bdf31ca943949 (patch)
tree4b17b6954bbaf43b4785ff738f01191cf00444ea
parent300c0f8bc3145127512c68abed424bbdf093c924 (diff)
Handle hidden refs (#1774)
Co-authored-by: Chris Gavin <chris@chrisgavin.me>
-rw-r--r--__test__/ref-helper.test.ts10
-rw-r--r--dist/index.js6
-rw-r--r--src/ref-helper.ts6
3 files changed, 20 insertions, 2 deletions
diff --git a/__test__/ref-helper.test.ts b/__test__/ref-helper.test.ts
index 8a8302a..d3b00b7 100644
--- a/__test__/ref-helper.test.ts
+++ b/__test__/ref-helper.test.ts
@@ -67,6 +67,16 @@ describe('ref-helper tests', () => {
expect(checkoutInfo.startPoint).toBeFalsy()
})
+ it('getCheckoutInfo refs/', async () => {
+ const checkoutInfo = await refHelper.getCheckoutInfo(
+ git,
+ 'refs/gh/queue/main/pr-123',
+ commit
+ )
+ expect(checkoutInfo.ref).toBe(commit)
+ expect(checkoutInfo.startPoint).toBeFalsy()
+ })
+
it('getCheckoutInfo unqualified branch only', async () => {
git.branchExists = jest.fn(async (remote: boolean, pattern: string) => {
return true
diff --git a/dist/index.js b/dist/index.js
index e128adf..9d959a9 100644
--- a/dist/index.js
+++ b/dist/index.js
@@ -2000,9 +2000,13 @@ function getCheckoutInfo(git, ref, commit) {
result.ref = `refs/remotes/pull/${branch}`;
}
// refs/tags/
- else if (upperRef.startsWith('REFS/')) {
+ else if (upperRef.startsWith('REFS/TAGS/')) {
result.ref = ref;
}
+ // refs/
+ else if (upperRef.startsWith('REFS/') && commit) {
+ result.ref = commit;
+ }
// Unqualified ref, check for a matching branch or tag
else {
if (yield git.branchExists(true, `origin/${ref}`)) {
diff --git a/src/ref-helper.ts b/src/ref-helper.ts
index 047e906..00a1d27 100644
--- a/src/ref-helper.ts
+++ b/src/ref-helper.ts
@@ -42,9 +42,13 @@ export async function getCheckoutInfo(
result.ref = `refs/remotes/pull/${branch}`
}
// refs/tags/
- else if (upperRef.startsWith('REFS/')) {
+ else if (upperRef.startsWith('REFS/TAGS/')) {
result.ref = ref
}
+ // refs/
+ else if (upperRef.startsWith('REFS/') && commit) {
+ result.ref = commit
+ }
// Unqualified ref, check for a matching branch or tag
else {
if (await git.branchExists(true, `origin/${ref}`)) {