ghwebhook

package module
v3.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 14, 2022 License: Apache-2.0 Imports: 8 Imported by: 0

README

GHWebHook

release Build Status PkgGoDev

Sponsor

Create a Github WebHook in 5 seconds!

Description

  • Default port: 80
  • Default path: /postreceive
  • Default event type: push

Examples

Basic:

package main

import (
	"log"
	"net/url"

	"github.com/google/go-github/v44/github"
	ghw "github.com/ldez/ghwebhook/v3"
)

func main() {
	eventHandlers := ghw.NewEventHandlers().
		OnIssues(func(uri *url.URL, event *github.IssuesEvent) {
			go func() {
				log.Println(uri, event.GetAction(), event.Issue)
			}()
		}).
		OnPullRequest(func(uri *url.URL, event *github.PullRequestEvent) {
			log.Println(uri, event.GetAction(), event.GetNumber(), event.PullRequest)
		})

	webHook := ghw.NewWebHook(eventHandlers, ghw.WithAllEventTypes)

	err := webHook.ListenAndServe()
	if err != nil {
		log.Fatal(err)
	}
}

Secured WebHook with custom port and path:

package main

import (
	"log"
	"net/url"

	"github.com/google/go-github/v44/github"
	ghw "github.com/ldez/ghwebhook/v3"
	"github.com/ldez/ghwebhook/v3/eventtype"
)

func main() {
	eventHandlers := ghw.NewEventHandlers().
		OnIssues(func(uri *url.URL, event *github.IssuesEvent) {
			go func() {
				log.Println(uri, event.GetAction(), event.Issue)
			}()
		}).
		OnPullRequest(func(uri *url.URL, event *github.PullRequestEvent) {
			log.Println(uri, event.GetAction(), event.GetNumber(), event.PullRequest)
		})

	webhook := ghw.NewWebHook(
		eventHandlers,
		ghw.WithPort(5000),
		ghw.WithPath("/github"),
		ghw.WithSecret("SECRET"),
		ghw.Debug,
		ghw.WithEventTypes(eventtype.Issues, eventtype.PullRequest))

	err := webhook.ListenAndServe()
	if err != nil {
		log.Fatal(err)
	}
}

References

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Debug

func Debug(server *WebHook)

Debug activate debug mode.

func WithAllEventTypes

func WithAllEventTypes(server *WebHook)

WithAllEventTypes accept all possible event types.

func WithEventTypes

func WithEventTypes(eventTypes ...string) func(*WebHook)

WithEventTypes define accepted event types.

func WithPath

func WithPath(path string) func(*WebHook)

WithPath define the HTTP handler path.

func WithPort

func WithPort(port int) func(*WebHook)

WithPort define the server port.

func WithSecret

func WithSecret(secret string) func(*WebHook)

WithSecret define the GitHub secret.

Types

type EventHandlers

type EventHandlers struct {
	// contains filtered or unexported fields
}

EventHandlers all event handlers.

func NewEventHandlers

func NewEventHandlers() *EventHandlers

NewEventHandlers create a new event handlers.

func (*EventHandlers) OnCheckRun

func (c *EventHandlers) OnCheckRun(eventHandler func(uri *url.URL, event *github.CheckRunEvent)) *EventHandlers

OnCheckRun CheckRun handler.

func (*EventHandlers) OnCheckSuite

func (c *EventHandlers) OnCheckSuite(eventHandler func(uri *url.URL, event *github.CheckSuiteEvent)) *EventHandlers

OnCheckSuite CheckSuite handler.

func (*EventHandlers) OnCommitComment

func (c *EventHandlers) OnCommitComment(eventHandler func(uri *url.URL, event *github.CommitCommentEvent)) *EventHandlers

OnCommitComment CommitComment handler.

func (*EventHandlers) OnContentReference

func (c *EventHandlers) OnContentReference(eventHandler func(uri *url.URL, event *github.ContentReferenceEvent)) *EventHandlers

OnContentReference ContentReference handler.

func (*EventHandlers) OnCreate

func (c *EventHandlers) OnCreate(eventHandler func(uri *url.URL, event *github.CreateEvent)) *EventHandlers

