Skip to content

Commit

Permalink
probe if sha before exec git (go-gitea#21467)
Browse files Browse the repository at this point in the history
  • Loading branch information
6543 authored Oct 17, 2022
1 parent 11ac14c commit 18622a0
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 2 deletions.
4 changes: 2 additions & 2 deletions modules/git/repo_commit.go
Original file line number Diff line number Diff line change
Expand Up @@ -154,8 +154,8 @@ func (repo *Repository) searchCommits(id SHA1, opts SearchCommitsOptions) ([]*Co
// then let's iterate over them
if len(opts.Keywords) > 0 {
for _, v := range opts.Keywords {
// ignore anything below 4 characters as too unspecific
if len(v) >= 4 {
// ignore anything not matching a valid sha pattern
if IsValidSHAPattern(v) {
// create new git log command with 1 commit limit
hashCmd := NewCommand(repo.Ctx, "log", "-1", prettyLogFormat)
// add previous arguments except for --grep and --all
Expand Down
21 changes: 21 additions & 0 deletions modules/git/sha1_test.go
Original file line number Diff line number Diff line change
@@ -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"))
}

0 comments on commit 18622a0

Please sign in to comment.