diff options
author | John Olheiser <john.olheiser@gmail.com> | 2020-08-23 11:02:35 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-23 17:02:35 +0100 |
commit | 43a397ce9ae082e0c6e9367e31743e1cb4d71c20 (patch) | |
tree | 191f7510be4041eaa684bba99480ec0e4bc0bf87 /modules/private | |
parent | e7d65cbc6e50d70753f7228c46cbff0cffde7eba (diff) | |
download | gitea-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.go | 22 |
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 } |