Automatically sync your personal GitHub repositories to Firebase to power your developer portfolio. No more copy-pasting project info — this GitHub Action does it for you.
- Fetches your public GitHub repositories
- Filters those tagged with the
portfolio-projecttopic - Extracts useful metadata:
- Repository name
- GitHub URL
- Live demo link
- Description
- Topics
- Last updated timestamp
- Syncs that data to your Firebase Firestore
- Runs daily (or manually)
git clone https://github.com/your-username/portfolio-project-sync.gitIn your repo, go to:
Settings → Secrets and variables → Actions → New repository secret
Create the following secrets:
| Name | Value |
|---|---|
PERSONAL_GITHUB_TOKEN |
A fine-grained personal access token with repo scope |
FIREBASE_SERVICE_ACCOUNT |
The full JSON contents of your Firebase service account key |
⚠️ GitHub does not allow secrets starting withGITHUB_— usePERSONAL_GITHUB_TOKEN.
- Add a topic called
portfolio-projectto each GitHub repo you want to appear in your portfolio.- This is how the script knows which repos to sync.
You can trigger the sync from the Actions tab on GitHub:
- Click "Sync GitHub Projects to Firebase"
- Click "Run workflow"
The included GitHub Action runs the sync script every day at 3AM UTC:
on:
schedule:
- cron: '0 3 * * *' # daily at 3AM UTC
workflow_dispatch: # also manually triggerableProjects are stored in the projects collection, using each repo’s name as the document ID:
{
"name": "cool-project",
"githubUrl": "https://github.com/username/cool-project",
"liveUrl": "https://cool-project.vercel.app",
"description": "A cool app that does stuff.",
"topics": ["react", "vite", "firebase"],
"updatedAt": "2025-04-18T20:01:44Z"
}- Node.js
- Firebase Admin SDK
- GitHub Actions
- GitHub REST API
MIT © Tyler West