probe if sha before exec git (#21467)
This commit is contained in:
parent
11ac14cfe1
commit
18622a0705
2 changed files with 23 additions and 2 deletions
|
@ -154,8 +154,8 @@ func (repo *Repository) searchCommits(id SHA1, opts SearchCommitsOptions) ([]*Co
|
||||||
// then let's iterate over them
|
// then let's iterate over them
|
||||||
if len(opts.Keywords) > 0 {
|
if len(opts.Keywords) > 0 {
|
||||||
for _, v := range opts.Keywords {
|
for _, v := range opts.Keywords {
|
||||||
// ignore anything below 4 characters as too unspecific
|
// ignore anything not matching a valid sha pattern
|
||||||
if len(v) >= 4 {
|
if IsValidSHAPattern(v) {
|
||||||
// create new git log command with 1 commit limit
|
// create new git log command with 1 commit limit
|
||||||
hashCmd := NewCommand(repo.Ctx, "log", "-1", prettyLogFormat)
|
hashCmd := NewCommand(repo.Ctx, "log", "-1", prettyLogFormat)
|
||||||
// add previous arguments except for --grep and --all
|
// add previous arguments except for --grep and --all
|
||||||
|
|
21
modules/git/sha1_test.go
Normal file
21
modules/git/sha1_test.go
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
// Copyright 2022 The Gitea Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a MIT-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
package git
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestIsValidSHAPattern(t *testing.T) {
|
||||||
|
assert.True(t, IsValidSHAPattern("fee1"))
|
||||||
|
assert.True(t, IsValidSHAPattern("abc000"))
|
||||||
|
assert.True(t, IsValidSHAPattern("9023902390239023902390239023902390239023"))
|
||||||
|
assert.False(t, IsValidSHAPattern("90239023902390239023902390239023902390239023"))
|
||||||
|
assert.False(t, IsValidSHAPattern("abc"))
|
||||||
|
assert.False(t, IsValidSHAPattern("123g"))
|
||||||
|
assert.False(t, IsValidSHAPattern("some random text"))
|
||||||
|
}
|
Reference in a new issue