Skip to content

Conversation

@janishorsts
Copy link
Collaborator

No description provided.

@janishorsts janishorsts self-assigned this Jan 2, 2026
@janishorsts janishorsts requested a review from a team as a code owner January 2, 2026 18:50
@janishorsts janishorsts requested review from kmannislands and removed request for a team January 2, 2026 18:50
@github-actions
Copy link

github-actions bot commented Jan 2, 2026

➖ Are we earthbuild yet?

No change in "earthly" occurrences

📈 Overall Progress

Branch Total Count
main 5737
This PR 5737
Difference +0

Keep up the great work migrating from Earthly to Earthbuild! 🚀

💡 Tips for finding more occurrences

Run locally to see detailed breakdown:

./.github/scripts/count-earthly.sh

Note that the goal is not to reach 0.
There is anticipated to be at least some occurences of earthly in the source code due to backwards compatibility with config files and language constructs.

@gemini-code-assist
Copy link

Summary of Changes

Hello @janishorsts, 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 primarily focuses on improving the codebase's quality and maintainability by addressing a wide range of issues identified by the gocritic linter. The changes involve refactoring conditional logic into more concise switch statements, optimizing common Go idioms, and standardizing code style across various files. Additionally, the handling of CLI exit codes has been improved to provide greater flexibility and testability, and the TestMain function in a test file was updated to follow standard Go practices.

Highlights

  • Codebase Refactoring for Linter Compliance: Addressed numerous code style and efficiency suggestions from the gocritic linter, including refactoring complex if-else if chains into more concise switch statements, optimizing slice operations, and standardizing comment formatting.
  • CLI Exit Handling Improvement: Modified CLI entry points (cmd/earthly/app/run.go, cmd/earthly/helper/autocomplete.go, cmd/earthly/main.go) to return exit codes instead of directly calling os.Exit(), which enhances testability and control flow.
  • Go Test Main Refactoring: Updated tests/go-project/main_test.go to use the standard TestMain(m *testing.M) pattern, which provides better control over test lifecycle management.
  • Specific Linter Suppressions: Added //nolint:gocritic comments in several places to explicitly suppress gocritic warnings where the existing code structure was deemed appropriate or for specific appendCombine cases.

🧠 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.

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 enables the gocritic linter and applies the resulting code improvements. The changes are mostly stylistic and refactoring, such as converting if-else chains to switch statements and simplifying else { if ... } blocks. A significant improvement is the refactoring of several functions to return an exit code instead of calling os.Exit directly, which enhances testability. Other changes include minor cleanups like using compound assignment operators and fixing comment formatting. The addition of nolint directives for some gocritic checks seems appropriate to handle potential false positives. Overall, these changes improve code quality and consistency. The pull request looks good.

@janishorsts janishorsts marked this pull request as draft January 3, 2026 08:34
@janishorsts janishorsts marked this pull request as ready for review January 3, 2026 11:05
@janishorsts janishorsts requested a review from gilescope January 3, 2026 12:35
Copy link

@gilescope gilescope left a comment

Choose a reason for hiding this comment

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

If we can get default case moved to end then I'm happy with this.

@gilescope gilescope enabled auto-merge (squash) January 7, 2026 17:05
@gilescope gilescope disabled auto-merge January 7, 2026 17:20
@gilescope gilescope merged commit 27dda1c into main Jan 7, 2026
88 checks passed
@gilescope gilescope deleted the chore-lint-gocritic branch January 7, 2026 17:20
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.

3 participants