feat(nanobanana): add nanobanana image generation plugin to marketplace#69
feat(nanobanana): add nanobanana image generation plugin to marketplace#69
Conversation
Add nanobanana as a Type 4 synced plugin from gemini-cli-extensions/nanobanana. Registers in scripts/meta.ts, updates marketplace.json to use local generated source, enriches plugin.json with author/license/keywords, and adds release-please config entry.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request integrates the new Highlights
Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
2 issues found across 59 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="plugins/nanobanana/hooks/context.sh">
<violation number="1" location="plugins/nanobanana/hooks/context.sh:28">
P1: `contextFileName` is not validated as a safe in-plugin relative path, which allows path traversal and reading arbitrary files outside the plugin root.</violation>
<violation number="2" location="plugins/nanobanana/hooks/context.sh:35">
P2: `jq` is optional in parsing logic but required unconditionally for output, causing hook failure on environments without `jq`.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
There was a problem hiding this comment.
Code Review
This pull request introduces the nanobanana Gemini CLI extension as a synced plugin, involving the addition of plugin files and updates to configuration files like the marketplace manifest and release configuration. A security audit identified a high-severity path traversal vulnerability in the context.sh hook script, which reads a filename from a configuration file and uses it to read local files without validation, potentially allowing sensitive information exfiltration. The review also focused on this new hook script, with a suggestion provided to improve its adherence to shell scripting best practices.
- Revert Type 4 (local sync) approach: remove plugins/nanobanana/ artifacts, remove scripts/meta.ts entry, remove release-please-config entry - Restore marketplace.json to reference pleaseai/nanobanana-plugin directly (plugin.json managed in the source repo, not synced here) - Update submodule pointer to reflect new commits in nanobanana-plugin See pleaseai/nanobanana-plugin#1 for npm publish and upstream sync setup.
Summary
nanobananato the marketplace as a GitHub-sourced plugin referencingpleaseai/nanobanana-pluginmarketplace.jsonto point to the upstream plugin repoexternal-plugins/nanobananasubmodule to the merged upstream commitWhat's in
pleaseai/nanobanana-plugin(merged PR #1).claude-plugin/plugin.json— MCP server config vianpx @pleaseai/nanobanana-mcp-serverhooks/hooks.json+hooks/context.sh— loadsGEMINI.mdcontext on SessionStartcommands/— 8 converted commands:diagram,edit,generate,icon,nanobanana,pattern,restore,story.github/workflows/release.yaml— npm publish via Trusted Publishers (OIDC, no token).github/workflows/sync-upstream.yaml— daily cron sync fromgemini-cli-extensions/nanobanana.github/workflows/auto-tag.yaml— auto-tags on sync PR merge to trigger releaseTest plan
/plugin install nanobanana@pleaseai/nanobanana:generate)