 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
- func Deliver(ctx context.Context, t *webhook_model.HookTask) error
- func Init() error
- func IsValidHookTaskType(name string) bool
- func IsValidSlackChannel(name string) bool
- func MatrixLinkToRef(repoURL, ref string) string
- func NewNotifier() notify_service.Notifier
- func PrepareWebhook(ctx context.Context, w *webhook_model.Webhook, ...) error
- func PrepareWebhooks(ctx context.Context, source EventSource, event webhook_module.HookEventType, ...) error
- func RegisterWebhookRequester(hookType webhook_module.HookType, requester Requester)
- func ReplayHookTask(ctx context.Context, w *webhook_model.Webhook, uuid string) error
- func SlackLinkFormatter(url, text string) string
- func SlackLinkToRef(repoURL, ref string) string
- func SlackShortTextFormatter(s string) string
- func SlackTextFormatter(s string) string
- func ToHook(repoLink string, w *webhook_model.Webhook) (*api.Hook, error)
- type DingtalkPayload
- type DiscordEmbed
- type DiscordEmbedAuthor
- type DiscordEmbedField
- type DiscordEmbedFooter
- type DiscordMeta
- type DiscordPayload
- type EventSource
- type FeishuPayload
- type MSTeamsAction
- type MSTeamsActionTarget
- type MSTeamsFact
- type MSTeamsPayload
- type MSTeamsSection
- type MatrixMeta
- type MatrixPayload
- type PackagistMeta
- type PackagistPayload
- type Requester
- type SlackAttachment
- type SlackMeta
- type SlackPayload
- type TelegramMeta
- type TelegramPayload
- type WechatworkPayload
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Deliver ¶
func Deliver(ctx context.Context, t *webhook_model.HookTask) error
Deliver creates the http.Request (depending on the webhook type), sends it and records the status and response.
func IsValidHookTaskType ¶
IsValidHookTaskType returns true if a webhook registered
func IsValidSlackChannel ¶ added in v1.17.4
IsValidSlackChannel validates a channel name conforms to what slack expects: https://api.slack.com/methods/conversations.rename#naming Conversation names can only contain lowercase letters, numbers, hyphens, and underscores, and must be 80 characters or less. Gitea accepts if it starts with a #.
func MatrixLinkToRef ¶
MatrixLinkToRef Matrix-formatter link to a repo ref
func NewNotifier ¶ added in v1.19.0
func NewNotifier() notify_service.Notifier
NewNotifier create a new webhookNotifier notifier
func PrepareWebhook ¶
func PrepareWebhook(ctx context.Context, w *webhook_model.Webhook, event webhook_module.HookEventType, p api.Payloader) error
PrepareWebhook creates a hook task and enqueues it for processing. The payload is saved as-is. The adjustments depending on the webhook type happen right before delivery, in the Deliver method.
func PrepareWebhooks ¶
func PrepareWebhooks(ctx context.Context, source EventSource, event webhook_module.HookEventType, p api.Payloader) error
PrepareWebhooks adds new webhooks to task queue for given payload.
func RegisterWebhookRequester ¶ added in v1.23.2
func RegisterWebhookRequester(hookType webhook_module.HookType, requester Requester)
func ReplayHookTask ¶ added in v1.16.0
ReplayHookTask replays a webhook task
func SlackLinkFormatter ¶
SlackLinkFormatter creates a link compatible with slack
func SlackLinkToRef ¶
SlackLinkToRef slack-formatter link to a repo ref
func SlackShortTextFormatter ¶
SlackShortTextFormatter replaces &, <, > with HTML characters
func SlackTextFormatter ¶
SlackTextFormatter replaces &, <, > with HTML characters see: https://api.slack.com/docs/formatting
Types ¶
type DingtalkPayload ¶
type DiscordEmbed ¶
type DiscordEmbed struct {
	Title       string              `json:"title"`
	Description string              `json:"description"`
	URL         string              `json:"url"`
	Color       int                 `json:"color"`
	Author      DiscordEmbedAuthor  `json:"author"`
	Fields      []DiscordEmbedField `json:"fields"`
}
    DiscordEmbed is for Embed Structure
type DiscordEmbedAuthor ¶
type DiscordEmbedAuthor struct {
	Name    string `json:"name"`
	URL     string `json:"url"`
	IconURL string `json:"icon_url"`
}
    DiscordEmbedAuthor for Embed Author Structure
type DiscordEmbedField ¶
DiscordEmbedField for Embed Field Structure
type DiscordEmbedFooter ¶
type DiscordEmbedFooter struct {
}
    DiscordEmbedFooter for Embed Footer Structure.
type DiscordMeta ¶
DiscordMeta contains the discord metadata
func GetDiscordHook ¶
func GetDiscordHook(w *webhook_model.Webhook) *DiscordMeta
GetDiscordHook returns discord metadata
type DiscordPayload ¶
type DiscordPayload struct {
	Wait      bool           `json:"wait"`
	Content   string         `json:"content"`
	Username  string         `json:"username,omitempty"`
	AvatarURL string         `json:"avatar_url,omitempty"`
	TTS       bool           `json:"tts"`
	Embeds    []DiscordEmbed `json:"embeds"`
}
    DiscordPayload represents
type EventSource ¶ added in v1.17.4
type EventSource struct {
	Repository *repo_model.Repository
	Owner      *user_model.User
}
    EventSource represents the source of a webhook action. Repository and/or Owner must be set.
