Skip to content
This repository has been archived by the owner on Apr 8, 2024. It is now read-only.

hatajoe/hooks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hooks

Go Doc

hooks is a simple HTTP event dispatch handler.

GitHub webhook server

package main

import (
	"fmt"
	"log"
	"net/http"

	"github.com/hatajoe/hooks"
	"github.com/hatajoe/hooks/github"
)

func main() {
	dispatcher := hooks.NewDispatcher(&github.EventParser{})

	verifier := github.NewVerifyMiddleware("GitHub webhook secret token")

	dispatcher.On("push", verifier.Verify(func(w http.ResponseWriter, r *http.Request) {
		fmt.Println("push event detected")
	}))

	if err := dispatcher.Listen("/webhooks", ":3000"); err != nil {
		log.Fatal(err)
	}
}

Slack event API server

package main

import (
	"fmt"
	"log"
	"net/http"

	"github.com/hatajoe/hooks"
	"github.com/hatajoe/hooks/slack"
)

func main() {
	dispatcher := hooks.NewDispatcher(&slack.EventParser{
		ChallengeEventType: "challenge",
		VerifyToken:        true,
		VerificationToken:  "Slack event API secret token",
	})

	dispatcher.On("challenge", slack.ChallengeHandler)
	dispatcher.On("app_mention", func(w http.ResponseWriter, r *http.Request) {
		fmt.Println("app_mention event detected")
	})

	if err := dispatcher.Listen("/webhooks", ":3000"); err != nil {
		log.Fatal(err)
	}
}

Bot using hooks example

https://github.com/hatajoe/minibot

About

hooks is a simple event dispatch handler package for making a bot

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages