summaryrefslogtreecommitdiff
path: root/scripts/stats/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/stats/index.js')
-rw-r--r--scripts/stats/index.js130
1 files changed, 0 insertions, 130 deletions
diff --git a/scripts/stats/index.js b/scripts/stats/index.js
deleted file mode 100644
index eb37aa722..000000000
--- a/scripts/stats/index.js
+++ /dev/null
@@ -1,130 +0,0 @@
-// @ts-check
-import { Octokit } from '@octokit/action';
-import { readFileSync, writeFileSync } from 'node:fs';
-
-const octokit = new Octokit();
-const owner = 'snowpackjs';
-const repo = 'astro';
-
-// Relevant IDs captured via: https://docs.github.com/en/graphql/overview/explorer
-// query {
-// repository(name:"astro", owner:"snowpackjs") {
-// project(number: 3) {
-// columns(first: 100) {
-// nodes {
-// id
-// databaseId
-// name
-// }
-// }
-// }
-// }
-// }
-
-const COLUMN_ID_BUGS_NEEDS_TRIAGE = 14724521;
-const COLUMN_ID_BUGS_ACCEPTED = 14724515;
-const COLUMN_ID_BUGS_PRIORITIZED = 14946516;
-// const COLUMN_ID_RFCS_IN_PROGRESS = 14946333;
-// const COLUMN_ID_RFCS_ACCEPTED = 14946335;
-// const COLUMN_ID_RFCS_PRIORITIZED = 14946454;
-
-// CREATE LOCAL COPIES OF DATA (Useful for debugging locally)
-// Command:
-// GITHUB_ACTION=test GITHUB_TOKEN=XXXXXXXXX node scripts/stats/index.js
-// Code:
-// writeFileSync('pulls.json', JSON.stringify(await octokit.paginate("GET /repos/{owner}/{repo}/pulls", {
-// owner,
-// repo,
-// })));
-// writeFileSync('issues.json', JSON.stringify(await octokit.paginate("GET /repos/{owner}/{repo}/issues", {
-// owner,
-// repo,
-// })));
-// const issues = JSON.parse(readFileSync('issues.json').toString());
-// const pulls = JSON.parse(readFileSync('pulls.json').toString());
-
-async function countCards(column_id) {
- return octokit.paginate('GET /projects/columns/{column_id}/cards', {
- column_id,
- mediaType: {
- previews: ['inertia'],
- },
- });
-}
-async function countCommits(since) {
- return octokit.paginate('GET /repos/{owner}/{repo}/commits', {
- owner,
- repo,
- since: since.toISOString(),
- });
-}
-
-export async function run() {
- const twentyFourHoursAgo = new Date();
- twentyFourHoursAgo.setDate(twentyFourHoursAgo.getDate() - 1);
-
- const allOpenIssues = await octokit.paginate('GET /repos/{owner}/{repo}/issues', {
- owner,
- repo,
- });
- const openIssues = allOpenIssues.filter((iss) => !iss.pull_request);
- const openPulls = allOpenIssues.filter((iss) => iss.pull_request);
-
- const allIssuesLastTwentyFourHours = await octokit.paginate('GET /repos/{owner}/{repo}/issues', {
- owner,
- repo,
- state: 'all',
- per_page: 100,
- since: twentyFourHoursAgo.toISOString(),
- });
- const issuesLastTwentyFourHours = allIssuesLastTwentyFourHours.filter(
- (iss) => new Date(iss.created_at) > twentyFourHoursAgo && !iss.pull_request
- );
- const pullsLastTwentyFourHours = allIssuesLastTwentyFourHours.filter(
- (iss) => new Date(iss.created_at) > twentyFourHoursAgo && iss.pull_request
- );
-
- const entry = [
- // Date (Human Readable)
- `"${new Date().toLocaleDateString('en-US', {
- weekday: 'long',
- year: 'numeric',
- month: 'long',
- day: 'numeric',
- })}"`,
- // Commits in last 24 hours
- (await countCommits(twentyFourHoursAgo)).length,
- // New Issues(All) in last 24 hours
- issuesLastTwentyFourHours.length,
- // New Issues(Bugs) in last 24 hours
- issuesLastTwentyFourHours.filter((iss) => iss.title.startsWith('🐛 BUG:')).length,
- // New Issues(RFC) in last 24 hours
- issuesLastTwentyFourHours.filter((iss) => iss.title.startsWith('💡 RFC:')).length,
- // New Issues(Docs) in last 24 hours
- issuesLastTwentyFourHours.filter((iss) => iss.title.startsWith('📘 DOC:')).length,
- // New Pull Requests in last 24 hours
- pullsLastTwentyFourHours.length,
- // Pull requests
- openPulls.length,
- // Open Issues
- openIssues.length,
- // Bugs: Needs Triage
- (await countCards(COLUMN_ID_BUGS_NEEDS_TRIAGE)).length,
- // Bugs: Accepted
- (await countCards(COLUMN_ID_BUGS_ACCEPTED)).length +
- (await countCards(COLUMN_ID_BUGS_PRIORITIZED)).length,
- // RFC: In Progress
- 0, // (await countCards(COLUMN_ID_RFCS_IN_PROGRESS)).length,
- // RFC: Accepted
- 0, // (await countCards(COLUMN_ID_RFCS_ACCEPTED)).length + (await countCards(COLUMN_ID_RFCS_PRIORITIZED)).length,
- // Date (ISO)
- `"${new Date().toISOString()}"`,
- ].join(',');
-
- const statCsv = readFileSync('scripts/stats/stats.csv', { encoding: 'utf-8' });
- const [statHeader, ...statItems] = statCsv.split('\n');
- const updatedStatCsv = [statHeader, entry, ...statItems].join('\n');
- writeFileSync('scripts/stats/stats.csv', updatedStatCsv);
-}
-
-run();