Browse Source

Continue #158 (#161)

* 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
docker-size
Amio / 6 years ago
committed by GitHub
parent
commit
24828bea17
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      libs/index.md
  2. 39
      libs/live-fns/github.js

4
libs/index.md

@ -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'],

39
libs/live-fns/github.js

@ -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`)

Loading…
Cancel
Save