diff options
author | a1012112796 <1012112796@qq.com> | 2021-01-29 16:57:45 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-29 16:57:45 +0800 |
commit | f19da14c34f3a86a77b45de77f48109fa5edcf78 (patch) | |
tree | 4fff1a4533cebf812334327e2bfaf9743a90bb64 /modules/repofiles | |
parent | f761c82c94f27193bfb6cd0648e11e491eda4880 (diff) | |
download | gitea-f19da14c34f3a86a77b45de77f48109fa5edcf78.tar.gz gitea-f19da14c34f3a86a77b45de77f48109fa5edcf78.zip |
enhancement: add signoff option in commit form (#14516)
Signed-off-by: a1012112796 <1012112796@qq.com>
Diffstat (limited to 'modules/repofiles')
-rw-r--r-- | modules/repofiles/delete.go | 5 | ||||
-rw-r--r-- | modules/repofiles/temp_repo.go | 13 | ||||
-rw-r--r-- | modules/repofiles/update.go | 5 | ||||
-rw-r--r-- | modules/repofiles/upload.go | 3 |
4 files changed, 18 insertions, 8 deletions
diff --git a/modules/repofiles/delete.go b/modules/repofiles/delete.go index 8343776c47..2b8ddf3cc2 100644 --- a/modules/repofiles/delete.go +++ b/modules/repofiles/delete.go @@ -25,6 +25,7 @@ type DeleteRepoFileOptions struct { Author *IdentityOptions Committer *IdentityOptions Dates *CommitDateOptions + Signoff bool } // DeleteRepoFile deletes a file in the given repository @@ -199,9 +200,9 @@ func DeleteRepoFile(repo *models.Repository, doer *models.User, opts *DeleteRepo // Now commit the tree var commitHash string if opts.Dates != nil { - commitHash, err = t.CommitTreeWithDate(author, committer, treeHash, message, opts.Dates.Author, opts.Dates.Committer) + commitHash, err = t.CommitTreeWithDate(author, committer, treeHash, message, opts.Signoff, opts.Dates.Author, opts.Dates.Committer) } else { - commitHash, err = t.CommitTree(author, committer, treeHash, message) + commitHash, err = t.CommitTree(author, committer, treeHash, message, opts.Signoff) } if err != nil { return nil, err diff --git a/modules/repofiles/temp_repo.go b/modules/repofiles/temp_repo.go index a02bba65e9..99c62a16c6 100644 --- a/modules/repofiles/temp_repo.go +++ b/modules/repofiles/temp_repo.go @@ -185,12 +185,12 @@ func (t *TemporaryUploadRepository) GetLastCommitByRef(ref string) (string, erro } // CommitTree creates a commit from a given tree for the user with provided message -func (t *TemporaryUploadRepository) CommitTree(author, committer *models.User, treeHash string, message string) (string, error) { - return t.CommitTreeWithDate(author, committer, treeHash, message, time.Now(), time.Now()) +func (t *TemporaryUploadRepository) CommitTree(author, committer *models.User, treeHash string, message string, signoff bool) (string, error) { + return t.CommitTreeWithDate(author, committer, treeHash, message, signoff, time.Now(), time.Now()) } // CommitTreeWithDate creates a commit from a given tree for the user with provided message -func (t *TemporaryUploadRepository) CommitTreeWithDate(author, committer *models.User, treeHash string, message string, authorDate, committerDate time.Time) (string, error) { +func (t *TemporaryUploadRepository) CommitTreeWithDate(author, committer *models.User, treeHash string, message string, signoff bool, authorDate, committerDate time.Time) (string, error) { authorSig := author.NewGitSig() committerSig := committer.NewGitSig() @@ -236,6 +236,13 @@ func (t *TemporaryUploadRepository) CommitTreeWithDate(author, committer *models } } + if signoff { + // Signed-off-by + _, _ = messageBytes.WriteString("\n") + _, _ = messageBytes.WriteString("Signed-off-by: ") + _, _ = messageBytes.WriteString(committerSig.String()) + } + env = append(env, "GIT_COMMITTER_NAME="+committerSig.Name, "GIT_COMMITTER_EMAIL="+committerSig.Email, diff --git a/modules/repofiles/update.go b/modules/repofiles/update.go index a1a9c624d7..0ee1ada34c 100644 --- a/modules/repofiles/update.go +++ b/modules/repofiles/update.go @@ -51,6 +51,7 @@ type UpdateRepoFileOptions struct { Author *IdentityOptions Committer *IdentityOptions Dates *CommitDateOptions + Signoff bool } func detectEncodingAndBOM(entry *git.TreeEntry, repo *models.Repository) (string, bool) { @@ -417,9 +418,9 @@ func CreateOrUpdateRepoFile(repo *models.Repository, doer *models.User, opts *Up // Now commit the tree var commitHash string if opts.Dates != nil { - commitHash, err = t.CommitTreeWithDate(author, committer, treeHash, message, opts.Dates.Author, opts.Dates.Committer) + commitHash, err = t.CommitTreeWithDate(author, committer, treeHash, message, opts.Signoff, opts.Dates.Author, opts.Dates.Committer) } else { - commitHash, err = t.CommitTree(author, committer, treeHash, message) + commitHash, err = t.CommitTree(author, committer, treeHash, message, opts.Signoff) } if err != nil { return nil, err diff --git a/modules/repofiles/upload.go b/modules/repofiles/upload.go index e3ec48ec0f..c261e188c1 100644 --- a/modules/repofiles/upload.go +++ b/modules/repofiles/upload.go @@ -24,6 +24,7 @@ type UploadRepoFileOptions struct { TreePath string Message string Files []string // In UUID format. + Signoff bool } type uploadInfo struct { @@ -143,7 +144,7 @@ func UploadRepoFiles(repo *models.Repository, doer *models.User, opts *UploadRep committer := doer // Now commit the tree - commitHash, err := t.CommitTree(author, committer, treeHash, opts.Message) + commitHash, err := t.CommitTree(author, committer, treeHash, opts.Message, opts.Signoff) if err != nil { return err } |