Automations & Deployments
Transparency page — how the platform builds, enriches, and syncs data automatically.
Deploy Pipeline
Builds the Astro static site and deploys to Cloudflare Pages on every push or CMS change.
- Trigger
- Push to
mainor CMSrepository_dispatch - Target
safeskills-web.pages.dev- Steps
- Checkout → pnpm install → Astro build → Pages deploy
- CMS Hook
triggerRebuildfires on skill vet/update/unpublish- Workflow
.github/workflows/deploy.yml
GitHub Enrichment Cron
Fetches repo metadata — stars, forks, language, topics, contributors, last commit — from the GitHub API and writes it to the CMS.
- Schedule
- Every 6 hours (
0 */6 * * *) + manual dispatch - Deduplication
- Skills sharing a monorepo → 1 API call per repo
- Script
infra/scripts/fetch-github-stats.mjs- Workflow
.github/workflows/github-stats.yml
Mirror Sync
Syncs vetted skills to the public registry repo after each successful deploy.
- Trigger
- Runs after Deploy workflow completes successfully
- Target
- schiste/safeskills-registry
- Script
infra/scripts/mirror-sync.mjs- Workflow
.github/workflows/mirror-sync.yml
Infrastructure
Cloudflare Pages
Static frontend hosting
Cloudflare D1
SQLite database (CMS + ratings)
Cloudflare R2
Media / asset storage
Payload CMS
Content management (Next.js 15)