Skip to content

Conversation

@grahamplata
Copy link
Member

@grahamplata grahamplata commented Oct 27, 2025

Create Google Gemini cli extension

Checklist:

  • Covered by tests
  • Ran it and it works as intended
  • Reviewed the diff before requesting a review
  • Checked for unhandled edge cases
  • Linked the issues it closes
  • Checked if the docs need to be updated. If so, create a separate Linear DOCS issue
  • Intend to cherry-pick into the release branch
  • I'm proud of this work!

@grahamplata grahamplata force-pushed the gplata/gemini-extension branch from 21e3af9 to 780c2ec Compare October 27, 2025 18:18
Copy link
Contributor

@ericpgreen2 ericpgreen2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As mentioned in Slack, can you please remove all the Google integrations so we can first land the Rill-native functionality?

@grahamplata grahamplata force-pushed the gplata/gemini-extension branch from bd3c3a0 to 39ed6e2 Compare October 30, 2025 20:08
@grahamplata grahamplata force-pushed the gplata/gemini-extension branch 2 times, most recently from 74b4731 to 62464b2 Compare November 4, 2025 14:30
@grahamplata grahamplata force-pushed the gplata/gemini-extension branch from 62464b2 to be569bd Compare November 4, 2025 14:36
@grahamplata grahamplata force-pushed the gplata/gemini-extension branch from 2eec0b4 to 319985e Compare November 4, 2025 21:03
Copy link
Contributor

@ericpgreen2 ericpgreen2 Nov 5, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some of this language seems to be addressed to the end user (e.g. "By connecting to your Rill projects, the Gemini agent can..."), not the Gemini agent. I'd expect that the document would be exclusively addressed to the Gemini agent.

@grahamplata grahamplata force-pushed the gplata/gemini-extension branch from 7abb8e2 to de2e5ef Compare November 5, 2025 22:06
Comment on lines 124 to 137
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'

- name: Build Gemini Extension
if: env.PUBLISH_RELEASE == 'true'
run: |
cd integrations/gemini
npm ci
npm run build
npm run package
env:
HUSKY: 0
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you pull the Gemini extension release into a separate workflow? So that issues with the Gemini extension can't hold up normal releases/patches

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fair enough, I am going to make it a manually triggered release

Comment on lines 173 to 179
- name: Add Gemini Extension to Release
if: env.PUBLISH_RELEASE == 'true'
uses: softprops/action-gh-release@v1
with:
files: integrations/gemini/release/**
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this create a release on Github? How will that look on the releases page? We don't want it to overshadow our normal Rill release
Screenshot 2025-11-07 at 15 16 33

Comment on lines 15 to 33
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'

- name: Install dependencies
run: cd integrations/gemini && npm ci
env:
HUSKY: 0

- name: Build extension
run: cd integrations/gemini && npm run build
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The workflow is called Build and Release Rill Integrations, but looks like it just builds and exits?

Comment on lines 1 to 4
# Rill Configuration
RILL_ORG="demo"
RILL_PROJECT="demo-project"
RILL_ACCESS_TOKEN="rill_usr_1234567890abcdef"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where precisely will users provide these values? I'm seeing placeholders both here and in integrations/gemini/gemini-extension.json. Ideally there's just one place, and ideally it's a single snippet they can copy/paste from their AI tab.

Comment on lines 31 to 35
Update the extension with your Rill credentials by providing the following information when prompted:

- `Organization`: Your Rill organization name
- `Project`: Your Rill project name
- `Access Token`: Your Rill access token
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where do they provide these values?

Install the extension via GitHub:

```bash
gemini extensions install https://github.com/rilldata/rill
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we have a monorepo, how does Gemini know where in the repo to pick it up from? Does it need some additional hint?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The two supported options are that It needs to be at the root or referenced in the releases. This can also be lifted into its own repo.

Comment on lines 55 to 57
This extension is distributed through [GitHub Releases](https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases). This provides a faster and more reliable initial installation experience for users, as releases are shipped as single archives instead of requiring a git clone.

Each release includes an archive file containing the full contents of the repository at the tagged commit. When checking for updates, Gemini CLI looks for the "latest" release on GitHub (you must mark it as such when creating the release), unless the user installed a specific release by passing `--ref=<some-release-tag>`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't the latest release occupied by our normal rill binary? I.e. not Gemini. Do we need a dedicated repo here?

@grahamplata grahamplata force-pushed the gplata/gemini-extension branch from f7d0b13 to ca354fa Compare November 7, 2025 18:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants