summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUnknwon <u@gogs.io>2015-10-18 17:18:45 -0400
committerUnknwon <u@gogs.io>2015-10-18 17:18:54 -0400
commit4dc6285715ccd1e90cb4e437a3c2b1d0b13d47cb (patch)
treef6ba3ef13ecf8763739944faf4708488e5dcc3fa
parent9825760817eab55708c0248a6cbd94376b7c7fe4 (diff)
downloadgitea-4dc6285715ccd1e90cb4e437a3c2b1d0b13d47cb.tar.gz
gitea-4dc6285715ccd1e90cb4e437a3c2b1d0b13d47cb.zip
add new status: checking
-rw-r--r--gogs.go2
-rw-r--r--models/issue.go20
-rw-r--r--routers/repo/pull.go2
-rw-r--r--templates/.VERSION2
4 files changed, 19 insertions, 7 deletions
diff --git a/gogs.go b/gogs.go
index a7d44a2aa6..8abca9f50e 100644
--- a/gogs.go
+++ b/gogs.go
@@ -17,7 +17,7 @@ import (
"github.com/gogits/gogs/modules/setting"
)
-const APP_VER = "0.6.16.1017 Beta"
+const APP_VER = "0.6.16.1018 Beta"
func init() {
runtime.GOMAXPROCS(runtime.NumCPU())
diff --git a/models/issue.go b/models/issue.go
index 0dd0b66370..5357cbf7b9 100644
--- a/models/issue.go
+++ b/models/issue.go
@@ -904,10 +904,18 @@ func UpdateIssueUsersByMentions(uids []int64, iid int64) error {
type PullRequestType int
const (
- PULL_REQUEST_GOGS = iota
+ PULL_REQUEST_GOGS PullRequestType = iota
PLLL_ERQUEST_GIT
)
+type PullRequestStatus int
+
+const (
+ PULL_REQUEST_STATUS_CONFLICT PullRequestStatus = iota
+ PULL_REQUEST_STATUS_CHECKING
+ PULL_REQUEST_STATUS_MERGEABLE
+)
+
// PullRequest represents relation between pull request and repositories.
type PullRequest struct {
ID int64 `xorm:"pk autoincr"`
@@ -923,7 +931,7 @@ type PullRequest struct {
MergeBase string `xorm:"VARCHAR(40)"`
MergedCommitID string `xorm:"VARCHAR(40)"`
Type PullRequestType
- CanAutoMerge bool
+ Status PullRequestStatus
HasMerged bool
Merged time.Time
MergerID int64
@@ -963,6 +971,10 @@ func (pr *PullRequest) AfterSet(colName string, _ xorm.Cell) {
}
}
+func (pr *PullRequest) CanAutoMerge() bool {
+ return pr.Status == PULL_REQUEST_STATUS_MERGEABLE
+}
+
// Merge merges pull request to base repository.
func (pr *PullRequest) Merge(doer *User, baseGitRepo *git.Repository) (err error) {
sess := x.NewSession()
@@ -1076,13 +1088,13 @@ func NewPullRequest(repo *Repository, pull *Issue, labelIDs []int64, uuids []str
return fmt.Errorf("save patch: %v", err)
}
- pr.CanAutoMerge = true
+ pr.Status = PULL_REQUEST_STATUS_MERGEABLE
_, stderr, err := process.ExecDir(-1, repo.LocalCopyPath(),
fmt.Sprintf("NewPullRequest(git apply --check): %d", repo.ID),
"git", "apply", "--check", patchPath)
if err != nil {
if strings.Contains(stderr, "patch does not apply") {
- pr.CanAutoMerge = false
+ pr.Status = PULL_REQUEST_STATUS_CONFLICT
} else {
return fmt.Errorf("git apply --check: %v - %s", err, stderr)
}
diff --git a/routers/repo/pull.go b/routers/repo/pull.go
index 40c83351ca..13236a219f 100644
--- a/routers/repo/pull.go
+++ b/routers/repo/pull.go
@@ -374,7 +374,7 @@ func MergePullRequest(ctx *middleware.Context) {
return
}
- if !pr.CanAutoMerge || pr.HasMerged {
+ if !pr.CanAutoMerge() || pr.HasMerged {
ctx.Handle(404, "MergePullRequest", nil)
return
}
diff --git a/templates/.VERSION b/templates/.VERSION
index ddb56b4d0b..df1adfbcb7 100644
--- a/templates/.VERSION
+++ b/templates/.VERSION
@@ -1 +1 @@
-0.6.16.1017 Beta \ No newline at end of file
+0.6.16.1018 Beta \ No newline at end of file