Bläddra i källkod

Fix #3315: Release dont use tag creation date (#3374)

* Fix #3315: Release dont use tag creation date

* Simplify code and apply gofmt

* remove useless block (ctx.Repo.GitRepo.GetTag) on EditReleasePost

* apply gofmt on modified files
Thibault Meyer 8 år sedan
förälder
incheckning
30fda0f1ae
2 ändrade filer med 13 tillägg och 1 borttagningar
  1. 3 1
      models/release.go
  2. 10 0
      routers/repo/release.go

+ 3 - 1
models/release.go

@@ -39,7 +39,9 @@ type Release struct {
 }
 
 func (r *Release) BeforeInsert() {
-	r.CreatedUnix = time.Now().Unix()
+	if r.CreatedUnix == 0 {
+		r.CreatedUnix = time.Now().Unix()
+	}
 }
 
 func (r *Release) AfterSet(colName string, _ xorm.Cell) {

+ 10 - 0
routers/repo/release.go

@@ -167,6 +167,15 @@ func NewReleasePost(ctx *context.Context, form auth.NewReleaseForm) {
 		return
 	}
 
+	var tagCreatedUnix int64
+	tag, err := ctx.Repo.GitRepo.GetTag(form.TagName)
+	if err == nil {
+		commit, err := tag.Commit()
+		if err == nil {
+			tagCreatedUnix = commit.Author.When.Unix()
+		}
+	}
+
 	commit, err := ctx.Repo.GitRepo.GetBranchCommit(form.Target)
 	if err != nil {
 		ctx.Handle(500, "GetBranchCommit", err)
@@ -190,6 +199,7 @@ func NewReleasePost(ctx *context.Context, form auth.NewReleaseForm) {
 		Note:         form.Content,
 		IsDraft:      len(form.Draft) > 0,
 		IsPrerelease: form.Prerelease,
+		CreatedUnix:  tagCreatedUnix,
 	}
 
 	if err = models.CreateRelease(ctx.Repo.GitRepo, rel); err != nil {