summaryrefslogtreecommitdiffstats
path: root/modules/private
diff options
context:
space:
mode:
authorJohn Olheiser <john.olheiser@gmail.com>2020-08-23 11:02:35 -0500
committerGitHub <noreply@github.com>2020-08-23 17:02:35 +0100
commit43a397ce9ae082e0c6e9367e31743e1cb4d71c20 (patch)
tree191f7510be4041eaa684bba99480ec0e4bc0bf87 /modules/private
parente7d65cbc6e50d70753f7228c46cbff0cffde7eba (diff)
downloadgitea-43a397ce9ae082e0c6e9367e31743e1cb4d71c20.tar.gz
gitea-43a397ce9ae082e0c6e9367e31743e1cb4d71c20.zip
Initial support for push options (#12169)
* Initial support for push options Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix misspelling 🤦 Signed-off-by: jolheiser <john.olheiser@gmail.com> * Fix formatting after conflict resolution * defer close git repo * According the GitLab documentation, git >= 2.10 Signed-off-by: jolheiser <john.olheiser@gmail.com> * Words are hard. Thanks @mrsdizzie :sweat_smile: Co-authored-by: mrsdizzie <info@mrsdizzie.com> * Only update if there are push options Signed-off-by: jolheiser <john.olheiser@gmail.com> Co-authored-by: mrsdizzie <info@mrsdizzie.com>
Diffstat (limited to 'modules/private')
-rw-r--r--modules/private/hook.go22
1 files changed, 22 insertions, 0 deletions
diff --git a/modules/private/hook.go b/modules/private/hook.go
index 010fc4d724..84d66943ba 100644
--- a/modules/private/hook.go
+++ b/modules/private/hook.go
@@ -9,6 +9,7 @@ import (
"fmt"
"net/http"
"net/url"
+ "strconv"
"time"
"code.gitea.io/gitea/modules/setting"
@@ -19,8 +20,28 @@ const (
GitAlternativeObjectDirectories = "GIT_ALTERNATE_OBJECT_DIRECTORIES"
GitObjectDirectory = "GIT_OBJECT_DIRECTORY"
GitQuarantinePath = "GIT_QUARANTINE_PATH"
+ GitPushOptionCount = "GIT_PUSH_OPTION_COUNT"
)
+// GitPushOptions is a wrapper around a map[string]string
+type GitPushOptions map[string]string
+
+// GitPushOptions keys
+const (
+ GitPushOptionRepoPrivate = "repo.private"
+ GitPushOptionRepoTemplate = "repo.template"
+)
+
+// Bool checks for a key in the map and parses as a boolean
+func (g GitPushOptions) Bool(key string, def bool) bool {
+ if val, ok := g[key]; ok {
+ if b, err := strconv.ParseBool(val); err == nil {
+ return b
+ }
+ }
+ return def
+}
+
// HookOptions represents the options for the Hook calls
type HookOptions struct {
OldCommitIDs []string
@@ -31,6 +52,7 @@ type HookOptions struct {
GitObjectDirectory string
GitAlternativeObjectDirectories string
GitQuarantinePath string
+ GitPushOptions GitPushOptions
ProtectedBranchID int64
IsDeployKey bool
}