From 01920900dd6e0f65661db6c9f7caf6d0d8891d7d1cd0873e7707c16e69fcb0ff Mon Sep 17 00:00:00 2001 From: Adam Majer Date: Mon, 26 Aug 2024 12:37:50 +0200 Subject: [PATCH] . --- gitea-events-rabbitmq-publisher/main.go | 45 +++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/gitea-events-rabbitmq-publisher/main.go b/gitea-events-rabbitmq-publisher/main.go index 7342b63..2e98e84 100644 --- a/gitea-events-rabbitmq-publisher/main.go +++ b/gitea-events-rabbitmq-publisher/main.go @@ -185,8 +185,53 @@ func parseRequestJSON(reqType string, data []byte) (org *common.Organization, ex org = pr.Repository.Owner extraAction = pr.Action + case "pull_request_label": + pr := common.PullRequestWebhookEvent{} + if err = json.Unmarshal(data, &pr); err != nil { + return + } + switch pr.Action { + case "label_updated", "label_cleared": + break + default: + err = fmt.Errorf("Unknown PR Label webhook action type: %s", pr.Action) + return + } + org = pr.Repository.Owner + extraAction = pr.Action + + case "pull_request_milestone": + pr := common.PullRequestWebhookEvent{} + if err = json.Unmarshal(data, &pr); err != nil { + return + } + switch pr.Action { + case "milestoned", "demilestoned": + break + default: + err = fmt.Errorf("Unknown PR Milestone webhook action type: %s", pr.Action) + return + } + org = pr.Repository.Owner + extraAction = pr.Action + + case "pull_request_assign": + issue := common.PullRequestWebhookEvent{} + if err = json.Unmarshal(data, &issue); err != nil { + return + } + switch issue.Action { + case "assigned", "unassigned": + break + default: + err = fmt.Errorf("Unknown PR Assign webhook action type: %s", issue.Action) + return + } + org = issue.Repository.Owner + extraAction = issue.Action default: + // TODO: package and wiki err = fmt.Errorf("Unknown webhook request type: %s", reqType) }