diff --git a/README.md b/README.md index 1231894..b6dd49c 100644 --- a/README.md +++ b/README.md @@ -48,7 +48,6 @@ At the time of badgen.now.sh's reveal, it had only four live badges as demonstra [![Contributors][contributors-src]][contributors-href] [![Dependencies][dependencies-src]][dependencies-href] [![Maintainability][maintainability-src]][maintainability-href] -[![Code Quality][codequality-src]][codequality-href] [![Docker image][docker-src]][docker-href] **start dev server** @@ -123,8 +122,6 @@ Support this project by donation, help Badgen continue and evolving! [dependencies-href]: https://david-dm.org/badgen/badgen.net [maintainability-src]: https://badgen.net/codeclimate/maintainability/badgen/badgen.net [maintainability-href]: https://codeclimate.com/github/badgen/badgen.net -[codequality-src]: https://badgen.net/lgtm/grade/javascript/g/badgen/badgen.net -[codequality-href]: https://lgtm.com/projects/g/badgen/badgen.net/context:javascript [contributors-src]: https://badgen.net/github/contributors/badgen/badgen.net [contributors-href]: https://github.com/badgen/badgen.net/graphs/contributors [docker-src]: https://badgen.net/badge/docker/amio%2Fbadgen?label&icon=docker diff --git a/api-/lgtm.ts b/api-/lgtm.ts deleted file mode 100644 index f45dd88..0000000 --- a/api-/lgtm.ts +++ /dev/null @@ -1,100 +0,0 @@ -import millify from 'millify' -import got from '../libs/got' -import { createBadgenHandler, PathArgs } from '../libs/create-badgen-handler' - -// https://lgtm.com/help/lgtm/api/api-v1 -const LGTM_API_URL = 'https://lgtm.com/api/v1.0/' - -const client = got.extend({ prefixUrl: LGTM_API_URL }) - -export default createBadgenHandler({ - title: 'LGTM', - examples: { - '/lgtm/langs/g/apache/cloudstack/java': 'langs', - '/lgtm/alerts/g/apache/cloudstack': 'alerts', - '/lgtm/lines/g/apache/cloudstack/java': 'lines (java)', - '/lgtm/grade/g/apache/cloudstack/java': 'grade (java)', - '/lgtm/grade/g/apache/cloudstack': 'grade (auto)', - '/lgtm/grade/g/systemd/systemd': 'grade (auto)', - '/lgtm/grade/bitbucket/wegtam/bitbucket-youtrack-broker': 'grade (auto)', - '/lgtm/grade/gitlab/nekokatt/hikari': 'grade (auto)', - }, - handlers: { - '/lgtm/:topic/:provider/:owner/:name/:lang?': handler, - '/lgtm/:topic/:lang/:provider/:owner/:name': handler, // deprecated - } -}) - -async function handler ({ topic, provider, owner, name, lang }: PathArgs) { - provider = { - github: 'g', - bitbucket: 'b', - gitlab: 'gl' - }[provider] || provider - - // https://lgtm.com/help/lgtm/api/api-v1#LGTM-API-specification-Projects - const data = await client.get(`projects/${provider}/${owner}/${name}`).json() - const { language, alerts, lines, grade } = detailsByLang(data, lang) - const langLabel = langLabelOverrides[language] || language - - switch (topic) { - case 'alerts': - return { - subject: `alerts: ${langLabel}`, - status: millify(alerts), - color: alerts === 0 ? 'green' : 'yellow' - } - case 'grade': - return { - subject: `code quality: ${langLabel}`, - status: grade, - color: gradeColors[grade] || 'grey' - } - case 'lines': - const showLines = lang ? lines : data.languages.reduce((accu, curr) => { - return accu + curr.lines - }, 0) - return { - subject: lang ? `lines: ${langLabel}` : 'lines', - status: millify(showLines), - color: 'blue' - } - case 'langs': - const langs = data.languages - .sort((a, b) => b.lines - a.lines) - .map(x => langLabelOverrides[x.language] || x.language) - .join(' | ') - return { - subject: 'languages', - status: langs, - color: 'blue' - } - } -} - -const detailsByLang = (data, lang) => { - const found = lang && data.languages.find(x => x.language === lang) - - if (found) { - return found - } else { - // find main lang with most sloc - return data.languages.reduce((accu, curr) => { - return curr.lines > accu.lines ? curr : accu - }) - } -} - -const langLabelOverrides = { - cpp: 'c/c++', - csharp: 'c#', - javascript: 'js/ts' -} - -const gradeColors = { - 'A+': 'green', - 'A': '9C0', - 'B': 'A4A61D', - 'C': 'yellow', - 'D': 'orange' -} diff --git a/libs/badge-list.ts b/libs/badge-list.ts index 6adb26d..c1a725f 100644 --- a/libs/badge-list.ts +++ b/libs/badge-list.ts @@ -48,7 +48,6 @@ export const liveBadgeList = [ 'azure-pipelines', // quality & metrics 'snyk', - 'lgtm', 'deepscan', 'uptime-robot', 'badgesize', diff --git a/next.config.js b/next.config.js index 56c8876..9e18f68 100644 --- a/next.config.js +++ b/next.config.js @@ -53,6 +53,7 @@ const nextConfig = { '/xo', // discontinued '/apm', + '/lgtm', ] badgeApis.forEach(badge => { diff --git a/pages/api/apm.ts b/pages/api/apm.ts index e23a7e2..7a8a08a 100644 --- a/pages/api/apm.ts +++ b/pages/api/apm.ts @@ -4,6 +4,8 @@ const help = ` ## Discontinued Read all about GitHub [Sunsetting Atom](https://github.blog/2022-06-08-sunsetting-atom/). + +For alternative service, you may use /ppm instead. ` export default createBadgenHandler({ diff --git a/pages/api/lgtm.ts b/pages/api/lgtm.ts new file mode 100644 index 0000000..7e55093 --- /dev/null +++ b/pages/api/lgtm.ts @@ -0,0 +1,34 @@ +import { createBadgenHandler, PathArgs } from '../../libs/create-badgen-handler-next' + +const help = ` +## Discontinued + +Read all about GitHub [The next step for LGTM.com: GitHub code scanning!](https://github.blog/2022-08-15-the-next-step-for-lgtm-com-github-code-scanning/). +` + +export default createBadgenHandler({ + title: 'LGTM', + examples: { + '/lgtm/langs/g/apache/cloudstack/java': 'langs', + '/lgtm/alerts/g/apache/cloudstack': 'alerts', + '/lgtm/lines/g/apache/cloudstack/java': 'lines (java)', + '/lgtm/grade/g/apache/cloudstack/java': 'grade (java)', + '/lgtm/grade/g/apache/cloudstack': 'grade (auto)', + '/lgtm/grade/g/systemd/systemd': 'grade (auto)', + '/lgtm/grade/bitbucket/wegtam/bitbucket-youtrack-broker': 'grade (auto)', + '/lgtm/grade/gitlab/nekokatt/hikari': 'grade (auto)', + }, + handlers: { + '/lgtm/:topic/:provider/:owner/:name/:lang?': handler, + '/lgtm/:topic/:lang/:provider/:owner/:name': handler, + }, + help: help +}) + +async function handler ({ topic, provider, owner, name, lang }: PathArgs): Promise { + return { + subject: 'lgtm', + status: 'discontinued', + color: 'grey' + } +} diff --git a/vercel.json b/vercel.json index 33be058..dfa0729 100644 --- a/vercel.json +++ b/vercel.json @@ -130,10 +130,6 @@ "source": "/keybase/:match*", "destination": "https://v2022.badgen.net/keybase/:match*" }, - { - "source": "/lgtm/:match*", - "destination": "https://v2022.badgen.net/lgtm/:match*" - }, { "source": "/liberapay/:match*", "destination": "https://v2022.badgen.net/liberapay/:match*"