-
Notifications
You must be signed in to change notification settings - Fork 28
Syncing next and main #62
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
fce063e
62cf00e
60ef4b7
771cef2
88c0f8e
b0f9e40
11db8e9
2720ebc
c66a8c0
77cd16a
e67411e
16b47b6
b5085bf
1287aca
06797c1
87575fe
c33c1db
7a30158
3c37179
720d3ba
c4fcaab
afbce83
b3f78f3
3beaec8
3f55d5a
861027a
da81537
fcf78b8
cddbcd5
83ee3be
893a3f2
bec78e7
0643b13
babd65e
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,30 @@ | ||
| { | ||
| "name": "firebase", | ||
| "displayName": "Firebase", | ||
| "version": "1.0.1", | ||
| "description": "The official Firebase Cursor plugin. Prototype, build, and run modern apps with Firebase's backend and AI infrastructure.", | ||
| "author": { | ||
| "name": "Firebase", | ||
| "email": "firebase-support@google.com", | ||
| "url": "https://firebase.google.com" | ||
| }, | ||
| "license": "Apache-2.0", | ||
| "keywords": [ | ||
| "firebase", | ||
| "cursor", | ||
| "skills", | ||
| "mcp", | ||
| "firestore", | ||
| "hosting", | ||
| "auth", | ||
| "storage", | ||
| "ailogic", | ||
| "backend", | ||
| "cloud-services" | ||
| ], | ||
| "skills": "./skills/", | ||
| "mcpServers": "./.mcp.json", | ||
| "logo": "./assets/firebase_logo.svg", | ||
| "homepage": "https://github.com/firebase/agent-skills", | ||
| "repository": "https://github.com/firebase/agent-skills" | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,30 @@ | ||
| #!/bin/bash | ||
| set -e | ||
|
|
||
| # Script to prune deleted Genkit skills | ||
| # Usage: ./prune-skills.sh | ||
|
|
||
| echo "🧹 Pruning deleted Genkit skills..." | ||
|
|
||
| for skill_dir in firebase-skills/skills/*; do | ||
| [ -d "$skill_dir" ] || continue | ||
| skill_name=$(basename "$skill_dir") | ||
| skill_md="$skill_dir/SKILL.md" | ||
|
|
||
| # Check if this skill is managed by Genkit | ||
| if [ -f "$skill_md" ]; then | ||
| # We use yq to check the metadata. | ||
| # The '|| echo false' handles cases where the field is missing or yq fails. | ||
| is_managed=$(yq -f extract '.metadata["genkit-managed"] == true' "$skill_md" 2>/dev/null || echo false) | ||
|
|
||
| if [ "$is_managed" = "true" ]; then | ||
| # If managed by Genkit but not in source, delete it | ||
| if [ ! -d "genkit-skills/skills/$skill_name" ]; then | ||
| echo "🗑️ Pruning deleted skill: $skill_name" | ||
| rm -rf "$skill_dir" | ||
| fi | ||
| fi | ||
| fi | ||
| done | ||
|
|
||
| echo "✅ Pruning complete." | ||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,30 @@ | ||||||
| #!/bin/bash | ||||||
| set -e | ||||||
|
|
||||||
| # Script to sync and tag Genkit skills | ||||||
| # Usage: ./sync-skills.sh | ||||||
|
|
||||||
| echo "🔄 Syncing skills from Genkit repo..." | ||||||
|
|
||||||
| for skill_dir in genkit-skills/skills/*; do | ||||||
| [ -d "$skill_dir" ] || continue | ||||||
| skill_name=$(basename "$skill_dir") | ||||||
| dest_dir="firebase-skills/skills/$skill_name" | ||||||
|
|
||||||
| echo "📦 Syncing $skill_name..." | ||||||
|
|
||||||
| # Clean destination to ensure exact sync (remove old files) | ||||||
| if [ -d "$dest_dir" ]; then | ||||||
| rm -rf "$dest_dir" | ||||||
| fi | ||||||
| mkdir -p "$dest_dir" | ||||||
|
|
||||||
| # Copy new files | ||||||
| cp -r "$skill_dir/"* "$dest_dir/" | ||||||
|
|
||||||
| # Mark as managed by Genkit using yq | ||||||
| # The -i flag edits in place, -f process runs the filter | ||||||
| yq -i -f process '.metadata["genkit-managed"] = true' "$dest_dir/SKILL.md" | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Similar to the prune script, the
Suggested change
|
||||||
| done | ||||||
|
|
||||||
| echo "✅ Sync complete." | ||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,50 @@ | ||
| name: Sync Genkit Skills | ||
|
|
||
| on: | ||
| schedule: | ||
| # Runs at 9:00 AM EST (14:00 UTC) on weekdays (Monday-Friday) | ||
| - cron: '0 14 * * 1-5' | ||
| workflow_dispatch: # For manual trigger | ||
|
|
||
| permissions: | ||
| # Permission for writing commits and creating PRs is given through | ||
| # the bot account PAT. | ||
| contents: read | ||
|
|
||
| jobs: | ||
| sync: | ||
| environment: genkit skills automerger cron | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 15 | ||
| steps: | ||
| - name: Checkout firebase/agent-skills | ||
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | ||
| with: | ||
| path: firebase-skills | ||
|
|
||
| - name: Checkout genkit-ai/skills | ||
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | ||
| with: | ||
| repository: genkit-ai/skills | ||
| path: genkit-skills | ||
|
|
||
| # Identifies skills managed by Genkit that have been deleted from the source repo | ||
| # and removes them from this repo. | ||
| - name: Prune Deleted Genkit Skills | ||
| run: firebase-skills/.github/scripts/prune-skills.sh | ||
|
|
||
| # Copies skills from Genkit repo, tags them with metadata, and handles updates. | ||
| # Note: Uses 'yq' which is pre-installed on GitHub ubuntu-latest runners. | ||
| - name: Sync & Tag Skills | ||
| run: firebase-skills/.github/scripts/sync-skills.sh | ||
|
|
||
| - name: Create Pull Request | ||
| uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v8 | ||
| with: | ||
| path: firebase-skills | ||
| commit-message: "chore: sync updated skills" | ||
| title: "chore: 🤖 Sync updated skills from Genkit" | ||
| branch: "sync-skills" | ||
| committer: Google Open Source Bot <firebase-oss-bot@google.com> | ||
| reviewers: joehan, ssbushi | ||
| token: ${{ secrets.OSS_BOT_AUTOMERGER_PAT }} |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| node_modules/ | ||
| .DS_Store | ||
| *.log |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,17 @@ | ||
| { | ||
| "mcpServers": { | ||
| "firebase": { | ||
| "command": "npx", | ||
| "args": [ | ||
| "-y", | ||
| "firebase-tools@latest", | ||
| "mcp", | ||
| "--dir", | ||
| "." | ||
| ], | ||
| "env": { | ||
| "IS_FIREBASE_MCP": "true" | ||
| } | ||
| } | ||
| } | ||
| } |
This file was deleted.
This file was deleted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The
yqcommand uses the-fflag withextract, which instructsyqto read the filter expression from a file namedextract. This file is not present in the repository. If you intended to pass the filter string directly, the-f extractpart should be removed.