mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-05 11:22:55 +01:00
48e5a74f21
Fix #25088 This PR adds the support for [`pull_request_target`](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_target) workflow trigger. `pull_request_target` is similar to `pull_request`, but the workflow triggered by the `pull_request_target` event runs in the context of the base branch of the pull request rather than the head branch. Since the workflow from the base is considered trusted, it can access the secrets and doesn't need approvals to run.
113 lines
2.3 KiB
Go
113 lines
2.3 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,
|
|
},
|
|
}
|
|
|
|
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)
|
|
})
|
|
}
|
|
}
|