* feat(github): add statuses badge

Signed-off-by: Charlike Mike Reagent <olsten.larck@gmail.com>

* chore: update index

Signed-off-by: Charlike Mike Reagent <olsten.larck@gmail.com>

* docs: update examples for github status
pull/162/head
Amio / 2018-09-18 17:28:22 +08:00 zatwierdzone przez GitHub
rodzic a42e6a60ab
commit 24828bea17
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
2 zmienionych plików z 43 dodań i 0 usunięć

Wyświetl plik

@ -70,6 +70,10 @@ Advanced usage (for badge makers):
['latest stable release', '/github/release/babel/babel/stable'],
['latest tag', '/github/tag/micromatch/micromatch'],
['watchers', '/github/watchers/micromatch/micromatch'],
['status', '/github/status/micromatch/micromatch'],
['status (branch)', '/github/status/tunnckoCore/badgen-service/github-status'],
['status (branch)', '/github/status/micromatch/micromatch/gh-pages'],
['status (commit)', '/github/status/micromatch/micromatch/f4809eb6df80b'],
['stars', '/github/stars/micromatch/micromatch'],
['forks', '/github/forks/micromatch/micromatch'],
['issues', '/github/issues/micromatch/micromatch'],

Wyświetl plik

@ -37,6 +37,8 @@ module.exports = async (topic, ...args) => {
return downloads(args[0], args[1], '/latest')
case 'release':
return release(...args)
case 'status':
return singleStatus(...args)
case 'dependents-repo':
return dependents('REPOSITORY', ...args)
case 'dependents-pkg':
@ -67,6 +69,43 @@ const queryGithub = query => {
}).then(res => res.body)
}
const singleStatus = async (user, repo, ref = 'master') => {
const statuses = await restGithub(`repos/${user}/${repo}/commits/${ref}/status`)
switch (statuses.state) {
case 'success':
return {
subject: 'status',
status: 'success',
color: 'green'
}
case 'error':
return {
subject: 'status',
status: 'error',
color: 'red'
}
case 'failure':
return {
subject: 'status',
status: 'failure',
color: 'red'
}
case 'pending':
return {
subject: 'status',
status: 'pending',
color: 'orange'
}
default:
return {
subject: 'status',
status: 'unknown',
color: 'grey'
}
}
}
const release = async (user, repo, channel) => {
const releases = await restGithub(`repos/${user}/${repo}/releases`)