|
|
|
// Copyright 2019 Drone.IO Inc. All rights reserved.
|
|
|
|
// Use of this source code is governed by the Polyform License
|
|
|
|
// that can be found in the LICENSE file.
|
|
|
|
|
|
|
|
package clone
|
|
|
|
|
|
|
|
// Config provides the Git Configuration parameters.
|
|
|
|
type Config struct {
|
|
|
|
User User
|
|
|
|
Trace bool
|
|
|
|
SkipVerify bool
|
|
|
|
}
|
|
|
|
|
|
|
|
// User provides the Git user parameters.
|
|
|
|
type User struct {
|
|
|
|
Name string
|
|
|
|
Email string
|
|
|
|
}
|
|
|
|
|
|
|
|
// Environ returns a set of global Git environment variables,
|
|
|
|
// from the configuration input.
|
|
|
|
func Environ(config Config) map[string]string {
|
|
|
|
environ := map[string]string{
|
|
|
|
"GIT_AUTHOR_NAME": "drone",
|
|
|
|
"GIT_AUTHOR_EMAIL": "noreply@drone",
|
|
|
|
"GIT_COMMITTER_NAME": "drone",
|
|
|
|
"GIT_COMMITTER_EMAIL": "noreply@drone",
|
|
|
|
"GIT_TERMINAL_PROMPT": "0",
|
|
|
|
}
|
|
|
|
if s := config.User.Name; s != "" {
|
|
|
|
environ["GIT_AUTHOR_NAME"] = s
|
|
|
|
environ["GIT_COMMITTER_NAME"] = s
|
|
|
|
}
|
|
|
|
if s := config.User.Email; s != "" {
|
|
|
|
environ["GIT_AUTHOR_EMAIL"] = s
|
|
|
|
environ["GIT_COMMITTER_EMAIL"] = s
|
|
|
|
}
|
|
|
|
if config.Trace {
|
|
|
|
environ["GIT_TRACE"] = "true"
|
|
|
|
}
|
|
|
|
if config.SkipVerify {
|
|
|
|
environ["GIT_SSL_NO_VERIFY"] = "true"
|
|
|
|
}
|
|
|
|
return environ
|
|
|
|
}
|