From 41bada5589af1df37169813841e1cddaf459b5c7 Mon Sep 17 00:00:00 2001 From: Mike Graf Date: Thu, 25 Jul 2024 15:49:01 -0600 Subject: [PATCH] Add helper function for X-Gitlab-Token --- event_parsing.go | 7 +++++++ event_parsing_webhook_test.go | 13 +++++++++++++ 2 files changed, 20 insertions(+) diff --git a/event_parsing.go b/event_parsing.go index 0c3f2ffed..0f474211d 100644 --- a/event_parsing.go +++ b/event_parsing.go @@ -72,6 +72,13 @@ type serviceEvent struct { ObjectKind string `json:"object_kind"` } +const eventTokenHeader = "X-Gitlab-Token" + +// HookEventToken returns the token for the given request. +func HookEventToken(r *http.Request) string { + return r.Header.Get(eventTokenHeader) +} + const eventTypeHeader = "X-Gitlab-Event" // HookEventType returns the event type for the given request. diff --git a/event_parsing_webhook_test.go b/event_parsing_webhook_test.go index 9c860abd2..da78ede4b 100644 --- a/event_parsing_webhook_test.go +++ b/event_parsing_webhook_test.go @@ -37,6 +37,19 @@ func TestWebhookEventType(t *testing.T) { } } +func TestWebhookEventToken(t *testing.T) { + req, err := http.NewRequest(http.MethodGet, "https://gitlab.com", nil) + if err != nil { + t.Errorf("Error creating HTTP request: %s", err) + } + req.Header.Set("X-Gitlab-Token", "798d3dd3-67f5-41df-ad19-7882cc6263bf") + + actualToken := HookEventToken(req) + if actualToken != "798d3dd3-67f5-41df-ad19-7882cc6263bf" { + t.Errorf("WebhookEventToken is %q, want %q", actualToken, "798d3dd3-67f5-41df-ad19-7882cc6263bf") + } +} + func TestParseBuildHook(t *testing.T) { raw := loadFixture("testdata/webhooks/build.json")