-
Notifications
You must be signed in to change notification settings - Fork 138
makefile: mount Git metadata for worktree support in Docker lint runs #1925
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Golangci-lint uses `issues.new-from-rev` to compare against Git history, but worktrees store .git metadata outside the worktree root. When lint ran in Docker, that history wasn't mounted, causing new-from-rev filtering to fail. Detect the Git dir and common dir via `git rev-parse` and bind-mount them into the container when they are absolute and distinct. This preserves existing cache mounts and maintains consistent behavior across local and CI environments.
Summary of ChangesHello @ffranr, 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 resolves an issue where Highlights
🧠 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 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.
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 introduces a well-thought-out solution to support Git worktrees during Docker-based linting. The changes in the Makefile correctly identify the git directory and common directory using git rev-parse, and conditionally add them as volume mounts to the Docker command only when they are absolute paths. This ensures that golangci-lint can access the full Git history even when using worktrees, which store metadata outside the project root. The implementation is clean, correctly handles the case of standard repositories vs. worktrees, and is applied to both CI and local Docker runs. The logic is sound and I see no issues with the proposed changes.
Pull Request Test Coverage Report for Build 20712695291Details
💛 - Coveralls |
jtobin
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Golangci-lint uses
issues.new-from-revto compare against Git history, but worktrees store .git metadata outside the worktree root. When lint ran in Docker, that history wasn't mounted, causing new-from-rev filtering to fail.Detect the Git dir and common dir via
git rev-parseand bind-mount them into the container when they are absolute and distinct. This preserves existing cache mounts and maintains consistent behavior across local and CI environments.