Documentation
¶
Overview ¶
Package slack talks to the Slack Web API for the PR notifier: posting, updating, and deleting messages, adding emoji reactions, and composing the text of the notification.
Index ¶
- type APIError
- type ChannelInfo
- type Client
- func (c *Client) AddReaction(ctx context.Context, channel, ts, name string) error
- func (c *Client) AuthTest(ctx context.Context) (userID string, scopes []string, err error)
- func (c *Client) ConversationsInfo(ctx context.Context, channel string) (ChannelInfo, error)
- func (c *Client) DeleteMessage(ctx context.Context, channel, ts string) error
- func (c *Client) GetReactions(ctx context.Context, channel, ts string) ([]Reaction, error)
- func (c *Client) PostMessage(ctx context.Context, channel, text string) (string, error)
- func (c *Client) UpdateMessage(ctx context.Context, channel, ts, text string) error
- type Composer
- type Option
- type PRDetails
- type Reaction
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ChannelInfo ¶
ChannelInfo is the subset of conversations.info we need for validation.
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is a thin Slack Web API client covering only the endpoints needed by the notifier. It is safe for concurrent use.
func NewClient ¶
NewClient builds a Client. The httpClient is used as-is; callers should configure timeouts on it.
func (*Client) AddReaction ¶
AddReaction adds a reaction emoji to a message. "already_reacted" is treated as success — it means the reaction we wanted is already there.
func (*Client) AuthTest ¶
AuthTest returns the bot's user_id and the OAuth scopes Slack reports as granted to the token. Scopes are read from the X-OAuth-Scopes response header (comma-separated) and used by validation to verify required scopes are present.
func (*Client) ConversationsInfo ¶
ConversationsInfo returns metadata about a channel, including whether the bot is a member. The channel argument must be a Slack channel ID.
func (*Client) DeleteMessage ¶
DeleteMessage removes an existing message by ts.
func (*Client) GetReactions ¶
GetReactions returns the reactions attached to a message, or an empty slice if none are present.
func (*Client) PostMessage ¶
PostMessage posts a new message to channel and returns its ts.
type Composer ¶
type Composer struct {
// contains filtered or unexported fields
}
Composer renders Slack-formatted notification messages.
func NewComposer ¶
NewComposer returns a Composer that prefixes new-PR messages with the given reaction-style emoji name (without colons).
func (*Composer) BotMessage ¶ added in v0.13.0
BotMessage renders the compact notification for a PR opened by a dependency bot. bot is the lowercase bot name ("dependabot" / "renovate"). When security is true it uses the rotating-light advisory template; otherwise the package routine-bump template. Mentions follow the same empty-list rule as NewMessage. The PR author is intentionally omitted — the bot name carries it.
func (*Composer) NewMessage ¶
NewMessage renders the initial Slack message for a PR. Mentions are joined with commas (matching the legacy PHP composer's wire format). When the mentions list is empty, the prefix is omitted entirely so the message has no stranded ", ".
type Option ¶
type Option func(*Client)
Option configures Client construction.
func WithBaseURL ¶
WithBaseURL overrides the Slack API base URL — used in tests against an httptest.Server. The URL must NOT have a trailing slash.