mirror of
https://github.com/badges/shields.git
synced 2025-07-30 17:23:07 +03:00
Add [GitHubLastCommit] by committer badge (#8537)
* add github last commit by committer badge * modify queryParam Co-authored-by: repo-ranger[bot] <39074581+repo-ranger[bot]@users.noreply.github.com>
This commit is contained in:
@ -15,14 +15,28 @@ const schema = Joi.array()
|
||||
author: Joi.object({
|
||||
date: Joi.string().required(),
|
||||
}).required(),
|
||||
committer: Joi.object({
|
||||
date: Joi.string().required(),
|
||||
}).required(),
|
||||
}).required(),
|
||||
}).required()
|
||||
)
|
||||
.required()
|
||||
|
||||
const queryParamSchema = Joi.object({
|
||||
display_timestamp: Joi.string()
|
||||
.valid('author', 'committer')
|
||||
.default('author'),
|
||||
}).required()
|
||||
|
||||
export default class GithubLastCommit extends GithubAuthV3Service {
|
||||
static category = 'activity'
|
||||
static route = { base: 'github/last-commit', pattern: ':user/:repo/:branch*' }
|
||||
static route = {
|
||||
base: 'github/last-commit',
|
||||
pattern: ':user/:repo/:branch*',
|
||||
queryParamSchema,
|
||||
}
|
||||
|
||||
static examples = [
|
||||
{
|
||||
title: 'GitHub last commit',
|
||||
@ -45,6 +59,17 @@ export default class GithubLastCommit extends GithubAuthV3Service {
|
||||
staticPreview: this.render({ commitDate: '2013-07-31T20:01:41Z' }),
|
||||
...commonExampleAttrs,
|
||||
},
|
||||
{
|
||||
title: 'GitHub last commit (by committer)',
|
||||
pattern: ':user/:repo',
|
||||
namedParams: {
|
||||
user: 'google',
|
||||
repo: 'skia',
|
||||
},
|
||||
queryParams: { display_timestamp: 'committer' },
|
||||
staticPreview: this.render({ commitDate: '2022-10-15T20:01:41Z' }),
|
||||
...commonExampleAttrs,
|
||||
},
|
||||
]
|
||||
|
||||
static defaultBadgeData = { label: 'last commit' }
|
||||
@ -65,8 +90,11 @@ export default class GithubLastCommit extends GithubAuthV3Service {
|
||||
})
|
||||
}
|
||||
|
||||
async handle({ user, repo, branch }) {
|
||||
async handle({ user, repo, branch }, queryParams) {
|
||||
const body = await this.fetch({ user, repo, branch })
|
||||
return this.constructor.render({ commitDate: body[0].commit.author.date })
|
||||
|
||||
return this.constructor.render({
|
||||
commitDate: body[0].commit[queryParams.display_timestamp].date,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -14,6 +14,10 @@ t.create('last commit (on branch)')
|
||||
.get('/badges/badgr.co/shielded.json')
|
||||
.expectBadge({ label: 'last commit', message: 'july 2013' })
|
||||
|
||||
t.create('last commit (by committer)')
|
||||
.get('/badges/badgr.co/shielded.json?display_timestamp=committer')
|
||||
.expectBadge({ label: 'last commit', message: 'july 2013' })
|
||||
|
||||
t.create('last commit (repo not found)')
|
||||
.get('/badges/helmets.json')
|
||||
.expectBadge({ label: 'last commit', message: 'repo not found' })
|
||||
|
Reference in New Issue
Block a user