feat: add require-signed-commits hook#1
Conversation
Checks commit.gpgsign=true and user.signingkey is set before allowing a commit. Blocks unsigned commits in non-interactive shells (e.g. agentic AI workflows) where signing can silently fall through. Usage in .pre-commit-config.yaml: - repo: https://github.com/injectedfusion/pre-commit-hooks rev: <tag> hooks: - id: require-signed-commits
Summary of ChangesHello @injectedfusion, 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 enhances repository security and integrity by introducing a new pre-commit hook. This hook ensures that all commits are signed, preventing unsigned commits from being pushed, which is particularly crucial for maintaining an auditable and secure commit history in automated development environments. It provides immediate feedback and instructions to developers if their Git configuration does not meet the signing requirements. 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. 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.
Code Review
This pull request adds a new pre-commit hook to enforce that all commits are signed. The hook is implemented as a shell script and configured in .pre-commit-hooks.yaml. The overall approach is sound. My review found a couple of minor issues in the shell script: an inaccurate comment that misrepresents the script's logic, and an unused variable. I've provided suggestions to correct these for better clarity and maintainability.
|
/gemini review |
|
@claude please review this PR |
There was a problem hiding this comment.
Code Review
The pull request introduces a new pre-commit hook to enforce signed commits, which is a good security practice, especially for automated workflows. The implementation correctly checks for commit.gpgsign and user.signingkey and provides clear instructions to the user. The .pre-commit-hooks.yaml entry is also correctly configured. The overall approach is sound and addresses the stated motivation effectively.
Summary
hooks/require-signed-commits.sh— checkscommit.gpgsign=trueanduser.signingkeyis configured before allowing a commit.pre-commit-hooks.yamlMotivation
Unsigned commits slipping through non-interactive shells (e.g. agentic AI workflows) is a real failure mode. This hook enforces signing discipline at the pre-commit layer.
Usage
Test plan
commit.gpgsignis nottrueuser.signingkeyis unsetrk1-k8s-apps.pre-commit-config.yamlafter tag