Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
34fff15
Add filter-vrms-data script and integrate into VRMS update workflow
santiseccovidal Jun 21, 2025
4fd7891
Update vrms-data.yml
santiseccovidal Jun 29, 2025
f291b60
Update filter-vrms-data.js
santiseccovidal Jul 13, 2025
b9f3863
Update filter-vrms-data.js
santiseccovidal Jul 13, 2025
b76264f
Update filter-vrms-data.js
santiseccovidal Jul 13, 2025
063d05c
Update filter-vrms-data.js
santiseccovidal Jul 13, 2025
f006938
Update vrms-data.yml
santiseccovidal Jul 13, 2025
d9238af
Update filter-vrms-data.js
santiseccovidal Jul 13, 2025
aad3c94
Update vrms-data.yml
santiseccovidal Jul 13, 2025
5962989
Update meeting data
HackforLABot Jul 13, 2025
b6123b1
Update vrms-data.yml
santiseccovidal Jul 13, 2025
83dbb9e
Update vrms-data.yml
santiseccovidal Jul 13, 2025
b922d25
Update meeting data
HackforLABot Jul 13, 2025
adec798
Update filter-vrms-data.js
santiseccovidal Jul 13, 2025
48892c5
Update filter-vrms-data.js
santiseccovidal Jul 13, 2025
7c4811a
Update meeting data
HackforLABot Jul 13, 2025
560268f
Update meeting data
HackforLABot Aug 2, 2025
12f5965
Update meeting data
HackforLABot Aug 3, 2025
d56ac49
Merge branch 'upstream-gh-pages' into filter-vrms-7527
santiseccovidal Aug 15, 2025
a79e7de
Merge remote-tracking branch 'origin/filter-vrms-7527' into filter-vr…
santiseccovidal Aug 15, 2025
dd61051
Update vrms-data.yml
santiseccovidal Aug 15, 2025
c99362d
Filter VRMS data to keep nested project structure
santiseccovidal Aug 15, 2025
6cda325
Update filter-vrms-data.js
santiseccovidal Aug 15, 2025
a838f8a
Update filter-vrms-data.js
santiseccovidal Aug 27, 2025
47f5afc
Revert changes in vrms_data.json to keep equal to org's
santiseccovidal Aug 31, 2025
eaa8bd6
Merge branch 'filter-vrms-7527' of https://github.com/santiseccovidal…
santiseccovidal Aug 31, 2025
514599d
Restore vrms_data.json from upstream gh-pages
santiseccovidal Aug 31, 2025
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 .github/workflows/vrms-data.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,9 @@ jobs:
# Use an action (`my-action`) in your repository
- name: Save vrms_data.json
run: curl --retry 7 --fail -o _data/external/vrms_data.json https://www.vrms.io/api/recurringevents

- name: Filter vrms data
run: node github-actions/trigger-schedule/vrms-data/filter-vrms-data.js

- uses: stefanzweifel/[email protected]
with:
Expand Down
55 changes: 55 additions & 0 deletions github-actions/trigger-schedule/vrms-data/filter-vrms-data.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
// import modules
const fs = require('fs');

/**
* Filters JSON data from VRMS to extract only relevant fields,
* this includes nested project details.
*
* @param {Array<Object>} data - Raw JSON array of entries
* @returns {Array<Object>} Filtered entries
*/
// debug-pwd.js

console.log('Current working dir:', process.cwd());
console.log('__dirname:', __dirname);

// Get the path to the JSON file
const dataPath = '_data/external/vrms_data.json';

// Read the original data
const rawData = JSON.parse(fs.readFileSync(dataPath, 'utf8'));

// Filter it
function filterJson(e) {
const p = e.project || {};
return {
// minimal top-level fields the site uses
name: e.name ?? null, // meeting title
description: e.description ?? "",
date: e.date ?? null,
startTime: e.startTime ?? null,
endTime: e.endTime ?? null,

// keep ONLY the project fields the UI references
project: {
name: p.name ?? null,
githubUrl: p.githubUrl ?? "",
hflaWebsiteUrl: p.hflaWebsiteUrl ?? "",
githubIdentifier: p.githubIdentifier ?? null,
projectStatus: p.projectStatus ?? null,
location: p.location ?? null,
slackUrl: p.slackUrl ?? "", // harmless, public workspace link
googleDriveUrl: p.googleDriveUrl ?? ""
},

// DO NOT include: videoConferenceLink, meeting passcodes, owner IDs, emails, etc.
};
}

// Apply filter to each record
const filteredData = rawData.map(filterJson);

// Write the filtered data back to the same file
fs.writeFileSync(dataPath, JSON.stringify(filteredData, null, 2));

console.log(`Filtered data written to ${dataPath}`);
Loading