Set the default branch inside the event data (#354)
* set ${{github.event.repository.default_branch}} * change `ok == false` to `!ok` Co-authored-by: Casey Lee <cplee@nektos.com>
This commit is contained in:
@@ -400,6 +400,13 @@ func (rc *RunContext) getGithubContext() *githubContext {
|
||||
}
|
||||
}
|
||||
|
||||
// set the branch in the event data
|
||||
if rc.Config.DefaultBranch != "" {
|
||||
ghc.Event = withDefaultBranch(rc.Config.DefaultBranch, ghc.Event)
|
||||
} else {
|
||||
ghc.Event = withDefaultBranch("master", ghc.Event)
|
||||
}
|
||||
|
||||
if ghc.EventName == "pull_request" {
|
||||
ghc.BaseRef = asString(nestedMapLookup(ghc.Event, "pull_request", "base", "ref"))
|
||||
ghc.HeadRef = asString(nestedMapLookup(ghc.Event, "pull_request", "head", "ref"))
|
||||
@@ -452,6 +459,29 @@ func nestedMapLookup(m map[string]interface{}, ks ...string) (rval interface{})
|
||||
}
|
||||
}
|
||||
|
||||
func withDefaultBranch(b string, event map[string]interface{}) map[string]interface{} {
|
||||
repoI, ok := event["repository"]
|
||||
if !ok {
|
||||
repoI = make(map[string]interface{})
|
||||
}
|
||||
|
||||
repo, ok := repoI.(map[string]interface{})
|
||||
if !ok {
|
||||
log.Warnf("unable to set default branch to %v", b)
|
||||
return event
|
||||
}
|
||||
|
||||
// if the branch is already there return with no changes
|
||||
if _, ok = repo["default_branch"]; ok {
|
||||
return event
|
||||
}
|
||||
|
||||
repo["default_branch"] = b
|
||||
event["repository"] = repo
|
||||
|
||||
return event
|
||||
}
|
||||
|
||||
func (rc *RunContext) withGithubEnv(env map[string]string) map[string]string {
|
||||
github := rc.getGithubContext()
|
||||
env["HOME"] = "/github/home"
|
||||
|
@@ -22,6 +22,7 @@ type Config struct {
|
||||
BindWorkdir bool // bind the workdir to the job container
|
||||
EventName string // name of event to run
|
||||
EventPath string // path to JSON file to use for event.json in containers
|
||||
DefaultBranch string // name of the main branch for this repository
|
||||
ReuseContainers bool // reuse containers to maintain state
|
||||
ForcePull bool // force pulling of the image, if already present
|
||||
LogOutput bool // log the output from docker run
|
||||
|
Reference in New Issue
Block a user