From 43a397ce9ae082e0c6e9367e31743e1cb4d71c20 Mon Sep 17 00:00:00 2001 From: John Olheiser Date: Sun, 23 Aug 2020 11:02:35 -0500 Subject: Initial support for push options (#12169) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Initial support for push options Signed-off-by: jolheiser * Fix misspelling 🤦 Signed-off-by: jolheiser * Fix formatting after conflict resolution * defer close git repo * According the GitLab documentation, git >= 2.10 Signed-off-by: jolheiser * Words are hard. Thanks @mrsdizzie :sweat_smile: Co-authored-by: mrsdizzie * Only update if there are push options Signed-off-by: jolheiser Co-authored-by: mrsdizzie --- routers/private/hook.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'routers') diff --git a/routers/private/hook.go b/routers/private/hook.go index 6cdc5393f4..2bccca3e3e 100644 --- a/routers/private/hook.go +++ b/routers/private/hook.go @@ -436,6 +436,18 @@ func HookPostReceive(ctx *macaron.Context, opts private.HookOptions) { } } + // Push Options + if repo != nil && len(opts.GitPushOptions) > 0 { + repo.IsPrivate = opts.GitPushOptions.Bool(private.GitPushOptionRepoPrivate, repo.IsPrivate) + repo.IsTemplate = opts.GitPushOptions.Bool(private.GitPushOptionRepoTemplate, repo.IsTemplate) + if err := models.UpdateRepositoryCols(repo, "is_private", "is_template"); err != nil { + log.Error("Failed to Update: %s/%s Error: %v", ownerName, repoName, err) + ctx.JSON(http.StatusInternalServerError, private.HookPostReceiveResult{ + Err: fmt.Sprintf("Failed to Update: %s/%s Error: %v", ownerName, repoName, err), + }) + } + } + results := make([]private.HookPostReceiveBranchResult, 0, len(opts.OldCommitIDs)) // We have to reload the repo in case its state is changed above -- cgit v1.2.3