Skip to content

Conversation

@jonshaffer
Copy link
Member

Summary

  • Remove unnecessary verified field from homebrew cask config (fixes homebrew-tap CI failure)
  • Add brew audit --cask validation to CI release config check workflow
  • Add goreleaser to nix dev environment via go install
  • Add lefthook for pre-commit goreleaser validation

Problem

The homebrew-tap CI was failing because the generated dsops.rb cask had an unnecessary verified parameter. The verified field is only needed when the download URL domain differs from the homepage domain - since both use github.com/systmms/dsops, Homebrew audit flagged it as redundant.

Solution

  1. Fix: Remove the verified field from .goreleaser.yml
  2. Prevention: Add brew audit --cask to CI to catch these issues before they reach homebrew-tap
  3. Dev experience: Add goreleaser to nix dev environment and lefthook pre-commit validation

Test plan

  • CI homebrew-cask-audit job passes
  • Verify homebrew-tap CI passes after next release

@jonshaffer jonshaffer requested a review from Copilot January 9, 2026 22:42
@gemini-code-assist
Copy link

Summary of Changes

Hello @jonshaffer, 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 addresses a critical Homebrew CI failure by correcting the .goreleaser.yml configuration to remove an unnecessary verified field. It also proactively strengthens the release pipeline by introducing an automated brew audit --cask step in CI and significantly improves the developer experience by integrating goreleaser into the Nix development environment, complete with pre-commit validation using lefthook.

Highlights

  • Homebrew Cask Fix: Removed the redundant verified field from .goreleaser.yml to resolve a Homebrew-tap CI failure caused by an unnecessary URL verification parameter.
  • CI Validation: Integrated brew audit --cask into the CI release configuration check workflow to proactively catch and prevent future Homebrew cask issues.
  • Dev Environment Enhancement: Added goreleaser to the Nix development environment via go install, ensuring developers have access to the latest version for consistent release processes.
  • Pre-commit Hook: Implemented lefthook with a pre-commit hook that runs goreleaser check to validate the .goreleaser.yml configuration before commits, improving development workflow.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Ignored Files
  • Ignored by pattern: .github/workflows/** (1)
    • .github/workflows/release-config-check.yml
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 resolves a Homebrew release issue by removing a redundant verified field from the GoReleaser configuration. It also enhances the development workflow by adding GoReleaser to the Nix environment and introducing a lefthook pre-commit hook to validate the GoReleaser configuration. My review found a small but critical issue with the installation path for GoReleaser in the Nix shell hook, which would cause the setup to fail. A suggestion to correct this path is provided.


if ! command -v goreleaser &> /dev/null; then
echo "📦 Installing goreleaser..."
go install github.com/goreleaser/goreleaser/v2@latest

Choose a reason for hiding this comment

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

high

The go install path for GoReleaser is incorrect. The GoReleaser module path does not include /v2, so the current command will fail. To fix this, you should use the correct module path github.com/goreleaser/goreleaser@latest.

              go install github.com/goreleaser/goreleaser@latest

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This pull request fixes a Homebrew tap CI failure by removing the unnecessary verified field from the GoReleaser homebrew cask configuration and adds preventive measures to catch similar issues in the future.

Key Changes:

  • Removed the redundant verified field from .goreleaser.yml homebrew cask config (the field is only needed when download URL domain differs from homepage domain)
  • Added a new CI job to audit generated Homebrew casks before they reach the tap repository
  • Integrated goreleaser into the Nix development environment and added pre-commit validation via lefthook

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.

File Description
.goreleaser.yml Removed unnecessary url.verified field that was causing Homebrew audit failures
.github/workflows/release-config-check.yml Added homebrew-cask-audit job to validate generated casks with brew audit --cask
flake.nix Added goreleaser installation via go install in the Nix shell hook for development
lefthook.yml Added pre-commit hook to run goreleaser check when .goreleaser.yml is modified

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 98 to 100
homepage: "https://github.com/systmms/dsops"
description: "Secret management for development and production environments"
skip_upload: auto # Skip for pre-releases
Copy link

Copilot AI Jan 9, 2026

Choose a reason for hiding this comment

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

The corresponding spec file at specs/020-release-distribution/contracts/goreleaser.yaml still contains the verified field (lines 103-104) that was removed here. The spec documentation should be updated to match the actual implementation to maintain consistency.

Copilot uses AI. Check for mistakes.
…nfig

The verified field is only needed when the download URL domain differs
from the homepage domain. Since both use github.com/systmms/dsops,
Homebrew audit flags this as redundant.

Fixes homebrew-tap CI audit failure.
Install goreleaser via go install in shellHook to get the latest version.
The nixpkgs version (2.11.2) predates dockers_v2 support (requires 2.12+).
Run brew audit --cask on generated cask during snapshot builds to catch
issues like unnecessary verified fields before they reach homebrew-tap.

Uses macOS runner where Homebrew runs natively.
Validates .goreleaser.yml syntax on commit when the file is modified.
Install with: npx lefthook install
@jonshaffer jonshaffer force-pushed the fix/homebrew-cask-audit-validation branch from 7ee9c47 to b6b7852 Compare January 9, 2026 23:02
Remove verified field from spec contract to match the actual
.goreleaser.yml configuration.
Homebrew doesn't allow `brew audit [path]` - must use tap name.
Create a local tap and audit by name instead.
@jonshaffer jonshaffer merged commit d1c9770 into main Jan 10, 2026
9 checks passed
@jonshaffer jonshaffer deleted the fix/homebrew-cask-audit-validation branch January 10, 2026 10:39
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.

2 participants