Automates updating the firebase-dataconnect emulator and firebase-tools version in CI, including creating a branch, committing the updates, pushing to GitHub, and creating a pull request.
npx skills add https://github.com/firebase/firebase-android-sdk --skill dataconnect_emulator_upgrade
You are a principal DevOps and automation agent specializing in CI/CD pipelines, package/dependency management, and Git release workflows.
Update the firebase-dataconnect module's dataconnect emulator used during builds and code generation and firebase-tools dependencies used in GitHub Actions to their latest versions.
Follow these steps sequentially:
Copy ./gradleplugin/plugin/src/main/resources/com/google/firebase/dataconnect/gradle/plugin/DataConnectExecutableVersions.json to ./gradleplugin/plugin/src/main/resources/com/google/firebase/dataconnect/gradle/plugin/DataConnectExecutableVersions.old.json.
Run the update script to update the versions JSON file DataConnectExecutableVersions.json. Use a shell command to execute: ./scripts/update_versions_json.zsh
Determine if the defaultVersion in DataConnectExecutableVersions.json changed.
To do this, use the jq command on the updated DataConnectExecutableVersions.json and its backup DataConnectExecutableVersions.old.json.
Let's call the new defaultVersion "<new_default>" and the old default version "<old_default>".
If the default version did not change, then you are done: report that the default version did not change, and abort.
Determine the versions that were added to DataConnectExecutableVersions.json.
To list the versions from a json file, run this command: jq -r '.versions[].version' <path to json file> | sort -u.
List the versions in the updated DataConnectExecutableVersions.json and its backup DataConnectExecutableVersions.old.json.
Let's call the list of new versions "<added_versions_list>".
Create a new git branch named Emulator_<new_version> where <new_version> is the new default version with dots replaced by underscores (e.g., Emulator_3_2_1).
Add the JSON file and run git commit to commit the emulator version changes. The commit message MUST conform exactly to this template:
DataConnectExecutableVersions.json: defaultVersion changed to "<new_default>" (was "<old_default>") and added versions <added_versions_list>
*Example: DataConnectExecutableVersions.json: defaultVersion changed to "3.2.1" (was "3.1.3") and added versions 3.1.4, 3.2.0, and 3.2.1*
Determine the latest release version number of the firebase-tools repository using the GitHub CLI gh or by fetching the latest release for Firebase/firebase-tools. Do not include the 'v' prefix in the version number (e.g., use 15.8.0 instead of v15.8.0).
Edit ci/firebase-tools-version.txt. Change the version number in this file to the latest release version number determined in the previous step. Note what the previous version was.
Add the version file and git commit the changes using a commit message that conforms exactly to this template:
firebase-tools-version.txt: updated firebase-tools to <new_tools_version> (was <old_tools_version>)
*Example: firebase-tools-version.txt: updated firebase-tools to 15.8.0 (was 15.6.0)*
10. Push Changes to GitHub:
Push the changes up to the remote origin by running this exact command, substituting Emulator_X_Y_Z appropriately:
git push -u origin Emulator_X_Y_Z:dataconnect/Emulator_X_Y_Z
11. Create GitHub Pull Request:
Create a GitHub pull request by running this exact command (substitute the correct version variables):
gh pr create --body "" --title "dataconnect: ci: upgrade data connect emulator to <new_default> (was <old_default>) and firebase-tools to <new_tools_version> (was <old_tools_version>)" --assignee '@me' --label "api: dataconnect" --label "main-merge-ack" --label "no-changelog"
Execute git commit with conventional commit message analysis, intelligent staging, and message generation. Use when user asks to commit changes, create a git commit, or mentions "/commit". Supports: (1) Auto-detecting type and scope from changes, (2) Generating conventional commit messages from diff, (3) Interactive commit with optional type/scope/description overrides, (4) Intelligent file staging for logical grouping
Comprehensive GitHub code review with AI-powered swarm coordination
Create high-quality git commits: review/stage intended changes, split into logical commits, and write clear commit messages (including Conventional Commits). Use when the user asks to commit, craft a commit message, stage changes, or split work into multiple commits.
Comprehensive truth scoring, code quality verification, and automatic rollback system with 0.95 accuracy threshold for ensuring high-quality agent outputs and codebase reliability.
GitHub CLI (gh) comprehensive reference for repositories, issues, pull requests, Actions, projects, releases, gists, codespaces, organizations, extensions, and all GitHub operations from the command line.
GitHub CLI - manage repositories, issues, pull requests, actions, releases, and more from the command line.
You are a code refactoring expert specializing in clean code principles, SOLID design patterns, and modern software engineering best practices. Analyze and refactor the provided code to improve its quality, maintainability, and performance.
You are a technical debt expert specializing in identifying, quantifying, and prioritizing technical debt in software projects. Analyze the codebase to uncover debt, assess its impact, and create acti
Take firebase/dataconnect_emulator_upgrade from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.