Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ node_modules
.next
.meta
.env
.env*.local
.env.*
next-env.d.ts

# Sentry
.sentryclirc
Expand Down
6 changes: 0 additions & 6 deletions next-env.d.ts

This file was deleted.

29 changes: 27 additions & 2 deletions pages/api/github.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ export default createBadgenHandler({
'/github/last-commit/micromatch/micromatch/4.0.1': 'last commit (tag ref)',
'/github/assets-dl/electron/electron': 'assets downloads for latest release',
'/github/assets-dl/electron/electron/v7.0.0': 'assets downloads for a tag',
'/github/assets-dl/electron/electron/total': 'total assets downloads (recent releases)',
'/github/dependents-repo/micromatch/micromatch': 'repository dependents',
'/github/dependents-pkg/micromatch/micromatch': 'package dependents',
'/github/dependabot/ubuntu/yaru': 'dependabot status',
Expand Down Expand Up @@ -193,6 +194,31 @@ async function meta ({ owner, repo }: PathArgs): Promise<any> {
}

async function downloads ({ owner, repo, tag }: PathArgs) {
if (tag === 'total' || tag === 'all') {
const releases = await restGithub(`repos/${owner}/${repo}/releases`, {
per_page: '30'
})

if (!releases || !Array.isArray(releases) || !releases.length) {
return {
subject: 'downloads',
status: 'no releases',
color: 'grey'
}
}

const totalDownloads = releases.reduce((acc, release) => {
if (!release.assets || !release.assets.length) return acc
return acc + release.assets.reduce((sum: number, asset: any) => sum + (asset.download_count || 0), 0)
}, 0)

return {
subject: 'downloads',
status: millify(totalDownloads),
color: 'green'
}
}

const releaseSelection = tag ? `tags/${tag}` : 'latest'
const release = await restGithub(`repos/${owner}/${repo}/releases/${releaseSelection}`)

Expand All @@ -204,8 +230,7 @@ async function downloads ({ owner, repo, tag }: PathArgs) {
}
}


const downloadCount = release.assets.reduce((result, { download_count }) => {
const downloadCount = release.assets.reduce((result: number, { download_count }: any) => {
return result + download_count
}, 0)

Expand Down
1 change: 1 addition & 0 deletions public/badges.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
- [last commit (tag ref)](https://badgen.net/github/last-commit/micromatch/micromatch/4.0.1)
- [assets downloads for latest release](https://badgen.net/github/assets-dl/electron/electron)
- [assets downloads for a tag](https://badgen.net/github/assets-dl/electron/electron/v7.0.0)
- [total assets downloads (recent releases)](https://badgen.net/github/assets-dl/electron/electron/total)
- [repository dependents](https://badgen.net/github/dependents-repo/micromatch/micromatch)
- [package dependents](https://badgen.net/github/dependents-pkg/micromatch/micromatch)
- [dependabot status](https://badgen.net/github/dependabot/ubuntu/yaru)
Expand Down
Loading