fix: fail when no commits found in range#11
Draft
agherzan wants to merge 3 commits into
Draft
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates gitlance to treat an empty commit range as an error (exit code 1) and increases CI visibility by emitting an error-level GitHub Actions annotation instead of a notice.
Changes:
- Exit with status
1when the resolved commit range contains no commits (previously exited0). - Switch the empty-range annotation from
::notice::to::error::. - Update the integration test to expect failure for an empty range.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
src/main.rs |
Changes empty-range handling to emit an error annotation and exit non-zero. |
tests/integration_tests.rs |
Updates the empty-range integration test to expect failure. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Enables validation of commit messages before the git object exists, allowing gitlance to work as a commit-msg hook. Comment lines are ignored, matching how a commit message is interpreted. The new mode/argument is mutually exclusive with the ref-based options (--base, --head, --repo, --skip-merge-commits), which are only meaningful when validating existing commits. Signed-off-by: Andrei Gherzan <andrei.gherzan@canonical.com>
When pushing a new branch, the pre-push hook derived its base from a single remote's HEAD. If that remote was behind (e.g. a fork whose main is a stale copy of upstream), it re-validated commits already reviewed and merged elsewhere, and could reject a push over commits the author never touched. Base validation on every remote-tracking ref instead: a commit already present on any remote has been published and does not need rechecking. Excluding a set of refs rather than a single base also lets the root commit be validated, which a single exclusive base can never reach. Closes: canonical#10 Signed-off-by: Andrei Gherzan <andrei.gherzan@canonical.com>
Change from exit 0 to exit 1 when the specified range contains no commits. This helps catch configuration errors in CI where an empty range likely indicates incorrect base/head references. Also change output from notice to error annotation for visibility. Signed-off-by: Andrei Gherzan <andrei.gherzan@canonical.com>
agherzan
force-pushed
the
ag/no-range-error
branch
from
July 23, 2026 00:24
14c43cf to
344ce10
Compare
agherzan
marked this pull request as draft
July 23, 2026 00:47
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Change from exit 0 to exit 1 when the specified range contains no commits. This helps catch configuration errors in CI where an empty range likely indicates incorrect base/head references.
Also change output from notice to error annotation for visibility.