Skip to content

Commit caffb94

Browse files
authored
Merge branch 'main' into remove-package-work
2 parents 6fd4a93 + 8da2132 commit caffb94

35 files changed

Lines changed: 3244 additions & 18 deletions

.claude-plugin/marketplace.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"name": "cloud-sql-mysql-marketplace",
3+
"owner": {
4+
"name": "Google LLC",
5+
"email": "data-cloud-ai-integrations@google.com"
6+
},
7+
"metadata": {
8+
"description": "Agent skills for Cloud SQL for MySQL to query, manage, and monitor databases."
9+
},
10+
"plugins": [
11+
{
12+
"name": "cloud-sql-mysql",
13+
"source": "./"
14+
}
15+
]
16+
}

.claude-plugin/plugin.json

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
{
2+
"name": "cloud-sql-mysql",
3+
"version": "0.1.9",
4+
"description": "Connect and interact with a Cloud SQL for MySQL database and data.",
5+
"author": {
6+
"name": "Google LLC",
7+
"email": "data-cloud-ai-integrations@google.com"
8+
},
9+
"homepage": "https://cloud.google.com/sql",
10+
"license": "Apache-2.0",
11+
"repository": "https://github.com/gemini-cli-extensions/cloud-sql-mysql",
12+
"skills": "./skills/",
13+
"userConfig": {
14+
"cloud_sql_mysql_project": {
15+
"title": "Project ID",
16+
"description": "ID of the Google Cloud project",
17+
"type": "string",
18+
"sensitive": false
19+
},
20+
"cloud_sql_mysql_region": {
21+
"title": "Region",
22+
"description": "Region of the Cloud SQL instance",
23+
"type": "string",
24+
"sensitive": false
25+
},
26+
"cloud_sql_mysql_instance": {
27+
"title": "Instance Name",
28+
"description": "Name of the Cloud SQL instance",
29+
"type": "string",
30+
"sensitive": false
31+
},
32+
"cloud_sql_mysql_database": {
33+
"title": "Database Name",
34+
"description": "Name of the database",
35+
"type": "string",
36+
"sensitive": false
37+
},
38+
"cloud_sql_mysql_user": {
39+
"title": "Database User",
40+
"description": "(Optional) Username of the database user (Default: IAM user)",
41+
"type": "string",
42+
"sensitive": false
43+
},
44+
"cloud_sql_mysql_password": {
45+
"title": "Database Password",
46+
"description": "(Optional) Password of the database user (Default: IAM user)",
47+
"type": "string",
48+
"sensitive": false
49+
},
50+
"cloud_sql_mysql_ip_type": {
51+
"title": "IP Type",
52+
"description": "(Optional) Type of the IP address: PUBLIC, PRIVATE, or PSC (Default: Public)",
53+
"type": "string",
54+
"sensitive": false
55+
}
56+
}
57+
}

.codex-plugin/plugin.json

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
{
2+
"name": "cloud-sql-mysql",
3+
"version": "0.1.9",
4+
"description": "Connect and interact with a Cloud SQL for MySQL database and data.",
5+
"author": {
6+
"name": "Google LLC",
7+
"email": "data-cloud-ai-integrations@google.com"
8+
},
9+
"homepage": "https://cloud.google.com/sql",
10+
"repository": "https://github.com/gemini-cli-extensions/cloud-sql-mysql",
11+
"license": "Apache-2.0",
12+
"keywords": [
13+
"cloud-sql",
14+
"mysql",
15+
"database"
16+
],
17+
"skills": "./skills/",
18+
"interface": {
19+
"displayName": "Cloud SQL for MySQL",
20+
"shortDescription": "Interact with CloudSQL for MySQL instances.",
21+
"developerName": "Google LLC",
22+
"category": "Database",
23+
"capabilities": [
24+
"Read",
25+
"Write"
26+
],
27+
"defaultPrompt": [
28+
"You are a highly skilled database engineer and database administrator. Your purpose is to help the developer build and interact with databases and utilize data context throughout the entire software delivery cycle."
29+
]
30+
}
31+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Copyright 2026 Google LLC
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
name: lint
16+
17+
on:
18+
push:
19+
paths-ignore:
20+
- "skills/**"
21+
pull_request:
22+
paths-ignore:
23+
- "skills/**"
24+
pull_request_target:
25+
types: [labeled]
26+
paths-ignore:
27+
- "skills/**"
28+
workflow_dispatch:
29+
30+
jobs:
31+
skills-validate:
32+
runs-on: ubuntu-latest
33+
steps:
34+
- name: Skip Skill Validation
35+
run: |
36+
echo "No changes detected in 'skills/' directory. Skipping validation."
37+
echo "This job ensures the required 'skills-validate' status check passes."
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# Copyright 2026 Google LLC
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
name: Validate Skills
16+
17+
on:
18+
push:
19+
paths:
20+
- "skills/**"
21+
pull_request:
22+
paths:
23+
- "skills/**"
24+
pull_request_target:
25+
types: [labeled]
26+
paths:
27+
- "skills/**"
28+
29+
jobs:
30+
skills-validate:
31+
runs-on: ubuntu-latest
32+
steps:
33+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
34+
35+
- name: Set up Python
36+
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
37+
with:
38+
python-version: "3.11"
39+
40+
- name: Install skills-ref
41+
run: |
42+
pip install "git+https://github.com/agentskills/agentskills.git#subdirectory=skills-ref"
43+
44+
- name: Validate Skills
45+
run: |
46+
failed=0
47+
for skill_dir in skills/*/; do
48+
if [ -d "$skill_dir" ]; then
49+
echo "Validating $skill_dir..."
50+
if ! skills-ref validate "$skill_dir"; then
51+
echo "Validation failed for $skill_dir"
52+
failed=1
53+
fi
54+
fi
55+
done
56+
exit $failed

gemini-extension.json

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,6 @@
22
"name": "cloud-sql-mysql",
33
"version": "0.1.9",
44
"description": "Connect and interact with a Cloud SQL for MySQL database and data",
5-
"mcpServers": {
6-
"cloud_sql_mysql_admin": {
7-
"command": "${extensionPath}${/}toolbox",
8-
"args": [
9-
"--prebuilt",
10-
"cloud-sql-mysql-admin",
11-
"--stdio"
12-
]
13-
},
14-
"cloud_sql_mysql": {
15-
"command": "${extensionPath}${/}toolbox",
16-
"args": [
17-
"--prebuilt",
18-
"cloud-sql-mysql",
19-
"--stdio"
20-
]
21-
}
22-
},
235
"contextFileName": "CLOUD-SQL-MYSQL.md",
246
"settings": [
257
{

release-please-config.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,21 @@
2828
"release-type": "simple",
2929
"package-name": "cloud-sql-mysql",
3030
"extra-files": [
31+
"README.md",
3132
{
3233
"type": "json",
3334
"path": "gemini-extension.json",
3435
"jsonpath": "$.version"
36+
},
37+
{
38+
"type": "json",
39+
"path": ".codex-plugin/plugin.json",
40+
"jsonpath": "$.version"
41+
},
42+
{
43+
"type": "json",
44+
"path": ".claude-plugin/plugin.json",
45+
"jsonpath": "$.version"
3546
}
3647
]
3748
}
Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
---
2+
name: cloud-sql-mysql-admin
3+
description: Use these skills when you need to provision new Cloud SQL for MySQL instances, create databases and users, clone existing environments, and monitor the progress of infrastructure operations.
4+
---
5+
6+
## Usage
7+
8+
All scripts can be executed using Node.js. Replace `<param_name>` and `<param_value>` with actual values.
9+
10+
**Bash:**
11+
`node <skill_dir>/scripts/<script_name>.js '{"<param_name>": "<param_value>"}'`
12+
13+
**PowerShell:**
14+
`node <skill_dir>/scripts/<script_name>.js '{\"<param_name>\": \"<param_value>\"}'`
15+
16+
Note: The scripts automatically load the environment variables from various .env files. Do not ask the user to set vars unless skill executions fails due to env var absence.
17+
18+
19+
## Scripts
20+
21+
22+
### create_database
23+
24+
25+
26+
#### Parameters
27+
28+
| Name | Type | Description | Required | Default |
29+
| :--- | :--- | :--- | :--- | :--- |
30+
| project | string | The GCP project ID. This is pre-configured; do not ask for it unless the user explicitly provides a different one. | No | |
31+
| instance | string | The ID of the instance where the database will be created. | Yes | |
32+
| name | string | The name for the new database. Must be unique within the instance. | Yes | |
33+
34+
35+
---
36+
37+
### create_instance
38+
39+
40+
41+
#### Parameters
42+
43+
| Name | Type | Description | Required | Default |
44+
| :--- | :--- | :--- | :--- | :--- |
45+
| project | string | The GCP project ID. This is pre-configured; do not ask for it unless the user explicitly provides a different one. | No | |
46+
| name | string | The name of the instance | Yes | |
47+
| databaseVersion | string | The database version for MySQL. If not specified, defaults to the latest available version (e.g., MYSQL_8_4). | No | `MYSQL_8_4` |
48+
| rootPassword | string | The root password for the instance | Yes | |
49+
| editionPreset | string | The edition of the instance. Can be `Production` or `Development`. This determines the default machine type and availability. Defaults to `Development`. | No | `Development` |
50+
51+
52+
---
53+
54+
### create_user
55+
56+
57+
58+
#### Parameters
59+
60+
| Name | Type | Description | Required | Default |
61+
| :--- | :--- | :--- | :--- | :--- |
62+
| project | string | The GCP project ID. This is pre-configured; do not ask for it unless the user explicitly provides a different one. | No | |
63+
| instance | string | The ID of the instance where the user will be created. | Yes | |
64+
| name | string | The name for the new user. Must be unique within the instance. | Yes | |
65+
| password | string | A secure password for the new user. Not required for IAM users. | No | |
66+
| iamUser | boolean | Set to true to create a Cloud IAM user. | Yes | |
67+
68+
69+
---
70+
71+
### get_instance
72+
73+
74+
75+
#### Parameters
76+
77+
| Name | Type | Description | Required | Default |
78+
| :--- | :--- | :--- | :--- | :--- |
79+
| projectId | string | The GCP project ID. This is pre-configured; do not ask for it unless the user explicitly provides a different one. | No | |
80+
| instanceId | string | The instance ID | Yes | |
81+
82+
83+
---
84+
85+
### list_databases
86+
87+
Lists all databases for a Cloud SQL instance.
88+
89+
#### Parameters
90+
91+
| Name | Type | Description | Required | Default |
92+
| :--- | :--- | :--- | :--- | :--- |
93+
| project | string | The GCP project ID. This is pre-configured; do not ask for it unless the user explicitly provides a different one. | No | |
94+
| instance | string | The instance ID | Yes | |
95+
96+
97+
---
98+
99+
### list_instances
100+
101+
Lists all type of Cloud SQL instances for a project.
102+
103+
#### Parameters
104+
105+
| Name | Type | Description | Required | Default |
106+
| :--- | :--- | :--- | :--- | :--- |
107+
| project | string | The GCP project ID. This is pre-configured; do not ask for it unless the user explicitly provides a different one. | No | |
108+
109+
110+
---
111+
112+
### wait_for_operation
113+
114+
115+
116+
#### Parameters
117+
118+
| Name | Type | Description | Required | Default |
119+
| :--- | :--- | :--- | :--- | :--- |
120+
| project | string | The GCP project ID. This is pre-configured; do not ask for it unless the user explicitly provides a different one. | No | |
121+
| operation | string | The operation ID | Yes | |
122+
123+
124+
---
125+

0 commit comments

Comments
 (0)