Skip to content

Commit d79f425

Browse files
committed
handle merge_group event without failing
1 parent dae878f commit d79f425

File tree

4 files changed

+25
-2
lines changed

4 files changed

+25
-2
lines changed

cli/cmd/digger/main.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package main
33
import (
44
"context"
55
"encoding/json"
6+
"errors"
67
"fmt"
78
"log"
89
"net/http"
@@ -302,7 +303,11 @@ func gitHubCI(lock core_locking.Lock, policyChecker core_policy.Checker, backend
302303

303304
impactedProjects, requestedProject, prNumber, err := dg_github.ProcessGitHubEvent(ghEvent, diggerConfig, &githubPrService)
304305
if err != nil {
305-
reportErrorAndExit(githubActor, fmt.Sprintf("Failed to process GitHub event. %s", err), 6)
306+
if errors.Is(err, &dg_github.EventToIgnoreError{}) {
307+
reportErrorAndExit(githubActor, fmt.Sprintf("Graceful handling of GitHub event. %s", err), 0)
308+
} else {
309+
reportErrorAndExit(githubActor, fmt.Sprintf("Failed to process GitHub event. %s", err), 6)
310+
}
306311
}
307312
impactedProjectsMsg := getImpactedProjectsAsString(impactedProjects, prNumber)
308313
log.Println(impactedProjectsMsg)

cli/pkg/github/models/models.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,12 @@ func (g *GithubAction) UnmarshalJSON(data []byte) error {
8181
return err
8282
}
8383
g.Event = event
84+
case "merge_group":
85+
var event github.MergeGroupEvent
86+
if err := json.Unmarshal(rawEvent, &event); err != nil {
87+
return err
88+
}
89+
g.Event = event
8490
case "schedule":
8591
// TODO: Find appropriate event for workflow scheduled run
8692
var event github.WorkflowDispatchEvent

libs/orchestrator/github/errors.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package github
2+
3+
import "fmt"
4+
5+
type EventToIgnoreError struct {
6+
Message string
7+
}
8+
9+
func (e *EventToIgnoreError) Error() string {
10+
return fmt.Sprintf("Unsupported event: %s", e.Message)
11+
}

libs/orchestrator/github/github.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -490,7 +490,8 @@ func ProcessGitHubEvent(ghEvent interface{}, diggerConfig *digger_config.DiggerC
490490
}
491491
}
492492
return nil, nil, 0, fmt.Errorf("requested project not found in modified projects")
493-
493+
case github.MergeGroupEvent:
494+
return nil, nil, 0, &EventToIgnoreError{"ignoring event of type merge_group"}
494495
default:
495496
return nil, nil, 0, fmt.Errorf("unsupported event type")
496497
}

0 commit comments

Comments
 (0)