Improve workflow event triggers (#23613)
Follow #23037 Fix [#22598 comment](https://github.com/go-gitea/gitea/issues/22958#issuecomment-1475763042) Workflows with `pull_request` trigger event can't be triggered by `pull_request_sync` event. This PR adds the `canGithubEventMatch` function to check if a Github event can match any Gitea event. If the Github event matches a Gitea event, the related workflows should be triggered. --------- Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
parent
389e83f7eb
commit
e7f0bcf884
3 changed files with 155 additions and 13 deletions
|
@ -5,8 +5,6 @@ package actions
|
|||
|
||||
import (
|
||||
webhook_module "code.gitea.io/gitea/modules/webhook"
|
||||
|
||||
"github.com/nektos/act/pkg/jobparser"
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -25,17 +23,48 @@ const (
|
|||
githubEventPullRequestComment = "pull_request_comment"
|
||||
)
|
||||
|
||||
func convertFromGithubEvent(evt *jobparser.Event) string {
|
||||
switch evt.Name {
|
||||
case githubEventPullRequest, githubEventPullRequestTarget, githubEventPullRequestReview,
|
||||
githubEventPullRequestReviewComment:
|
||||
return string(webhook_module.HookEventPullRequest)
|
||||
// canGithubEventMatch check if the input Github event can match any Gitea event.
|
||||
func canGithubEventMatch(eventName string, triggedEvent webhook_module.HookEventType) bool {
|
||||
switch eventName {
|
||||
case githubEventRegistryPackage:
|
||||
return string(webhook_module.HookEventPackage)
|
||||
case githubEventCreate, githubEventDelete, githubEventFork, githubEventPush,
|
||||
githubEventIssues, githubEventIssueComment, githubEventRelease, githubEventPullRequestComment:
|
||||
fallthrough
|
||||
return triggedEvent == webhook_module.HookEventPackage
|
||||
|
||||
case githubEventIssues:
|
||||
switch triggedEvent {
|
||||
case webhook_module.HookEventIssues,
|
||||
webhook_module.HookEventIssueAssign,
|
||||
webhook_module.HookEventIssueLabel,
|
||||
webhook_module.HookEventIssueMilestone:
|
||||
return true
|
||||
|
||||
default:
|
||||
return false
|
||||
}
|
||||
|
||||
case githubEventPullRequest, githubEventPullRequestTarget:
|
||||
switch triggedEvent {
|
||||
case webhook_module.HookEventPullRequest,
|
||||
webhook_module.HookEventPullRequestSync,
|
||||
webhook_module.HookEventPullRequestAssign,
|
||||
webhook_module.HookEventPullRequestLabel:
|
||||
return true
|
||||
|
||||
default:
|
||||
return false
|
||||
}
|
||||
|
||||
case githubEventPullRequestReview:
|
||||
switch triggedEvent {
|
||||
case webhook_module.HookEventPullRequestReviewApproved,
|
||||
webhook_module.HookEventPullRequestReviewComment,
|
||||
webhook_module.HookEventPullRequestReviewRejected:
|
||||
return true
|
||||
|
||||
default:
|
||||
return false
|
||||
}
|
||||
|
||||
default:
|
||||
return evt.Name
|
||||
return eventName == string(triggedEvent)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue