Merge pull request #67 from laszlocph/surface-parsing-errors

Surface parsing error in branch filter
This commit is contained in:
Laszlo Fogas 2019-09-09 10:12:59 +02:00 committed by GitHub
commit 45877a7a82
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -172,7 +172,12 @@ func PostHook(c *gin.Context) {
return
}
if branchFiltered(build, remoteYamlConfigs) {
filtered, err := branchFiltered(build, remoteYamlConfigs)
if err != nil {
logrus.Errorf("failure to parse yaml from hook for %s. %s", repo.FullName, err)
c.AbortWithError(400, err)
}
if filtered {
c.String(200, "Branch does not match restrictions defined in yaml")
return
}
@ -286,17 +291,19 @@ func PostHook(c *gin.Context) {
queueBuild(build, repo, buildItems)
}
func branchFiltered(build *model.Build, remoteYamlConfigs []*remote.FileMeta) bool {
func branchFiltered(build *model.Build, remoteYamlConfigs []*remote.FileMeta) (bool, error) {
for _, remoteYamlConfig := range remoteYamlConfigs {
parsedPipelineConfig, err := yaml.ParseString(string(remoteYamlConfig.Data))
if err == nil {
if err != nil {
return false, err
}
if !parsedPipelineConfig.Branches.Match(build.Branch) && build.Event != model.EventTag && build.Event != model.EventDeploy {
} else {
return false
return false, nil
}
}
}
return true
return true, nil
}
func zeroSteps(build *model.Build, remoteYamlConfigs []*remote.FileMeta) bool {