slack

package
v0.29.1 Latest Latest
Warning

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

Go to latest
Published: Mar 14, 2024 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrFileNotFound indicates that an artifact was not found.
	ErrFileNotFound = errors.New("file not found")
	// ErrNotParsable indicates that an artifact could not be parsed against the
	// artifact specification.
	ErrNotParsable = errors.New("message not parsable")
	// ErrUnknownFields indicates that an artifact contains an unknown field.
	ErrUnknownFields = errors.New("message contains unknown fields")

	MsgColorGreen  = "#73BF69"
	MsgColorYellow = "#FADE2A"
	MsgColorRed    = "#F2495C"
)
View Source
var (
	// ErrUnknownEmail indicates that an email is not from the specified domain
	// and no email mapping exists
	ErrUnknownEmail = errors.New("not an accepted email domain")
)

Functions

func ParseUserMappings added in v0.0.15

func ParseUserMappings(users []string) (map[string]string, error)

ParseUserMappings parses the slice users as key-value pairs separated with an equal (=) sign.

If any of the provided mappings are invalid or conflicting mappings are provided an error is returned.

func Persist added in v0.0.6

func Persist(path string, message Message) error

Types

type BuildsOptions added in v0.0.10

type BuildsOptions struct {
	Service       string
	ArtifactID    string
	Branch        string
	CommitSHA     string
	CommitLink    string
	CommitMessage string
	CommitAuthor  string
	CIJobURL      string
	Color         string
}

type Client

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

func NewClient

func NewClient(slackClient SlackClient, emailMappings map[string]string, emailSuffix string) (*Client, error)

func NewMuteableClient added in v0.4.1

func NewMuteableClient(slackClient SlackClient, emailMappings map[string]string, emailSuffix string, muteOptions MuteOptions) (*Client, error)

func (*Client) NotifyK8SDeployEvent added in v0.5.0

func (c *Client) NotifyK8SDeployEvent(ctx context.Context, event NotifyK8sDeployOptions) error

func (*Client) NotifyK8SJobErrorEvent added in v0.12.4

func (c *Client) NotifyK8SJobErrorEvent(ctx context.Context, event *http.JobErrorEvent) error

func (*Client) NotifyK8SPodErrorEvent added in v0.5.0

func (c *Client) NotifyK8SPodErrorEvent(ctx context.Context, event *http.PodErrorEvent) error

func (*Client) NotifyRelease added in v0.23.0

func (c *Client) NotifyRelease(ctx context.Context, releaseOptions ReleaseOptions)

func (*Client) NotifyReleaseFailedEvent added in v0.26.0

func (c *Client) NotifyReleaseFailedEvent(ctx context.Context, event NotifyReleaseFailedOptions) error

func (*Client) NotifyReleaseManagerError added in v0.6.0

func (c *Client) NotifyReleaseManagerError(ctx context.Context, msgType, service, environment, branch, namespace, actorEmail string, inputErr error) error

func (*Client) NotifySlackBuildsChannel added in v0.0.10

func (c *Client) NotifySlackBuildsChannel(options BuildsOptions) error

func (*Client) NotifySlackPolicyFailed added in v0.0.15

func (c *Client) NotifySlackPolicyFailed(ctx context.Context, email, title, errorMessage string) error

func (*Client) NotifySlackPolicySucceeded added in v0.0.40

func (c *Client) NotifySlackPolicySucceeded(ctx context.Context, email, title, message string) error

func (*Client) PostSlackBuildStarted added in v0.0.6

func (c *Client) PostSlackBuildStarted(email, title, titleLink, text, color string) (string, string, error)

func (*Client) UpdateMessage added in v0.0.15

func (c *Client) UpdateMessage(path string, f func(Message) Message) error

UpdateMessage updates the message in the file located at path by applying f on the contents.

The stored Slack build message is updated accordingly.

func (*Client) UpdateSlackBuildStatus added in v0.0.6

func (c *Client) UpdateSlackBuildStatus(channel, title, titleLink, text, color, timestamp string) (string, string, error)

type Message added in v0.0.6

type Message struct {
	Color     string `json:"color,omitempty"`
	Channel   string `json:"channel,omitempty"`
	Text      string `json:"text,omitempty"`
	Title     string `json:"title,omitempty"`
	TitleLink string `json:"titleLink,omitempty"`
	Timestamp string `json:"timestamp,omitempty"`
	Service   string `json:"service,omitempty"`
}

func Get added in v0.0.6

func Get(path string) (Message, error)

type MockSlackClient added in v0.11.3

type MockSlackClient struct {
	mock.Mock
}

MockSlackClient is an autogenerated mock type for the SlackClient type

func (*MockSlackClient) GetUserByEmailContext added in v0.11.3

func (_m *MockSlackClient) GetUserByEmailContext(ctx context.Context, email string) (*slack.User, error)

GetUserByEmailContext provides a mock function with given fields: ctx, email

func (*MockSlackClient) PostMessage added in v0.11.3

func (_m *MockSlackClient) PostMessage(channelID string, options ...slack.MsgOption) (string, string, error)

PostMessage provides a mock function with given fields: channelID, options

func (*MockSlackClient) PostMessageContext added in v0.11.3

func (_m *MockSlackClient) PostMessageContext(ctx context.Context, channelID string, options ...slack.MsgOption) (string, string, error)

PostMessageContext provides a mock function with given fields: ctx, channelID, options

func (*MockSlackClient) UpdateMessage added in v0.11.3

func (_m *MockSlackClient) UpdateMessage(channelID string, timestamp string, options ...slack.MsgOption) (string, string, string, error)

UpdateMessage provides a mock function with given fields: channelID, timestamp, options

type MuteOptions added in v0.4.1

type MuteOptions struct {
	Kubernetes          bool
	Policy              bool
	ReleaseProcessed    bool
	Releases            bool
	BuildStatus         bool
	ReleaseManagerError bool
}

type NotifyK8sDeployOptions added in v0.25.0

type NotifyK8sDeployOptions struct {
	AuthorEmail   string
	Environment   string
	Name          string
	AvailablePods int32
	DesiredPods   int32
	ResourceType  string
	ArtifactID    string
}

type NotifyReleaseFailedOptions added in v0.26.0

type NotifyReleaseFailedOptions struct {
	PodName     string
	Namespace   string
	Errors      []string
	AuthorEmail string
	Environment string
	ArtifactID  string
	Squad       string
	AlertSquad  string
}

type ReleaseOptions added in v0.0.10

type ReleaseOptions struct {
	Service           string
	ArtifactID        string
	CommitSHA         string
	CommitLink        string
	CommitMessage     string
	CommitAuthor      string
	CommitAuthorEmail string
	Releaser          string
	Environment       string
}

type SlackClient added in v0.11.3

type SlackClient interface {
	GetUserByEmailContext(ctx context.Context, email string) (*slack.User, error)
	UpdateMessage(channelID, timestamp string, options ...slack.MsgOption) (string, string, string, error)
	PostMessage(channelID string, options ...slack.MsgOption) (string, string, error)
	PostMessageContext(ctx context.Context, channelID string, options ...slack.MsgOption) (string, string, error)
}

Jump to

Keyboard shortcuts

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