From 559e7e344ee5fa2b7a6b9bed679cc1162c983b92 Mon Sep 17 00:00:00 2001
From: Oleg Krivtsov <olegkrivtsov@gmail.com>
Date: Wed, 24 Nov 2021 17:08:09 +0700
Subject: [PATCH] feat(platform/gitlab): modify getJsonFile to use branchOrTag
 on GitLab (#12821)

Co-authored-by: Michael Kriese <michael.kriese@visualon.de>
---
 lib/platform/gitlab/__snapshots__/index.spec.ts.snap | 6 +++---
 lib/platform/gitlab/index.spec.ts                    | 4 ++--
 lib/platform/gitlab/index.ts                         | 4 +++-
 3 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/lib/platform/gitlab/__snapshots__/index.spec.ts.snap b/lib/platform/gitlab/__snapshots__/index.spec.ts.snap
index 9a4910787a..dc2c6e6154 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 e4f42a6791..e64f45b7d8 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 059c3b54de..64e1e1caa4 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();
-- 
GitLab