Skip to content
Merged
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
8 changes: 4 additions & 4 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@
"@astrojs/solid-js": "^5.1.2",
"@zentered/issue-forms-body-parser": "^2.2.0",
"astro": "^5.15.2",
"gitevents-fetch": "^0.0.3",
"gitevents-fetch": "^1.4.0",
"solid-js": "^1.9.10"
},
"devDependencies": {
Expand Down
15 changes: 14 additions & 1 deletion src/lib/events.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
* Events fetching using gitevents-fetch package
* Wraps gitevents-fetch and transforms data for the UI
*/
import { upcomingEvents as getUpcomingEvents, pastEvents as getPastEvents, getTeam as getTeamMembers } from 'gitevents-fetch'
import { upcomingEvents as getUpcomingEvents, pastEvents as getPastEvents, getTeam as getTeamMembers, getOrganization } from 'gitevents-fetch'

/**
* Transform event data from gitevents-fetch to UI format
Expand Down Expand Up @@ -121,3 +121,16 @@ export async function fetchTeamMembers(org, teamSlug) {
return []
}
}

/**
* Fetch organization data from GitHub
*/
export async function fetchOrganization(org) {
try {
const orgData = await getOrganization(org)
return orgData
} catch (error) {
console.error(`Error fetching organization ${org}:`, error)
return null
}
}
Comment on lines +128 to +136
Copy link

Copilot AI Oct 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The function simply passes through the result from getOrganization without any transformation. Lines 130-131 could be simplified to return await getOrganization(org) or the function could include transformation logic if needed for consistency with other fetch functions in this module.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot open a new pull request to apply changes based on this feedback

22 changes: 20 additions & 2 deletions src/pages/index.astro
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
---
import BaseLayout from '../layouts/BaseLayout.astro'
import { BackgroundImage } from '../components/BackgroundImage'
import { fetchUpcomingEvents, fetchPastEvents, getSpeakers, fetchTeamMembers } from '../lib/events.js'
import { fetchUpcomingEvents, fetchPastEvents, getSpeakers, fetchTeamMembers, fetchOrganization } from '../lib/events.js'

// Server-side data fetching using gitevents-fetch
let events = []
let pastEvents = []
let speakers = []
let advocates = []
let members = []
let orgData = null

try {
// Fetch from GitHub using gitevents-fetch package
Expand All @@ -17,7 +18,8 @@ try {
speakers = getSpeakers(events)
advocates = await fetchTeamMembers('boulder-js', 'advocates')
members = await fetchTeamMembers('boulder-js', 'members')
console.log(`Fetched ${events.length} upcoming events, ${pastEvents.length} past events, ${speakers.length} speakers, ${advocates.length} advocates, and ${members.length} members`)
orgData = await fetchOrganization('boulder-js')
console.log(`Fetched ${events.length} upcoming events, ${pastEvents.length} past events, ${speakers.length} speakers, ${advocates.length} advocates, ${members.length} members, and org data`)
} catch (error) {
console.error('Failed to fetch events:', error)
}
Expand Down Expand Up @@ -66,6 +68,22 @@ try {
Boulder, CO
</dd>
</div>
{orgData?.memberCount && (
<div>
<dt class="font-mono text-sm text-blue-600">Community Members</dt>
<dd class="mt-0.5 text-2xl font-semibold tracking-tight text-blue-900">
{orgData.memberCount}
</dd>
</div>
)}
{pastEvents.length > 0 && (
<div>
<dt class="font-mono text-sm text-blue-600">Past Events</dt>
<dd class="mt-0.5 text-2xl font-semibold tracking-tight text-blue-900">
{pastEvents.length}+
</dd>
</div>
)}
</dl>
</div>
</div>
Expand Down
Loading