aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaulo Gomes <pjbgf@linux.com>2024-03-12 10:33:57 +0000
committerGitHub <noreply@github.com>2024-03-12 10:33:57 +0000
commit3f77e6f0292bdabb6368a42ef0f5fa925ed42f60 (patch)
tree8db501f37a122352ccb5a6120fe88b687e0d73c1
parent6af38e000608a795320cd17c99491853f0b8ad3a (diff)
parentd583a76f1c2240283e10949c3593eaa25232e860 (diff)
downloadgo-git-3f77e6f0292bdabb6368a42ef0f5fa925ed42f60.tar.gz
Merge pull request #1048 from pjbgf/fix-reset-validation
git: Add commit validation for Reset
-rw-r--r--options.go5
-rw-r--r--options_test.go6
2 files changed, 11 insertions, 0 deletions
diff --git a/options.go b/options.go
index 02248ad..d7776da 100644
--- a/options.go
+++ b/options.go
@@ -427,6 +427,11 @@ func (o *ResetOptions) Validate(r *Repository) error {
}
o.Commit = ref.Hash()
+ } else {
+ _, err := r.CommitObject(o.Commit)
+ if err != nil {
+ return fmt.Errorf("invalid reset option: %w", err)
+ }
}
return nil
diff --git a/options_test.go b/options_test.go
index 171222c..677c317 100644
--- a/options_test.go
+++ b/options_test.go
@@ -23,6 +23,12 @@ func (s *OptionsSuite) TestCommitOptionsParentsFromHEAD(c *C) {
c.Assert(o.Parents, HasLen, 1)
}
+func (s *OptionsSuite) TestResetOptionsCommitNotFound(c *C) {
+ o := ResetOptions{Commit: plumbing.NewHash("ab1b15c6f6487b4db16f10d8ec69bb8bf91dcabd")}
+ err := o.Validate(s.Repository)
+ c.Assert(err, NotNil)
+}
+
func (s *OptionsSuite) TestCommitOptionsCommitter(c *C) {
sig := &object.Signature{}