Skip to content
Snippets Groups Projects
Commit 04e8195b authored by Tulir Asokan's avatar Tulir Asokan :cat2:
Browse files

Add support for tag push events (ref #1)

parent 96d90dfb
No related branches found
No related tags found
No related merge requests found
......@@ -10,7 +10,7 @@ A Gitlab bot for Matrix. It uses
* [X] Issues/merge requests
* [X] Comments
* [X] Push events
* [ ] Tag creation
* [x] Tag creation
* [ ] Pipeline events
* [ ] Wiki page edits
* [x] Log in to GitLab accounts (per-user)
......
......@@ -42,6 +42,7 @@ func addRoomToHeaders(handler http.Handler) http.Handler {
func startWebhook() func() {
hook := gitlab.New(&gitlab.Config{Secret: config.Webhook.Secret})
hook.RegisterEvents(handlePushEvent, gitlab.PushEvents)
hook.RegisterEvents(handleTagEvent, gitlab.TagEvents)
hook.RegisterEvents(handleIssueEvent, gitlab.IssuesEvents)
hook.RegisterEvents(handleMergeRequestEvent, gitlab.MergeRequestEvents)
hook.RegisterEvents(handleCommentEvent, gitlab.CommentEvents)
......@@ -123,6 +124,22 @@ func handlePushEvent(payload interface{}, header webhooks.Header) {
}
}
func handleTagEvent(payload interface{}, header webhooks.Header) {
data := payload.(gitlab.TagEventPayload)
if data.ObjectKind != "tag_push" {
return
}
roomID := header["X-Room-Id"][0]
room := mxbot.GetRoom(roomID)
tag := strings.TrimPrefix(data.Ref, "refs/tags/")
room.SendfHTML("[%[1]s/%[2]s] %[3]s created tag <a href='%[4]s/tags/%[5]s'>%[5]s</a>",
data.Project.Namespace,
data.Project.Name,
data.UserName,
data.Project.WebURL,
tag)
}
func handleIssueEvent(payload interface{}, header webhooks.Header) {
data := payload.(gitlab.IssueEventPayload)
roomID := header["X-Room-Id"][0]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment