refactor(ops/gerrit-webhook-to-irccat): use streams data types

The types are different for `gerrit stream-events` and webhooks, so
switch to a fork of go-gerrit containing their definitions.

https://github.com/andygrunwald/go-gerrit/pull/189 is the upstream PR.
Change-Id: I24136af2f2cf5655f2a8278632a3b0f52aa6adcc
Reviewed-on: https://cl.snix.dev/c/snix/+/30544
Autosubmit: Florian Klink <flokli@flokli.de>
Tested-by: besadii
Reviewed-by: Ilan Joselevich <personal@ilanjoselevich.com>
This commit is contained in:
Florian Klink 2025-05-24 00:17:24 +03:00 committed by clbot
parent abb2daa4ae
commit fcd43e8bc8
4 changed files with 12 additions and 15 deletions

View file

@ -18,7 +18,7 @@ import (
sloghttp "github.com/samber/slog-http"
"golang.org/x/sync/errgroup"
"github.com/andygrunwald/go-gerrit"
gerritStreams "github.com/andygrunwald/go-gerrit/streams"
)
// TODO:
@ -27,7 +27,7 @@ import (
var logger *slog.Logger
var tmplStr = `{{- if eq .Type "patchset-created" -}}
{{- if (and (eq .PatchSet.Number "1") (eq .Change.WorkInProgress false) ) -}}
{{- if (and (eq .PatchSet.Number "1") (eq .Change.Wip false) ) -}}
#snix CL/{{.Change.Number}} proposed by {{.Change.Owner.Username}} - {{.Change.Subject}} - {{.Change.URL}}
{{- end -}}
{{- else if eq .Type "change-merged" -}}
@ -51,17 +51,17 @@ func handler(w http.ResponseWriter, r *http.Request) {
}
logger.InfoContext(r.Context(), "received event", slog.Any("body", body.Bytes()))
var eventInfo gerrit.EventInfo
if err := json.Unmarshal(body.Bytes(), &eventInfo); err != nil {
var event gerritStreams.Event
if err := json.Unmarshal(body.Bytes(), &event); err != nil {
logger.WarnContext(r.Context(), "failed to parse body", slog.Any("error", err))
return
}
logger.InfoContext(r.Context(), "received event", slog.Any("event", eventInfo))
logger.InfoContext(r.Context(), "received event", slog.Any("event", event))
// render the template into a buffer.
var msg bytes.Buffer
if err := tmpl.Execute(&msg, eventInfo); err != nil {
if err := tmpl.Execute(&msg, event); err != nil {
logger.WarnContext(r.Context(), "failed to execute template with data", slog.Any("error", err))
return
}