diff --git a/__tests__/context.test.ts b/__tests__/context.test.ts
index 56d93d1..b500490 100644
--- a/__tests__/context.test.ts
+++ b/__tests__/context.test.ts
@@ -111,7 +111,7 @@ PejgXO0uIRolYQ3sz2tMGhx1MfBqH64=
 -----END PGP PRIVATE KEY BLOCK-----`;
 
 jest.spyOn(context, 'defaultContext').mockImplementation((): string => {
-  return 'https://github.com/docker/build-push-action.git#test-jest';
+  return 'https://github.com/docker/build-push-action.git#refs/heads/test-jest';
 });
 
 jest.spyOn(context, 'tmpDir').mockImplementation((): string => {
@@ -161,7 +161,7 @@ describe('getArgs', () => {
         '--build-arg', 'MY_ARG=val1,val2,val3',
         '--build-arg', 'ARG=val',
         '--iidfile', '/tmp/.docker-build-push-jest/iidfile',
-        'https://github.com/docker/build-push-action.git#test-jest'
+        'https://github.com/docker/build-push-action.git#refs/heads/test-jest'
       ]
     ],
     [
@@ -175,7 +175,7 @@ describe('getArgs', () => {
         '--tag', 'name/app:7.4',
         '--tag', 'name/app:latest',
         '--iidfile', '/tmp/.docker-build-push-jest/iidfile',
-        'https://github.com/docker/build-push-action.git#test-jest'
+        'https://github.com/docker/build-push-action.git#refs/heads/test-jest'
       ]
     ],
     [
@@ -244,13 +244,13 @@ describe('getArgs', () => {
         'build',
         '--output', '.',
         '--secret', 'id=GIT_AUTH_TOKEN,src=/tmp/.docker-build-push-jest/.tmpname-jest',
-        'https://github.com/docker/build-push-action.git#test-jest'
+        'https://github.com/docker/build-push-action.git#refs/heads/test-jest'
       ]
     ],
     [
       '0.4.2',
       new Map<string, string>([
-        ['context', 'https://github.com/docker/build-push-action.git#heads/master'],
+        ['context', 'https://github.com/docker/build-push-action.git#refs/heads/master'],
         ['tag', 'localhost:5000/name/app:latest'],
         ['platforms', 'linux/amd64,linux/arm64'],
         ['secrets', 'GIT_AUTH_TOKEN=abcdefghijklmno=0123456789'],
@@ -267,13 +267,13 @@ describe('getArgs', () => {
         '--file', './test/Dockerfile',
         '--builder', 'builder-git-context-2',
         '--push',
-        'https://github.com/docker/build-push-action.git#heads/master'
+        'https://github.com/docker/build-push-action.git#refs/heads/master'
       ]
     ],
     [
       '0.4.2',
       new Map<string, string>([
-        ['context', 'https://github.com/docker/build-push-action.git#heads/master'],
+        ['context', 'https://github.com/docker/build-push-action.git#refs/heads/master'],
         ['tag', 'localhost:5000/name/app:latest'],
         ['platforms', 'linux/amd64,linux/arm64'],
         ['secrets', `GIT_AUTH_TOKEN=abcdefghi,jklmno=0123456789
@@ -301,13 +301,13 @@ ccc"`],
         '--file', './test/Dockerfile',
         '--builder', 'builder-git-context-2',
         '--push',
-        'https://github.com/docker/build-push-action.git#heads/master'
+        'https://github.com/docker/build-push-action.git#refs/heads/master'
       ]
     ],
     [
       '0.4.2',
       new Map<string, string>([
-        ['context', 'https://github.com/docker/build-push-action.git#heads/master'],
+        ['context', 'https://github.com/docker/build-push-action.git#refs/heads/master'],
         ['tag', 'localhost:5000/name/app:latest'],
         ['platforms', 'linux/amd64,linux/arm64'],
         ['secrets', `GIT_AUTH_TOKEN=abcdefghi,jklmno=0123456789
@@ -335,13 +335,13 @@ ccc`],
         '--file', './test/Dockerfile',
         '--builder', 'builder-git-context-2',
         '--push',
-        'https://github.com/docker/build-push-action.git#heads/master'
+        'https://github.com/docker/build-push-action.git#refs/heads/master'
       ]
     ],
     [
       '0.5.1',
       new Map<string, string>([
-        ['context', 'https://github.com/docker/build-push-action.git#heads/master'],
+        ['context', 'https://github.com/docker/build-push-action.git#refs/heads/master'],
         ['tag', 'localhost:5000/name/app:latest'],
         ['secret-files', `MY_SECRET=${path.join(__dirname, 'fixtures', 'secret.txt').split(path.sep).join(path.posix.sep)}`],
         ['file', './test/Dockerfile'],
@@ -358,7 +358,7 @@ ccc`],
         '--builder', 'builder-git-context-2',
         '--network', 'host',
         '--push',
-        'https://github.com/docker/build-push-action.git#heads/master'
+        'https://github.com/docker/build-push-action.git#refs/heads/master'
       ]
     ]
   ])(
diff --git a/dist/index.js b/dist/index.js
index c5ff160..a0a55c6 100644
--- a/dist/index.js
+++ b/dist/index.js
@@ -13013,9 +13013,15 @@ const github = __importStar(__webpack_require__(438));
 const buildx = __importStar(__webpack_require__(295));
 let _defaultContext, _tmpDir;
 function defaultContext() {
-    var _a, _b;
     if (!_defaultContext) {
-        _defaultContext = `${process.env.GITHUB_SERVER_URL || 'https://github.com'}/${github.context.repo.owner}/${github.context.repo.repo}.git#${(_b = (_a = github.context) === null || _a === void 0 ? void 0 : _a.ref) === null || _b === void 0 ? void 0 : _b.replace(/^refs\//, '')}`;
+        let ref = github.context.ref;
+        if (github.context.sha && ref && !ref.startsWith('refs/')) {
+            ref = `refs/heads/${github.context.ref}`;
+        }
+        if (github.context.sha && !ref.startsWith(`refs/pull/`)) {
+            ref = github.context.sha;
+        }
+        _defaultContext = `${process.env.GITHUB_SERVER_URL || 'https://github.com'}/${github.context.repo.owner}/${github.context.repo.repo}.git#${ref}`;
     }
     return _defaultContext;
 }
diff --git a/src/context.ts b/src/context.ts
index f3cfb5f..e0cfa7b 100644
--- a/src/context.ts
+++ b/src/context.ts
@@ -38,9 +38,16 @@ export interface Inputs {
 
 export function defaultContext(): string {
   if (!_defaultContext) {
+    let ref = github.context.ref;
+    if (github.context.sha && ref && !ref.startsWith('refs/')) {
+      ref = `refs/heads/${github.context.ref}`;
+    }
+    if (github.context.sha && !ref.startsWith(`refs/pull/`)) {
+      ref = github.context.sha;
+    }
     _defaultContext = `${process.env.GITHUB_SERVER_URL || 'https://github.com'}/${github.context.repo.owner}/${
       github.context.repo.repo
-    }.git#${github.context?.ref?.replace(/^refs\//, '')}`;
+    }.git#${ref}`;
   }
   return _defaultContext;
 }