From e6c8d079c9934a76f0d42df3077d8127d4b819f8 Mon Sep 17 00:00:00 2001
From: chris48s <chris48s@users.noreply.github.com>
Date: Tue, 9 Jul 2024 15:11:14 +0100
Subject: [PATCH] include gituhb contributors badge in docs site (#10337)

---
 core/base-service/openapi.js                   |  2 +-
 services/github/github-contributors.service.js | 16 ++++++++++------
 2 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/core/base-service/openapi.js b/core/base-service/openapi.js
index d6f6c7b5e7..3d2e6082ee 100644
--- a/core/base-service/openapi.js
+++ b/core/base-service/openapi.js
@@ -84,7 +84,7 @@ function services2openapi(services, sort) {
     for (const [key, value] of Object.entries(
       addGlobalProperties(service.openApi),
     )) {
-      if (key in paths && key !== '/github/{variant}/{user}/{repo}') {
+      if (key in paths) {
         throw new Error(`Conflicting route: ${key}`)
       }
       paths[key] = value
diff --git a/services/github/github-contributors.service.js b/services/github/github-contributors.service.js
index 23d07dfe48..c0f62bfa07 100644
--- a/services/github/github-contributors.service.js
+++ b/services/github/github-contributors.service.js
@@ -12,19 +12,23 @@ export default class GithubContributors extends GithubAuthV3Service {
   static category = 'activity'
   static route = {
     base: 'github',
-    pattern: ':variant(contributors|contributors-anon)/:user/:repo',
+    // note we call this param 'metric' instead of 'variant' because of
+    // https://github.com/badges/shields/issues/10323
+    pattern: ':metric(contributors|contributors-anon)/:user/:repo',
   }
 
   static openApi = {
-    '/github/{variant}/{user}/{repo}': {
+    '/github/{metric}/{user}/{repo}': {
       get: {
         summary: 'GitHub contributors',
         description: documentation,
         parameters: pathParams(
           {
-            name: 'variant',
+            name: 'metric',
             example: 'contributors',
-            schema: { type: 'string', enum: this.getEnum('variant') },
+            schema: { type: 'string', enum: this.getEnum('metric') },
+            description:
+              '`contributors-anon` includes anonymous commits, whereas `contributors` excludes them.',
           },
           {
             name: 'user',
@@ -45,8 +49,8 @@ export default class GithubContributors extends GithubAuthV3Service {
     return renderContributorBadge({ contributorCount })
   }
 
-  async handle({ variant, user, repo }) {
-    const isAnon = variant === 'contributors-anon'
+  async handle({ metric, user, repo }) {
+    const isAnon = metric === 'contributors-anon'
 
     const { res, buffer } = await this._request({
       url: `/repos/${user}/${repo}/contributors`,
-- 
GitLab