|
@@ -11,6 +11,7 @@ import (
|
|
|
"gitote/gitote/models/errors"
|
|
"gitote/gitote/models/errors"
|
|
|
"gitote/gitote/pkg/process"
|
|
"gitote/gitote/pkg/process"
|
|
|
"gitote/gitote/pkg/setting"
|
|
"gitote/gitote/pkg/setting"
|
|
|
|
|
+ "gitote/gitote/pkg/tool"
|
|
|
"io"
|
|
"io"
|
|
|
"io/ioutil"
|
|
"io/ioutil"
|
|
|
"mime/multipart"
|
|
"mime/multipart"
|
|
@@ -27,6 +28,41 @@ import (
|
|
|
log "gopkg.in/clog.v1"
|
|
log "gopkg.in/clog.v1"
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
+const (
|
|
|
|
|
+ ENV_AUTH_USER_ID = "GITOTE_AUTH_USER_ID"
|
|
|
|
|
+ ENV_AUTH_USER_NAME = "GITOTE_AUTH_USER_NAME"
|
|
|
|
|
+ ENV_AUTH_USER_EMAIL = "GITOTE_AUTH_USER_EMAIL"
|
|
|
|
|
+ ENV_REPO_OWNER_NAME = "GITOTE_REPO_OWNER_NAME"
|
|
|
|
|
+ ENV_REPO_OWNER_SALT_MD5 = "GITOTE_REPO_OWNER_SALT_MD5"
|
|
|
|
|
+ ENV_REPO_ID = "GITOTE_REPO_ID"
|
|
|
|
|
+ ENV_REPO_NAME = "GITOTE_REPO_NAME"
|
|
|
|
|
+ ENV_REPO_CUSTOM_HOOKS_PATH = "GITOTE_REPO_CUSTOM_HOOKS_PATH"
|
|
|
|
|
+)
|
|
|
|
|
+
|
|
|
|
|
+type ComposeHookEnvsOptions struct {
|
|
|
|
|
+ AuthUser *User
|
|
|
|
|
+ OwnerName string
|
|
|
|
|
+ OwnerSalt string
|
|
|
|
|
+ RepoID int64
|
|
|
|
|
+ RepoName string
|
|
|
|
|
+ RepoPath string
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func ComposeHookEnvs(opts ComposeHookEnvsOptions) []string {
|
|
|
|
|
+ envs := []string{
|
|
|
|
|
+ "SSH_ORIGINAL_COMMAND=1",
|
|
|
|
|
+ ENV_AUTH_USER_ID + "=" + com.ToStr(opts.AuthUser.ID),
|
|
|
|
|
+ ENV_AUTH_USER_NAME + "=" + opts.AuthUser.Name,
|
|
|
|
|
+ ENV_AUTH_USER_EMAIL + "=" + opts.AuthUser.Email,
|
|
|
|
|
+ ENV_REPO_OWNER_NAME + "=" + opts.OwnerName,
|
|
|
|
|
+ ENV_REPO_OWNER_SALT_MD5 + "=" + tool.MD5(opts.OwnerSalt),
|
|
|
|
|
+ ENV_REPO_ID + "=" + com.ToStr(opts.RepoID),
|
|
|
|
|
+ ENV_REPO_NAME + "=" + opts.RepoName,
|
|
|
|
|
+ ENV_REPO_CUSTOM_HOOKS_PATH + "=" + path.Join(opts.RepoPath, "custom_hooks"),
|
|
|
|
|
+ }
|
|
|
|
|
+ return envs
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
// discardLocalRepoBranchChanges discards local commits/changes of
|
|
// discardLocalRepoBranchChanges discards local commits/changes of
|
|
|
// given branch to make sure it is even to remote branch.
|
|
// given branch to make sure it is even to remote branch.
|
|
|
func discardLocalRepoBranchChanges(localPath, branch string) error {
|
|
func discardLocalRepoBranchChanges(localPath, branch string) error {
|
|
@@ -327,7 +363,7 @@ func (upload *Upload) LocalPath() string {
|
|
|
func NewUpload(name string, buf []byte, file multipart.File) (_ *Upload, err error) {
|
|
func NewUpload(name string, buf []byte, file multipart.File) (_ *Upload, err error) {
|
|
|
upload := &Upload{
|
|
upload := &Upload{
|
|
|
UUID: gouuid.NewV4().String(),
|
|
UUID: gouuid.NewV4().String(),
|
|
|
- Name: name,
|
|
|
|
|
|
|
+ Name: tool.SanitizePath(name),
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
localPath := upload.LocalPath()
|
|
localPath := upload.LocalPath()
|