aboutsummaryrefslogtreecommitdiffstats
path: root/modules/git/repo_commit.go
diff options
context:
space:
mode:
Diffstat (limited to 'modules/git/repo_commit.go')
-rw-r--r--modules/git/repo_commit.go27
1 files changed, 24 insertions, 3 deletions
diff --git a/modules/git/repo_commit.go b/modules/git/repo_commit.go
index 146619373d..1ecd1f8891 100644
--- a/modules/git/repo_commit.go
+++ b/modules/git/repo_commit.go
@@ -237,9 +237,30 @@ func (repo *Repository) commitsByRange(id SHA1, page int) (*list.List, error) {
return repo.parsePrettyFormatLogToList(stdout)
}
-func (repo *Repository) searchCommits(id SHA1, keyword string, all bool) (*list.List, error) {
- cmd := NewCommand("log", id.String(), "-100", "-i", "--grep="+keyword, prettyLogFormat)
- if all {
+func (repo *Repository) searchCommits(id SHA1, opts SearchCommitsOptions) (*list.List, error) {
+ cmd := NewCommand("log", id.String(), "-100", "-i", prettyLogFormat)
+ if len(opts.Keywords) > 0 {
+ for _, v := range opts.Keywords {
+ cmd.AddArguments("--grep=" + v)
+ }
+ }
+ if len(opts.Authors) > 0 {
+ for _, v := range opts.Authors {
+ cmd.AddArguments("--author=" + v)
+ }
+ }
+ if len(opts.Committers) > 0 {
+ for _, v := range opts.Committers {
+ cmd.AddArguments("--committer=" + v)
+ }
+ }
+ if len(opts.After) > 0 {
+ cmd.AddArguments("--after=" + opts.After)
+ }
+ if len(opts.Before) > 0 {
+ cmd.AddArguments("--before=" + opts.Before)
+ }
+ if opts.All {
cmd.AddArguments("--all")
}
stdout, err := cmd.RunInDirBytes(repo.Path)