kopia lustrzana https://github.com/badgen/badgen.net
feat: deprecated /lgtm badges
rodzic
d9626275eb
commit
2d94a53fa4
|
@ -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
|
||||
|
|
100
api-/lgtm.ts
100
api-/lgtm.ts
|
@ -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<alerts|grade|lines|langs>/:provider<g|github|bitbucket|gitlab>/:owner/:name/:lang?': handler,
|
||||
'/lgtm/:topic<grade>/:lang/:provider<g|github|bitbucket|gitlab>/: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<any>()
|
||||
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'
|
||||
}
|
|
@ -48,7 +48,6 @@ export const liveBadgeList = [
|
|||
'azure-pipelines',
|
||||
// quality & metrics
|
||||
'snyk',
|
||||
'lgtm',
|
||||
'deepscan',
|
||||
'uptime-robot',
|
||||
'badgesize',
|
||||
|
|
|
@ -53,6 +53,7 @@ const nextConfig = {
|
|||
'/xo',
|
||||
// discontinued
|
||||
'/apm',
|
||||
'/lgtm',
|
||||
]
|
||||
|
||||
badgeApis.forEach(badge => {
|
||||
|
|
|
@ -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 <a href="/ppm">/ppm</a> instead.
|
||||
`
|
||||
|
||||
export default createBadgenHandler({
|
||||
|
|
|
@ -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<alerts|grade|lines|langs>/:provider<g|github|bitbucket|gitlab>/:owner/:name/:lang?': handler,
|
||||
'/lgtm/:topic<grade>/:lang/:provider<g|github|bitbucket|gitlab>/:owner/:name': handler,
|
||||
},
|
||||
help: help
|
||||
})
|
||||
|
||||
async function handler ({ topic, provider, owner, name, lang }: PathArgs): Promise<any> {
|
||||
return {
|
||||
subject: 'lgtm',
|
||||
status: 'discontinued',
|
||||
color: 'grey'
|
||||
}
|
||||
}
|
|
@ -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*"
|
||||
|
|
Ładowanie…
Reference in New Issue