aboutsummaryrefslogtreecommitdiffstats
path: root/modules/repofiles/update.go
diff options
context:
space:
mode:
Diffstat (limited to 'modules/repofiles/update.go')
-rw-r--r--modules/repofiles/update.go15
1 files changed, 14 insertions, 1 deletions
diff --git a/modules/repofiles/update.go b/modules/repofiles/update.go
index 4d2f1d5f04..8a95b4422c 100644
--- a/modules/repofiles/update.go
+++ b/modules/repofiles/update.go
@@ -10,6 +10,7 @@ import (
"fmt"
"path"
"strings"
+ "time"
"code.gitea.io/gitea/models"
"code.gitea.io/gitea/modules/cache"
@@ -31,6 +32,12 @@ type IdentityOptions struct {
Email string
}
+// CommitDateOptions store dates for GIT_AUTHOR_DATE and GIT_COMMITTER_DATE
+type CommitDateOptions struct {
+ Author time.Time
+ Committer time.Time
+}
+
// UpdateRepoFileOptions holds the repository file update options
type UpdateRepoFileOptions struct {
LastCommitID string
@@ -44,6 +51,7 @@ type UpdateRepoFileOptions struct {
IsNewFile bool
Author *IdentityOptions
Committer *IdentityOptions
+ Dates *CommitDateOptions
}
func detectEncodingAndBOM(entry *git.TreeEntry, repo *models.Repository) (string, bool) {
@@ -371,7 +379,12 @@ func CreateOrUpdateRepoFile(repo *models.Repository, doer *models.User, opts *Up
}
// Now commit the tree
- commitHash, err := t.CommitTree(author, committer, treeHash, message)
+ var commitHash string
+ if opts.Dates != nil {
+ commitHash, err = t.CommitTreeWithDate(author, committer, treeHash, message, opts.Dates.Author, opts.Dates.Committer)
+ } else {
+ commitHash, err = t.CommitTree(author, committer, treeHash, message)
+ }
if err != nil {
return nil, err
}