Repository navigation
Publish the App Store catalog with the website - #55
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 16600baa-96ad-4836-8e96-6b34a1c9fbd9
Keep catalog generation alongside canonical URL and Doom asset checks. Resolve catalog requests through the shared site-path helper for prefixed deployments. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 16600baa-96ad-4836-8e96-6b34a1c9fbd9
Retain main's build-and-URL-verification step name. Assert that required Doom verification runs before the actual build command, avoiding unnecessary workflow conflicts between the website PRs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 16600baa-96ad-4836-8e96-6b34a1c9fbd9
There was a problem hiding this comment.
🔵 Needs a closer look
The revised Pages pipeline and deferred cross-repository activation need final human validation of permissions and rollout configuration.
No open issues 🎉
What changed in this PR
Publishes the App Store catalog with the website to address GitHub API rate limits, while keeping app downloads tied to a consistent source commit.
Changes:
- Generates app file lists, README descriptions, and source revision together from public
badger/home. - Switches catalog consumers to same-site loading and preserves the previous app list when Reload fails.
- Adds deployment-time generation, validation, and manual dispatch; retires nightly description-update PRs and documents deferred automatic publication.
| File | Description |
|---|---|
| tests/site-paths.test.mjs | Tests catalog loading under both deployment bases. |
| tests/doom-provisioning.test.mjs | Checks Doom verification precedes the build command. |
| src/pages/apps.astro | Removes the separate descriptions prop. |
| src/lib/github-app-catalog.ts | Adds catalog validation, same-site fetching, and pinned download URLs. |
| src/data/app-descriptions.json | Refreshes generated descriptions. |
| src/components/badge-manager.tsx | Uses published metadata and commit-pinned downloads. |
| src/components/app-count.tsx | Reads app counts from the published catalog. |
| scripts/sync-app-descriptions.mjs | Extracts reusable description generation and JSON writing. |
| scripts/sync-app-catalog.test.mjs | Tests generation, validation, fetching, and download URLs. |
| scripts/sync-app-catalog.mjs | Generates catalog metadata from committed source files. |
| README.md | Documents generation, deployment, and rollout setup. |
| public/app-catalog.json | Adds the generated 34-app catalog. |
| package.json | Adds catalog generation and test commands. |
| .gitignore | Excludes the deployment source checkout. |
| .github/workflows/update-app-descriptions.yml | Removes nightly description-update PR automation. |
| .github/workflows/deploy.yml | Generates and validates metadata before deployment; adds manual dispatch. |
| .github/workflows/ci.yml | Runs catalog tests and limits token permissions. |
| .github/copilot-instructions.md | Updates catalog maintenance and publication guidance. |
Review effort: Balanced
|
@copilot update this branch so we can safely merge it into main soon. |
Co-authored-by: MetzinAround <65838556+MetzinAround@users.noreply.github.com>
Merged current |
Copilot Generated
Summary
badger/home.Related: #50. This covers the App Store portion only; the other issue items and the new Build guide request remain separate.
Refreshed for review
2da92a8without rewriting published history. All five website branches also combine without conflicts./and/badger.github.io/), and 104 built-output checks pass. Workflow lint and required Doom-asset checks pass./and/badger.github.io/./images/.Earlier focused verification
dd686d841f3653e7bef5e0ba78f288b0cc03c303and is unchanged on a second run.npm run buildpasses.git diff --checkpasses.Expected browser errors came only from deliberately blocked repository-badge requests and forced catalog failures. Physical badge writes and live automatic publication are not tested.
Rollout
Merge this receiving workflow before enabling the companion sender in badger/home#121. App changes reaching
badger/home/main, not releases or tags, will start the deployment.The sender needs a dedicated organization-owned GitHub App installed only on
badger/badger.github.io, with repository Actions read/write permission. An administrator must configure a main-onlycatalog-syncenvironment inbadger/home, withCATALOG_APP_CLIENT_IDas an environment variable andCATALOG_APP_PRIVATE_KEYas an environment secret. Keep the private key out of code, chat, logs, and artifacts.Until the sender is configured, an authorized maintainer can run Deploy manually on main. A failed checkout, catalog validation, or build leaves the published site unchanged. No automatic source commits or generated-data PRs are required.