webhook

package
v0.0.149 Latest Latest
Warning

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

Go to latest
Published: Aug 17, 2025 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GenSign

func GenSign(secret string, timestamp int64) (string, error)

func RegisterAllSenders

func RegisterAllSenders()

RegisterAllSenders 集中注册所有平台 Sender

func RegisterSender

func RegisterSender(platform string, sender Sender)

RegisterSender registers a new platform sender.

Types

type DefaultSender

type DefaultSender struct{}

DefaultSender sends JSON webhook with optional HMAC-SHA256 signature.

func (*DefaultSender) Name

func (d *DefaultSender) Name() string

func (*DefaultSender) Send

func (d *DefaultSender) Send(msg string, receiver *Receiver) (*SendResult, error)

type FeishuSender

type FeishuSender struct{}

FeishuSender implements webhook sending for Feishu.

func (*FeishuSender) Name

func (f *FeishuSender) Name() string

func (*FeishuSender) Send

func (f *FeishuSender) Send(msg string, receiver *Receiver) (*SendResult, error)

type Receiver

type Receiver struct {
	Platform      string
	TargetURL     string
	Method        string
	Headers       map[string]string
	Template      string
	SignSecret    string
	SignAlgo      string // e.g. "hmac-sha256", "feishu"
	SignHeaderKey string // e.g. "X-Signature" or unused
}

Receiver represents a user-defined webhook endpoint.

func NewFeishuReceiver

func NewFeishuReceiver(targetURL, signSecret string) *Receiver

NewFeishuReceiver 快捷创建飞书 Receiver

func (*Receiver) Validate

func (r *Receiver) Validate() error

Validate 校验 Receiver 配置合法性

type SendResult

type SendResult struct {
	Status     string // success / failed
	StatusCode int
	RespBody   string
}

SendResult holds the result of a webhook send attempt.

func PushMsgToAllTargets

func PushMsgToAllTargets(msg string, receivers []*models.WebhookReceiver) []*SendResult

func PushMsgToSingleTarget

func PushMsgToSingleTarget(msg string, receiver *models.WebhookReceiver) *SendResult

type Sender

type Sender interface {
	Name() string
	Send(msg string, receiver *Receiver) (*SendResult, error)
}

Sender defines the webhook adapter interface.

Jump to

Keyboard shortcuts

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