diff options
Diffstat (limited to 'modules/repofiles/update.go')
-rw-r--r-- | modules/repofiles/update.go | 15 |
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 } |