Платформа ЦРНП "Мирокод" для разработки проектов
https://git.mirocod.ru
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.4 KiB
45 lines
1.4 KiB
// Copyright 2019 The Gitea Authors. All rights reserved. |
|
// Use of this source code is governed by a MIT-style |
|
// license that can be found in the LICENSE file. |
|
|
|
package models |
|
|
|
import ( |
|
"fmt" |
|
"os" |
|
"strings" |
|
) |
|
|
|
// PushingEnvironment returns an os environment to allow hooks to work on push |
|
func PushingEnvironment(doer *User, repo *Repository) []string { |
|
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, repoName string, prID int64) []string { |
|
isWiki := "false" |
|
if strings.HasSuffix(repoName, ".wiki") { |
|
isWiki = "true" |
|
} |
|
|
|
authorSig := author.NewGitSig() |
|
committerSig := committer.NewGitSig() |
|
|
|
// We should add "SSH_ORIGINAL_COMMAND=gitea-internal", |
|
// once we have hook and pushing infrastructure working correctly |
|
return append(os.Environ(), |
|
"GIT_AUTHOR_NAME="+authorSig.Name, |
|
"GIT_AUTHOR_EMAIL="+authorSig.Email, |
|
"GIT_COMMITTER_NAME="+committerSig.Name, |
|
"GIT_COMMITTER_EMAIL="+committerSig.Email, |
|
EnvRepoName+"="+repoName, |
|
EnvRepoUsername+"="+repo.MustOwnerName(), |
|
EnvRepoIsWiki+"="+isWiki, |
|
EnvPusherName+"="+committer.Name, |
|
EnvPusherID+"="+fmt.Sprintf("%d", committer.ID), |
|
ProtectedBranchRepoID+"="+fmt.Sprintf("%d", repo.ID), |
|
ProtectedBranchPRID+"="+fmt.Sprintf("%d", prID), |
|
"SSH_ORIGINAL_COMMAND=gitea-internal", |
|
) |
|
|
|
}
|
|
|