convert some service classes to static fields, run [GitHubCommitsSince GitHubContributors GitHubDeployments GitHubDownloads GitHubFollowers] (#5585)
* refactor(githubcommitssince): convert to static fields * refactor(githubcontributors): convert to static fields * refactor(githubdeployments): convert to static fields * refactor(githubdownloads): convert to static fields * refactor(githubfollowers): convert to static fields
This commit is contained in:
@@ -13,131 +13,119 @@ const { documentation, errorMessagesFor } = require('./github-helpers')
|
||||
const schema = Joi.object({ ahead_by: nonNegativeInteger }).required()
|
||||
|
||||
module.exports = class GithubCommitsSince extends GithubAuthV3Service {
|
||||
static get category() {
|
||||
return 'activity'
|
||||
static category = 'activity'
|
||||
static route = {
|
||||
base: 'github/commits-since',
|
||||
pattern: ':user/:repo/:version/:branch*',
|
||||
queryParamSchema,
|
||||
}
|
||||
|
||||
static get route() {
|
||||
return {
|
||||
base: 'github/commits-since',
|
||||
pattern: ':user/:repo/:version/:branch*',
|
||||
queryParamSchema,
|
||||
}
|
||||
}
|
||||
static examples = [
|
||||
{
|
||||
title: 'GitHub commits since tagged version',
|
||||
namedParams: {
|
||||
user: 'SubtitleEdit',
|
||||
repo: 'subtitleedit',
|
||||
version: '3.4.7',
|
||||
},
|
||||
staticPreview: this.render({
|
||||
version: '3.4.7',
|
||||
commitCount: 4225,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
{
|
||||
title: 'GitHub commits since tagged version (branch)',
|
||||
namedParams: {
|
||||
user: 'SubtitleEdit',
|
||||
repo: 'subtitleedit',
|
||||
version: '3.4.7',
|
||||
branch: 'master',
|
||||
},
|
||||
staticPreview: this.render({
|
||||
version: '3.4.7',
|
||||
commitCount: 4225,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
{
|
||||
title: 'GitHub commits since latest release (by date)',
|
||||
namedParams: {
|
||||
user: 'SubtitleEdit',
|
||||
repo: 'subtitleedit',
|
||||
version: 'latest',
|
||||
},
|
||||
staticPreview: this.render({
|
||||
version: '3.5.7',
|
||||
commitCount: 157,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
{
|
||||
title: 'GitHub commits since latest release (by date) for a branch',
|
||||
namedParams: {
|
||||
user: 'SubtitleEdit',
|
||||
repo: 'subtitleedit',
|
||||
version: 'latest',
|
||||
branch: 'master',
|
||||
},
|
||||
staticPreview: this.render({
|
||||
version: '3.5.7',
|
||||
commitCount: 157,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
{
|
||||
title:
|
||||
'GitHub commits since latest release (by date including pre-releases)',
|
||||
namedParams: {
|
||||
user: 'SubtitleEdit',
|
||||
repo: 'subtitleedit',
|
||||
version: 'latest',
|
||||
},
|
||||
queryParams: { include_prereleases: null },
|
||||
staticPreview: this.render({
|
||||
version: 'v3.5.8-alpha.1',
|
||||
isPrerelease: true,
|
||||
commitCount: 158,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
{
|
||||
title: 'GitHub commits since latest release (by SemVer)',
|
||||
namedParams: {
|
||||
user: 'SubtitleEdit',
|
||||
repo: 'subtitleedit',
|
||||
version: 'latest',
|
||||
},
|
||||
queryParams: { sort: 'semver' },
|
||||
staticPreview: this.render({
|
||||
version: 'v4.0.1',
|
||||
sort: 'semver',
|
||||
commitCount: 200,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
{
|
||||
title:
|
||||
'GitHub commits since latest release (by SemVer including pre-releases)',
|
||||
namedParams: {
|
||||
user: 'SubtitleEdit',
|
||||
repo: 'subtitleedit',
|
||||
version: 'latest',
|
||||
},
|
||||
queryParams: { sort: 'semver', include_prereleases: null },
|
||||
staticPreview: this.render({
|
||||
version: 'v4.0.2-alpha.1',
|
||||
sort: 'semver',
|
||||
isPrerelease: true,
|
||||
commitCount: 201,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
]
|
||||
|
||||
static get examples() {
|
||||
return [
|
||||
{
|
||||
title: 'GitHub commits since tagged version',
|
||||
namedParams: {
|
||||
user: 'SubtitleEdit',
|
||||
repo: 'subtitleedit',
|
||||
version: '3.4.7',
|
||||
},
|
||||
staticPreview: this.render({
|
||||
version: '3.4.7',
|
||||
commitCount: 4225,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
{
|
||||
title: 'GitHub commits since tagged version (branch)',
|
||||
namedParams: {
|
||||
user: 'SubtitleEdit',
|
||||
repo: 'subtitleedit',
|
||||
version: '3.4.7',
|
||||
branch: 'master',
|
||||
},
|
||||
staticPreview: this.render({
|
||||
version: '3.4.7',
|
||||
commitCount: 4225,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
{
|
||||
title: 'GitHub commits since latest release (by date)',
|
||||
namedParams: {
|
||||
user: 'SubtitleEdit',
|
||||
repo: 'subtitleedit',
|
||||
version: 'latest',
|
||||
},
|
||||
staticPreview: this.render({
|
||||
version: '3.5.7',
|
||||
commitCount: 157,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
{
|
||||
title: 'GitHub commits since latest release (by date) for a branch',
|
||||
namedParams: {
|
||||
user: 'SubtitleEdit',
|
||||
repo: 'subtitleedit',
|
||||
version: 'latest',
|
||||
branch: 'master',
|
||||
},
|
||||
staticPreview: this.render({
|
||||
version: '3.5.7',
|
||||
commitCount: 157,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
{
|
||||
title:
|
||||
'GitHub commits since latest release (by date including pre-releases)',
|
||||
namedParams: {
|
||||
user: 'SubtitleEdit',
|
||||
repo: 'subtitleedit',
|
||||
version: 'latest',
|
||||
},
|
||||
queryParams: { include_prereleases: null },
|
||||
staticPreview: this.render({
|
||||
version: 'v3.5.8-alpha.1',
|
||||
isPrerelease: true,
|
||||
commitCount: 158,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
{
|
||||
title: 'GitHub commits since latest release (by SemVer)',
|
||||
namedParams: {
|
||||
user: 'SubtitleEdit',
|
||||
repo: 'subtitleedit',
|
||||
version: 'latest',
|
||||
},
|
||||
queryParams: { sort: 'semver' },
|
||||
staticPreview: this.render({
|
||||
version: 'v4.0.1',
|
||||
sort: 'semver',
|
||||
commitCount: 200,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
{
|
||||
title:
|
||||
'GitHub commits since latest release (by SemVer including pre-releases)',
|
||||
namedParams: {
|
||||
user: 'SubtitleEdit',
|
||||
repo: 'subtitleedit',
|
||||
version: 'latest',
|
||||
},
|
||||
queryParams: { sort: 'semver', include_prereleases: null },
|
||||
staticPreview: this.render({
|
||||
version: 'v4.0.2-alpha.1',
|
||||
sort: 'semver',
|
||||
isPrerelease: true,
|
||||
commitCount: 201,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
static get defaultBadgeData() {
|
||||
return {
|
||||
label: 'github',
|
||||
namedLogo: 'github',
|
||||
}
|
||||
}
|
||||
static defaultBadgeData = { label: 'github', namedLogo: 'github' }
|
||||
|
||||
static render({ version, commitCount }) {
|
||||
return {
|
||||
|
||||
@@ -10,35 +10,26 @@ const { documentation, errorMessagesFor } = require('./github-helpers')
|
||||
const schema = Joi.array().items(Joi.object())
|
||||
|
||||
module.exports = class GithubContributors extends GithubAuthV3Service {
|
||||
static get category() {
|
||||
return 'activity'
|
||||
static category = 'activity'
|
||||
static route = {
|
||||
base: 'github',
|
||||
pattern: ':variant(contributors|contributors-anon)/:user/:repo',
|
||||
}
|
||||
|
||||
static get route() {
|
||||
return {
|
||||
base: 'github',
|
||||
pattern: ':variant(contributors|contributors-anon)/:user/:repo',
|
||||
}
|
||||
}
|
||||
|
||||
static get examples() {
|
||||
return [
|
||||
{
|
||||
title: 'GitHub contributors',
|
||||
namedParams: {
|
||||
variant: 'contributors',
|
||||
user: 'cdnjs',
|
||||
repo: 'cdnjs',
|
||||
},
|
||||
staticPreview: this.render({ contributorCount: 397 }),
|
||||
documentation,
|
||||
static examples = [
|
||||
{
|
||||
title: 'GitHub contributors',
|
||||
namedParams: {
|
||||
variant: 'contributors',
|
||||
user: 'cdnjs',
|
||||
repo: 'cdnjs',
|
||||
},
|
||||
]
|
||||
}
|
||||
staticPreview: this.render({ contributorCount: 397 }),
|
||||
documentation,
|
||||
},
|
||||
]
|
||||
|
||||
static get defaultBadgeData() {
|
||||
return { label: 'contributors' }
|
||||
}
|
||||
static defaultBadgeData = { label: 'contributors' }
|
||||
|
||||
static render({ contributorCount }) {
|
||||
return renderContributorBadge({ contributorCount })
|
||||
|
||||
@@ -40,37 +40,28 @@ const schema = Joi.object({
|
||||
}).required()
|
||||
|
||||
module.exports = class GithubDeployments extends GithubAuthV4Service {
|
||||
static get category() {
|
||||
return 'other'
|
||||
static category = 'other'
|
||||
static route = {
|
||||
base: 'github/deployments',
|
||||
pattern: ':user/:repo/:environment',
|
||||
}
|
||||
|
||||
static get route() {
|
||||
return {
|
||||
base: 'github/deployments',
|
||||
pattern: ':user/:repo/:environment',
|
||||
}
|
||||
}
|
||||
|
||||
static get examples() {
|
||||
return [
|
||||
{
|
||||
title: 'GitHub deployments',
|
||||
namedParams: {
|
||||
user: 'badges',
|
||||
repo: 'shields',
|
||||
environment: 'shields-staging',
|
||||
},
|
||||
staticPreview: this.render({
|
||||
state: 'success',
|
||||
}),
|
||||
documentation,
|
||||
static examples = [
|
||||
{
|
||||
title: 'GitHub deployments',
|
||||
namedParams: {
|
||||
user: 'badges',
|
||||
repo: 'shields',
|
||||
environment: 'shields-staging',
|
||||
},
|
||||
]
|
||||
}
|
||||
staticPreview: this.render({
|
||||
state: 'success',
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
]
|
||||
|
||||
static get defaultBadgeData() {
|
||||
return { label: 'state' }
|
||||
}
|
||||
static defaultBadgeData = { label: 'state' }
|
||||
|
||||
static render({ state }) {
|
||||
let color
|
||||
|
||||
@@ -23,118 +23,106 @@ const releaseArraySchema = Joi.alternatives().try(
|
||||
)
|
||||
|
||||
module.exports = class GithubDownloads extends GithubAuthV3Service {
|
||||
static get category() {
|
||||
return 'downloads'
|
||||
static category = 'downloads'
|
||||
static route = {
|
||||
base: 'github',
|
||||
pattern: ':kind(downloads|downloads-pre)/:user/:repo/:tag*/:assetName',
|
||||
}
|
||||
|
||||
static get route() {
|
||||
return {
|
||||
base: 'github',
|
||||
pattern: ':kind(downloads|downloads-pre)/:user/:repo/:tag*/:assetName',
|
||||
}
|
||||
}
|
||||
static examples = [
|
||||
{
|
||||
title: 'GitHub All Releases',
|
||||
pattern: 'downloads/:user/:repo/total',
|
||||
namedParams: {
|
||||
user: 'atom',
|
||||
repo: 'atom',
|
||||
},
|
||||
staticPreview: this.render({
|
||||
assetName: 'total',
|
||||
downloadCount: 857000,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
{
|
||||
title: 'GitHub Releases',
|
||||
pattern: 'downloads/:user/:repo/:tag/total',
|
||||
namedParams: {
|
||||
user: 'atom',
|
||||
repo: 'atom',
|
||||
tag: 'latest',
|
||||
},
|
||||
staticPreview: this.render({
|
||||
tag: 'latest',
|
||||
assetName: 'total',
|
||||
downloadCount: 27000,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
{
|
||||
title: 'GitHub Pre-Releases',
|
||||
pattern: 'downloads-pre/:user/:repo/:tag/total',
|
||||
namedParams: {
|
||||
user: 'atom',
|
||||
repo: 'atom',
|
||||
tag: 'latest',
|
||||
},
|
||||
staticPreview: this.render({
|
||||
tag: 'latest',
|
||||
assetName: 'total',
|
||||
downloadCount: 2000,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
{
|
||||
title: 'GitHub Releases (by Release)',
|
||||
pattern: 'downloads/:user/:repo/:tag/total',
|
||||
namedParams: {
|
||||
user: 'atom',
|
||||
repo: 'atom',
|
||||
tag: 'v0.190.0',
|
||||
},
|
||||
staticPreview: this.render({
|
||||
tag: 'v0.190.0',
|
||||
assetName: 'total',
|
||||
downloadCount: 490000,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
{
|
||||
title: 'GitHub Releases (by Asset)',
|
||||
pattern: 'downloads/:user/:repo/:tag/:path',
|
||||
namedParams: {
|
||||
user: 'atom',
|
||||
repo: 'atom',
|
||||
tag: 'latest',
|
||||
path: 'atom-amd64.deb',
|
||||
},
|
||||
staticPreview: this.render({
|
||||
tag: 'latest',
|
||||
assetName: 'atom-amd64.deb',
|
||||
downloadCount: 3000,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
{
|
||||
title: 'GitHub Pre-Releases (by Asset)',
|
||||
pattern: 'downloads-pre/:user/:repo/:tag/:path',
|
||||
namedParams: {
|
||||
user: 'atom',
|
||||
repo: 'atom',
|
||||
tag: 'latest',
|
||||
path: 'atom-amd64.deb',
|
||||
},
|
||||
staticPreview: this.render({
|
||||
tag: 'latest',
|
||||
assetName: 'atom-amd64.deb',
|
||||
downloadCount: 237,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
]
|
||||
|
||||
static get examples() {
|
||||
return [
|
||||
{
|
||||
title: 'GitHub All Releases',
|
||||
pattern: 'downloads/:user/:repo/total',
|
||||
namedParams: {
|
||||
user: 'atom',
|
||||
repo: 'atom',
|
||||
},
|
||||
staticPreview: this.render({
|
||||
assetName: 'total',
|
||||
downloadCount: 857000,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
{
|
||||
title: 'GitHub Releases',
|
||||
pattern: 'downloads/:user/:repo/:tag/total',
|
||||
namedParams: {
|
||||
user: 'atom',
|
||||
repo: 'atom',
|
||||
tag: 'latest',
|
||||
},
|
||||
staticPreview: this.render({
|
||||
tag: 'latest',
|
||||
assetName: 'total',
|
||||
downloadCount: 27000,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
{
|
||||
title: 'GitHub Pre-Releases',
|
||||
pattern: 'downloads-pre/:user/:repo/:tag/total',
|
||||
namedParams: {
|
||||
user: 'atom',
|
||||
repo: 'atom',
|
||||
tag: 'latest',
|
||||
},
|
||||
staticPreview: this.render({
|
||||
tag: 'latest',
|
||||
assetName: 'total',
|
||||
downloadCount: 2000,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
{
|
||||
title: 'GitHub Releases (by Release)',
|
||||
pattern: 'downloads/:user/:repo/:tag/total',
|
||||
namedParams: {
|
||||
user: 'atom',
|
||||
repo: 'atom',
|
||||
tag: 'v0.190.0',
|
||||
},
|
||||
staticPreview: this.render({
|
||||
tag: 'v0.190.0',
|
||||
assetName: 'total',
|
||||
downloadCount: 490000,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
{
|
||||
title: 'GitHub Releases (by Asset)',
|
||||
pattern: 'downloads/:user/:repo/:tag/:path',
|
||||
namedParams: {
|
||||
user: 'atom',
|
||||
repo: 'atom',
|
||||
tag: 'latest',
|
||||
path: 'atom-amd64.deb',
|
||||
},
|
||||
staticPreview: this.render({
|
||||
tag: 'latest',
|
||||
assetName: 'atom-amd64.deb',
|
||||
downloadCount: 3000,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
{
|
||||
title: 'GitHub Pre-Releases (by Asset)',
|
||||
pattern: 'downloads-pre/:user/:repo/:tag/:path',
|
||||
namedParams: {
|
||||
user: 'atom',
|
||||
repo: 'atom',
|
||||
tag: 'latest',
|
||||
path: 'atom-amd64.deb',
|
||||
},
|
||||
staticPreview: this.render({
|
||||
tag: 'latest',
|
||||
assetName: 'atom-amd64.deb',
|
||||
downloadCount: 237,
|
||||
}),
|
||||
documentation,
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
static get defaultBadgeData() {
|
||||
return {
|
||||
label: 'downloads',
|
||||
namedLogo: 'github',
|
||||
}
|
||||
}
|
||||
static defaultBadgeData = { label: 'downloads', namedLogo: 'github' }
|
||||
|
||||
static render({ tag, assetName, downloadCount }) {
|
||||
return {
|
||||
|
||||
@@ -11,38 +11,22 @@ const schema = Joi.object({
|
||||
}).required()
|
||||
|
||||
module.exports = class GithubFollowers extends GithubAuthV3Service {
|
||||
static get category() {
|
||||
return 'social'
|
||||
}
|
||||
static category = 'social'
|
||||
static route = { base: 'github/followers', pattern: ':user' }
|
||||
static examples = [
|
||||
{
|
||||
title: 'GitHub followers',
|
||||
namedParams: { user: 'espadrine' },
|
||||
staticPreview: Object.assign(this.render({ followers: 150 }), {
|
||||
label: 'Follow',
|
||||
style: 'social',
|
||||
}),
|
||||
queryParams: { label: 'Follow' },
|
||||
documentation,
|
||||
},
|
||||
]
|
||||
|
||||
static get route() {
|
||||
return {
|
||||
base: 'github/followers',
|
||||
pattern: ':user',
|
||||
}
|
||||
}
|
||||
|
||||
static get examples() {
|
||||
return [
|
||||
{
|
||||
title: 'GitHub followers',
|
||||
namedParams: { user: 'espadrine' },
|
||||
staticPreview: Object.assign(this.render({ followers: 150 }), {
|
||||
label: 'Follow',
|
||||
style: 'social',
|
||||
}),
|
||||
queryParams: { label: 'Follow' },
|
||||
documentation,
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
static get defaultBadgeData() {
|
||||
return {
|
||||
label: 'followers',
|
||||
namedLogo: 'github',
|
||||
}
|
||||
}
|
||||
static defaultBadgeData = { label: 'followers', namedLogo: 'github' }
|
||||
|
||||
static render({ followers }) {
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user