#!/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();