This document provides instructions for setting up your development environment and contributing to the AlloyDB Agent Skills project.
Before you begin, ensure you have the following:
- Gemini CLI: Install the Gemini CLI version v0.6.0 or above. Installation
instructions can be found on the official Gemini CLI documentation. You can
verify your version by running
gemini --version. - AlloyDB Cluster & Instance: For testing data plane skills, you will need access to an active AlloyDB for PostgreSQL instance. We recommend using Public IP to eliminate the need to create and use a workspace within the same VPC network as the database.
The development process involves generating the skills from the toolbox prebuilt configurations and testing them locally.
-
Clone the Repository:
git clone https://github.com/gemini-cli-extensions/alloydb.git cd alloydb -
Install the Extension Locally: Use the Gemini CLI to install the extension from your local directory.
gemini extensions link .The CLI will prompt you to confirm the installation. Accept it to proceed.
-
Testing Changes: After installation, start the Gemini CLI (
gemini). You can now interact with thealloydbskills to manually test your changes against your connected database.
A GitHub Actions workflow (.github/workflows/presubmit-tests.yml) is triggered
for every pull request. This workflow verifies that the extension can
be successfully installed by the Gemini CLI.
The skills themselves are validated using the skills-validate.yml workflow.
- License Header Check: A workflow ensures all necessary files contain the proper license header.
- Conventional Commits: This repository uses Release Please to manage releases. Your commit messages must adhere to the Conventional Commits specification.
- Dependency Updates: Renovate is configured to automatically create pull requests for dependency updates.
The building process for this extension is handled automatically by the automated workflows when a new release is created. Manual building is not required.
The primary maintainers for this repository are defined in the
.github/CODEOWNERS file:
@gemini-cli-extensions/senseai-eco@gemini-cli-extensions/alloydb-maintainers
The release process is automated using release-please. It consists of an automated changelog preparation step followed by the manual merging of a Release PR.
Before a Release PR is even created, a special workflow automatically mirrors
relevant changelogs from the core googleapis/mcp-toolbox dependency. This
ensures that the release notes for this extension accurately reflect important
upstream changes.
The process is handled by the mirror-changelog.yml workflow:
- Trigger: The workflow runs automatically on pull requests created by
Renovate for
toolboxversion updates. - Parsing: It reads the detailed release notes that Renovate includes in the PR body.
- Filtering: These release notes are filtered to include only changes
relevant to this extension. The relevance is determined by a keyword (e.g.,
postgres), passed as an environment variable in the workflow file. - Changelog Injection: The script formats the filtered entries as
conventional commits and injects them into the PR body within a
BEGIN_COMMIT_OVERRIDEblock. - Release Please: When the main Release PR is created,
release-pleasereads this override block instead of the standardchore(deps): ...commit message, effectively mirroring the filtered upstream changelog into this project's release notes.
Note for Maintainers: The filtering script is an automation aid, but it may occasionally produce "false positives" (e.g., an internal logging change that happens to contain the keyword). Before merging a
toolboxdependency PR, maintainers must review the generatedBEGIN_COMMIT_OVERRIDEblock and manually delete any lines that are not relevant to the end-users of this extension. The curated override block is the final source of truth for the release changelog.
- Release PR: When commits with conventional commit headers (e.g.,
feat:,fix:) are merged into themainbranch,release-pleasewill automatically create or update a "Release PR". - Merge Release PR: A maintainer approves and merges the Release PR. This
action triggers
release-pleaseto create a new GitHub tag and a corresponding GitHub Release.