diff --git a/services/gitlab/gitlab-contributors-redirect.service.js b/services/gitlab/gitlab-contributors-redirect.service.js
new file mode 100644
index 0000000000000000000000000000000000000000..f4d25c7204225b6bde91cd5747f07cb7fc3c5812
--- /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 0000000000000000000000000000000000000000..d0cf886c247176653004c4cf87c2cda4cf3144d3
--- /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 facd939322ade5e4cf7d821648776cd452847878..5f442148892abfd2b54ba545339eede87e8e8def 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 0000000000000000000000000000000000000000..0288c03b8f734a28215f7d394d9b32e5426aba56
--- /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 0000000000000000000000000000000000000000..373a88edb9733985b0c8fced328365337463ff56
--- /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 ecafc19790e8dd4711c697a0d586b1c856475013..776d270017100b8fab0b1d93dd13622b5abde00b 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 b4b859d8f0752cbc6f52ead09b07fb3ee77b043b..ce226926eaee0cc5824976dcd7a108999580eaeb 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' })