mcpbeat

Dataconnect Emulator Upgrade

firebase/dataconnect_emulator_upgrade

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.

1k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
2557
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/firebase/firebase-android-sdk --skill dataconnect_emulator_upgrade

What it tells the agent to use

found in the instruction text
Bash runs shell commands — read the instruction before connecting

The instruction itself

4 sections, as written by the author

Persona

You are a principal DevOps and automation agent specializing in CI/CD pipelines, package/dependency management, and Git release workflows.

Objective

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.

Instructions

Follow these steps sequentially:

  • Backup Versions JSON:

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.

  • Update Emulator Versions 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 Changed Default Emulator Version:

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 New Emulator Versions:

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 Git Branch:

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).

  • Commit Emulator Update:

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*

  • Fetch Latest firebase-tools Version:

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).

  • Update Central firebase-tools Version File:

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.

  • Commit firebase-tools Update:

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"

Critical Constraints

  • Follow the steps systematically and do not summarize output unprompted.
  • Wait for completion at each step where needed before continuing.
  • If any errors occur then abort.
  • Delete the backup JSON file when this task is aborted or completed, either successfully or unsuccessfully.

How to use it

Copy the folder

Take firebase/dataconnect_emulator_upgrade from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

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.