OnCreate Create handler.

func (*EventHandlers) OnDelete

func (c *EventHandlers) OnDelete(eventHandler func(uri *url.URL, event *github.DeleteEvent)) *EventHandlers

OnDelete Delete handler.

func (*EventHandlers) OnDeployment

func (c *EventHandlers) OnDeployment(eventHandler func(uri *url.URL, event *github.DeploymentEvent)) *EventHandlers

OnDeployment Deployment handler.

func (*EventHandlers) OnDeploymentStatus

func (c *EventHandlers) OnDeploymentStatus(eventHandler func(uri *url.URL, event *github.DeploymentStatusEvent)) *EventHandlers

OnDeploymentStatus DeploymentStatus handler.

func (*EventHandlers) OnFork

func (c *EventHandlers) OnFork(eventHandler func(uri *url.URL, event *github.ForkEvent)) *EventHandlers

OnFork Fork handler.

func (*EventHandlers) OnGollum

func (c *EventHandlers) OnGollum(eventHandler func(uri *url.URL, event *github.GollumEvent)) *EventHandlers

OnGollum Gollum handler.

func (*EventHandlers) OnInstallation

func (c *EventHandlers) OnInstallation(eventHandler func(uri *url.URL, event *github.InstallationEvent)) *EventHandlers

OnInstallation Installation handler.

func (*EventHandlers) OnInstallationRepositories

func (c *EventHandlers) OnInstallationRepositories(eventHandler func(uri *url.URL, event *github.InstallationRepositoriesEvent)) *EventHandlers

OnInstallationRepositories InstallationRepositories handler.

func (*EventHandlers) OnIssueComment

func (c *EventHandlers) OnIssueComment(eventHandler func(uri *url.URL, event *github.IssueCommentEvent)) *EventHandlers

OnIssueComment IssueComment handler.

func (*EventHandlers) OnIssues

func (c *EventHandlers) OnIssues(eventHandler func(uri *url.URL, event *github.IssuesEvent)) *EventHandlers

OnIssues Issues handler.

func (*EventHandlers) OnLabel

func (c *EventHandlers) OnLabel(eventHandler func(uri *url.URL, event *github.LabelEvent)) *EventHandlers

OnLabel Label handler.

func (*EventHandlers) OnMarketplacePurchase

func (c *EventHandlers) OnMarketplacePurchase(eventHandler func(uri *url.URL, event *github.MarketplacePurchaseEvent)) *EventHandlers

OnMarketplacePurchase MarketplacePurchase handler.

func (*EventHandlers) OnMember

func (c *EventHandlers) OnMember(eventHandler func(uri *url.URL, event *github.MemberEvent)) *EventHandlers

OnMember Member handler.

func (*EventHandlers) OnMembership

func (c *EventHandlers) OnMembership(eventHandler func(uri *url.URL, event *github.MembershipEvent)) *EventHandlers

OnMembership Membership handler.

func (*EventHandlers) OnMilestone

func (c *EventHandlers) OnMilestone(eventHandler func(uri *url.URL, event *github.MilestoneEvent)) *EventHandlers

OnMilestone Milestone handler.

func (*EventHandlers) OnOrgBlock

func (c *EventHandlers) OnOrgBlock(eventHandler func(uri *url.URL, event *github.OrgBlockEvent)) *EventHandlers

OnOrgBlock OrgBlock handler.

func (*EventHandlers) OnOrganization

func (c *EventHandlers) OnOrganization(eventHandler func(uri *url.URL, event *github.OrganizationEvent)) *EventHandlers

OnOrganization Organization handler.

func (*EventHandlers) OnPageBuild

func (c *EventHandlers) OnPageBuild(eventHandler func(uri *url.URL, event *github.PageBuildEvent)) *EventHandlers

OnPageBuild PageBuild handler.

func (*EventHandlers) OnPing

func (c *EventHandlers) OnPing(eventHandler func(uri *url.URL, event *github.PingEvent)) *EventHandlers

OnPing Ping handler.

func (*EventHandlers) OnProject

func (c *EventHandlers) OnProject(eventHandler func(uri *url.URL, event *github.ProjectEvent)) *EventHandlers

