From cd91cb5565b56560d4e0194b2feb0b8d0ded41bc Mon Sep 17 00:00:00 2001 From: chris48s Date: Fri, 5 Jul 2024 14:31:48 +0100 Subject: [PATCH] include gituhb contributors badge in docs site --- 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 d6f6c7b5e7551..3d2e6082ee639 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 23d07dfe48c77..c0f62bfa07ba1 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`,