Prototype monorepo. Work in progress.
This repo is a sandbox for prototyping several independent components in one place. Each top-level folder is a self-contained piece that may eventually ship from its own repository.
| Folder | Contents |
|---|---|
| cli/ | Command-line tools, packaged as gh CLI extensions. |
| workflows/ | Reusable GitHub Actions workflows, consumable by other repos. |
| web/ | Static web frontend, intended for GitHub Pages. |
| templates/ | Example assignment templates teachers can copy when setting up classroom repos. |
| wiki/ | Source for the public repo's GitHub wiki. Each .md file becomes one wiki page. |
Each folder has its own README with a bit more detail.
Every push to v1 is mirrored to foundation50/classroom50 by .github/workflows/mirror-to-public.yaml:
- Tracked files are pushed to the public repo's
mainbranch (the workflow file itself andwiki/are excluded). wiki/is pushed tofoundation50/classroom50.wiki.git— one commit per sync, replacing the previous wiki contents.
The public repo is downstream-only: direct edits there (including wiki edits via the GitHub UI) are overwritten on the next sync.
- Create a personal access token with contents: write on
foundation50/classroom50(fine-grained PATs also need wiki access; classic PATs need thereposcope, which covers both). - Add it to this repo as a secret named
MIRROR_PATatSettings → Secrets and variables → Actions. - On
foundation50/classroom50, enable the wiki (Settings → Features → Wikis) and create at least one page in the GitHub UI — GitHub doesn't initialize the wiki repo until the first page exists, so the workflow's wiki step will fail until this is done.
After that, every merge to v1 runs the mirror automatically. You can also run it manually from the Actions tab via workflow_dispatch.