OnProject Project handler.

func (*EventHandlers) OnProjectCard

func (c *EventHandlers) OnProjectCard(eventHandler func(uri *url.URL, event *github.ProjectCardEvent)) *EventHandlers

OnProjectCard ProjectCard handler.

func (*EventHandlers) OnProjectColumn

func (c *EventHandlers) OnProjectColumn(eventHandler func(uri *url.URL, event *github.ProjectColumnEvent)) *EventHandlers

OnProjectColumn ProjectColumn handler.

func (*EventHandlers) OnPublic

func (c *EventHandlers) OnPublic(eventHandler func(uri *url.URL, event *github.PublicEvent)) *EventHandlers

OnPublic Public handler.

func (*EventHandlers) OnPullRequest

func (c *EventHandlers) OnPullRequest(eventHandler func(uri *url.URL, event *github.PullRequestEvent)) *EventHandlers

OnPullRequest PullRequest handler.

func (*EventHandlers) OnPullRequestReview

func (c *EventHandlers) OnPullRequestReview(eventHandler func(uri *url.URL, event *github.PullRequestReviewEvent)) *EventHandlers

OnPullRequestReview PullRequestReview handler.

func (*EventHandlers) OnPullRequestReviewComment

func (c *EventHandlers) OnPullRequestReviewComment(eventHandler func(uri *url.URL, event *github.PullRequestReviewCommentEvent)) *EventHandlers

OnPullRequestReviewComment PullRequestReviewComment handler.

func (*EventHandlers) OnPush

func (c *EventHandlers) OnPush(eventHandler func(uri *url.URL, event *github.PushEvent)) *EventHandlers

OnPush Push handler.

func (*EventHandlers) OnRelease

func (c *EventHandlers) OnRelease(eventHandler func(uri *url.URL, event *github.ReleaseEvent)) *EventHandlers

OnRelease Release handler.

func (*EventHandlers) OnRepository

func (c *EventHandlers) OnRepository(eventHandler func(uri *url.URL, event *github.RepositoryEvent)) *EventHandlers

OnRepository Repository handler.

func (*EventHandlers) OnRepositoryVulnerabilityAlert

func (c *EventHandlers) OnRepositoryVulnerabilityAlert(eventHandler func(uri *url.URL, event *github.RepositoryVulnerabilityAlertEvent)) *EventHandlers

OnRepositoryVulnerabilityAlert RepositoryVulnerabilityAlert handler.

func (*EventHandlers) OnSecurityAdvisory

func (c *EventHandlers) OnSecurityAdvisory(eventHandler func(uri *url.URL, event *github.SecurityAdvisoryEvent)) *EventHandlers

OnSecurityAdvisory SecurityAdvisory handler.

func (*EventHandlers) OnStatus

func (c *EventHandlers) OnStatus(eventHandler func(uri *url.URL, event *github.StatusEvent)) *EventHandlers

OnStatus Status handler.

func (*EventHandlers) OnTeam

func (c *EventHandlers) OnTeam(eventHandler func(uri *url.URL, event *github.TeamEvent)) *EventHandlers

OnTeam Team handler.

func (*EventHandlers) OnTeamAdd

func (c *EventHandlers) OnTeamAdd(eventHandler func(uri *url.URL, event *github.TeamAddEvent)) *EventHandlers

OnTeamAdd TeamAdd handler.

func (*EventHandlers) OnWatch

func (c *EventHandlers) OnWatch(eventHandler func(uri *url.URL, event *github.WatchEvent)) *EventHandlers

OnWatch Watch handler.

type WebHook

type WebHook struct {
	// contains filtered or unexported fields
}

WebHook server.

func NewWebHook

func NewWebHook(eventHandlers *EventHandlers, options ...serverOption) *WebHook

NewWebHook create a new server as a GitHub WebHook.

func (*WebHook) ListenAndServe

func (s *WebHook) ListenAndServe() error

ListenAndServe run GitHub WebHook server.

func (*WebHook) ServeHTTP

func (s *WebHook) ServeHTTP(w http.ResponseWriter, r *http.Request)

ServeHTTP HTTP server handler.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL