Przeglądaj źródła

#2697 fix panic when close issue via commit message

Unknwon 8 lat temu
rodzic
commit
129638117f
7 zmienionych plików z 11 dodań i 12 usunięć
  1. 1 1
      README.md
  2. 1 1
      gogs.go
  3. 2 2
      models/action.go
  4. 4 4
      models/issue.go
  5. 1 1
      models/pull.go
  6. 1 2
      routers/repo/issue.go
  7. 1 1
      templates/.VERSION

+ 1 - 1
README.md

@@ -3,7 +3,7 @@ Gogs - Go Git Service [![Build Status](https://travis-ci.org/gogits/gogs.svg?bra
 
 ![](https://github.com/gogits/gogs/blob/master/public/img/gogs-large-resize.png?raw=true)
 
-##### Current version: 0.8.44
+##### Current version: 0.8.45
 
 | Web | UI  | Preview  |
 |:-------------:|:-------:|:-------:|

+ 1 - 1
gogs.go

@@ -17,7 +17,7 @@ import (
 	"github.com/gogits/gogs/modules/setting"
 )
 
-const APP_VER = "0.8.44.0225"
+const APP_VER = "0.8.45.0225"
 
 func init() {
 	runtime.GOMAXPROCS(runtime.NumCPU())

+ 2 - 2
models/action.go

@@ -368,7 +368,7 @@ func updateIssuesCommit(u *User, repo *Repository, repoUserName, repoName string
 				continue
 			}
 
-			if err = issue.ChangeStatus(u, true); err != nil {
+			if err = issue.ChangeStatus(u, repo, true); err != nil {
 				return err
 			}
 		}
@@ -408,7 +408,7 @@ func updateIssuesCommit(u *User, repo *Repository, repoUserName, repoName string
 				continue
 			}
 
-			if err = issue.ChangeStatus(u, false); err != nil {
+			if err = issue.ChangeStatus(u, repo, false); err != nil {
 				return err
 			}
 		}

+ 4 - 4
models/issue.go

@@ -218,7 +218,7 @@ func (i *Issue) ReadBy(uid int64) error {
 	return UpdateIssueUserByRead(uid, i.ID)
 }
 
-func (i *Issue) changeStatus(e *xorm.Session, doer *User, isClosed bool) (err error) {
+func (i *Issue) changeStatus(e *xorm.Session, doer *User, repo *Repository, isClosed bool) (err error) {
 	if i.IsClosed == isClosed {
 		return nil
 	}
@@ -251,7 +251,7 @@ func (i *Issue) changeStatus(e *xorm.Session, doer *User, isClosed bool) (err er
 	}
 
 	// New action comment.
-	if _, err = createStatusComment(e, doer, i.Repo, i); err != nil {
+	if _, err = createStatusComment(e, doer, repo, i); err != nil {
 		return err
 	}
 
@@ -259,14 +259,14 @@ func (i *Issue) changeStatus(e *xorm.Session, doer *User, isClosed bool) (err er
 }
 
 // ChangeStatus changes issue status to open/closed.
-func (i *Issue) ChangeStatus(doer *User, isClosed bool) (err error) {
+func (i *Issue) ChangeStatus(doer *User, repo *Repository, isClosed bool) (err error) {
 	sess := x.NewSession()
 	defer sessionRelease(sess)
 	if err = sess.Begin(); err != nil {
 		return err
 	}
 
-	if err = i.changeStatus(sess, doer, isClosed); err != nil {
+	if err = i.changeStatus(sess, doer, repo, isClosed); err != nil {
 		return err
 	}
 

+ 1 - 1
models/pull.go

@@ -138,7 +138,7 @@ func (pr *PullRequest) Merge(doer *User, baseGitRepo *git.Repository) (err error
 		return err
 	}
 
-	if err = pr.Issue.changeStatus(sess, doer, true); err != nil {
+	if err = pr.Issue.changeStatus(sess, doer, pr.Issue.Repo, true); err != nil {
 		return fmt.Errorf("Issue.changeStatus: %v", err)
 	}
 

+ 1 - 2
routers/repo/issue.go

@@ -914,8 +914,7 @@ func NewComment(ctx *middleware.Context, form auth.CreateCommentForm) {
 			if pr != nil {
 				ctx.Flash.Info(ctx.Tr("repo.pulls.open_unmerged_pull_exists", pr.Index))
 			} else {
-				issue.Repo = ctx.Repo.Repository
-				if err = issue.ChangeStatus(ctx.User, form.Status == "close"); err != nil {
+				if err = issue.ChangeStatus(ctx.User, ctx.Repo.Repository, form.Status == "close"); err != nil {
 					log.Error(4, "ChangeStatus: %v", err)
 				} else {
 					log.Trace("Issue [%d] status changed to closed: %v", issue.ID, issue.IsClosed)

+ 1 - 1
templates/.VERSION

@@ -1 +1 @@
-0.8.44.0225
+0.8.45.0225