summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/nlopes/slack/webhooks.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/nlopes/slack/webhooks.go')
-rw-r--r--vendor/github.com/nlopes/slack/webhooks.go33
1 files changed, 33 insertions, 0 deletions
diff --git a/vendor/github.com/nlopes/slack/webhooks.go b/vendor/github.com/nlopes/slack/webhooks.go
new file mode 100644
index 00000000..870a8d8b
--- /dev/null
+++ b/vendor/github.com/nlopes/slack/webhooks.go
@@ -0,0 +1,33 @@
+package slack
+
+import (
+ "github.com/pkg/errors"
+ "net/http"
+ "bytes"
+ "encoding/json"
+)
+
+type WebhookMessage struct {
+ Text string `json:"text,omitempty"`
+ Attachments []Attachment `json:"attachments,omitempty"`
+}
+
+func PostWebhook(url string, msg *WebhookMessage) error {
+ raw, err := json.Marshal(msg)
+
+ if err != nil {
+ return errors.Wrap(err, "marshal failed")
+ }
+
+ response, err := http.Post(url, "application/json", bytes.NewReader(raw));
+
+ if err != nil {
+ return errors.Wrap(err, "failed to post webhook")
+ }
+
+ if response.StatusCode != http.StatusOK {
+ return statusCodeError{Code: response.StatusCode, Status: response.Status}
+ }
+
+ return nil
+}