@ -146,6 +146,41 @@ func DetectWorkflows(
return workflows , schedules , nil
return workflows , schedules , nil
}
}
func DetectScheduledWorkflows ( gitRepo * git . Repository , commit * git . Commit ) ( [ ] * DetectedWorkflow , error ) {
entries , err := ListWorkflows ( commit )
if err != nil {
return nil , err
}
wfs := make ( [ ] * DetectedWorkflow , 0 , len ( entries ) )
for _ , entry := range entries {
content , err := GetContentFromEntry ( entry )
if err != nil {
return nil , err
}
// one workflow may have multiple events
events , err := GetEventsFromContent ( content )
if err != nil {
log . Warn ( "ignore invalid workflow %q: %v" , entry . Name ( ) , err )
continue
}
for _ , evt := range events {
if evt . IsSchedule ( ) {
log . Trace ( "detect scheduled workflow: %q" , entry . Name ( ) )
dwf := & DetectedWorkflow {
EntryName : entry . Name ( ) ,
TriggerEvent : evt ,
Content : content ,
}
wfs = append ( wfs , dwf )
}
}
}
return wfs , nil
}
func detectMatched ( gitRepo * git . Repository , commit * git . Commit , triggedEvent webhook_module . HookEventType , payload api . Payloader , evt * jobparser . Event ) bool {
func detectMatched ( gitRepo * git . Repository , commit * git . Commit , triggedEvent webhook_module . HookEventType , payload api . Payloader , evt * jobparser . Event ) bool {
if ! canGithubEventMatch ( evt . Name , triggedEvent ) {
if ! canGithubEventMatch ( evt . Name , triggedEvent ) {
return false
return false