Package Name Format
GitHub packages must be specified asowner/repo:
react- Missing ownerhttps://github.com/facebook/react- Full URL not supportedfacebook/react/subfolder- Paths not supported
Configuration Options
The GitHub provider supports the following extra options:includePrereleases
Type: booleanDefault:
false
Include pre-release versions in the releases list.
false, only stable releases are included. Draft releases are always excluded.
maxReleases
Type: numberDefault:
3Maximum:
10
Number of recent releases to track.
Complete Example
API Endpoints
The GitHub provider uses the ungh.cc API:Get Repository Info
repo.repo- Full repository namerepo.name- Repository name
Get Releases
releases[].id- Release IDreleases[].tag- Git tag namereleases[].name- Release namereleases[].publishedAt- Publication timestampreleases[].prerelease- Whether it’s a pre-releasereleases[].draft- Whether it’s a draft (always filtered out)
Package Output Format
The GitHub provider returns packages in this format:Release Filtering
Releases are filtered and processed as follows:- Exclude drafts - Draft releases are always filtered out
- Filter prereleases - Based on
includePrereleasesoption - Sort by date - Most recent releases first (handled by API)
- Limit count - Take first N releases based on
maxReleases(clamped to 10)
server/providers/github/index.ts:40-51
URL Generation
Release URLs are constructed as:https://github.com/facebook/react/releases/tag/v18.2.0
Error Handling
Package Not Found (404)
Occurs when:- Repository doesn’t exist
- Repository is private and not accessible
- Owner or repo name is incorrect
Invalid Package Name
Occurs when:- Name doesn’t contain a
/ - Owner or repo part is empty
server/providers/github/index.ts:22-24
Network Error
Occurs when:- API is unreachable
- Request times out
- Other HTTP errors (non-404)
Implementation Details
Client Layer
The GitHub client (GithubClient) provides two methods:
Type Definitions
GithubRelease:server/providers/github/types.ts:3-14
GithubRepo:
server/providers/github/types.ts:16-28
Provider Info
shared/providers/github.ts:5-18
Why ungh.cc?
The provider uses ungh.cc instead of the GitHub API directly because:- No authentication required
- Higher rate limits for public data
- Simpler API responses
- Better caching for popular repositories
Caching
GitHub provider requests are cached using the standard Shipped cache:- Cache key includes:
owner,repo, and configuration hash - Default TTL determined by server cache settings
- Both repository info and releases are cached separately
Version History
Current version:1
Source: server/providers/github/index.ts:15