Skip to content

Instantly share code, notes, and snippets.

@garrytrinder
Created June 28, 2024 09:01
Show Gist options
  • Save garrytrinder/ed6f87fea4942d169f03a4f1e37ce2a8 to your computer and use it in GitHub Desktop.
Save garrytrinder/ed6f87fea4942d169f03a4f1e37ce2a8 to your computer and use it in GitHub Desktop.
Gets total number of Dev Proxy downloads
#!/usr/bin/env zx
// suppress printing command names and output
$.verbose = false;
const token = 'github_pat_'
async function getDownloads() {
let numDownloads = 0;
let page = 1;
const perPage = 30;
while (true) {
const response = await fetch(
`https://api.github.com/repos/microsoft/dev-proxy/releases?per_page=${perPage}&page=${page}`,
{
headers: {
accept: 'application/vnd.github+json',
'X-GitHub-Api-Version': '2022-11-28',
authorization: `Bearer ${token}`
}
}
);
const releases = await response.json();
if (releases.length === 0) {
break;
}
releases.forEach(r => {
console.log(r.name);
r.assets.forEach(a => {
console.log(' ', a.name, a.download_count);
numDownloads += a.download_count
});
});
page++;
}
console.log('');
console.log('Total downloads:', numDownloads);
}
async function getViews() {
const response = await fetch(
'https://api.github.com/repos/microsoft/dev-proxy/traffic/views',
{
headers: {
accept: 'application/vnd.github+json',
'X-GitHub-Api-Version': '2022-11-28',
authorization: `Bearer ${token}`
}
}
);
const views = await response.json();
const lastFour = views.views.slice(-4);
lastFour.forEach(v => {
console.log('Views:', v.timestamp, v.count);
});
}
await getDownloads();
await getViews();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment