Skip to content

Commit 7c9ef86

Browse files
dumiansdumicodinMatthieu68857averikitsch
authored
feat: initial commit for the OracleDB Gemini CLI Extension (#1)
* Intial Commit and corrections Update and add the needed release files and minor correction of extension descitption, tools * update the extension definion and cleanup structure * refactor typpo on definions * fix tippo * fix the configuration to use prebuild toobox and missing tools * update configuration and resolve review * refactor typpo on definions * fix merge * fix license header issue * fix license header of template files * Apply suggestion from @averikitsch * removed sql example * Apply suggestion from @averikitsch * add additional env. variables to readme and revert using tools * Apply suggestion from @averikitsch * Update oracledb.yaml * Apply suggestion from @averikitsch * Apply suggestions from code review * Update ORACLEDB.md * Update packaging workflow and enhance tool descriptions in YAML files * Fix SQL statement formatting and update tool descriptions in oracledb.yaml --------- Co-authored-by: Johannes Dumitru <dumian@gmail.com> Co-authored-by: Matt Cornillon <cornillon@google.com> Co-authored-by: Averi Kitsch <akitsch@google.com>
1 parent 7164e93 commit 7c9ef86

15 files changed

Lines changed: 595 additions & 76 deletions
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
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+
16+
name: 🐞 Bug Report
17+
description: File a report for unexpected or undesired behavior.
18+
title: "<brief summary of what bug or error was observed>"
19+
labels: ["type: bug"]
20+
type: "bug"
21+
22+
body:
23+
- type: markdown
24+
attributes:
25+
value: |
26+
Thanks for helping us improve! 🙏 Please answer these questions and provide as much information as possible about your problem.
27+
28+
- id: preamble
29+
type: checkboxes
30+
attributes:
31+
label: Pre-reqs
32+
description: |
33+
Please run through the following list and make sure you've tried the usual "quick fixes":
34+
- Search the [current open issues](https://github.com/gemini-cli-extensions/alloydb/issues)
35+
- Update to the latest version of the extension and [Gemini CLI](https://github.com/google-gemini/gemini-cli?tab=readme-ov-file#stable)
36+
options:
37+
- label: "I've searched the current open issues"
38+
required: true
39+
- label: "I've updated to the latest versions"
40+
41+
- type: input
42+
id: ex_version
43+
attributes:
44+
label: Extension Version
45+
description: |
46+
What version of the extension are you using (`gemini extensions list` or `/extensions list`)?
47+
placeholder: ex. version 0.1.0
48+
validations:
49+
required: true
50+
51+
- type: input
52+
id: version
53+
attributes:
54+
label: Gemini CLI Version
55+
description: |
56+
What version of the Gemini CLI are you using (`gemini --version`)?
57+
placeholder: ex. version 0.6.0
58+
validations:
59+
required: true
60+
61+
- type: input
62+
id: environment
63+
attributes:
64+
label: Environment
65+
description: "Let us know what OS type and version in which you are seeing the bug!"
66+
placeholder: output of `uname -a`
67+
validations:
68+
required: true
69+
70+
- id: current-behavior
71+
type: textarea
72+
attributes:
73+
label: Current Behavior
74+
description: "Please enter a detailed description of the behavior you encountered instead."
75+
validations:
76+
required: true
77+
78+
- id: expected-behavior
79+
type: textarea
80+
attributes:
81+
label: Expected Behavior
82+
description: |
83+
Please enter a detailed description of the behavior you expected, and any information about what behavior you
84+
noticed and why it is defective or unintentional.
85+
validations:
86+
required: true
87+
88+
- type: textarea
89+
id: repro
90+
attributes:
91+
label: Steps to reproduce?
92+
description: |
93+
How can we reproduce this bug? Please walk us through it step by step,
94+
with as much relevant detail as possible. A 'minimal' reproduction is
95+
preferred, which means removing as much of the examples as possible so
96+
only the minimum required to run and reproduce the bug is left.
97+
value: |
98+
1. ?
99+
2. ?
100+
3. ?
101+
...
102+
validations:
103+
required: true
104+
105+
- type: textarea
106+
id: additional-details
107+
attributes:
108+
label: Additional Details
109+
description: |
110+
Any other information you want us to know?

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
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+
16+
blank_issues_enabled: false
17+
contact_links:
18+
- name: Google Cloud Support
19+
url: https://cloud.google.com/support/
20+
about: If you have a support contract with Google, please both open an issue here and open Google Cloud Support portal with a link to the issue.
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
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+
16+
name: ✨ Feature Request
17+
description: Suggest an idea for new or improved behavior.
18+
title: "<brief summary of the proposed feature>"
19+
labels: ["type: feature request"]
20+
type: feature
21+
body:
22+
- type: markdown
23+
attributes:
24+
value: |
25+
Thanks for helping us improve! 🙏 Please answer these questions and provide as much information as possible about your feature request.
26+
27+
- id: preamble
28+
type: checkboxes
29+
attributes:
30+
label: Pre-reqs
31+
description: |
32+
Please run through the following list and make sure you've tried the usual "quick fixes":
33+
options:
34+
- label: "Search the [current open issues](https://github.com/gemini-cli-extensions/alloydb/issues)"
35+
required: true
36+
37+
- type: textarea
38+
id: use-case
39+
attributes:
40+
label: What are you trying to do that currently feels hard or impossible?
41+
description: "A clear and concise description of what the end goal for the feature should be -- avoid generalizing and try to provide a specific use-case."
42+
validations:
43+
required: true
44+
45+
- type: textarea
46+
id: suggested-solution
47+
attributes:
48+
label: Suggested Solution(s)
49+
description: "If you have a suggestion for how this use-case can be solved, please feel free to include it."
50+
51+
- type: textarea
52+
id: additional-details
53+
attributes:
54+
label: Additional Details
55+
description: "Any additional information we should know? Please reference it here (issues, PRs, descriptions, or screenshots)"
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
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+
16+
name: 💬 Question
17+
description: Questions on how something works or the best way to do something?
18+
title: "<brief summary of the question>"
19+
labels: ["type: question"]
20+
21+
body:
22+
- type: markdown
23+
attributes:
24+
value: |
25+
Thanks for helping us improve! 🙏 Please provide as much information as possible about your question.
26+
27+
- id: preamble
28+
type: checkboxes
29+
attributes:
30+
label: Prerequisites
31+
description: |
32+
Please run through the following list and make sure you've tried the usual "quick fixes":
33+
options:
34+
- label: "Search the [issues](https://github.com/gemini-cli-extensions/alloydb/issues)"
35+
required: true
36+
37+
- type: textarea
38+
id: question
39+
attributes:
40+
label: Question
41+
description: "What's your question? Please provide as much relevant information as possible to reduce turnaround time. Include information like what environment, language, or framework you are using."
42+
validations:
43+
required: true
44+
45+
- type: textarea
46+
id: code
47+
attributes:
48+
label: Code
49+
description: "Please paste any useful application code that might be relevant to your question. (if your code is in a public repo, feel free to paste a link!)"
50+
51+
- type: textarea
52+
id: additional-details
53+
attributes:
54+
label: Additional Details
55+
description: "Any other information you want us to know that might be helpful in answering your question? (link issues, PRs, descriptions, or screenshots)."

.github/workflows/package-and-upload-assets.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ name: Package and Upload Release Assets
1717
# Global variables
1818
env:
1919
PACKAGE_NAME: "oracledb"
20-
FILES_TO_PACKAGE: "gemini-extension.json ORACLEDB.md LICENSE tools.yaml"
20+
FILES_TO_PACKAGE: "gemini-extension.json ORACLEDB.md LICENSE oracledb.yaml"
2121
GCS_BUCKET_URL: "https://storage.googleapis.com/genai-toolbox/geminicli"
2222

2323
on:

.release-please-manifest.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
".": "0.1.0"
3+
}

CODE_OF_CONDUCT.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
In the interest of fostering an open and welcoming environment, we as
66
contributors and maintainers pledge to making participation in our project and
77
our community a harassment-free experience for everyone, regardless of age, body
8-
size, disability, ethnicity, gender identity and expression, level of
9-
experience, education, socio-economic status, nationality, personal appearance,
10-
race, religion, or sexual identity and orientation.
8+
size, disability, ethnicity, gender identity and expression, level of experience,
9+
education, socio-economic status, nationality, personal appearance,race, religion,
10+
or sexual identity and orientation.
1111

1212
## Our Standards
1313

CONTRIBUTING.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,14 @@ just a few small guidelines you need to follow.
66
## Contributor License Agreement
77

88
Contributions to this project must be accompanied by a Contributor License
9-
Agreement (CLA). You (or your employer) retain the copyright to your
10-
contribution; this simply gives us permission to use and redistribute your
9+
Agreement (CLA). You (or your employer) retain the copyright to your contribution;
10+
this simply gives us permission to use and redistribute your
1111
contributions as part of the project. Head over to
1212
<https://cla.developers.google.com/> to see your current agreements on file or
1313
to sign a new one.
1414

1515
You generally only need to submit a CLA once, so if you've already submitted one
16-
(even if it was for a different project), you probably don't need to do it
17-
again.
16+
(even if it was for a different project), you probably don't need to do it again.
1817

1918
## Code Reviews
2019

DEVELOPER.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# DEVELOPER.md
22

33
This document provides instructions for setting up your development environment
4-
and contributing to the Oracle DB Gemini CLI Extension project.
4+
and contributing to the OracleDB Gemini CLI Extension project.
55

66
## Prerequisites
77

@@ -10,8 +10,8 @@ Before you begin, ensure you have the following:
1010
1. **Gemini CLI:** Install the Gemini CLI version v0.6.0 or above. Installation
1111
instructions can be found on the official Gemini CLI documentation. You can
1212
verify your version by running `gemini --version`.
13-
2. ** Oracle DB Cluster & Instance:** For testing data plane tools, you will need access to an active Oracle DB
14-
instance. We recommend using Public IP to eliminate the need to create and use a workspace
13+
2. **OracleDB Cluster & Instance:** For testing data plane tools, you will need access to an active
14+
Oracle DB instance. We recommend using Public IP to eliminate the need to create and use a workspace
1515
within the same VPC network as the database.
1616

1717
## Developing the Extension
@@ -23,8 +23,8 @@ The core logic for this extension is handled by a pre-built `toolbox` binary. Th
2323
1. **Clone the Repository:**
2424

2525
```bash
26-
git clone https://github.com/gemini-cli-extensions/oracle.git
27-
cd oracle
26+
git clone https://github.com/gemini-cli-extensions/oracledb.git
27+
cd oracledb
2828
```
2929

3030
2. **Download the Toolbox Binary:** The required version of the `toolbox` binary
@@ -53,7 +53,7 @@ The core logic for this extension is handled by a pre-built `toolbox` binary. Th
5353
The CLI will prompt you to confirm the installation. Accept it to proceed.
5454

5555
4. **Testing Changes:** After installation, start the Gemini CLI (`gemini`).
56-
You can now interact with the `oracle DB` tools to manually test your changes
56+
You can now interact with the `oracledb` tools to manually test your changes
5757
against your connected database.
5858

5959
## Testing
@@ -98,7 +98,7 @@ The primary maintainers for this repository are defined in the
9898
[`.github/CODEOWNERS`](.github/CODEOWNERS) file:
9999
100100
* `@gemini-cli-extensions/senseai-eco`
101-
* `@gemini-cli-extensions/oracle-maintainers`
101+
* `@gemini-cli-extensions/oracledb-maintainers`
102102
103103
### Releasing
104104
@@ -120,6 +120,7 @@ The process is handled by the [`mirror-changelog.yml`](.github/workflows/mirror-
120120
3. **Filtering:** These release notes are filtered to include only changes
121121
relevant to this extension. The relevance is determined by a keyword (e.g.,
122122
`oracledb`), passed as an environment variable in the workflow file.
123+
`oracledb`), passed as an environment variable in the workflow file.
123124
4. **Changelog Injection:** The script formats the filtered entries as
124125
conventional commits and injects them into the PR body within a
125126
`BEGIN_COMMIT_OVERRIDE` block.

0 commit comments

Comments
 (0)