diff --git a/lib/platform/gitlab/__snapshots__/index.spec.ts.snap b/lib/platform/gitlab/__snapshots__/index.spec.ts.snap
index 9a4910787a5d7a22b0aebbbb1c411610179fe177..dc2c6e615441ee4d2c70b87b6efa6715d1290c57 100644
--- a/lib/platform/gitlab/__snapshots__/index.spec.ts.snap
+++ b/lib/platform/gitlab/__snapshots__/index.spec.ts.snap
@@ -2272,7 +2272,7 @@ Array [
 ]
 `;
 
-exports[`platform/gitlab/index getJsonFile() ingores branchOrTag 1`] = `
+exports[`platform/gitlab/index getJsonFile() returns file content 1`] = `
 Array [
   Object {
     "headers": Object {
@@ -2299,7 +2299,7 @@ Array [
 ]
 `;
 
-exports[`platform/gitlab/index getJsonFile() returns file content 1`] = `
+exports[`platform/gitlab/index getJsonFile() returns file content from branch or tag 1`] = `
 Array [
   Object {
     "headers": Object {
@@ -2321,7 +2321,7 @@ Array [
       "user-agent": "RenovateBot/0.0.0-semantic-release (https://github.com/renovatebot/renovate)",
     },
     "method": "GET",
-    "url": "https://gitlab.com/api/v4/projects/some%2Frepo/repository/files/dir%2Ffile.json?ref=HEAD",
+    "url": "https://gitlab.com/api/v4/projects/some%2Frepo/repository/files/dir%2Ffile.json?ref=dev",
   },
 ]
 `;
diff --git a/lib/platform/gitlab/index.spec.ts b/lib/platform/gitlab/index.spec.ts
index e4f42a679177d889363c48f141010baf03e06996..e64f45b7d8c7026df1f7efae0e4c26384e87eef9 100644
--- a/lib/platform/gitlab/index.spec.ts
+++ b/lib/platform/gitlab/index.spec.ts
@@ -2020,12 +2020,12 @@ These updates have all been created already. Click a checkbox below to force a r
       expect(httpMock.getTrace()).toMatchSnapshot();
     });
 
-    it('ingores branchOrTag', async () => {
+    it('returns file content from branch or tag', async () => {
       const data = { foo: 'bar' };
       const scope = await initRepo();
       scope
         .get(
-          '/api/v4/projects/some%2Frepo/repository/files/dir%2Ffile.json?ref=HEAD'
+          '/api/v4/projects/some%2Frepo/repository/files/dir%2Ffile.json?ref=dev'
         )
         .reply(200, {
           content: Buffer.from(JSON.stringify(data)).toString('base64'),
diff --git a/lib/platform/gitlab/index.ts b/lib/platform/gitlab/index.ts
index 059c3b54de96e8f2a209be884dd700cea62ffbd3..64e1e1caa42be80837cc7683c01c11fd7ea25f96 100644
--- a/lib/platform/gitlab/index.ts
+++ b/lib/platform/gitlab/index.ts
@@ -162,7 +162,9 @@ export async function getRawFile(
 ): Promise<string | null> {
   const escapedFileName = urlEscape(fileName);
   const repo = repoName ?? config.repository;
-  const url = `projects/${repo}/repository/files/${escapedFileName}?ref=HEAD`;
+  const url =
+    `projects/${repo}/repository/files/${escapedFileName}?ref=` +
+    (branchOrTag || `HEAD`);
   const res = await gitlabApi.getJson<{ content: string }>(url);
   const buf = res.body.content;
   const str = Buffer.from(buf, 'base64').toString();