From 4c69e158e51f2a9e3cdb7cfbebcccc74cd7fd88a Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Fri, 26 Jul 2019 09:22:20 +0800 Subject: [PATCH] Fix bug create/edit wiki pages when code master branch protected (#7580) (#7623) * fix bug create/edit wiki pages when code master branch protected * improve FullPushingEnvironment function --- models/helper_environment.go | 8 ++++---- models/wiki.go | 8 +++++++- modules/pull/merge.go | 8 +++++++- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/models/helper_environment.go b/models/helper_environment.go index 0460fc3df..2095205db 100644 --- a/models/helper_environment.go +++ b/models/helper_environment.go @@ -12,13 +12,13 @@ import ( // PushingEnvironment returns an os environment to allow hooks to work on push func PushingEnvironment(doer *User, repo *Repository) []string { - return FullPushingEnvironment(doer, doer, repo, 0) + return FullPushingEnvironment(doer, doer, repo, repo.Name, 0) } // FullPushingEnvironment returns an os environment to allow hooks to work on push -func FullPushingEnvironment(author, committer *User, repo *Repository, prID int64) []string { +func FullPushingEnvironment(author, committer *User, repo *Repository, repoName string, prID int64) []string { isWiki := "false" - if strings.HasSuffix(repo.Name, ".wiki") { + if strings.HasSuffix(repoName, ".wiki") { isWiki = "true" } @@ -32,7 +32,7 @@ func FullPushingEnvironment(author, committer *User, repo *Repository, prID int6 "GIT_AUTHOR_EMAIL="+authorSig.Email, "GIT_COMMITTER_NAME="+committerSig.Name, "GIT_COMMITTER_EMAIL="+committerSig.Email, - EnvRepoName+"="+repo.Name, + EnvRepoName+"="+repoName, EnvRepoUsername+"="+repo.MustOwnerName(), EnvRepoIsWiki+"="+isWiki, EnvPusherName+"="+committer.Name, diff --git a/models/wiki.go b/models/wiki.go index 9ae338633..d47f58f5a 100644 --- a/models/wiki.go +++ b/models/wiki.go @@ -217,7 +217,13 @@ func (repo *Repository) updateWikiPage(doer *User, oldWikiName, newWikiName, con if err := git.Push(basePath, git.PushOptions{ Remote: "origin", Branch: fmt.Sprintf("%s:%s%s", commitHash.String(), git.BranchPrefix, "master"), - Env: PushingEnvironment(doer, repo), + Env: FullPushingEnvironment( + doer, + doer, + repo, + repo.Name+".wiki", + 0, + ), }); err != nil { log.Error("%v", err) return fmt.Errorf("Push: %v", err) diff --git a/modules/pull/merge.go b/modules/pull/merge.go index 3e5721ad7..ed2fe4837 100644 --- a/modules/pull/merge.go +++ b/modules/pull/merge.go @@ -240,7 +240,13 @@ func Merge(pr *models.PullRequest, doer *models.User, baseGitRepo *git.Repositor headUser = doer } - env := models.FullPushingEnvironment(headUser, doer, pr.BaseRepo, pr.ID) + env := models.FullPushingEnvironment( + headUser, + doer, + pr.BaseRepo, + pr.BaseRepo.Name, + pr.ID, + ) // Push back to upstream. if err := git.NewCommand("push", "origin", pr.BaseBranch).RunInDirTimeoutEnvPipeline(env, -1, tmpBasePath, nil, &errbuf); err != nil {