Skip to content

feat(catalog): add Google Cloud CLI and Google Workspace CLI#43

Merged
CybotTM merged 12 commits intomainfrom
feat/add-gcloud-google-workspace-cli
Mar 6, 2026
Merged

feat(catalog): add Google Cloud CLI and Google Workspace CLI#43
CybotTM merged 12 commits intomainfrom
feat/add-gcloud-google-workspace-cli

Conversation

@CybotTM
Copy link
Member

@CybotTM CybotTM commented Mar 6, 2026

Summary

New tools

  • gcloud (Google Cloud SDK) — dedicated gcloud_installer.sh with quiet install, gcloud components update for upgrades, symlinks gcloud/gsutil/bq into user bin
  • google-workspace-cli (googleworkspace/cli) — gws binary via GitHub release tarballs
  • vhs (charmbracelet/vhs) — terminal GIF recorder, installed to go_bin (gup-managed)

Bug fixes

  • tree version detection: tree -v means verbose listing, not version — a filename codex.sqlite3.before-v1.9.1.bak matched the version regex, returning 1.9.1 instead of 2.3.1. Fixed by adding version_flag: "--version" to catalog
  • Go cycle symlinks: go1.25 / go1.26 symlinks were only created on first install, never updated on patch upgrades. Changed from [ ! -e ] to unconditional ln -sf
  • gcloud installer: fixed second-run failure (directory already exists), excessive output, and PATH detection

New feature: go_bin target_dir

Per-tool target_dir catalog field with go_bin strategy:

  • Update: keeps binary where it currently is (respects gup)
  • Fresh install: best-guesses Go bin folder via $GOPATHgo env GOPATH~/go/bin fallback (no Go runtime required)
  • Applied to golangci-lint, gosec, and vhs

Test plan

  • gcloud installs, updates, and symlinks work
  • google-workspace-cli resolves releases and downloads correctly
  • vhs installs to ~/go/bin/
  • tree version detection returns 2.3.1
  • Go cycle symlinks update on patch upgrades
  • go_bin resolves to ~/go/bin for existing and fresh installs

Add gcloud (Google Cloud SDK) and google-workspace-cli
(googleworkspace/cli) to the tool catalog under the platform category.

Signed-off-by: Sebastian Mendel <sebastian.mendel@netresearch.de>
Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
@gemini-code-assist
Copy link

Summary of Changes

Hello, 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 expands the available command-line interface tools within the catalog by integrating two new Google-specific utilities. It introduces the Google Cloud CLI for managing cloud resources and the Google Workspace CLI for interacting with Workspace services, enhancing the platform's utility for users working with Google's ecosystem.

Highlights

  • Google Cloud CLI (gcloud): Added gcloud to the tool catalog, configured to skip upstream version checks as it self-updates via gcloud components update.
  • Google Workspace CLI: Included google-workspace-cli in the tool catalog, set to track GitHub releases for version management.
  • Tool Categorization: Both new CLIs are categorized under platform, aligning with existing tools like aws, gh, glab, and gam.
Changelog
  • catalog/gcloud.json
    • Added a new JSON configuration file for the gcloud command-line interface.
  • catalog/google-workspace-cli.json
    • Added a new JSON configuration file for the google-workspace-cli tool.
Activity
  • CybotTM opened this pull request, proposing the addition of Google Cloud CLI and Google Workspace CLI to the tool catalog.
Using Gemini Code Assist

The 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 /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

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 .gemini/ folder in the base of the repository. Detailed instructions can be found here.

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

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request adds catalog entries for gcloud and google-workspace-cli. The changes are a good addition, but there are a few issues to address for correctness and consistency. For gcloud, the install_method should be set to manual to align with the documented schema for tools with external installers. For google-workspace-cli, the binary_name is incorrect, which will prevent the tool from being detected, and there's an extraneous auto_update field. I've provided suggestions to fix these issues.

Note: Security Review has been skipped due to the limited scope of the PR.

CybotTM added 5 commits March 6, 2026 23:04
- gcloud: change install_method from custom_installer to manual
- google-workspace-cli: fix binary_name to gws, remove auto_update

Signed-off-by: Sebastian Mendel <sebastian.mendel@netresearch.de>
Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
The install_method must match an existing installer script. Create
gcloud_installer.sh following the aws_installer.sh pattern: fresh
installs via sdk.cloud.google.com, updates via gcloud components update.

Signed-off-by: Sebastian Mendel <sebastian.mendel@netresearch.de>
Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
The github_release_binary installer requires a download_url_template.
Add the template matching the gws release asset naming convention.

Signed-off-by: Sebastian Mendel <sebastian.mendel@netresearch.de>
Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
tree -v means verbose listing, not version. The generic version detection
tries -v first, which outputs a directory listing where filenames like
"codex.sqlite3.before-v1.9.1.bak" match the version regex, causing
incorrect version detection. Specifying --version skips the -v probe.

Signed-off-by: Sebastian Mendel <sebastian.mendel@netresearch.de>
Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
Replace ${GOPATH} expansion with a go_bin strategy that:
- On update: keeps the binary where it currently is (respects gup)
- On fresh install: best-guesses Go bin folder via GOPATH env,
  `go env GOPATH`, or ~/go/bin fallback (no Go runtime required)

Apply to golangci-lint and gosec to avoid duplicate installations
in both ~/.local/bin and ~/go/bin.

Signed-off-by: Sebastian Mendel <sebastian.mendel@netresearch.de>
Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
@CybotTM CybotTM force-pushed the feat/add-gcloud-google-workspace-cli branch from 719d4d9 to d4e2302 Compare March 6, 2026 22:25
CybotTM added 6 commits March 6, 2026 23:28
The go1.XX symlink (e.g. go1.25 -> go1.25.8) was only created when
it didn't exist. On patch upgrades the stale symlink was preserved,
so go1.25 still pointed at go1.25.7 after installing go1.25.8,
causing the upgrade to appear failed (version unchanged).

Change the condition from [ ! -e ] to unconditional ln -sf.

Signed-off-by: Sebastian Mendel <sebastian.mendel@netresearch.de>
Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
- Add ~/google-cloud-sdk/bin to PATH at script start so existing
  installs are detected even when not in shell PATH
- Three-way check: gcloud in PATH → update, SDK dir exists → recover,
  neither → fresh install (avoids "directory already exists" error)
- Fresh install uses direct tarball + install.sh --quiet instead of
  the noisy sdk.cloud.google.com wrapper script
- Pipe update output through tail -1 to reduce noise

Signed-off-by: Sebastian Mendel <sebastian.mendel@netresearch.de>
Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
Symlink SDK binaries into ~/.local/bin so gcloud is available without
needing ~/google-cloud-sdk/bin in PATH. Follows the same convention
as all other tools in the catalog.

Signed-off-by: Sebastian Mendel <sebastian.mendel@netresearch.de>
Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
Signed-off-by: Sebastian Mendel <sebastian.mendel@netresearch.de>
Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
Signed-off-by: Sebastian Mendel <sebastian.mendel@netresearch.de>
Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
Category reflects tool purpose, not implementation language.
target_dir: go_bin is sufficient for correct install path.

Signed-off-by: Sebastian Mendel <sebastian.mendel@netresearch.de>
Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
@CybotTM CybotTM merged commit ef4b273 into main Mar 6, 2026
11 checks passed
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.

1 participant