mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-01 04:54:09 +00:00
ff5df5fc97
Fix #29175 Replace #29207 This PR makes some improvements to the `issue_comment` workflow trigger event. 1. Fix the bug that pull requests cannot trigger `issue_comment` workflows 2. Previously the `issue_comment` event only supported the `created` activity type. This PR adds support for the missing `edited` and `deleted` activity types. 3. Some events (including `issue_comment`, `issues`, etc. ) only trigger workflows that belong to the workflow file on the default branch. This PR introduces the `IsDefaultBranchWorkflow` function to check for these events. (cherry picked from commit a4fe1cdf38f9a063e44b197ef07e4260f731c919) Conflicts: modules/actions/github.go context
120 lines
2.4 KiB
Go
120 lines
2.4 KiB
Go
// Copyright 2023 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package actions
|
|
|
|
import (
|
|
"testing"
|
|
|
|
webhook_module "code.gitea.io/gitea/modules/webhook"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestCanGithubEventMatch(t *testing.T) {
|
|
testCases := []struct {
|
|
desc string
|
|
eventName string
|
|
triggeredEvent webhook_module.HookEventType
|
|
expected bool
|
|
}{
|
|
// registry_package event
|
|
{
|
|
"registry_package matches",
|
|
GithubEventRegistryPackage,
|
|
webhook_module.HookEventPackage,
|
|
true,
|
|
},
|
|
{
|
|
"registry_package cannot match",
|
|
GithubEventRegistryPackage,
|
|
webhook_module.HookEventPush,
|
|
false,
|
|
},
|
|
// issues event
|
|
{
|
|
"issue matches",
|
|
GithubEventIssues,
|
|
webhook_module.HookEventIssueLabel,
|
|
true,
|
|
},
|
|
{
|
|
"issue cannot match",
|
|
GithubEventIssues,
|
|
webhook_module.HookEventIssueComment,
|
|
false,
|
|
},
|
|
// issue_comment event
|
|
{
|
|
"issue_comment matches",
|
|
GithubEventIssueComment,
|
|
webhook_module.HookEventIssueComment,
|
|
true,
|
|
},
|
|
{
|
|
"issue_comment cannot match",
|
|
GithubEventIssueComment,
|
|
webhook_module.HookEventIssues,
|
|
false,
|
|
},
|
|
// pull_request event
|
|
{
|
|
"pull_request matches",
|
|
GithubEventPullRequest,
|
|
webhook_module.HookEventPullRequestSync,
|
|
true,
|
|
},
|
|
{
|
|
"pull_request cannot match",
|
|
GithubEventPullRequest,
|
|
webhook_module.HookEventPullRequestComment,
|
|
false,
|
|
},
|
|
// pull_request_target event
|
|
{
|
|
"pull_request_target matches",
|
|
GithubEventPullRequest,
|
|
webhook_module.HookEventPullRequest,
|
|
true,
|
|
},
|
|
{
|
|
"pull_request_target cannot match",
|
|
GithubEventPullRequest,
|
|
webhook_module.HookEventPullRequestComment,
|
|
false,
|
|
},
|
|
// pull_request_review event
|
|
{
|
|
"pull_request_review matches",
|
|
GithubEventPullRequestReview,
|
|
webhook_module.HookEventPullRequestReviewComment,
|
|
true,
|
|
},
|
|
{
|
|
"pull_request_review cannot match",
|
|
GithubEventPullRequestReview,
|
|
webhook_module.HookEventPullRequestComment,
|
|
false,
|
|
},
|
|
// other events
|
|
{
|
|
"create event",
|
|
GithubEventCreate,
|
|
webhook_module.HookEventCreate,
|
|
true,
|
|
},
|
|
{
|
|
"create pull request comment",
|
|
GithubEventIssueComment,
|
|
webhook_module.HookEventPullRequestComment,
|
|
true,
|
|
},
|
|
}
|
|
|
|
for _, tc := range testCases {
|
|
t.Run(tc.desc, func(t *testing.T) {
|
|
assert.Equalf(t, tc.expected, canGithubEventMatch(tc.eventName, tc.triggeredEvent), "canGithubEventMatch(%v, %v)", tc.eventName, tc.triggeredEvent)
|
|
})
|
|
}
|
|
}
|