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:
Caleb Cartwright
2020-09-21 10:25:15 -05:00
committed by GitHub
parent fa608e29d3
commit 5a3064d0d4
5 changed files with 256 additions and 314 deletions

View File

@@ -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 {

View File

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

View File

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

View File

@@ -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 {

View File

@@ -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 {