type FeishuPayload ¶
type FeishuPayload struct {
	Timestamp int64  `json:"timestamp,omitempty"` // Unix timestamp for signature verification
	Sign      string `json:"sign,omitempty"`      // Signature for verification
	MsgType   string `json:"msg_type"`            // text / post / image / share_chat / interactive / file /audio / media
	Content   struct {
		Text string `json:"text"`
	} `json:"content"`
}
    FeishuPayload represents the payload for Feishu webhook
type MSTeamsAction ¶
type MSTeamsAction struct {
	Type    string                `json:"@type"`
	Name    string                `json:"name"`
	Targets []MSTeamsActionTarget `json:"targets,omitempty"`
}
    MSTeamsAction is an action (creates buttons, links etc)
type MSTeamsActionTarget ¶
MSTeamsActionTarget is the actual link to follow, etc
type MSTeamsFact ¶
MSTeamsFact for Fact Structure
type MSTeamsPayload ¶
type MSTeamsPayload struct {
	Type            string           `json:"@type"`
	Context         string           `json:"@context"`
	ThemeColor      string           `json:"themeColor"`
	Title           string           `json:"title"`
	Summary         string           `json:"summary"`
	Sections        []MSTeamsSection `json:"sections"`
	PotentialAction []MSTeamsAction  `json:"potentialAction"`
}
    MSTeamsPayload is the parent object
type MSTeamsSection ¶
type MSTeamsSection struct {
	ActivityTitle    string        `json:"activityTitle"`
	ActivitySubtitle string        `json:"activitySubtitle"`
	ActivityImage    string        `json:"activityImage"`
	Facts            []MSTeamsFact `json:"facts"`
	Text             string        `json:"text"`
}
    MSTeamsSection is a MessageCard section
type MatrixMeta ¶
type MatrixMeta struct {
	HomeserverURL string `json:"homeserver_url"`
	Room          string `json:"room_id"`
	MessageType   int    `json:"message_type"`
}
    MatrixMeta contains the Matrix metadata
func GetMatrixHook ¶
func GetMatrixHook(w *webhook_model.Webhook) *MatrixMeta
GetMatrixHook returns Matrix metadata
type MatrixPayload ¶ added in v1.17.4
type MatrixPayload struct {
	Body          string               `json:"body"`
	MsgType       string               `json:"msgtype"`
	Format        string               `json:"format"`
	FormattedBody string               `json:"formatted_body"`
	Commits       []*api.PayloadCommit `json:"io.gitea.commits,omitempty"`
}
    MatrixPayload contains payload for a Matrix room
type PackagistMeta ¶ added in v1.17.0
type PackagistMeta struct {
	Username   string `json:"username"`
	APIToken   string `json:"api_token"`
	PackageURL string `json:"package_url"`
}
    PackagistMeta contains the metadata for the webhook
func GetPackagistHook ¶ added in v1.17.0
func GetPackagistHook(w *webhook_model.Webhook) *PackagistMeta
GetPackagistHook returns packagist metadata
type PackagistPayload ¶ added in v1.17.0
type PackagistPayload struct {
	PackagistRepository struct {
		URL string `json:"url"`
	} `json:"repository"`
}
    PackagistPayload represents
type Requester ¶ added in v1.23.2
type Requester func(context.Context, *webhook_model.Webhook, *webhook_model.HookTask) (req *http.Request, body []byte, err error)
type SlackAttachment ¶
type SlackAttachment struct {
	Fallback  string `json:"fallback"`
	Color     string `json:"color"`
	Title     string `json:"title"`
	TitleLink string `json:"title_link"`
	Text      string `json:"text"`
}
    SlackAttachment contains the slack message
type SlackMeta ¶
type SlackMeta struct {
	Channel  string `json:"channel"`
	Username string `json:"username"`
	IconURL  string `json:"icon_url"`
	Color    string `json:"color"`
}
    SlackMeta contains the slack metadata
func GetSlackHook ¶
func GetSlackHook(w *webhook_model.Webhook) *SlackMeta
GetSlackHook returns slack metadata
type SlackPayload ¶
type SlackPayload struct {
	Channel     string            `json:"channel"`
	Text        string            `json:"text"`
	Username    string            `json:"username"`
	IconURL     string            `json:"icon_url"`
	UnfurlLinks int               `json:"unfurl_links"`
	LinkNames   int               `json:"link_names"`
	Attachments []SlackAttachment `json:"attachments"`
}
    SlackPayload contains the information about the slack channel
type TelegramMeta ¶
type TelegramMeta struct {
	BotToken string `json:"bot_token"`
	ChatID   string `json:"chat_id"`
	ThreadID string `json:"thread_id"`
}
    TelegramMeta contains the telegram metadata
func GetTelegramHook ¶
func GetTelegramHook(w *webhook_model.Webhook) *TelegramMeta
GetTelegramHook returns telegram metadata
type TelegramPayload ¶
type TelegramPayload struct {
	Message           string `json:"text"`
	ParseMode         string `json:"parse_mode"`
	DisableWebPreview bool   `json:"disable_web_page_preview"`
}
    TelegramPayload represents
type WechatworkPayload ¶ added in v1.16.0
type WechatworkPayload struct {
	Msgtype string `json:"msgtype"`
	Text    struct {
		Content             string   `json:"content"`
		MentionedList       []string `json:"mentioned_list"`
		MentionedMobileList []string `json:"mentioned_mobile_list"`
	} `json:"text"`
	Markdown struct {
		Content string `json:"content"`
	} `json:"markdown"`
}
    WechatworkPayload represents