From 0ceb558bb4262b22f9e089d5935c3f926a4f28c8 Mon Sep 17 00:00:00 2001
From: chris48s <chris48s@users.noreply.github.com>
Date: Thu, 30 Jun 2022 20:56:05 +0100
Subject: [PATCH] change routes for [gitlab] license and contributors badges
 (#8140)

---
 .../gitlab/gitlab-contributors-redirect.service.js   | 12 ++++++++++++
 .../gitlab/gitlab-contributors-redirect.tester.js    |  9 +++++++++
 services/gitlab/gitlab-contributors.service.js       |  2 +-
 services/gitlab/gitlab-license-redirect.service.js   | 12 ++++++++++++
 services/gitlab/gitlab-license-redirect.tester.js    |  9 +++++++++
 services/gitlab/gitlab-license.service.js            |  2 +-
 services/gitlab/gitlab-release.tester.js             |  2 +-
 7 files changed, 45 insertions(+), 3 deletions(-)
 create mode 100644 services/gitlab/gitlab-contributors-redirect.service.js
 create mode 100644 services/gitlab/gitlab-contributors-redirect.tester.js
 create mode 100644 services/gitlab/gitlab-license-redirect.service.js
 create mode 100644 services/gitlab/gitlab-license-redirect.tester.js

diff --git a/services/gitlab/gitlab-contributors-redirect.service.js b/services/gitlab/gitlab-contributors-redirect.service.js
new file mode 100644
index 0000000000..f4d25c7204
--- /dev/null
+++ b/services/gitlab/gitlab-contributors-redirect.service.js
@@ -0,0 +1,12 @@
+import { redirector } from '../index.js'
+
+// https://github.com/badges/shields/issues/8138
+export default redirector({
+  category: 'build',
+  route: {
+    base: 'gitlab/v/contributor',
+    pattern: ':project+',
+  },
+  transformPath: ({ project }) => `/gitlab/contributors/${project}`,
+  dateAdded: new Date('2022-06-29'),
+})
diff --git a/services/gitlab/gitlab-contributors-redirect.tester.js b/services/gitlab/gitlab-contributors-redirect.tester.js
new file mode 100644
index 0000000000..d0cf886c24
--- /dev/null
+++ b/services/gitlab/gitlab-contributors-redirect.tester.js
@@ -0,0 +1,9 @@
+import { createServiceTester } from '../tester.js'
+export const t = await createServiceTester()
+
+t.create('Contributors redirect')
+  .get('/gitlab-org/gitlab', {
+    followRedirect: false,
+  })
+  .expectStatus(301)
+  .expectHeader('Location', '/gitlab/contributors/gitlab-org/gitlab.svg')
diff --git a/services/gitlab/gitlab-contributors.service.js b/services/gitlab/gitlab-contributors.service.js
index facd939322..5f44214889 100644
--- a/services/gitlab/gitlab-contributors.service.js
+++ b/services/gitlab/gitlab-contributors.service.js
@@ -25,7 +25,7 @@ const customDocumentation = `
 export default class GitlabContributors extends GitLabBase {
   static category = 'activity'
   static route = {
-    base: 'gitlab/v/contributor',
+    base: 'gitlab/contributors',
     pattern: ':project+',
     queryParamSchema,
   }
diff --git a/services/gitlab/gitlab-license-redirect.service.js b/services/gitlab/gitlab-license-redirect.service.js
new file mode 100644
index 0000000000..0288c03b8f
--- /dev/null
+++ b/services/gitlab/gitlab-license-redirect.service.js
@@ -0,0 +1,12 @@
+import { redirector } from '../index.js'
+
+// https://github.com/badges/shields/issues/8138
+export default redirector({
+  category: 'build',
+  route: {
+    base: 'gitlab/v/license',
+    pattern: ':project+',
+  },
+  transformPath: ({ project }) => `/gitlab/license/${project}`,
+  dateAdded: new Date('2022-06-29'),
+})
diff --git a/services/gitlab/gitlab-license-redirect.tester.js b/services/gitlab/gitlab-license-redirect.tester.js
new file mode 100644
index 0000000000..373a88edb9
--- /dev/null
+++ b/services/gitlab/gitlab-license-redirect.tester.js
@@ -0,0 +1,9 @@
+import { createServiceTester } from '../tester.js'
+export const t = await createServiceTester()
+
+t.create('License redirect')
+  .get('/gitlab-org/gitlab', {
+    followRedirect: false,
+  })
+  .expectStatus(301)
+  .expectHeader('Location', '/gitlab/license/gitlab-org/gitlab.svg')
diff --git a/services/gitlab/gitlab-license.service.js b/services/gitlab/gitlab-license.service.js
index ecafc19790..776d270017 100644
--- a/services/gitlab/gitlab-license.service.js
+++ b/services/gitlab/gitlab-license.service.js
@@ -30,7 +30,7 @@ export default class GitlabLicense extends GitLabBase {
   static category = 'license'
 
   static route = {
-    base: 'gitlab/v/license',
+    base: 'gitlab/license',
     pattern: ':project+',
     queryParamSchema,
   }
diff --git a/services/gitlab/gitlab-release.tester.js b/services/gitlab/gitlab-release.tester.js
index b4b859d8f0..ce226926ea 100644
--- a/services/gitlab/gitlab-release.tester.js
+++ b/services/gitlab/gitlab-release.tester.js
@@ -36,7 +36,7 @@ t.create('Release (release display name)')
   .get('/gitlab-org/gitlab.json?display_name=release')
   .expectBadge({ label: 'release', message: isGitLabDisplayVersion })
 
-t.create('Release (custom instance')
+t.create('Release (custom instance)')
   .get('/GNOME/librsvg.json?gitlab_url=https://gitlab.gnome.org')
   .expectBadge({ label: 'release', message: isSemver, color: 'blue' })
 
-- 
GitLab