Rename models.ProtectedBranchRepoID to models.EnvRepoID and ensure EnvPusherEmail is set (#12646)
Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
parent
17fbbe97d7
commit
d257485bc0
7 changed files with 32 additions and 16 deletions
|
@ -170,7 +170,7 @@ Gitea or set your environment appropriately.`, "")
|
||||||
username := os.Getenv(models.EnvRepoUsername)
|
username := os.Getenv(models.EnvRepoUsername)
|
||||||
reponame := os.Getenv(models.EnvRepoName)
|
reponame := os.Getenv(models.EnvRepoName)
|
||||||
userID, _ := strconv.ParseInt(os.Getenv(models.EnvPusherID), 10, 64)
|
userID, _ := strconv.ParseInt(os.Getenv(models.EnvPusherID), 10, 64)
|
||||||
prID, _ := strconv.ParseInt(os.Getenv(models.ProtectedBranchPRID), 10, 64)
|
prID, _ := strconv.ParseInt(os.Getenv(models.EnvPRID), 10, 64)
|
||||||
isDeployKey, _ := strconv.ParseBool(os.Getenv(models.EnvIsDeployKey))
|
isDeployKey, _ := strconv.ParseBool(os.Getenv(models.EnvIsDeployKey))
|
||||||
|
|
||||||
hookOptions := private.HookOptions{
|
hookOptions := private.HookOptions{
|
||||||
|
|
|
@ -206,9 +206,10 @@ func runServ(c *cli.Context) error {
|
||||||
os.Setenv(models.EnvRepoName, results.RepoName)
|
os.Setenv(models.EnvRepoName, results.RepoName)
|
||||||
os.Setenv(models.EnvRepoUsername, results.OwnerName)
|
os.Setenv(models.EnvRepoUsername, results.OwnerName)
|
||||||
os.Setenv(models.EnvPusherName, results.UserName)
|
os.Setenv(models.EnvPusherName, results.UserName)
|
||||||
|
os.Setenv(models.EnvPusherEmail, results.UserEmail)
|
||||||
os.Setenv(models.EnvPusherID, strconv.FormatInt(results.UserID, 10))
|
os.Setenv(models.EnvPusherID, strconv.FormatInt(results.UserID, 10))
|
||||||
os.Setenv(models.ProtectedBranchRepoID, strconv.FormatInt(results.RepoID, 10))
|
os.Setenv(models.EnvRepoID, strconv.FormatInt(results.RepoID, 10))
|
||||||
os.Setenv(models.ProtectedBranchPRID, fmt.Sprintf("%d", 0))
|
os.Setenv(models.EnvPRID, fmt.Sprintf("%d", 0))
|
||||||
os.Setenv(models.EnvIsDeployKey, fmt.Sprintf("%t", results.IsDeployKey))
|
os.Setenv(models.EnvIsDeployKey, fmt.Sprintf("%t", results.IsDeployKey))
|
||||||
os.Setenv(models.EnvKeyID, fmt.Sprintf("%d", results.KeyID))
|
os.Setenv(models.EnvKeyID, fmt.Sprintf("%d", results.KeyID))
|
||||||
|
|
||||||
|
|
|
@ -19,13 +19,6 @@ import (
|
||||||
"github.com/unknwon/com"
|
"github.com/unknwon/com"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
|
||||||
// ProtectedBranchRepoID protected Repo ID
|
|
||||||
ProtectedBranchRepoID = "GITEA_REPO_ID"
|
|
||||||
// ProtectedBranchPRID protected Repo PR ID
|
|
||||||
ProtectedBranchPRID = "GITEA_PR_ID"
|
|
||||||
)
|
|
||||||
|
|
||||||
// ProtectedBranch struct
|
// ProtectedBranch struct
|
||||||
type ProtectedBranch struct {
|
type ProtectedBranch struct {
|
||||||
ID int64 `xorm:"pk autoincr"`
|
ID int64 `xorm:"pk autoincr"`
|
||||||
|
|
|
@ -14,12 +14,14 @@ import (
|
||||||
const (
|
const (
|
||||||
EnvRepoName = "GITEA_REPO_NAME"
|
EnvRepoName = "GITEA_REPO_NAME"
|
||||||
EnvRepoUsername = "GITEA_REPO_USER_NAME"
|
EnvRepoUsername = "GITEA_REPO_USER_NAME"
|
||||||
|
EnvRepoID = "GITEA_REPO_ID"
|
||||||
EnvRepoIsWiki = "GITEA_REPO_IS_WIKI"
|
EnvRepoIsWiki = "GITEA_REPO_IS_WIKI"
|
||||||
EnvPusherName = "GITEA_PUSHER_NAME"
|
EnvPusherName = "GITEA_PUSHER_NAME"
|
||||||
EnvPusherEmail = "GITEA_PUSHER_EMAIL"
|
EnvPusherEmail = "GITEA_PUSHER_EMAIL"
|
||||||
EnvPusherID = "GITEA_PUSHER_ID"
|
EnvPusherID = "GITEA_PUSHER_ID"
|
||||||
EnvKeyID = "GITEA_KEY_ID"
|
EnvKeyID = "GITEA_KEY_ID"
|
||||||
EnvIsDeployKey = "GITEA_IS_DEPLOY_KEY"
|
EnvIsDeployKey = "GITEA_IS_DEPLOY_KEY"
|
||||||
|
EnvPRID = "GITEA_PR_ID"
|
||||||
EnvIsInternal = "GITEA_INTERNAL_PUSH"
|
EnvIsInternal = "GITEA_INTERNAL_PUSH"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -48,9 +50,7 @@ func FullPushingEnvironment(author, committer *User, repo *Repository, repoName
|
||||||
authorSig := author.NewGitSig()
|
authorSig := author.NewGitSig()
|
||||||
committerSig := committer.NewGitSig()
|
committerSig := committer.NewGitSig()
|
||||||
|
|
||||||
// We should add "SSH_ORIGINAL_COMMAND=gitea-internal",
|
environ := append(os.Environ(),
|
||||||
// once we have hook and pushing infrastructure working correctly
|
|
||||||
return append(os.Environ(),
|
|
||||||
"GIT_AUTHOR_NAME="+authorSig.Name,
|
"GIT_AUTHOR_NAME="+authorSig.Name,
|
||||||
"GIT_AUTHOR_EMAIL="+authorSig.Email,
|
"GIT_AUTHOR_EMAIL="+authorSig.Email,
|
||||||
"GIT_COMMITTER_NAME="+committerSig.Name,
|
"GIT_COMMITTER_NAME="+committerSig.Name,
|
||||||
|
@ -60,9 +60,15 @@ func FullPushingEnvironment(author, committer *User, repo *Repository, repoName
|
||||||
EnvRepoIsWiki+"="+isWiki,
|
EnvRepoIsWiki+"="+isWiki,
|
||||||
EnvPusherName+"="+committer.Name,
|
EnvPusherName+"="+committer.Name,
|
||||||
EnvPusherID+"="+fmt.Sprintf("%d", committer.ID),
|
EnvPusherID+"="+fmt.Sprintf("%d", committer.ID),
|
||||||
ProtectedBranchRepoID+"="+fmt.Sprintf("%d", repo.ID),
|
EnvRepoID+"="+fmt.Sprintf("%d", repo.ID),
|
||||||
ProtectedBranchPRID+"="+fmt.Sprintf("%d", prID),
|
EnvPRID+"="+fmt.Sprintf("%d", prID),
|
||||||
"SSH_ORIGINAL_COMMAND=gitea-internal",
|
"SSH_ORIGINAL_COMMAND=gitea-internal",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if !committer.KeepEmailPrivate {
|
||||||
|
environ = append(environ, EnvPusherEmail+"="+committer.Email)
|
||||||
|
}
|
||||||
|
|
||||||
|
return environ
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,6 +47,7 @@ type ServCommandResults struct {
|
||||||
KeyID int64
|
KeyID int64
|
||||||
KeyName string
|
KeyName string
|
||||||
UserName string
|
UserName string
|
||||||
|
UserEmail string
|
||||||
UserID int64
|
UserID int64
|
||||||
OwnerName string
|
OwnerName string
|
||||||
RepoName string
|
RepoName string
|
||||||
|
|
|
@ -217,6 +217,18 @@ func ServCommand(ctx *macaron.Context) {
|
||||||
// so for now use the owner of the repository
|
// so for now use the owner of the repository
|
||||||
results.UserName = results.OwnerName
|
results.UserName = results.OwnerName
|
||||||
results.UserID = repo.OwnerID
|
results.UserID = repo.OwnerID
|
||||||
|
if err = repo.GetOwner(); err != nil {
|
||||||
|
log.Error("Unable to get owner for repo %-v. Error: %v", repo, err)
|
||||||
|
ctx.JSON(http.StatusInternalServerError, map[string]interface{}{
|
||||||
|
"results": results,
|
||||||
|
"type": "InternalServerError",
|
||||||
|
"err": fmt.Sprintf("Unable to get owner for repo: %s/%s.", results.OwnerName, results.RepoName),
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if !repo.Owner.KeepEmailPrivate {
|
||||||
|
results.UserEmail = repo.Owner.Email
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// Get the user represented by the Key
|
// Get the user represented by the Key
|
||||||
var err error
|
var err error
|
||||||
|
@ -239,6 +251,9 @@ func ServCommand(ctx *macaron.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
results.UserName = user.Name
|
results.UserName = user.Name
|
||||||
|
if !user.KeepEmailPrivate {
|
||||||
|
results.UserEmail = user.Email
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Don't allow pushing if the repo is archived
|
// Don't allow pushing if the repo is archived
|
||||||
|
|
|
@ -323,7 +323,7 @@ func HTTP(ctx *context.Context) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
environ = append(environ, models.ProtectedBranchRepoID+fmt.Sprintf("=%d", repo.ID))
|
environ = append(environ, models.EnvRepoID+fmt.Sprintf("=%d", repo.ID))
|
||||||
|
|
||||||
w := ctx.Resp
|
w := ctx.Resp
|
||||||
r := ctx.Req.Request
|
r := ctx.Req.Request
|
||||||
|
|
Reference in a new issue