From 6718ea6ff152155e4affc2493cfd0c634e3e228d Mon Sep 17 00:00:00 2001
From: Lauris BH <lauris@nix.lv>
Date: Wed, 20 Sep 2017 17:52:23 +0300
Subject: [PATCH] Fix can_push value to false in protected_branch (#2560)

---
 models/branches.go              |  1 +
 models/migrations/migrations.go |  2 ++
 models/migrations/v43.go        | 18 ++++++++++++++++++
 3 files changed, 21 insertions(+)
 create mode 100644 models/migrations/v43.go

diff --git a/models/branches.go b/models/branches.go
index 1c3c0d17be..c26ee7d890 100644
--- a/models/branches.go
+++ b/models/branches.go
@@ -26,6 +26,7 @@ type ProtectedBranch struct {
 	ID               int64  `xorm:"pk autoincr"`
 	RepoID           int64  `xorm:"UNIQUE(s)"`
 	BranchName       string `xorm:"UNIQUE(s)"`
+	CanPush          bool   `xorm:"NOT NULL DEFAULT false"`
 	EnableWhitelist  bool
 	WhitelistUserIDs []int64   `xorm:"JSON TEXT"`
 	WhitelistTeamIDs []int64   `xorm:"JSON TEXT"`
diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go
index d302b2c075..95b8e0774f 100644
--- a/models/migrations/migrations.go
+++ b/models/migrations/migrations.go
@@ -134,6 +134,8 @@ var migrations = []Migration{
 	NewMigration("add default value to user prohibit_login", addDefaultValueToUserProhibitLogin),
 	// v42 -> v43
 	NewMigration("add tags to releases and sync existing repositories", releaseAddColumnIsTagAndSyncTags),
+	// v43 -> v44
+	NewMigration("fix protected branch can push value to false", fixProtectedBranchCanPushValue),
 }
 
 // Migrate database to current version
diff --git a/models/migrations/v43.go b/models/migrations/v43.go
new file mode 100644
index 0000000000..b6351fa831
--- /dev/null
+++ b/models/migrations/v43.go
@@ -0,0 +1,18 @@
+// Copyright 2017 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package migrations
+
+import (
+	"code.gitea.io/gitea/models"
+
+	"github.com/go-xorm/xorm"
+)
+
+func fixProtectedBranchCanPushValue(x *xorm.Engine) error {
+	_, err := x.Cols("can_push").Update(&models.ProtectedBranch{
+		CanPush: false,
+	})
+	return err
+}