Skip to content

Commit 793032b

Browse files
authored
feat: Optionally install extensions (#329)
**Summary** This PR introduces the optional installation of extensions **Changes** - New `extensions` input: A newline separated list of extension repository URLs. - Conditional installation: The install workflow checks the extension flag and installs extensions that are listed
1 parent a6ba442 commit 793032b

2 files changed

Lines changed: 16 additions & 0 deletions

File tree

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,8 @@ go to the [Gemini Assistant workflow documentation](./examples/workflows/gemini-
179179
- <a name="use_vertex_ai"></a><a href="#user-content-use_vertex_ai"><code>use_vertex_ai</code></a>: _(Optional, default: `false`)_ Whether to use Vertex AI for Gemini model access instead of the default Gemini API key.
180180
For more information, see the [Gemini CLI documentation](https://github.com/google-gemini/gemini-cli/blob/main/docs/cli/authentication.md).
181181

182+
- <a name="extensions"></a><a href="#user-content-extensions"><code>extensions</code></a>: _(Optional)_ A list of Gemini CLI extensions to install.
183+
182184

183185
<!-- END_AUTOGEN_INPUTS -->
184186

action.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@ inputs:
6868
For more information, see the [Gemini CLI documentation](https://github.com/google-gemini/gemini-cli/blob/main/docs/cli/authentication.md).
6969
required: false
7070
default: 'false'
71+
extensions:
72+
description: 'A list of Gemini CLI extensions to install.'
73+
required: false
7174

7275
outputs:
7376
summary:
@@ -195,6 +198,7 @@ runs:
195198
id: 'install'
196199
env:
197200
GEMINI_CLI_VERSION: '${{ inputs.gemini_cli_version }}'
201+
EXTENSIONS: '${{ inputs.extensions }}'
198202
shell: 'bash'
199203
run: |-
200204
set -euo pipefail
@@ -220,6 +224,16 @@ runs:
220224
echo "Error: Gemini CLI not found in PATH"
221225
exit 1
222226
fi
227+
if [[ -n "${EXTENSIONS}" ]]; then
228+
echo "Installing Gemini CLI extensions:"
229+
echo "${EXTENSIONS}" | jq -r '.[]' | while IFS= read -r extension; do
230+
extension=$(echo "${extension}" | xargs)
231+
if [[ -n "${extension}" ]]; then
232+
echo "Installing ${extension}..."
233+
echo "Y" | gemini extensions install --source "${extension}"
234+
fi
235+
done
236+
fi
223237
224238
- name: 'Run Gemini CLI'
225239
id: 'gemini_run'

0 commit comments

Comments
 (0)