Part of #1
Description
Fetch LAMBDA libraries from GitHub repos at runtime and cache locally.
Deliverables
GitHubSource.cs — Fetch library contents from raw.githubusercontent.com. Discover libraries via GitHub API (GET /repos/{owner}/{repo}/contents/lambdas), fetch files via raw URLs
SourceCache.cs — Cache to %LOCALAPPDATA%\LambdaBoss\cache\{repo-hash}\. Serve from cache when available, invalidate on explicit refresh
RepoConfig.cs — Model for configured repo source (URL, enabled/disabled, last-fetched timestamp)
Fetching strategy
- Directory listing: GitHub API (
/repos/{owner}/{repo}/contents/lambdas) — 1 request per repo
- Library metadata + LAMBDA files: raw.githubusercontent.com (no rate limit)
Tests
- Unit tests for
GitHubSource with mocked HTTP responses
- Unit tests for
SourceCache (write/read/invalidate)
- AddIn test: configure this repo as a source, fetch and load a test library
Depends on
Part of #1
Description
Fetch LAMBDA libraries from GitHub repos at runtime and cache locally.
Deliverables
GitHubSource.cs— Fetch library contents from raw.githubusercontent.com. Discover libraries via GitHub API (GET /repos/{owner}/{repo}/contents/lambdas), fetch files via raw URLsSourceCache.cs— Cache to%LOCALAPPDATA%\LambdaBoss\cache\{repo-hash}\. Serve from cache when available, invalidate on explicit refreshRepoConfig.cs— Model for configured repo source (URL, enabled/disabled, last-fetched timestamp)Fetching strategy
/repos/{owner}/{repo}/contents/lambdas) — 1 request per repoTests
GitHubSourcewith mocked HTTP responsesSourceCache(write/read/invalidate)Depends on